Events
This is the catalog of webhook events. Subscribe a webhook to an event by
adding the event's type to its events list. Every event is delivered as an
HTTP POST with a Content-Type: application/json header, and the body is a
JSON object whose type field identifies the event, plus the common eventId
and requestId fields described in the Overview.
| Event | Description |
|---|---|
application.status.changed.v1 |
Sent when an application's status changes. |
org.status.changed.v1 |
Sent when an organization's status changes. |
payment.status.changed.v1 |
Sent when a payment's status changes. |
application.status.changed.v1
Sent when an application's status changes.
| Field | Type | Description |
|---|---|---|
eventId |
string | Stable id of this delivery; identical across retries (use it to deduplicate). |
requestId |
string | Id of the individual delivery attempt; changes on every retry. |
type |
string | Always "application.status.changed.v1". |
applicationId |
string | The id of the application whose status changed. |
orgId |
string | null | The id of the linked organization, or null until the application is approved. |
status |
string | The new status (see below). |
previousStatus |
string | null | The status before the change, or null for the application's first status. |
occurredAt |
string | ISO-8601 timestamp of when the change occurred. |
status and previousStatus are one of:
| Status | Meaning |
|---|---|
draft |
The application was opened and is being filled out. |
submitted |
The application was submitted by the merchant and is ready for review. |
approved |
The application was reviewed and approved by underwriting. |
declined |
The application was reviewed and declined by underwriting. |
Example payload:
{
"eventId": "WebhookRequest#2cVQF8s0u9c2bq5b3pTn1mY7kde",
"requestId": "2dWRg9t1v0d3cr6c4qUo2nZ8lef",
"type": "application.status.changed.v1",
"applicationId": "2cVQF8s0u9c2bq5b3pTn1mY7kde",
"orgId": null,
"status": "submitted",
"previousStatus": "draft",
"occurredAt": "2026-06-25T17:42:03.118Z"
}org.status.changed.v1
Sent when an organization's status changes.
| Field | Type | Description |
|---|---|---|
eventId |
string | Stable id of this delivery; identical across retries (use it to deduplicate). |
requestId |
string | Id of the individual delivery attempt; changes on every retry. |
type |
string | Always "org.status.changed.v1". |
orgId |
string | The id of the organization whose status changed. |
status |
string | The new status (see below). |
previousStatus |
string | null | The status before the change, or null for the org's first status. |
occurredAt |
string | ISO-8601 timestamp of when the change occurred. |
status and previousStatus are one of:
| Status | Meaning |
|---|---|
Onboarding |
The organization is being onboarded and is not yet fully active. |
Healthy |
The organization is active and in good standing. |
Unhealthy |
The organization is active but in a degraded or at-risk state. |
Suspended |
The organization has been suspended and cannot transact. |
Closed |
The organization has been permanently closed. |
Example payload:
{
"eventId": "WebhookRequest#2cVQF8s0u9c2bq5b3pTn1mY7kde",
"requestId": "2dWRg9t1v0d3cr6c4qUo2nZ8lef",
"type": "org.status.changed.v1",
"orgId": "2cVQF8s0u9c2bq5b3pTn1mY7kde",
"status": "Healthy",
"previousStatus": "Onboarding",
"occurredAt": "2026-06-25T17:42:03.118Z"
}payment.status.changed.v1
Sent when a payment's status changes. Unlike the application and organization events — which fan out only to the owning agency — this event is delivered to the webhooks of both the owning agency and the payment's organization, so the same payload reaches subscribers on either side.
| Field | Type | Description |
|---|---|---|
eventId |
string | Stable id of this delivery; identical across retries (use it to deduplicate). |
requestId |
string | Id of the individual delivery attempt; changes on every retry. |
type |
string | Always "payment.status.changed.v1". |
paymentId |
string | The id of the payment whose status changed. |
orgId |
string | null | The id of the payment's organization, or null when the payment is not yet linked to an org. |
status |
string | The new status (see below). |
previousStatus |
string | null | The status before the change, or null for the payment's first status. |
occurredAt |
string | ISO-8601 timestamp of when the change occurred. |
status and previousStatus are one of:
| Status | Meaning |
|---|---|
Pending |
The payment has been created but not yet completed. |
Completed |
The payment has been successfully completed. |
Finalized |
The payment has settled and is finalized. |
Canceled |
The payment was canceled. |
Example payload:
{
"eventId": "WebhookRequest#2cVQF8s0u9c2bq5b3pTn1mY7kde",
"requestId": "2dWRg9t1v0d3cr6c4qUo2nZ8lef",
"type": "payment.status.changed.v1",
"paymentId": "2cVQF8s0u9c2bq5b3pTn1mY7kde",
"orgId": "2eXSh0u2w1e4ds7d5rVp3oA9mfg",
"status": "Completed",
"previousStatus": "Pending",
"occurredAt": "2026-06-25T17:42:03.118Z"
}