Webhook event reference

36 event types published by this platform, 25 of them with a settled payload contract.

How to read this page

The envelope around every event is settled: see the webhook delivery guide for its fields, the signature scheme and the delivery semantics. What varies is the data body, and each event below says which of two things it is. Receiving webhooks

documented The body is a curated shape whose every field is deliberate. Fields are added only additively within envelope version 1, so you can bind to it.

contract pending The body is not fixed yet: it is either the event's flat filter attributes or a projection of an internal record whose fields follow that record rather than a published contract. The event fires and the envelope holds; treat the body as informational for now.

API Keys

ApiKey.Expiring

documented contract pending any scope not delivering yet

API Key Expiring

Published when an active API key is within the configured number of days of expiring (default 30), and again at each closer reminder threshold as expiry approaches (default 7 days and 1 day). The key's owner is also warned directly in their notifications.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
Example delivery

Hosted Payment Page

HostedPaymentPage.AchSaved

documented contract pending merchant scope not delivering yet

HPP ACH Saved

Published when a payer saves a bank account on a Hosted Payment Page without being charged (the save-only ACH flow). Carries the chargeable payment token public reference and bank display data (account type, last four); never the internal vault id and never the full routing or account number.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
MethodType string no
PaymentTokenPublicReference string yes
HostedPageId string no
HostedPageName string yes
SessionId string yes
VerificationTransactionId string yes
CustomerId string yes
StoredCredentialConsentId string yes
CardLast4 string yes
CardBrand string yes
BankAccountLast4 string yes
BankAccountType string yes
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "HostedPaymentPage.AchSaved",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "MethodType": "string",
    "PaymentTokenPublicReference": "string",
    "HostedPageId": "11111111-1111-1111-1111-111111111111",
    "HostedPageName": "string",
    "SessionId": "string",
    "VerificationTransactionId": "11111111-1111-1111-1111-111111111111",
    "CustomerId": "11111111-1111-1111-1111-111111111111",
    "StoredCredentialConsentId": "11111111-1111-1111-1111-111111111111",
    "CardLast4": "string",
    "CardBrand": "string",
    "BankAccountLast4": "string",
    "BankAccountType": "string"
  }
}

HostedPaymentPage.CardSaved

documented contract pending merchant scope not delivering yet

HPP Card Saved

Published when a cardholder saves a card on a Hosted Payment Page without being charged (the save-card-only flow). Carries the chargeable payment token public reference and card display data (brand, last four); never the internal vault id.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
MethodType string no
PaymentTokenPublicReference string yes
HostedPageId string no
HostedPageName string yes
SessionId string yes
VerificationTransactionId string yes
CustomerId string yes
StoredCredentialConsentId string yes
CardLast4 string yes
CardBrand string yes
BankAccountLast4 string yes
BankAccountType string yes
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "HostedPaymentPage.CardSaved",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "MethodType": "string",
    "PaymentTokenPublicReference": "string",
    "HostedPageId": "11111111-1111-1111-1111-111111111111",
    "HostedPageName": "string",
    "SessionId": "string",
    "VerificationTransactionId": "11111111-1111-1111-1111-111111111111",
    "CustomerId": "11111111-1111-1111-1111-111111111111",
    "StoredCredentialConsentId": "11111111-1111-1111-1111-111111111111",
    "CardLast4": "string",
    "CardBrand": "string",
    "BankAccountLast4": "string",
    "BankAccountType": "string"
  }
}

HostedPaymentPage.ConsentCaptureFailed

documented contract pending merchant scope not delivering yet

HPP Consent Capture Failed

Published when an HPP session's stored-credential consent capture fails after the CIT was approved. The cardholder was charged, but the consent record / token / customer linkage did not land; operator reconciliation is required before a follow-up MIT can run.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
Example delivery

HostedPaymentPage.ContractCreationFailed

documented contract pending merchant scope not delivering yet

HPP Recurring Contract Creation Failed

Published when a Save-Card-with-Initial-Charge HPP page charged the initial payment and vaulted the card, but creating the recurring contract from the referenced plan failed. The cardholder was charged and the card stored, but the recurring schedule does not exist; operator reconciliation is required.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
Example delivery

HostedPaymentPage.EmbeddingViolation

documented contract pending merchant scope not delivering yet

HPP Embedding Violation

Published when an HPP allowlist violation is detected. Server-side path (Source=SessionApi) is deterministic. Browser-side path (Source=BrowserCsp) is best-effort: not all browsers report.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
Example delivery

HostedPaymentPage.Transaction.Completed

documented contract pending merchant scope not delivering yet

HPP Transaction Completed

Published when a transaction is completed on a Hosted Payment Page (any outcome: approved, declined, or failed).

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
Example delivery

Invoicing

Invoice.Cancelled

documented contract pending merchant scope not delivering yet

Invoice Cancelled

Published when a draft invoice is cancelled.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
InvoiceId string no
InvoiceNumber string yes
Status string no
PreviousStatus string yes
BillerId string no
BillerType string no
RecipientId string no
RecipientType string no
Currency string yes
GrandTotal number no
AmountPaid number no
BalanceDue number no
TransactionId string yes
PaymentAmount number yes
PaymentConvenienceFeeAmount number yes
PaymentSurchargeAmount number yes
PaymentChargedTotal number yes
PaymentMethod string yes
DeclineReasonCode string yes
IssueDate datetime yes
DueDate datetime yes
SentAt datetime yes
ViewedAt datetime yes
PaidAt datetime yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Invoice.Cancelled",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "InvoiceId": "11111111-1111-1111-1111-111111111111",
    "InvoiceNumber": "string",
    "Status": "string",
    "PreviousStatus": "string",
    "BillerId": "11111111-1111-1111-1111-111111111111",
    "BillerType": "string",
    "RecipientId": "11111111-1111-1111-1111-111111111111",
    "RecipientType": "string",
    "Currency": "string",
    "GrandTotal": 0,
    "AmountPaid": 0,
    "BalanceDue": 0,
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "PaymentAmount": 0,
    "PaymentConvenienceFeeAmount": 0,
    "PaymentSurchargeAmount": 0,
    "PaymentChargedTotal": 0,
    "PaymentMethod": "string",
    "DeclineReasonCode": "string",
    "IssueDate": "2026-01-01T00:00:00\u002B00:00",
    "DueDate": "2026-01-01T00:00:00\u002B00:00",
    "SentAt": "2026-01-01T00:00:00\u002B00:00",
    "ViewedAt": "2026-01-01T00:00:00\u002B00:00",
    "PaidAt": "2026-01-01T00:00:00\u002B00:00",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Invoice.Closed

documented contract pending merchant scope not delivering yet

Invoice Closed

Published when an invoice is closed: a manual write-off or the dunning end action.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
InvoiceId string no
InvoiceNumber string yes
Status string no
PreviousStatus string yes
BillerId string no
BillerType string no
RecipientId string no
RecipientType string no
Currency string yes
GrandTotal number no
AmountPaid number no
BalanceDue number no
TransactionId string yes
PaymentAmount number yes
PaymentConvenienceFeeAmount number yes
PaymentSurchargeAmount number yes
PaymentChargedTotal number yes
PaymentMethod string yes
DeclineReasonCode string yes
IssueDate datetime yes
DueDate datetime yes
SentAt datetime yes
ViewedAt datetime yes
PaidAt datetime yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Invoice.Closed",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "InvoiceId": "11111111-1111-1111-1111-111111111111",
    "InvoiceNumber": "string",
    "Status": "string",
    "PreviousStatus": "string",
    "BillerId": "11111111-1111-1111-1111-111111111111",
    "BillerType": "string",
    "RecipientId": "11111111-1111-1111-1111-111111111111",
    "RecipientType": "string",
    "Currency": "string",
    "GrandTotal": 0,
    "AmountPaid": 0,
    "BalanceDue": 0,
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "PaymentAmount": 0,
    "PaymentConvenienceFeeAmount": 0,
    "PaymentSurchargeAmount": 0,
    "PaymentChargedTotal": 0,
    "PaymentMethod": "string",
    "DeclineReasonCode": "string",
    "IssueDate": "2026-01-01T00:00:00\u002B00:00",
    "DueDate": "2026-01-01T00:00:00\u002B00:00",
    "SentAt": "2026-01-01T00:00:00\u002B00:00",
    "ViewedAt": "2026-01-01T00:00:00\u002B00:00",
    "PaidAt": "2026-01-01T00:00:00\u002B00:00",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Invoice.Issued

documented contract pending merchant scope not delivering yet

Invoice Issued

Published when a draft invoice is issued: locked, assigned an invoice number, and given a due date.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
InvoiceId string no
InvoiceNumber string yes
Status string no
PreviousStatus string yes
BillerId string no
BillerType string no
RecipientId string no
RecipientType string no
Currency string yes
GrandTotal number no
AmountPaid number no
BalanceDue number no
TransactionId string yes
PaymentAmount number yes
PaymentConvenienceFeeAmount number yes
PaymentSurchargeAmount number yes
PaymentChargedTotal number yes
PaymentMethod string yes
DeclineReasonCode string yes
IssueDate datetime yes
DueDate datetime yes
SentAt datetime yes
ViewedAt datetime yes
PaidAt datetime yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Invoice.Issued",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "InvoiceId": "11111111-1111-1111-1111-111111111111",
    "InvoiceNumber": "string",
    "Status": "string",
    "PreviousStatus": "string",
    "BillerId": "11111111-1111-1111-1111-111111111111",
    "BillerType": "string",
    "RecipientId": "11111111-1111-1111-1111-111111111111",
    "RecipientType": "string",
    "Currency": "string",
    "GrandTotal": 0,
    "AmountPaid": 0,
    "BalanceDue": 0,
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "PaymentAmount": 0,
    "PaymentConvenienceFeeAmount": 0,
    "PaymentSurchargeAmount": 0,
    "PaymentChargedTotal": 0,
    "PaymentMethod": "string",
    "DeclineReasonCode": "string",
    "IssueDate": "2026-01-01T00:00:00\u002B00:00",
    "DueDate": "2026-01-01T00:00:00\u002B00:00",
    "SentAt": "2026-01-01T00:00:00\u002B00:00",
    "ViewedAt": "2026-01-01T00:00:00\u002B00:00",
    "PaidAt": "2026-01-01T00:00:00\u002B00:00",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Invoice.Paid

documented contract pending merchant scope not delivering yet

Invoice Paid

Published when the invoice balance reaches zero (within the configured tolerance).

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
InvoiceId string no
InvoiceNumber string yes
Status string no
PreviousStatus string yes
BillerId string no
BillerType string no
RecipientId string no
RecipientType string no
Currency string yes
GrandTotal number no
AmountPaid number no
BalanceDue number no
TransactionId string yes
PaymentAmount number yes
PaymentConvenienceFeeAmount number yes
PaymentSurchargeAmount number yes
PaymentChargedTotal number yes
PaymentMethod string yes
DeclineReasonCode string yes
IssueDate datetime yes
DueDate datetime yes
SentAt datetime yes
ViewedAt datetime yes
PaidAt datetime yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Invoice.Paid",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "InvoiceId": "11111111-1111-1111-1111-111111111111",
    "InvoiceNumber": "string",
    "Status": "string",
    "PreviousStatus": "string",
    "BillerId": "11111111-1111-1111-1111-111111111111",
    "BillerType": "string",
    "RecipientId": "11111111-1111-1111-1111-111111111111",
    "RecipientType": "string",
    "Currency": "string",
    "GrandTotal": 0,
    "AmountPaid": 0,
    "BalanceDue": 0,
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "PaymentAmount": 0,
    "PaymentConvenienceFeeAmount": 0,
    "PaymentSurchargeAmount": 0,
    "PaymentChargedTotal": 0,
    "PaymentMethod": "string",
    "DeclineReasonCode": "string",
    "IssueDate": "2026-01-01T00:00:00\u002B00:00",
    "DueDate": "2026-01-01T00:00:00\u002B00:00",
    "SentAt": "2026-01-01T00:00:00\u002B00:00",
    "ViewedAt": "2026-01-01T00:00:00\u002B00:00",
    "PaidAt": "2026-01-01T00:00:00\u002B00:00",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Invoice.PartiallyPaid

documented contract pending merchant scope not delivering yet

Invoice Partially Paid

Published when a partial payment is applied and a balance remains due.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
InvoiceId string no
InvoiceNumber string yes
Status string no
PreviousStatus string yes
BillerId string no
BillerType string no
RecipientId string no
RecipientType string no
Currency string yes
GrandTotal number no
AmountPaid number no
BalanceDue number no
TransactionId string yes
PaymentAmount number yes
PaymentConvenienceFeeAmount number yes
PaymentSurchargeAmount number yes
PaymentChargedTotal number yes
PaymentMethod string yes
DeclineReasonCode string yes
IssueDate datetime yes
DueDate datetime yes
SentAt datetime yes
ViewedAt datetime yes
PaidAt datetime yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Invoice.PartiallyPaid",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "InvoiceId": "11111111-1111-1111-1111-111111111111",
    "InvoiceNumber": "string",
    "Status": "string",
    "PreviousStatus": "string",
    "BillerId": "11111111-1111-1111-1111-111111111111",
    "BillerType": "string",
    "RecipientId": "11111111-1111-1111-1111-111111111111",
    "RecipientType": "string",
    "Currency": "string",
    "GrandTotal": 0,
    "AmountPaid": 0,
    "BalanceDue": 0,
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "PaymentAmount": 0,
    "PaymentConvenienceFeeAmount": 0,
    "PaymentSurchargeAmount": 0,
    "PaymentChargedTotal": 0,
    "PaymentMethod": "string",
    "DeclineReasonCode": "string",
    "IssueDate": "2026-01-01T00:00:00\u002B00:00",
    "DueDate": "2026-01-01T00:00:00\u002B00:00",
    "SentAt": "2026-01-01T00:00:00\u002B00:00",
    "ViewedAt": "2026-01-01T00:00:00\u002B00:00",
    "PaidAt": "2026-01-01T00:00:00\u002B00:00",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Invoice.PastDue

documented contract pending merchant scope not delivering yet

Invoice Past Due

Published when the reminder sweep transitions an overdue invoice to past due.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
InvoiceId string no
InvoiceNumber string yes
Status string no
PreviousStatus string yes
BillerId string no
BillerType string no
RecipientId string no
RecipientType string no
Currency string yes
GrandTotal number no
AmountPaid number no
BalanceDue number no
TransactionId string yes
PaymentAmount number yes
PaymentConvenienceFeeAmount number yes
PaymentSurchargeAmount number yes
PaymentChargedTotal number yes
PaymentMethod string yes
DeclineReasonCode string yes
IssueDate datetime yes
DueDate datetime yes
SentAt datetime yes
ViewedAt datetime yes
PaidAt datetime yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Invoice.PastDue",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "InvoiceId": "11111111-1111-1111-1111-111111111111",
    "InvoiceNumber": "string",
    "Status": "string",
    "PreviousStatus": "string",
    "BillerId": "11111111-1111-1111-1111-111111111111",
    "BillerType": "string",
    "RecipientId": "11111111-1111-1111-1111-111111111111",
    "RecipientType": "string",
    "Currency": "string",
    "GrandTotal": 0,
    "AmountPaid": 0,
    "BalanceDue": 0,
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "PaymentAmount": 0,
    "PaymentConvenienceFeeAmount": 0,
    "PaymentSurchargeAmount": 0,
    "PaymentChargedTotal": 0,
    "PaymentMethod": "string",
    "DeclineReasonCode": "string",
    "IssueDate": "2026-01-01T00:00:00\u002B00:00",
    "DueDate": "2026-01-01T00:00:00\u002B00:00",
    "SentAt": "2026-01-01T00:00:00\u002B00:00",
    "ViewedAt": "2026-01-01T00:00:00\u002B00:00",
    "PaidAt": "2026-01-01T00:00:00\u002B00:00",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Invoice.PaymentFailed

documented contract pending merchant scope not delivering yet

Invoice Payment Failed

Published when a payment attempt against an invoice is declined: auto-collect, smart retry, installment collection, or a pay-by-link decline.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
InvoiceId string no
InvoiceNumber string yes
Status string no
PreviousStatus string yes
BillerId string no
BillerType string no
RecipientId string no
RecipientType string no
Currency string yes
GrandTotal number no
AmountPaid number no
BalanceDue number no
TransactionId string yes
PaymentAmount number yes
PaymentConvenienceFeeAmount number yes
PaymentSurchargeAmount number yes
PaymentChargedTotal number yes
PaymentMethod string yes
DeclineReasonCode string yes
IssueDate datetime yes
DueDate datetime yes
SentAt datetime yes
ViewedAt datetime yes
PaidAt datetime yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Invoice.PaymentFailed",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "InvoiceId": "11111111-1111-1111-1111-111111111111",
    "InvoiceNumber": "string",
    "Status": "string",
    "PreviousStatus": "string",
    "BillerId": "11111111-1111-1111-1111-111111111111",
    "BillerType": "string",
    "RecipientId": "11111111-1111-1111-1111-111111111111",
    "RecipientType": "string",
    "Currency": "string",
    "GrandTotal": 0,
    "AmountPaid": 0,
    "BalanceDue": 0,
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "PaymentAmount": 0,
    "PaymentConvenienceFeeAmount": 0,
    "PaymentSurchargeAmount": 0,
    "PaymentChargedTotal": 0,
    "PaymentMethod": "string",
    "DeclineReasonCode": "string",
    "IssueDate": "2026-01-01T00:00:00\u002B00:00",
    "DueDate": "2026-01-01T00:00:00\u002B00:00",
    "SentAt": "2026-01-01T00:00:00\u002B00:00",
    "ViewedAt": "2026-01-01T00:00:00\u002B00:00",
    "PaidAt": "2026-01-01T00:00:00\u002B00:00",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Invoice.Sent

documented contract pending merchant scope not delivering yet

Invoice Sent

Published when an invoice is sent (or marked sent) to the recipient.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
InvoiceId string no
InvoiceNumber string yes
Status string no
PreviousStatus string yes
BillerId string no
BillerType string no
RecipientId string no
RecipientType string no
Currency string yes
GrandTotal number no
AmountPaid number no
BalanceDue number no
TransactionId string yes
PaymentAmount number yes
PaymentConvenienceFeeAmount number yes
PaymentSurchargeAmount number yes
PaymentChargedTotal number yes
PaymentMethod string yes
DeclineReasonCode string yes
IssueDate datetime yes
DueDate datetime yes
SentAt datetime yes
ViewedAt datetime yes
PaidAt datetime yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Invoice.Sent",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "InvoiceId": "11111111-1111-1111-1111-111111111111",
    "InvoiceNumber": "string",
    "Status": "string",
    "PreviousStatus": "string",
    "BillerId": "11111111-1111-1111-1111-111111111111",
    "BillerType": "string",
    "RecipientId": "11111111-1111-1111-1111-111111111111",
    "RecipientType": "string",
    "Currency": "string",
    "GrandTotal": 0,
    "AmountPaid": 0,
    "BalanceDue": 0,
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "PaymentAmount": 0,
    "PaymentConvenienceFeeAmount": 0,
    "PaymentSurchargeAmount": 0,
    "PaymentChargedTotal": 0,
    "PaymentMethod": "string",
    "DeclineReasonCode": "string",
    "IssueDate": "2026-01-01T00:00:00\u002B00:00",
    "DueDate": "2026-01-01T00:00:00\u002B00:00",
    "SentAt": "2026-01-01T00:00:00\u002B00:00",
    "ViewedAt": "2026-01-01T00:00:00\u002B00:00",
    "PaidAt": "2026-01-01T00:00:00\u002B00:00",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Invoice.Uncollectible

documented contract pending merchant scope not delivering yet

Invoice Uncollectible

Published when dunning is exhausted and the invoice is marked uncollectible.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
InvoiceId string no
InvoiceNumber string yes
Status string no
PreviousStatus string yes
BillerId string no
BillerType string no
RecipientId string no
RecipientType string no
Currency string yes
GrandTotal number no
AmountPaid number no
BalanceDue number no
TransactionId string yes
PaymentAmount number yes
PaymentConvenienceFeeAmount number yes
PaymentSurchargeAmount number yes
PaymentChargedTotal number yes
PaymentMethod string yes
DeclineReasonCode string yes
IssueDate datetime yes
DueDate datetime yes
SentAt datetime yes
ViewedAt datetime yes
PaidAt datetime yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Invoice.Uncollectible",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "InvoiceId": "11111111-1111-1111-1111-111111111111",
    "InvoiceNumber": "string",
    "Status": "string",
    "PreviousStatus": "string",
    "BillerId": "11111111-1111-1111-1111-111111111111",
    "BillerType": "string",
    "RecipientId": "11111111-1111-1111-1111-111111111111",
    "RecipientType": "string",
    "Currency": "string",
    "GrandTotal": 0,
    "AmountPaid": 0,
    "BalanceDue": 0,
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "PaymentAmount": 0,
    "PaymentConvenienceFeeAmount": 0,
    "PaymentSurchargeAmount": 0,
    "PaymentChargedTotal": 0,
    "PaymentMethod": "string",
    "DeclineReasonCode": "string",
    "IssueDate": "2026-01-01T00:00:00\u002B00:00",
    "DueDate": "2026-01-01T00:00:00\u002B00:00",
    "SentAt": "2026-01-01T00:00:00\u002B00:00",
    "ViewedAt": "2026-01-01T00:00:00\u002B00:00",
    "PaidAt": "2026-01-01T00:00:00\u002B00:00",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Invoice.Viewed

documented contract pending merchant scope not delivering yet

Invoice Viewed

Published on the recipient's first view of the invoice (hosted page or API).

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
InvoiceId string no
InvoiceNumber string yes
Status string no
PreviousStatus string yes
BillerId string no
BillerType string no
RecipientId string no
RecipientType string no
Currency string yes
GrandTotal number no
AmountPaid number no
BalanceDue number no
TransactionId string yes
PaymentAmount number yes
PaymentConvenienceFeeAmount number yes
PaymentSurchargeAmount number yes
PaymentChargedTotal number yes
PaymentMethod string yes
DeclineReasonCode string yes
IssueDate datetime yes
DueDate datetime yes
SentAt datetime yes
ViewedAt datetime yes
PaidAt datetime yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Invoice.Viewed",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "InvoiceId": "11111111-1111-1111-1111-111111111111",
    "InvoiceNumber": "string",
    "Status": "string",
    "PreviousStatus": "string",
    "BillerId": "11111111-1111-1111-1111-111111111111",
    "BillerType": "string",
    "RecipientId": "11111111-1111-1111-1111-111111111111",
    "RecipientType": "string",
    "Currency": "string",
    "GrandTotal": 0,
    "AmountPaid": 0,
    "BalanceDue": 0,
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "PaymentAmount": 0,
    "PaymentConvenienceFeeAmount": 0,
    "PaymentSurchargeAmount": 0,
    "PaymentChargedTotal": 0,
    "PaymentMethod": "string",
    "DeclineReasonCode": "string",
    "IssueDate": "2026-01-01T00:00:00\u002B00:00",
    "DueDate": "2026-01-01T00:00:00\u002B00:00",
    "SentAt": "2026-01-01T00:00:00\u002B00:00",
    "ViewedAt": "2026-01-01T00:00:00\u002B00:00",
    "PaidAt": "2026-01-01T00:00:00\u002B00:00",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Merchants

Merchant.Activated

documented contract pending merchant scope not delivering yet

Merchant Activated

Reserved for a merchant being activated for transaction processing.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
Example delivery

Merchant.Created

documented contract pending merchant scope not delivering yet

Merchant Created

Published when a new merchant is created in the system.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
Example delivery

Merchant.Deactivated

documented contract pending merchant scope not delivering yet

Merchant Deactivated

Reserved for a merchant being deactivated and no longer able to process transactions.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
Example delivery

Merchant.Updated

documented contract pending merchant scope not delivering yet

Merchant Updated

Reserved for an update to a merchant's profile or configuration.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
Example delivery

Notifications

Notification.DestinationSuppressed

documented contract pending any scope not delivering yet

Destination Suppressed

Published when a notification destination endpoint is automatically suppressed after sustained delivery failures.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
Example delivery

Recurring Billing

RecurringBilling.ChargeFailed

documented contract pending merchant scope not delivering yet

Recurring Charge Failed

Published when a scheduled recurring charge is declined or errors during processing. Carries the failure reason and the processor's stable response code.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
ContractId string no
MerchantId string no
CustomerId string no
TransactionId string yes
Outcome string no
IsSuccess boolean no
Amount number no
FailureReason string yes
FailureCode string yes
ScheduledRunTime datetime no
ExecutedAt datetime no
NextBillingDate datetime yes
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "RecurringBilling.ChargeFailed",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "ContractId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "CustomerId": "11111111-1111-1111-1111-111111111111",
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "Outcome": "string",
    "IsSuccess": false,
    "Amount": 0,
    "FailureReason": "string",
    "FailureCode": "string",
    "ScheduledRunTime": "2026-01-01T00:00:00Z",
    "ExecutedAt": "2026-01-01T00:00:00Z",
    "NextBillingDate": "2026-01-01T00:00:00Z"
  }
}

RecurringBilling.ChargeSucceeded

documented contract pending merchant scope not delivering yet

Recurring Charge Succeeded

Published when a scheduled recurring charge is approved by the payment processor. Fires for every real charge (a transaction was created), independent of the contract's approval-email toggles.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
ContractId string no
MerchantId string no
CustomerId string no
TransactionId string yes
Outcome string no
IsSuccess boolean no
Amount number no
FailureReason string yes
FailureCode string yes
ScheduledRunTime datetime no
ExecutedAt datetime no
NextBillingDate datetime yes
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "RecurringBilling.ChargeSucceeded",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "ContractId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "CustomerId": "11111111-1111-1111-1111-111111111111",
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "Outcome": "string",
    "IsSuccess": false,
    "Amount": 0,
    "FailureReason": "string",
    "FailureCode": "string",
    "ScheduledRunTime": "2026-01-01T00:00:00Z",
    "ExecutedAt": "2026-01-01T00:00:00Z",
    "NextBillingDate": "2026-01-01T00:00:00Z"
  }
}

RecurringBilling.ContractEnded

documented contract pending merchant scope not delivering yet

Recurring Contract Ended

Published when a recurring contract reaches its natural end (schedule or threshold rules) and will no longer bill.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
ContractId string no
MerchantId string no
CustomerId string no
TransactionId string yes
Outcome string no
IsSuccess boolean no
Amount number no
FailureReason string yes
FailureCode string yes
ScheduledRunTime datetime no
ExecutedAt datetime no
NextBillingDate datetime yes
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "RecurringBilling.ContractEnded",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "ContractId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "CustomerId": "11111111-1111-1111-1111-111111111111",
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "Outcome": "string",
    "IsSuccess": false,
    "Amount": 0,
    "FailureReason": "string",
    "FailureCode": "string",
    "ScheduledRunTime": "2026-01-01T00:00:00Z",
    "ExecutedAt": "2026-01-01T00:00:00Z",
    "NextBillingDate": "2026-01-01T00:00:00Z"
  }
}

RecurringBilling.ContractSuspended

documented contract pending merchant scope not delivering yet

Recurring Contract Suspended

Published when a recurring contract is suspended after repeated failures (or manual intervention) and billing is paused.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
ContractId string no
MerchantId string no
CustomerId string no
TransactionId string yes
Outcome string no
IsSuccess boolean no
Amount number no
FailureReason string yes
FailureCode string yes
ScheduledRunTime datetime no
ExecutedAt datetime no
NextBillingDate datetime yes
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "RecurringBilling.ContractSuspended",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "ContractId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "CustomerId": "11111111-1111-1111-1111-111111111111",
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "Outcome": "string",
    "IsSuccess": false,
    "Amount": 0,
    "FailureReason": "string",
    "FailureCode": "string",
    "ScheduledRunTime": "2026-01-01T00:00:00Z",
    "ExecutedAt": "2026-01-01T00:00:00Z",
    "NextBillingDate": "2026-01-01T00:00:00Z"
  }
}

Transactions

Transaction.AchStatusChanged

documented contract pending merchant scope not delivering yet

ACH Status Changed

Published on each ACH settlement-status change (settled, returned, voided, or failed).

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
TransactionId string no
MerchantId string no
PreviousStatus string yes
NewStatus string no
ReturnCode string yes
ReturnReason string yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Transaction.AchStatusChanged",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "PreviousStatus": "string",
    "NewStatus": "string",
    "ReturnCode": "string",
    "ReturnReason": "string",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Transaction.Authorized

documented contract pending merchant scope not delivering yet

Transaction Authorized

Published when a payment authorization is approved by the processor or issuer.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
TransactionId string no
MerchantId string no
Status string no
TransactionType string yes
Currency string yes
Amount number yes
AuthorizedAmount number yes
CumulativeReversedAmount number yes
IsPartialReversal boolean yes
ResultCode string yes
DeclineReasonCode string yes
GatewayBatchId string yes
ProcessorBatchId string yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Transaction.Authorized",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "Status": "string",
    "TransactionType": "string",
    "Currency": "string",
    "Amount": 0,
    "AuthorizedAmount": 0,
    "CumulativeReversedAmount": 0,
    "IsPartialReversal": false,
    "ResultCode": "string",
    "DeclineReasonCode": "string",
    "GatewayBatchId": "11111111-1111-1111-1111-111111111111",
    "ProcessorBatchId": "string",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Transaction.Captured

documented contract pending merchant scope not delivering yet

Transaction Captured

Published when an authorized transaction is captured for settlement. This is gateway bookkeeping, not money movement: no shipped card processor has an online capture message, and funds move at batch settlement. Subscribe to Transaction.Settled for the funds signal.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
TransactionId string no
MerchantId string no
Status string no
TransactionType string yes
Currency string yes
Amount number yes
AuthorizedAmount number yes
CumulativeReversedAmount number yes
IsPartialReversal boolean yes
ResultCode string yes
DeclineReasonCode string yes
GatewayBatchId string yes
ProcessorBatchId string yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Transaction.Captured",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "Status": "string",
    "TransactionType": "string",
    "Currency": "string",
    "Amount": 0,
    "AuthorizedAmount": 0,
    "CumulativeReversedAmount": 0,
    "IsPartialReversal": false,
    "ResultCode": "string",
    "DeclineReasonCode": "string",
    "GatewayBatchId": "11111111-1111-1111-1111-111111111111",
    "ProcessorBatchId": "string",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Transaction.Declined

documented contract pending merchant scope not delivering yet

Transaction Declined

Published when the issuer, the processor, or a fraud or policy rule refused the payment. Distinct from Transaction.Failed, which means the gateway could not process the request at all: a decline will not succeed on a retry of the same card unchanged.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
TransactionId string no
MerchantId string no
Status string no
TransactionType string yes
Currency string yes
Amount number yes
AuthorizedAmount number yes
CumulativeReversedAmount number yes
IsPartialReversal boolean yes
ResultCode string yes
DeclineReasonCode string yes
GatewayBatchId string yes
ProcessorBatchId string yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Transaction.Declined",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "Status": "string",
    "TransactionType": "string",
    "Currency": "string",
    "Amount": 0,
    "AuthorizedAmount": 0,
    "CumulativeReversedAmount": 0,
    "IsPartialReversal": false,
    "ResultCode": "string",
    "DeclineReasonCode": "string",
    "GatewayBatchId": "11111111-1111-1111-1111-111111111111",
    "ProcessorBatchId": "string",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Transaction.Failed

documented contract pending merchant scope not delivering yet

Transaction Failed

Published when the gateway could not process the transaction (a processor timeout, an unreachable host, a configuration gap, or invalid request data). Distinct from Transaction.Declined, which means the payment was refused.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
TransactionId string no
MerchantId string no
Status string no
TransactionType string yes
Currency string yes
Amount number yes
AuthorizedAmount number yes
CumulativeReversedAmount number yes
IsPartialReversal boolean yes
ResultCode string yes
DeclineReasonCode string yes
GatewayBatchId string yes
ProcessorBatchId string yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Transaction.Failed",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "Status": "string",
    "TransactionType": "string",
    "Currency": "string",
    "Amount": 0,
    "AuthorizedAmount": 0,
    "CumulativeReversedAmount": 0,
    "IsPartialReversal": false,
    "ResultCode": "string",
    "DeclineReasonCode": "string",
    "GatewayBatchId": "11111111-1111-1111-1111-111111111111",
    "ProcessorBatchId": "string",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Transaction.Returned

documented contract pending merchant scope not delivering yet

Transaction Returned (ACH)

Published when an ACH transaction is returned by the receiving bank (NACHA return code), including a late return after settlement.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
TransactionId string no
MerchantId string no
SettlementStatus string no
ReturnCode string yes
ReturnReason string yes
EffectiveEntryDate string yes
IsLateReturn boolean no
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Transaction.Returned",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "SettlementStatus": "string",
    "ReturnCode": "string",
    "ReturnReason": "string",
    "EffectiveEntryDate": "string",
    "IsLateReturn": false,
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Transaction.Reversed

documented contract pending merchant scope not delivering yet

Transaction Reversed

Published when an authorization is reversed online, in full or in part. A partial reversal leaves a live authorization for the remaining amount: compare the payload's AuthorizedAmount and CumulativeReversedAmount, or read IsPartialReversal.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
TransactionId string no
MerchantId string no
Status string no
TransactionType string yes
Currency string yes
Amount number yes
AuthorizedAmount number yes
CumulativeReversedAmount number yes
IsPartialReversal boolean yes
ResultCode string yes
DeclineReasonCode string yes
GatewayBatchId string yes
ProcessorBatchId string yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Transaction.Reversed",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "Status": "string",
    "TransactionType": "string",
    "Currency": "string",
    "Amount": 0,
    "AuthorizedAmount": 0,
    "CumulativeReversedAmount": 0,
    "IsPartialReversal": false,
    "ResultCode": "string",
    "DeclineReasonCode": "string",
    "GatewayBatchId": "11111111-1111-1111-1111-111111111111",
    "ProcessorBatchId": "string",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Transaction.Settled

documented contract pending merchant scope not delivering yet

Transaction Settled

Published when a captured card transaction completes settlement and the funds move. This is the funds signal, arriving hours after Transaction.Captured, and it carries the settled-at timestamp plus the gateway and processor batch identifiers. An operator rollback followed by a re-settle delivers a second event. ACH transactions do not settle through this pipeline: subscribe to Transaction.AchStatusChanged for those.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
TransactionId string no
MerchantId string no
Status string no
TransactionType string yes
Currency string yes
Amount number yes
AuthorizedAmount number yes
CumulativeReversedAmount number yes
IsPartialReversal boolean yes
ResultCode string yes
DeclineReasonCode string yes
GatewayBatchId string yes
ProcessorBatchId string yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Transaction.Settled",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "Status": "string",
    "TransactionType": "string",
    "Currency": "string",
    "Amount": 0,
    "AuthorizedAmount": 0,
    "CumulativeReversedAmount": 0,
    "IsPartialReversal": false,
    "ResultCode": "string",
    "DeclineReasonCode": "string",
    "GatewayBatchId": "11111111-1111-1111-1111-111111111111",
    "ProcessorBatchId": "string",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Transaction.Voided

documented contract pending merchant scope not delivering yet

Transaction Voided

Published when an authorization is cancelled in full before capture.

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
TransactionId string no
MerchantId string no
Status string no
TransactionType string yes
Currency string yes
Amount number yes
AuthorizedAmount number yes
CumulativeReversedAmount number yes
IsPartialReversal boolean yes
ResultCode string yes
DeclineReasonCode string yes
GatewayBatchId string yes
ProcessorBatchId string yes
OccurredAtUtc datetime no
Example delivery
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "type": "Transaction.Voided",
  "version": 1,
  "createdUtc": "2026-01-01T00:00:00.0000000Z",
  "tenantId": "00000000-0000-0000-0000-0000000000a1",
  "resellerId": "00000000-0000-0000-0000-0000000000b2",
  "merchantId": "00000000-0000-0000-0000-0000000000c3",
  "correlationId": "00000000-0000-0000-0000-0000000000d4",
  "data": {
    "TransactionId": "11111111-1111-1111-1111-111111111111",
    "MerchantId": "11111111-1111-1111-1111-111111111111",
    "Status": "string",
    "TransactionType": "string",
    "Currency": "string",
    "Amount": 0,
    "AuthorizedAmount": 0,
    "CumulativeReversedAmount": 0,
    "IsPartialReversal": false,
    "ResultCode": "string",
    "DeclineReasonCode": "string",
    "GatewayBatchId": "11111111-1111-1111-1111-111111111111",
    "ProcessorBatchId": "string",
    "OccurredAtUtc": "2026-01-01T00:00:00Z"
  }
}

Usage

Usage.Threshold.Reached

documented contract pending merchant scope not delivering yet

Usage Threshold Reached

Published when a merchant's usage of a metered SKU crosses a configured percentage of the entitlement's included quantity (default 80% and 100%).

This event type is registered but nothing publishes it yet, so subscribing to it today produces no deliveries. It is listed so the gap is visible rather than mistaken for a broken receiver.

Field Type Nullable
Example delivery

Events whose body is not settled yet

These events deliver, and their envelope is the same as any other. Their data body is not contractual, so no example is published for them: a made-up one would read as a promise.

  • ApiKey.Expiring (API Key Expiring)
  • HostedPaymentPage.ConsentCaptureFailed (HPP Consent Capture Failed)
  • HostedPaymentPage.ContractCreationFailed (HPP Recurring Contract Creation Failed)
  • HostedPaymentPage.EmbeddingViolation (HPP Embedding Violation)
  • HostedPaymentPage.Transaction.Completed (HPP Transaction Completed)
  • Merchant.Activated (Merchant Activated)
  • Merchant.Created (Merchant Created)
  • Merchant.Deactivated (Merchant Deactivated)
  • Merchant.Updated (Merchant Updated)
  • Notification.DestinationSuppressed (Destination Suppressed)
  • Usage.Threshold.Reached (Usage Threshold Reached)

Every event this instance publishes has a settled body.