Types of webhooks
Maesn supports two types of webhooks:-
Customer-based webhooks
Subscriptions are created per customer, so each customer events is received through the related subscription. Endpoint url :POST /webhooks/userRequires both theX-API-KEYand theX-ACCOUNT-KEYin the header. Systems that support customer-based webhooks:businesscentralexact-nlfreshbookslexware-officemoneybirdweclapp
-
App-based webhooks
Subscriptions are created per app, not per customer. All customers authenticated with the app share the same subscription, and events for all the customers are delivered to a single callback URL. Endpoint url :POST /webhooks/tenantRequires only theX-API-KEYin the header. Systems that support app-based webhooks:quickbooksxero
Setting up a webhook
To set up a webhook, you need to create a subscription by sending a POST request to theaccounting/webhooks or tenants/webhooks endpoint depending on the target system and the type of webhook you want to create.
The request body support the following parameters:
callbackUrl: The URL where you want to receive webhook events.eventType: The type of event you want to subscribe to (e.g.,CREATED,UPDATED,DELETED).resource: The resource you want to monitor (e.g.,INVOICE,CUSTOMER).targetSystem: The accounting system you are connecting to (e.g.,xero,quickbooks).
Getting events
Once a webhook is set up, you will start receiving events at the specified callback URL. Each event will contain information about the resource that triggered the event, including its type and ID. The received event body will look similar to this:Example event body
Handling events
When your server receives a webhook event, it should process the event according to your application’s logic. This may involve updating records in your database, triggering other workflows, or sending notifications.Deleting a webhook
If you no longer need a webhook, you can delete it by sending a DELETE request to the/webhooks/user/{webhookId} or /webhooks/tenant/{webhookId}endpoint.