Skip to main content
1

Authorize access

Your user must first authorize your application to access their accounting platform (e.g., Xero, Lexware Office, Sevdesk) via an authorization flow (e.g., OAuth, API key) through maesn Connect.
2

Compile chart of accounts

Implement the following logic in your application to retrieve customers’ account data:
  • Call the GET /accounts endpoint to fetch the accounts from your user’s accounting platform.
  • Use the retrieved data to present your user’s chart of accounts in your frontend. Use fields such as:
    • classification (e.g., ASSET, EQUITY, EXPENSE, LIABILITY, REVENUE) to group accounts.
    • parentAccount to visualize hierarchical relationships in the customer’s General Ledger (GL).
    • Note: For DATEV integrations, the GET /accounts endpoint only provides account ledger names.
  • Do not forget to call GET /accounts with regular intervals to keep track of any updates to your customer’s chart of accounts.
3

Retrieve tax rates

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

Synchronize contacts (optional)

Follow the steps outlined in the synchronize contacts use case to synchronize suppliers in your application with your user’s accounting platform.
5

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.
6

Setup categorization rules

Presenting the data retrieved in the previous steps in your frontend, enable your user to configure rules for categorizing the expenses 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 expenses against one single GL account, 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 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 tax rates for expense 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.
7

Create expense

Whenever your user incurs spend-related transactions in your application, e.g., credit card transactions or travel expenses, you can synchronize the transactions to your user’s Accounting platform with the correct classification via the POST /expenses endpoint. It is up to your application whether these transactions should be synchronized automatically or require an end user to manually export the expenses 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!
A simplified way to post expenses is to create bookings directly