Skip to main content
1

Realize the 'sync contacts' use case

Start by implementing the synchronize contacts use case to ensure that the suppliers across your database and your user’s accounting platform are in sync.
2

Retrieve chart of accounts

You will usually need to specify a general ledger account for bills and payments. Fetch it from the user’s accounting platform by calling the GET /accounts endpoint.
3

Retrieve tax rates

Retrieve available tax rates from the accounting platform with GET /taxRates.
4

Retrieve dimensions (optional)

If your users use classes, locations, departments or other dimensions configured, you can retrieve them from the accounting platform with GET /dimensions.
5

Setup categorization rules (optional)

Presenting the data retrieved in the previous steps in your frontend, enable your user to configure rules for categorizing the bills and payments that will be synchronized to the accounting platform. The business logic will depend on your application, but bear in mind that:
  • If your user only wants to synchronize their bills and payments against one single GL account respectively, a simple dropdown menu to select the account may be sufficient.
  • Users may want to categorize expenses based on conditional logic, such as “if Department = IT, use Account A”. This will require more from your UI!
  • You may want to give your users the possibility to categorize the transaction at the time when they synchronize it to their accounting service, which would imply that no pre-categorization is required in the configuration or that it is possible to override the configuration.
  • Depending on your use case, the accounting platform you are integrating to and the legislation of the country you operate in, you may want to automatically configure certain tax rates for certain categories or allow your users to manually select the tax rate for each individual expense.
  • Likewise, dimensions may follow categories or be presented for selection for the respective expense.
6

Create a bill

Create a bill in your user’s accounting platform by calling POST /bills. It is up to your application whether bills should be synchronized automatically or require an end user to manually export the bill from within your application.
7

Create a payment

Create a payment in your user’s accounting platform by calling POST /payments. It is up to your application whether payments should be synchronized automatically or require an end user to manually export the payment from within your application.
8

Keep your data fresh

After fetching data initially, you should make sure to keep your user’s data up to date by regularly retrieving data from the maesn API and looking for changes. The lastModified query parameter can be utilized on all our GET endpoints to save you the hassle of creating deltas to detect change. See our guide to keeping data fresh for more information!
You can utilize Webhooks to make this process more efficient.