Skip to content

All 22 event types, each with a complete delivery body built by the code that records the event, so data has exactly the keys a delivery carries (ids, amounts and times are samples). GET /events returns the same object for the same id. Webhooks covers verifying, retrying and ordering deliveries.

Header Description
svix-id The event id. Stable across retries; equals the body’s id and the feed row’s id. Dedupe on it.
svix-timestamp Unix seconds when this attempt was signed. Reject a delivery more than five minutes from your clock.
svix-signature Space-separated v1,<base64> values: HMAC-SHA256 of ${svix-id}.${svix-timestamp}.${raw body} with the base64-decoded secret minus its whsec_ prefix. During a secret rotation it carries two; accept the delivery if any one verifies.
Avvio-Webhook-Version The shape of data; equals the body’s apiVersion (1 today).
Field Description
id The event id. Equals the svix-id header and the feed row’s id. Dedupe on it.
sequence The feed cursor for this event, as a decimal string. Pass it as since to read everything after it.
type The event type: one of the events below.
createdAt When the event was recorded, ISO 8601 UTC.
apiVersion Which body shape data is. Also sent as the Avvio-Webhook-Version header, so you can branch before parsing.
livemode False for a sandbox organization’s endpoint.
data The payload. Its shape depends on the event family, and is shown in full for each event below.
Event When it fires
payout.pending The payout was accepted and is not moving yet. On a routing that waits for your funds, requiresFunding: true says it is waiting on you.
payout.processing The payment network is carrying it. Not every payout passes through this state.
payout.completed The recipient has been paid. A later bank return is still possible (payout.returned).
payout.failed It will not be paid. Read failureCode, and fundsReturned before you change your ledger.
payout.returned It completed, then the receiving bank sent it back, sometimes days later. failureCode is returned_by_bank and fundsReturned is true.
payout.canceled It was stopped before any money moved. A decision, not a failure: do not re-send.
payout_approval.pending A payout or batch is waiting for your approvers. Nothing is priced or sent yet.
payout_approval.approved Enough approvers said yes; execution follows.
payout_approval.rejected An approver said no. Nothing will be sent.
payout_approval.expired Nobody decided within 24 hours. Nothing will be sent.
payout_approval.executed The approved instruction became a payout. payoutId names it: this is how a 202 joins to its payout.
payout_approval.execution_failed Approved, but creating the payout was refused. approval.error carries the error type.
payout_batch.awaiting_confirmation Every line was validated and the run is holding for you to confirm or cancel.
payout_batch.completed Every line is resolved at the creation level; read counts. Each payout then reports on its own payout.* events.
payout_batch.canceled The run was stopped before any payout was created.
payout_batch.failed The run itself broke, not one of its lines.
checkout_payment.paid The money is in your balance. Fulfill on this. Not final: a refund or chargeback can follow.
checkout_payment.failed A card attempt failed.
checkout_payment.refunded Refunded in full, from the API or the dashboard.
checkout_payment.reversed A chargeback: the acceptor took the money back.
checkout_payment.partially_refunded Part of the payment went back. refund is the piece, refunded the running total; status stays paid.
webhook_endpoint.disabled One of your endpoints was switched off after repeated dead deliveries. Sent to your other endpoints.

The payout was accepted and is not moving yet. On a routing that waits for your funds, requiresFunding: true says it is waiting on you.

Example delivery
payout.pending
{
"id": "cmf3n0000q8b7c1s9m4rw",
"sequence": "48213",
"type": "payout.pending",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"payoutId": "cmf3k2xb20002q8b7c1s9m4rw",
"status": "pending",
"sourceCurrency": "USD",
"sourceAmount": "200.00",
"destinationCurrency": "MXN",
"destinationAmount": "3368.32",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"fee": {
"currency": "USD",
"amount": "1.02"
},
"rate": "16.841600",
"reference": "payroll-2026-09-05-emp42",
"endUser": {
"id": "customer_42"
},
"endUserId": "customer_42",
"createdAt": "2026-09-03T10:00:00.000Z",
"completedAt": null
}
}

The payment network is carrying it. Not every payout passes through this state.

Example delivery
payout.processing
{
"id": "cmf3n0001q8b7c1s9m4rw",
"sequence": "48214",
"type": "payout.processing",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"payoutId": "cmf3k2xb20002q8b7c1s9m4rw",
"status": "processing",
"sourceCurrency": "USD",
"sourceAmount": "200.00",
"destinationCurrency": "MXN",
"destinationAmount": "3368.32",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"fee": {
"currency": "USD",
"amount": "1.02"
},
"rate": "16.841600",
"reference": "payroll-2026-09-05-emp42",
"endUser": {
"id": "customer_42"
},
"endUserId": "customer_42",
"createdAt": "2026-09-03T10:00:00.000Z",
"completedAt": null
}
}

The recipient has been paid. A later bank return is still possible (payout.returned).

Example delivery
payout.completed
{
"id": "cmf3n0002q8b7c1s9m4rw",
"sequence": "48215",
"type": "payout.completed",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"payoutId": "cmf3k2xb20002q8b7c1s9m4rw",
"status": "completed",
"sourceCurrency": "USD",
"sourceAmount": "200.00",
"destinationCurrency": "MXN",
"destinationAmount": "3368.32",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"fee": {
"currency": "USD",
"amount": "1.02"
},
"rate": "16.841600",
"reference": "payroll-2026-09-05-emp42",
"endUser": {
"id": "customer_42"
},
"endUserId": "customer_42",
"createdAt": "2026-09-03T10:00:00.000Z",
"completedAt": "2026-09-03T10:04:00.000Z"
}
}

It will not be paid. Read failureCode, and fundsReturned before you change your ledger.

Example delivery
payout.failed
{
"id": "cmf3n0003q8b7c1s9m4rw",
"sequence": "48216",
"type": "payout.failed",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"payoutId": "cmf3k2xb20002q8b7c1s9m4rw",
"status": "failed",
"failureCode": "account_invalid",
"fundsReturned": true,
"sourceCurrency": "USD",
"sourceAmount": "200.00",
"destinationCurrency": "MXN",
"destinationAmount": "3368.32",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"fee": {
"currency": "USD",
"amount": "1.02"
},
"rate": "16.841600",
"reference": "payroll-2026-09-05-emp42",
"endUser": {
"id": "customer_42"
},
"endUserId": "customer_42",
"createdAt": "2026-09-03T10:00:00.000Z",
"completedAt": null
}
}

It completed, then the receiving bank sent it back, sometimes days later. failureCode is returned_by_bank and fundsReturned is true.

Example delivery
payout.returned
{
"id": "cmf3n0004q8b7c1s9m4rw",
"sequence": "48217",
"type": "payout.returned",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"payoutId": "cmf3k2xb20002q8b7c1s9m4rw",
"status": "failed",
"failureCode": "returned_by_bank",
"fundsReturned": true,
"sourceCurrency": "USD",
"sourceAmount": "200.00",
"destinationCurrency": "MXN",
"destinationAmount": "3368.32",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"fee": {
"currency": "USD",
"amount": "1.02"
},
"rate": "16.841600",
"reference": "payroll-2026-09-05-emp42",
"endUser": {
"id": "customer_42"
},
"endUserId": "customer_42",
"createdAt": "2026-09-03T10:00:00.000Z",
"completedAt": "2026-09-03T10:04:00.000Z"
}
}

It was stopped before any money moved. A decision, not a failure: do not re-send.

Example delivery
payout.canceled
{
"id": "cmf3n0005q8b7c1s9m4rw",
"sequence": "48218",
"type": "payout.canceled",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"payoutId": "cmf3k2xb20002q8b7c1s9m4rw",
"status": "canceled",
"fundsReturned": true,
"sourceCurrency": "USD",
"sourceAmount": "200.00",
"destinationCurrency": "MXN",
"destinationAmount": "3368.32",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"fee": {
"currency": "USD",
"amount": "1.02"
},
"rate": "16.841600",
"reference": "payroll-2026-09-05-emp42",
"endUser": {
"id": "customer_42"
},
"endUserId": "customer_42",
"createdAt": "2026-09-03T10:00:00.000Z",
"completedAt": null
}
}

A payout or batch is waiting for your approvers. Nothing is priced or sent yet.

Example delivery
payout_approval.pending
{
"id": "cmf3n0006q8b7c1s9m4rw",
"sequence": "48219",
"type": "payout_approval.pending",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"approval": {
"id": "cmf3l9c2d0004q8b7e5r8t2uv",
"kind": "payout",
"status": "pending",
"requiredApprovals": 2,
"approvals": 0,
"amount": "200.00",
"currency": "USD",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"createdAt": "2026-09-03T10:00:00.000Z",
"expiresAt": "2026-09-04T10:00:00.000Z",
"updatedAt": "2026-09-03T10:09:00.000Z"
}
}
}

Enough approvers said yes; execution follows.

Example delivery
payout_approval.approved
{
"id": "cmf3n0007q8b7c1s9m4rw",
"sequence": "48220",
"type": "payout_approval.approved",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"approval": {
"id": "cmf3l9c2d0004q8b7e5r8t2uv",
"kind": "payout",
"status": "approved",
"requiredApprovals": 2,
"approvals": 2,
"amount": "200.00",
"currency": "USD",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"createdAt": "2026-09-03T10:00:00.000Z",
"expiresAt": "2026-09-04T10:00:00.000Z",
"updatedAt": "2026-09-03T10:09:00.000Z"
}
}
}

An approver said no. Nothing will be sent.

Example delivery
payout_approval.rejected
{
"id": "cmf3n0008q8b7c1s9m4rw",
"sequence": "48221",
"type": "payout_approval.rejected",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"approval": {
"id": "cmf3l9c2d0004q8b7e5r8t2uv",
"kind": "payout",
"status": "rejected",
"requiredApprovals": 2,
"approvals": 1,
"amount": "200.00",
"currency": "USD",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"createdAt": "2026-09-03T10:00:00.000Z",
"expiresAt": "2026-09-04T10:00:00.000Z",
"updatedAt": "2026-09-03T10:09:00.000Z"
}
}
}

Nobody decided within 24 hours. Nothing will be sent.

Example delivery
payout_approval.expired
{
"id": "cmf3n0009q8b7c1s9m4rw",
"sequence": "48222",
"type": "payout_approval.expired",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"approval": {
"id": "cmf3l9c2d0004q8b7e5r8t2uv",
"kind": "payout",
"status": "expired",
"requiredApprovals": 2,
"approvals": 0,
"amount": "200.00",
"currency": "USD",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"createdAt": "2026-09-03T10:00:00.000Z",
"expiresAt": "2026-09-04T10:00:00.000Z",
"updatedAt": "2026-09-03T10:09:00.000Z"
}
}
}

The approved instruction became a payout. payoutId names it: this is how a 202 joins to its payout.

Example delivery
payout_approval.executed
{
"id": "cmf3n0010q8b7c1s9m4rw",
"sequence": "48223",
"type": "payout_approval.executed",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"approval": {
"id": "cmf3l9c2d0004q8b7e5r8t2uv",
"kind": "payout",
"status": "executed",
"requiredApprovals": 2,
"approvals": 2,
"payoutId": "cmf3k2xb20002q8b7c1s9m4rw",
"amount": "200.00",
"currency": "USD",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"createdAt": "2026-09-03T10:00:00.000Z",
"expiresAt": "2026-09-04T10:00:00.000Z",
"updatedAt": "2026-09-03T10:09:00.000Z"
},
"payoutId": "cmf3k2xb20002q8b7c1s9m4rw"
}
}

Approved, but creating the payout was refused. approval.error carries the error type.

Example delivery
payout_approval.execution_failed
{
"id": "cmf3n0011q8b7c1s9m4rw",
"sequence": "48224",
"type": "payout_approval.execution_failed",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"approval": {
"id": "cmf3l9c2d0004q8b7e5r8t2uv",
"kind": "payout",
"status": "execution_failed",
"requiredApprovals": 2,
"approvals": 2,
"amount": "200.00",
"currency": "USD",
"destinationAccountId": "cmf3jz81k0001q8b7a4d2e6xy",
"error": "INSUFFICIENT_BALANCE",
"createdAt": "2026-09-03T10:00:00.000Z",
"expiresAt": "2026-09-04T10:00:00.000Z",
"updatedAt": "2026-09-03T10:09:00.000Z"
}
}
}

Every line was validated and the run is holding for you to confirm or cancel.

Example delivery
payout_batch.awaiting_confirmation
{
"id": "cmf3n0012q8b7c1s9m4rw",
"sequence": "48225",
"type": "payout_batch.awaiting_confirmation",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"batchId": "cmf3m0v4q0005q8b7f2g7h1pz",
"externalReferenceId": "payroll-2026-09-05",
"status": "awaiting_confirmation",
"autoCommit": false,
"counts": {
"received": 0,
"invalid": 1,
"validated": 49,
"creating": 0,
"created": 0,
"create_failed": 0,
"canceled": 0,
"requires_review": 0
},
"estimatedSourceTotal": "10250.00",
"createdAt": "2026-09-03T10:00:00.000Z",
"updatedAt": "2026-09-03T10:03:00.000Z",
"completedAt": null
}
}

Every line is resolved at the creation level; read counts. Each payout then reports on its own payout.* events.

Example delivery
payout_batch.completed
{
"id": "cmf3n0013q8b7c1s9m4rw",
"sequence": "48226",
"type": "payout_batch.completed",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"batchId": "cmf3m0v4q0005q8b7f2g7h1pz",
"externalReferenceId": "payroll-2026-09-05",
"status": "completed",
"autoCommit": false,
"counts": {
"received": 0,
"invalid": 1,
"validated": 0,
"creating": 0,
"created": 48,
"create_failed": 1,
"canceled": 0,
"requires_review": 0
},
"estimatedSourceTotal": "10250.00",
"createdAt": "2026-09-03T10:00:00.000Z",
"updatedAt": "2026-09-03T10:03:00.000Z",
"completedAt": "2026-09-03T10:03:00.000Z"
}
}

The run was stopped before any payout was created.

Example delivery
payout_batch.canceled
{
"id": "cmf3n0014q8b7c1s9m4rw",
"sequence": "48227",
"type": "payout_batch.canceled",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"batchId": "cmf3m0v4q0005q8b7f2g7h1pz",
"externalReferenceId": "payroll-2026-09-05",
"status": "canceled",
"autoCommit": false,
"counts": {
"received": 0,
"invalid": 1,
"validated": 0,
"creating": 0,
"created": 0,
"create_failed": 0,
"canceled": 49,
"requires_review": 0
},
"estimatedSourceTotal": "10250.00",
"createdAt": "2026-09-03T10:00:00.000Z",
"updatedAt": "2026-09-03T10:03:00.000Z",
"completedAt": "2026-09-03T10:03:00.000Z"
}
}

The run itself broke, not one of its lines.

Example delivery
payout_batch.failed
{
"id": "cmf3n0015q8b7c1s9m4rw",
"sequence": "48228",
"type": "payout_batch.failed",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"batchId": "cmf3m0v4q0005q8b7f2g7h1pz",
"externalReferenceId": "payroll-2026-09-05",
"status": "failed",
"autoCommit": false,
"counts": {
"received": 0,
"invalid": 0,
"validated": 50,
"creating": 0,
"created": 0,
"create_failed": 0,
"canceled": 0,
"requires_review": 0
},
"estimatedSourceTotal": "10250.00",
"error": {
"type": "INTERNAL_ERROR",
"message": "The run could not be started"
},
"createdAt": "2026-09-03T10:00:00.000Z",
"updatedAt": "2026-09-03T10:03:00.000Z",
"completedAt": "2026-09-03T10:03:00.000Z"
}
}

Opt-in: an endpoint receives these only when its events list names them.

The money is in your balance. Fulfill on this. Not final: a refund or chargeback can follow.

Example delivery
checkout_payment.paid
{
"id": "cmf3n0016q8b7c1s9m4rw",
"sequence": "48229",
"type": "checkout_payment.paid",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"paymentId": "cmf9x1b2c0003q8b7h6j8k0lm",
"linkId": "4f1c2a9e-8f7d-4c3b-9a2e-6b5d4c3f2a10",
"linkSlug": "7e2a9c4b1d0f",
"productId": "2a7b8c9d-1e2f-4a5b-8c9d-0e1f2a3b4c5d",
"clientReferenceId": "order_1042",
"metadata": {
"plan": "consulting-60min"
},
"status": "paid",
"failureCode": null,
"kind": "card",
"amount": "150.00",
"currency": "USD",
"fee": "4.35",
"net": "145.65",
"refunded": null,
"paidAt": "2026-09-03T10:02:00.000Z",
"createdAt": "2026-09-03T10:00:00.000Z",
"linkExpiredAt": null
}
}

A card attempt failed.

Example delivery
checkout_payment.failed
{
"id": "cmf3n0017q8b7c1s9m4rw",
"sequence": "48230",
"type": "checkout_payment.failed",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"paymentId": "cmf9x1b2c0003q8b7h6j8k0lm",
"linkId": "4f1c2a9e-8f7d-4c3b-9a2e-6b5d4c3f2a10",
"linkSlug": "7e2a9c4b1d0f",
"productId": "2a7b8c9d-1e2f-4a5b-8c9d-0e1f2a3b4c5d",
"clientReferenceId": "order_1042",
"metadata": {
"plan": "consulting-60min"
},
"status": "failed",
"failureCode": "card_declined",
"kind": "card",
"amount": "150.00",
"currency": "USD",
"fee": "4.35",
"net": "145.65",
"refunded": null,
"paidAt": null,
"createdAt": "2026-09-03T10:00:00.000Z",
"linkExpiredAt": null
}
}

Refunded in full, from the API or the dashboard.

Example delivery
checkout_payment.refunded
{
"id": "cmf3n0018q8b7c1s9m4rw",
"sequence": "48231",
"type": "checkout_payment.refunded",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"paymentId": "cmf9x1b2c0003q8b7h6j8k0lm",
"linkId": "4f1c2a9e-8f7d-4c3b-9a2e-6b5d4c3f2a10",
"linkSlug": "7e2a9c4b1d0f",
"productId": "2a7b8c9d-1e2f-4a5b-8c9d-0e1f2a3b4c5d",
"clientReferenceId": "order_1042",
"metadata": {
"plan": "consulting-60min"
},
"status": "refunded",
"failureCode": null,
"kind": "card",
"amount": "150.00",
"currency": "USD",
"fee": "4.35",
"net": "145.65",
"refunded": "150.00",
"paidAt": "2026-09-03T10:02:00.000Z",
"createdAt": "2026-09-03T10:00:00.000Z",
"linkExpiredAt": null,
"refund": {
"id": "cmfa2r7s80006q8b7j3k4l5mn",
"amount": "150.00",
"reason": "requested_by_customer",
"note": null,
"source": "api",
"at": "2026-09-06T10:00:00.000Z"
}
}
}

A chargeback: the acceptor took the money back.

Example delivery
checkout_payment.reversed
{
"id": "cmf3n0019q8b7c1s9m4rw",
"sequence": "48232",
"type": "checkout_payment.reversed",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"paymentId": "cmf9x1b2c0003q8b7h6j8k0lm",
"linkId": "4f1c2a9e-8f7d-4c3b-9a2e-6b5d4c3f2a10",
"linkSlug": "7e2a9c4b1d0f",
"productId": "2a7b8c9d-1e2f-4a5b-8c9d-0e1f2a3b4c5d",
"clientReferenceId": "order_1042",
"metadata": {
"plan": "consulting-60min"
},
"status": "reversed",
"failureCode": null,
"kind": "card",
"amount": "150.00",
"currency": "USD",
"fee": "4.35",
"net": "145.65",
"refunded": null,
"paidAt": "2026-09-03T10:02:00.000Z",
"createdAt": "2026-09-03T10:00:00.000Z",
"linkExpiredAt": null
}
}

Part of the payment went back. refund is the piece, refunded the running total; status stays paid.

Example delivery
checkout_payment.partially_refunded
{
"id": "cmf3n0020q8b7c1s9m4rw",
"sequence": "48233",
"type": "checkout_payment.partially_refunded",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"paymentId": "cmf9x1b2c0003q8b7h6j8k0lm",
"linkId": "4f1c2a9e-8f7d-4c3b-9a2e-6b5d4c3f2a10",
"linkSlug": "7e2a9c4b1d0f",
"productId": "2a7b8c9d-1e2f-4a5b-8c9d-0e1f2a3b4c5d",
"clientReferenceId": "order_1042",
"metadata": {
"plan": "consulting-60min"
},
"status": "paid",
"failureCode": null,
"kind": "card",
"amount": "150.00",
"currency": "USD",
"fee": "4.35",
"net": "145.65",
"refunded": "50.00",
"paidAt": "2026-09-03T10:02:00.000Z",
"createdAt": "2026-09-03T10:00:00.000Z",
"linkExpiredAt": null,
"refund": {
"id": "cmfa2r7s80006q8b7j3k4l5mn",
"amount": "50.00",
"reason": "requested_by_customer",
"note": null,
"source": "api",
"at": "2026-09-06T10:00:00.000Z"
}
}
}

One of your endpoints was switched off after repeated dead deliveries. Sent to your other endpoints.

Example delivery
webhook_endpoint.disabled
{
"id": "cmf3n0021q8b7c1s9m4rw",
"sequence": "48234",
"type": "webhook_endpoint.disabled",
"createdAt": "2026-09-03T10:05:00.000Z",
"apiVersion": 1,
"livemode": true,
"data": {
"endpointId": "cmf2w1a9s0001p9c6d3k4l5mn",
"url": "https://example.com/webhooks/avvio",
"reason": "auto_disabled_after_failures",
"consecutiveFailures": 3,
"lastSuccessAt": "2026-08-28T10:00:00.000Z",
"disabledAt": "2026-09-03T10:00:00.000Z"
}
}

Was this page helpful?