Events and Payloads
Events
Every partner receives every event. There is no subscription step, so a new event type starts arriving as soon as it ships — ignore any type you do not recognise rather than failing on it.
| Event name | Fires when |
|---|---|
business.profile.created | A business customer is created by Create Business Profile. |
business.profile.updated | Update Business Profile changed one or more profile fields. |
business.person.added | A business person is created, at creation or by an update. One event per person. |
business.document.confirmed | A document is linked to the customer's pack by businessDocumentIdList. One event per document. |
customer.onboarding.approved | The business customer is approved (verificationStatus → Approved). |
customer.onboarding.rejected | The business customer is rejected (verificationStatus → Rejected). |
customer.onboarding.changes_requested | Compliance needs more information (verificationStatus → ChangesRequested). |
A single call may raise several events: a create carrying three people raises one business.profile.created and three business.person.added.
The webhook.test event is only sent when you ask for it — see Testing your receiver.
Payloads
The data field of the body depends on the event. Every business payload carries customerId and partnerCustomerId so you can correlate the event with your own record without a lookup.
business.profile.*
| Field | Type | Notes |
|---|---|---|
customerId | uuid | |
partnerCustomerId | string | Your own id for this customer. |
companyName | string | The name as it stands after the change. |
verificationStatus | string | The status at the moment of the event, not necessarily now. |
changedFields | array of string | business.profile.updated only. The fields the update supplied, named as you sent them. Use it to react to the change you care about without diffing. |
business.person.*
| Field | Type | Notes |
|---|---|---|
customerId, partnerCustomerId | ||
uboId | uuid | The person that was created. |
firstName, lastName, email | string | |
percentageShare | int or null |
business.document.*
| Field | Type | Notes |
|---|---|---|
customerId, partnerCustomerId | ||
documentId | uuid | The document you confirmed. |
documentType | string |
customer.onboarding.*
| Field | Type | Notes |
|---|---|---|
customerId | uuid | The business customer the decision is about. |
businessId | uuid | Its business profile. |
customerName | string | The registered company name. |
Rejection reasons and reviewer notes are deliberately not included; read rejectionReason from Get Verification Status.
Example: customer.onboarding.approved
{
"id": "0f8c2b1e-...",
"type": "customer.onboarding.approved",
"specVersion": "1.0",
"eventVersion": 1,
"occurredAt": "2026-09-20T10:15:00.0000000+00:00",
"correlation": { "kind": "customer", "id": "b3f1..." },
"data": {
"customerId": "b3f1...",
"businessId": "5e6f...",
"customerName": "Acme Ltd"
}
}