API Overview
Less than to read
Accounting API Overview
Introduction
The Sage Business Cloud Accounting API is free to use, we just ask you to register and then you can start to innovate!
The Accounting API from Sage is a RESTful application programming interface (API) which exposes the data and functionality driving the Sage Business Cloud products of Accounting and Start. These products enable small to medium sized businesses to control their financial inputs and outputs via either a web browser, or a mobile app. Trial versions of the products provide access to evaluate the processing and reporting functionality the products offer.
Useful terms
- Accounting: Sage product that delivers financial control for small to medium sized businesses
- Accounting API: This is the published API for access to the business data behind Start and Accounting
- API: Used generically to refer to the Accounting API
- Business or Resource Owner: individual that pays for product subscriptions and has full read/write access to Start and Accounting
- Client: the 3rd party application integrating or intending to integrate with Sage Business Cloud Accounting
- Contact: an individual or organization that a business deal with
- Customer: individual or organization that a business charges for products or services
- Sage Business Cloud: the platform for all Sage cloud products
- Start: A standalone product from Sage that is a subset of the Accounting product, offering a reduced subscription. Note that the API documentation will refer to Accounting which will include the Start product. Differences will be called out in the detail of the documentation.
- Supplier: individual or organization that a business pays for products or services
- Users: individuals that have access to Start and Accounting
The Accounting API
The Accounting API provides the opportunity to build rich and robust integrations through common RESTful principles and CRUD based HTTP requests. Apps and integrations use the Create, Read, Update and Delete methods of the API to enhance and extend product functionality and processing capability. Apps and integrations can accept data, control the products and simplify the administration that businesses deal with every day. For example, you can access transaction details including attachments, create detailed quotes and invoices, add products, customers and suppliers.
API endpoints are segmented into logical groups so you can dive into the area you need,
- Chart of Accounts: Manage ledger accounts
- Contacts: Contacts, addresses and contact types
- Products & services: Products, services, stock item, stock movement and price type
- Transactions: Journals, ledger entries and transactions
- Sales Transactions: Quotes, estimates, invoices, credit notes, corrective invoices and quick entries
- Purchase Transactions: Invoices, credit notes, corrective invoices and quick entries
- Banking: Bank accounts, bank deposits, bank reconciliation and bank transfers
- Payments & Receipts: Payments, receipts and allocations
- Settings: Business settings, financial settings and invoice settings
- Status Codes & Types: Invoice, credit note, corrective invoice and quick entry statuses
- Attachments: Manage attachments to transactions
- Currencies: Currencies and exchange rates
- Taxes: Tax rates, tax schemes and tax return frequencies
- Opening Balances: Contact opening balances, bank opening balances and ledger opening balances
- User Accounts: Users and businesses
Products & Versions
Both Sage Business Cloud products of Accounting and Start are accessible via the Accounting API in both trial and subscribed versions. Accounting offers more functionality than Start with the only subtle differences to the API being the allocation of Invoice Payments and the differences in core functionality.
The success and growth of Sage Business Cloud Accounting has seen various evolutions of the product and API. The below table provides a guide to those products along with compatible versions of the API’s.
Product | Compatible API Versions | API Status | Route to API v3.1 |
---|---|---|---|
Sageone Accounts (Legacy Product) New signups prohibited |
V1 & V2 | Deprecated | Migrate customer to Accounting via customer services https://uk.sageone.com/support |
Sageone Cashbook (Legacy Product) New signups prohibited |
V1 & V2 | Deprecated | Migrate customer to Start or Accounting via customer services https://uk.sageone.com/support |
Sage Business Cloud Accounting | V3 & V3.1 UK, IE only V1 & V2 US only V2 |
Supported & Developed | Consider migrating to V3.1 Migrate to V3.1 Migrate to V3.1 |
Sage Business Cloud Start | V3 & V3.1 UK, IE only V1 & V2 US only V2 |
Supported & Developed | Consider migrating to V3.1 Migrate to V3.1 Migrate to V3.1 |
Authentication
The Accounting API requires every API request to supply the details of a valid access token. Using the OAuth 2.0 standard of authentication, the access token is obtained by authenticating applications with valid business users. The three-legged OAuth process requires business user interaction to allow the client access to the business data without sharing credentials.
A complete guide to authorization is available here: https://developer.sage.com/accounting/guides/authenticating/authentication/
API V3.1 Limitations
To ensure the availability and integrity of the Accounting API at all times, a request rate limit has been set. The rate limit is set against a client application with the following limitations:
- Rate limit of 1,296,000 requests per app per day
- Maximum of 150 concurrent requests at any time (per app)
In the event of the rate limit being exceeded, the Accounting API will return a HTTP 429 error response. We recommend wait and repeat functionality to be implemented in your app in order to handle any 429 response.
FAQ
Is there a preferred or recommended approach to request handling?
To ensure your requests do not breach the Accounting API rate limits we recommend application requests are queued. Queueing requests put you in control of supported rate limits and allow you to handle the applications functionality regardless of the Accounting API’s state.
What if I need to retrieve large amounts of data from Accounting?
- A GET request returning all contacts may contain many results and cover several pages in list format. The Accounting API has several endpoints which allow for the pagination of data. Pagination allows a
page
anditems_per_page
parameter to be passed in the request to manage the amount of data returned. - Returning all Sales Quotes does not return their associated line items. Pagination allows for a controlled number of Sales Quote Item Lines to be returned for a specified number of Sales Quotes.
- If the data or elements of the data are being cached or stored by an app it is possible to understand if the data of that record has changed by passing a query parameter for the
updated_or_created_since
date. Adeleted_since
query parameter is also available to determine deleted transactions. - The use of query parameters prevents the requesting of large amounts of data if the sole purpose of the call is to maintain data synchronicity.
Extracting large amounts of data can prove time consuming and may lead to latency and unresponsiveness in applications. If there are functions of your application which request large amounts of data we recommend that the function schedules or queues requests and provides feedback to the user affirming the application’s responsiveness or progress.
As a user of a 3rd party application, I access two different businesses. Is the rate limit set for each business?
- Rate limits are set against the user and the app meaning the rate limit would be split between the two businesses in this scenario.
Do you have Demo accounts? When do trial accounts expire?
- At present there is no demo/sandbox environment for development purposes. Trial accounts need to be created for each of the regions your app integrates with and will expire after 30 days. Further details about the registration in Sage Business Cloud Accounting can be found in the FAQ section.