Events to check account status
Listen to Asaas events to keep your integration up to date.
Use registration status events to automatically track changes to an account's commercial information, bank account, documentation and general approval.
Each notification indicates the change in event and the current registration status in the accountStatus object.
Available events
Bank account
| Event | When it occurs |
|---|---|
ACCOUNT_STATUS_BANK_ACCOUNT_INFO_APPROVED | The bank account is approved. |
ACCOUNT_STATUS_BANK_ACCOUNT_INFO_AWAITING_APPROVAL | The bank account is under review. |
ACCOUNT_STATUS_BANK_ACCOUNT_INFO_PENDING | The bank account returns to pending. |
ACCOUNT_STATUS_BANK_ACCOUNT_INFO_REJECTED | The bank account is rejected. |
Commercial information
| Event | When it occurs |
|---|---|
ACCOUNT_STATUS_COMMERCIAL_INFO_APPROVED | The commercial information is approved. |
ACCOUNT_STATUS_COMMERCIAL_INFO_AWAITING_APPROVAL | The commercial information is under review. |
ACCOUNT_STATUS_COMMERCIAL_INFO_PENDING | The commercial information returns to pending. |
ACCOUNT_STATUS_COMMERCIAL_INFO_REJECTED | The commercial information is rejected. |
Documentation
| Event | When it occurs |
|---|---|
ACCOUNT_STATUS_DOCUMENT_APPROVED | The documents are approved. |
ACCOUNT_STATUS_DOCUMENT_AWAITING_APPROVAL | The documents are under review. |
ACCOUNT_STATUS_DOCUMENT_PENDING | The documents return to pending. |
ACCOUNT_STATUS_DOCUMENT_REJECTED | The documents are rejected. |
General approval
| Event | When it occurs |
|---|---|
ACCOUNT_STATUS_GENERAL_APPROVAL_APPROVED | The account is approved. |
ACCOUNT_STATUS_GENERAL_APPROVAL_AWAITING_APPROVAL | The account is under review. |
ACCOUNT_STATUS_GENERAL_APPROVAL_PENDING | The account returns to pending. |
ACCOUNT_STATUS_GENERAL_APPROVAL_REJECTED | The account is rejected. |
When accountStatus.general is APPROVED, the account's general approval is complete.
Annual confirmation of commercial data
For subaccounts subject to annual confirmation, the following may also be sent:
| Event | When it occurs |
|---|---|
ACCOUNT_STATUS_COMMERCIAL_INFO_EXPIRING_SOON | The commercial data is close to expiring. |
ACCOUNT_STATUS_COMMERCIAL_INFO_EXPIRED | The commercial data expired without confirmation or update. |
ACCOUNT_STATUS_COMMERCIAL_INFO_EXPIRING_SOON is sent before the expiration date so that the integration can request confirmation or update of the data.
When you receive ACCOUNT_STATUS_COMMERCIAL_INFO_EXPIRED, handle the pending item even if accountStatus.commercialInfo and accountStatus.general are still APPROVED. The annual expiration is controlled separately from the registration approval.
See the complete flow in Annual Confirmation of Commercial Data for Subaccounts.
Event payload
The notification is sent via POST with the event and the current account status.
{
"id": "evt_05b708f961d739ea7eba7e4db318f621&368604920",
"event": "ACCOUNT_STATUS_COMMERCIAL_INFO_APPROVED",
"dateCreated": "2024-06-12 16:45:03",
"account": {
"id": "47ed0d25-f9fb-4b35-b23a-d8895caf92b7",
"ownerId": null
},
"accountStatus": {
"id": "175027c1-029c-41e5-8b9a-e289b9788c33",
"commercialInfo": "APPROVED",
"bankAccountInfo": "APPROVED",
"documentation": "APPROVED",
"general": "APPROVED"
}
}Important payload fields
| Field | Description |
|---|---|
id | Unique identifier of the event. Use it for idempotence. |
event | Identifies the change received. |
account.id | Identifier of the account related to the event. |
accountStatus.id | Registration status identifier. |
accountStatus.commercialInfo | Status of the commercial information. |
accountStatus.bankAccountInfo | Status of the bank account. |
accountStatus.documentation | Status of the documents. |
accountStatus.general | General approval status of the account. |
Webhook response with types and ENUMsIf you want to know the type of each field and the available ENUM values, check the
200response of the "Check account registration status" endpoint in the documentation.
How to handle the events
When receiving a registration status event:
- identify the change through the
eventfield; - persist the
idto prevent duplicate processing; - use
account.idto identify the account in your system; - update the corresponding dimension using the
accountStatusdata; - respond
HTTP 200after confirming persistence; - process additional rules asynchronously.
Webhooks follow the at least once model, so the same event may be sent more than once.
See how to implement idempotence in Webhooks.
To track registration changes, prefer these events instead of continuously querying the account status through the API. Use the individual query when you need to retrieve the current state on demand.
Attention
- As new products and features are added to Asaas, new attributes may be included in the Webhook. It is very important that your code is prepared not to throw exceptions if Asaas returns new attributes that your application does not handle, as this may interrupt the sync queue.
- We will send an email and announce on our Discord when new fields are added to the Webhook. The email will be sent to the notification email address defined in the Webhook settings.
Next steps
Updated 7 days ago
