Skip to main content

AccountCreated

An account has been created and all KYC checks have been successfully completed. This is the first event received during the onboarding process.
This is a legacy notification.
string
The ID of the newly-created account.Allowable values: A valid accountId
string
The ID that represents the link between the asynchronous request made to onboard an account and the webhook.Allowable values: A valid string
string
The date and time at which the webhook event was created, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The status of the account.Allowable values: applicationPending
string
The type of account.Allowable values: Business, Personal
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: AccountCreated

AccountActivated

An account has been opened and is ready to trade on, with active settlement details. This is the final event in the onboarding process.
string
The ID that represents the link between the asynchronous request made to onboard an account and the webhook.Allowable values: A valid string
string
The date and time at which the resource was created, in ISO 8601 format without milliseconds.Allowable values: Format: yyyy-MM-ddThh:mm:ssZ
object
Details about the account.Allowable values: A valid details object containing the following fields: countryOfRegistration, fourthLine, name, timezone
string
The ID of the account.Allowable values: A valid accountId
string
The ID of the market that the account is in.Allowable values: ≤ 36 characters
string
The persona ID of the account’s Primary Owner.Allowable values: A valid personaId (≤ 36 characters)
string
The ID of the product.Allowable values: A valid productId (≤ 36 characters)
string
The status of the account.Allowable values: active
string
The type of account.Allowable values: Business, Personal
object
The account’s settlement details.Allowable values: A valid settlementDetails object containing the following fields: currency, sortCode, accountNumber, ibans, accountName, bankName, bankAddress, balanceReference
string
The currency of the bank account, in ISO 4217 format.Allowable values: 3 characters
string
The sort code. This is only present for GBP budgets.Allowable values: ≤ 32 characters
string
The account number. This is only present for GBP budgets.Allowable values: ≤ 34 characters
string
Details about the IBAN and BIC.Allowable values: A valid ibans object containing the following fields: iban, bic
string
The International Bank Account Number (IBAN).Allowable values: ≤ 100 characters
string
The Bank Identifier Code (BIC).Allowable values: ^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?
string
The name of the bank account.Allowable values: A valid string
string
The name of the bank that the bank account is held with.Allowable values: A valid string
string
The address of the bank that the bank account is held with.Allowable values: A valid string
string or null
The balance reference.Allowable values: A valid string
string
The date and time at which the resource was last modified, in ISO 8601 format without milliseconds.Allowable values: yyyy-MM-ddThh:mm:ssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: AccountActivated

PersonCreated

This is event is received when a new person has been created.
string
The ID of the newly-created account.Allowable values: A valid accountId
string
The ID of the person.Allowable values: A valid string
string
The first name of the person created.Allowable values: A valid string
string
The last name of the person created.Allowable values: A valid string
string
The primary email address of the person created.Allowable values: A valid string
string
The primary mobile number of the person created.Allowable values: A valid string
string
The role of the person.Allowable values: Owner Admin Viewer Accountant Balance admin Balance payer Balance user
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PersonCreated

IdentityVerificationRequest

Identity verification is required for an applicant as part of the onboarding process. This webhook provides an action URL that the applicant can use to complete their identity verification session.
string
The ID of the onboarding application this webhook relates to. Provides context of the business application when identity verification is requested for an associated person.Allowable values: A valid UUID
string | null
The ID of the associated person for whom identity verification is being requested. null for personal applications; populated when the request relates to an associated person on a business application.Allowable values: A valid UUID or null
string
Full name of the applicant who needs to complete identity verification.Allowable values: An existing name
string
Email address of the applicant who needs to complete identity verification.Allowable values: An existing email
string
The URL for the applicant to complete their identity verification session.Allowable values: A valid URL
string
The date and time at which the webhook event was created, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: IdentityVerificationRequest

IdentityVerificationStatusUpdated

The Guided ID verification status for an applicant has changed. This event is sent each time the session moves through its lifecycle - for example when the applicant opens the link or completes the session - so you can surface progress without waiting for the final application decision.
Each event identifies the subject with exactly one of applicationId or associatedPersonId: applicationId for a personal application, or associatedPersonId for an associated person on a business application. The result field is only present once status is completed; it is omitted for every other status.
string
The ID of the personal onboarding application whose verification status changed. Present instead of associatedPersonId for personal applications.Allowable values: A valid UUID
string
The ID of the associated person (director or UBO) whose verification status changed. Present instead of applicationId for associated people on a business application.Allowable values: A valid UUID
string
An identifier shared with the matching identity verification session. Use it to reconcile this event against a row returned by the list identity verification sessions endpoint.Allowable values: A valid UUID
string
Full name of the person completing identity verification.Allowable values: An existing name
string
Email address of the person completing identity verification.Allowable values: An existing email
string
The current status of the identity verification session.Allowable values: to_be_completed, in_progress, completed
string
The outcome of the verification. Only present when status is completed; omitted otherwise.Allowable values: approved, declined, resubmission_requested
string
The date and time at which the webhook event was created, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: IdentityVerificationStatusUpdated

IdentityVerificationNotCompleted

A Guided ID verification link issued to an applicant has been outstanding for a reminder interval (3, 10 or 15 days) without being completed. This event is sent in daily batches so you can remind the applicant to finish identity verification. It is only sent while the application is still in progress and the latest link issued for the applicant has not been completed.
applicationId is always present. associatedPersonId and companyName are present only for business applications - for a personal application they are omitted. name is the person who needs to complete identity verification (the associated person for a business application, or the applicant for a personal one).
string
The ID of the onboarding application the Guided ID belongs to. Always present.Allowable values: A valid UUID
string
The ID of the associated person (director or UBO) who needs to complete Guided ID. Present only for business applications.Allowable values: A valid UUID
string
The name of the company being onboarded. Present only for business applications.Allowable values: An existing companyName
string
An identifier shared with the matching identity verification session (the latest link issued for the applicant). Use it to reconcile this event against a row returned by the list identity verification sessions endpoint.Allowable values: A valid UUID
string
Full name of the person who needs to complete identity verification.Allowable values: An existing name
string
Email address of the person who needs to complete identity verification.Allowable values: An existing email
The Guided ID link to re-surface to the person so they can complete identity verification.Allowable values: A valid URL
string
The date on which the Guided ID link expires.Allowable values: Format: yyyy-MM-dd
string
The date and time at which the webhook event was created, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: IdentityVerificationNotCompleted

KycInformationRequest

Additional documentation is required to complete the onboarding process for a personal application. This event is sent for accounts onboarded via the legacy onboarding endpoint. For accounts created via the /v2/applications API, use KycInformationRequested instead, which provides a structured requiredInformation array with typed response codes.
string
The name of the account.Allowable values: An existing name
string
The email of the account.Allowable values: An existing email
string
The type of document that is required for the KYC process.Allowable values: PROOF_OF_ADDRESS, PROOF_OF_IDENTITY, BANK_STATEMENT
string
Additional information about the document requested.Allowable values: ≤ 255 characters
string
The ID of the onboarding application this webhook relates to.Allowable values: A valid string
string
The ID that represents the link between the asynchronous request made to onboard an account and the webhook. This field is deprecated and will be removed in a future release. Use applicationId instead.Allowable values: A valid string
string
The date and time at which the webhook event was created, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: KycInformationRequest

KybInformationRequest

Additional documentation is required to complete the onboarding process for a business and its associated people. This event is sent for accounts onboarded via the legacy onboarding endpoint. For accounts created via the /v2/applications API, use KybInformationRequested instead, which provides a structured requiredInformation array with typed response codes.
string
The registered name of the business.Allowable values: A valid string
array of strings
The trading names of the business.Allowable values: An array of valid strings
object
The person who submitted the business onboarding application.
string
The ID of the applicant.Allowable values: A valid string
string
The email address of the applicant.Allowable values: A valid email address
string
The full name of the applicant.Allowable values: A valid string
array of strings
The types of documents required for the business.Allowable values: PROOF_OF_ADDRESS, PROOF_OF_IDENTITY, BANK_STATEMENT
array of objects
The directors, beneficial owners, or other individuals associated with the business who require additional documentation.
string
The ID of the associated person.Allowable values: A valid string
string
The full name of the associated person.Allowable values: A valid string
array of strings
The types of documents required for this associated person.Allowable values: PROOF_OF_ADDRESS, PROOF_OF_IDENTITY, BANK_STATEMENT
string
Additional information about the documents requested.Allowable values: ≤ 255 characters
string
The ID of the onboarding application this webhook relates to.Allowable values: A valid string
string
The date and time at which the webhook event was created, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: KybInformationRequest

KycInformationRequested

Additional information is required to complete the onboarding process for a personal application. This event replaces KycInformationRequest with a unified requiredInformation array where each item specifies a code and the expectedResponseType.
string
The information request identifier.Allowable values: A valid UUID
string
The ID of the onboarding application this webhook relates to.Allowable values: A valid UUID
string
The applicant’s full name.Allowable values: An existing name
string
The applicant’s email address.Allowable values: An existing email
array
Items requested from the applicant. Each item specifies what type of response is expected.
string
The type of response expected for this item.Allowable values: file, text, boolean, date
string
A standardised code identifying the type of information requested.Allowable values: A valid information request code (e.g. PROOF_OF_ADDRESS, PROOF_OF_FUNDS)
string or null
Free-text context from the onboarding agent providing additional instructions.Allowable values: A string or null
string
The date and time at which the webhook event was created, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: KycInformationRequested

KybInformationRequested

Additional information is required to complete the onboarding process for a business and its associated people. This event replaces KybInformationRequest with a unified requiredInformation array where each item specifies a code and the expectedResponseType. Information can be requested at the business level and per associated person.
string
The information request identifier.Allowable values: A valid UUID
string
The ID of the onboarding application this webhook relates to.Allowable values: A valid UUID
string
The registered name of the business.Allowable values: An existing registeredName
array
The trading names of the business.Allowable values: An array of strings
object
The person who submitted the business onboarding application.
string
The applicant’s unique identifier.Allowable values: A valid UUID
string
The applicant’s first name.Allowable values: An existing firstName
string
The applicant’s last name.Allowable values: An existing lastName
string
The applicant’s email address.Allowable values: An existing emailAddress
array
Items requested at the business level. Each item specifies what type of response is expected.
string
The type of response expected for this item.Allowable values: file, text, boolean, date
string
A standardised code identifying the type of information requested.Allowable values: A valid information request code (e.g. PROOF_OF_FORMATION, PROOF_OF_FINANCES)
array
Per-person information requests. Each entry contains the person’s identifier and their required information items.
string
The associated person’s unique identifier.Allowable values: A valid UUID
array
Items requested for this specific associated person.
string or null
Free-text context from the onboarding agent providing additional instructions.Allowable values: A string or null
string
The date and time at which the webhook event was created, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: KybInformationRequested

KycUpdate

When identity verification is required, the actionUrl field contains a link to a Guided identity verification (Guided ID) check for the applicant to complete.
string
The name of the account.Allowable values: An existing name
string
The email of the account.Allowable values: An existing email
string
The ID of the account.Allowable values: An existing accountId
string
The status of the journey.Allowable values: PENDING, DECLINED, COMPLETED
string
The action required to progress application.Allowable values: uploadProofOfAddress, identityVerificationCheck, notApplicable
string or null
The URL for the corresponding requiredAction. Returns null when no action is required.Allowable values: A valid URL string or null
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: KycUpdate

ApplicationStatusUpdated

The outcome of an onboarding application has been determined. This event fires for both approved and declined applications.
string
The ID of the onboarding application this webhook relates to.Allowable values: A valid string
string
The full name of the applicant.Allowable values: A valid string
string
The outcome of the application.Allowable values: approved, declined
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: ApplicationStatusUpdated

AccountStatusUpdated

An account’s status has been updated.
string
The ID of the account.Allowable values: An existing accountId
string
The new status of the account.Allowable values: applicationPending, active, inactive, customerClosed, equalsFullClosed, equalsReadonlyClosed, identityVerificationRequired, restricted
string
The date and time at which the webhook event was created, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: AccountStatusUpdated

RecipientCreated

A recipient was created.
string
The ID of the account.Allowable values: An existing accountId
boolean
Whether or not the banking information provided for the recipient was an International Bank Account Number (IBAN).Allowable values: true, false
boolean
Whether or not the banking information provided for the recipient was a National Clearing Code (NCC).Allowable values: true, false
boolean
Whether or not the banking information provided for the recipient was a SWIFT account.Allowable values: true, false
string
The name of the recipient.Allowable values: ≤ 256 characters
string
The reason for the transfer.Allowable values: ≤ 256 characters
string
The country of the recipient’s bank, in ISO 3166-1 format.Allowable values: ≤ 2 characters
string
The currency of the recipient’s bank account, in ISO 4217 format.Allowable values: 3 characters
string
The city of the recipient.Allowable values: ≤ 256 characters
string
The country of the recipient.Allowable values: ^[A-Z]{2}$
string
The ID of the newly-created recipient. This is also known as the recipientId.Allowable values: ≤ 36 characters
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: RecipientCreated

RecipientDeleted

A recipient was deleted.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the recipient that was deleted.Allowable values: ≤ 36 characters
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: RecipientDeleted

PaymentBatchCreated

The batch group has successfully passed initial validation, with all recipient details verified. The batch is now ready for approval, and the recipient information is valid.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the payment batch that was created.Allowable values: ≤ 36 characters
object
Object containing the number of orders, and their unique currency codes.
number
The number of orders in the payment batch that was created.Allowable values: A valid number
array
The unique currency codes of the orders in the payment batch that was created.Allowable values: Valid uniqueCurrencyCodes
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PaymentBatchCreated

PaymentBatchCancelled

The payment batch has been cancelled.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the payment batch that was created.Allowable values: ≤ 36 characters
object
Object containing the number of orders, and their unique currency codes.
number
The number of orders in the payment batch that was created.Allowable values: A valid number
array
The unique currency codes of the orders in the payment batch that was created.Allowable values: Valid uniqueCurrencyCodes
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PaymentBatchCancelled

PaymentBatchValidationError

Some payments within the batch have failed validation. This could be due to recipient details being incorrect. When this webhook is received, you can use the paymentBatchId to view the alerts associated with the payments using the List payment batch payments API.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the payment batch that failed validation.Allowable values: ≤ 36 characters
object
Object containing the number of orders, and their unique currency codes.
number
The number of orders in the payment batch.Allowable values: A valid number
array
The unique currency codes of the orders in the payment batch.Allowable values: Valid uniqueCurrencyCodes
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PaymentBatchValidationError

PaymentBatchProcessing

The payment batch has been confirmed, or the scheduled date has been reached.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the payment batch that was created.Allowable values: ≤ 36 characters
object
Object containing the number of orders, and their unique currency codes.
number
The number of orders in the payment batch that was created.Allowable values: A valid number
array
The unique currency codes of the orders in the payment batch that was created.Allowable values: Valid uniqueCurrencyCodes
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PaymentBatchProcessing

PaymentBatchCompleted

The payment batch has completed, and all payments within the batch have reached a final status.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the payment batch that was created.Allowable values: ≤ 36 characters
array
Object containing the number of orders, and their unique currency codes.
number
The number of orders in the payment batch that was created.Allowable values: A valid number
array
The unique currency codes of the orders in the payment batch that was created.Allowable values: Valid uniqueCurrencyCodes
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PaymentBatchCompleted

PaymentCreated

The payment has passed the initial checks, and no additional information is needed to proceed with the payout. This event is sent for payments in a payment batch, whatever the size of the batch.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the payment batch that was created.Allowable values: ≤ 36 characters
string
required
The ID of the payment within the batch. Example: E1C51Q925JX3-P0000
string
required
The payment amount. Example: 100
string
required
The currency code of the payment, ISO-4217 format. Example: EUR
object
required
Object containing the recipient’s details, bank identifiers, address, bank address and Confirmation of Payee result.
string or null
The ID of the recipient. Example: 8lqccfgmo
string or null
The default reference used for payments to this recipient. Example: Monthly invoice
string
required
The type of account, either individual, business or charity.
string
required
The name of the recipient. Example: John Frank
string or null
Display name for the payee. Example: Electrician
array or null
The email addresses that are sent notifications of payments to this recipient. Each entry has a name and an email.
string
required
The identifier of the recipient’s account, such as an account number or IBAN. Example: GB29NWBK60161331926819
string
required
The identifier of the recipient’s bank, such as a sort code, BIC or routing number. Example: NWBKGB2L
string or null
The BIC of the intermediary bank. Example: QBLCCCCV
string
required
The payment network used to pay this recipient.Allowable values: SWIFT, SEPA.INSTANT, SEPA.CREDITTRANSFER, CHAPS, UKFPS, ACH, WIRETRANSFER, NIP
object
required
The recipient’s address.
string
Type of the recipient’s address. Example: ADDR
string or null
Street name of the recipient’s address. Example: Churchill Place
string or null
Building number of the recipient’s address. Example: 7
string or null
Building name of the recipient’s address. Example: Abram
string or null
Postal code of the recipient’s address. Example: SW1A 1AA
string or null
City of the recipient’s address. Example: London
string or null
Region of the recipient’s address. Example: Greater London
string
required
Country code for the recipient’s address, ISO 3166 format. Example: GB
object
required
The address of the recipient’s bank.
string or null
Name of the recipient’s bank. Example: Brilliant Bank
string or null
Branch of the recipient’s bank. Example: Main Branch
string or null
Street name of the bank’s address. Example: Threadneedle Street
string or null
Building number of the bank’s address. Example: 1
string or null
Building name of the bank’s address. Example: Bank Building
string or null
Postal code of the bank’s address. Example: EC2R 8AH
string or null
City of the bank’s address. Example: London
string or null
Region of the bank’s address. Example: Greater London
string
required
Country code for the bank’s address, ISO 3166 format. Example: GB
object or null
The Confirmation of Payee result for this recipient, or null when no check was performed.
boolean
Whether the recipient name matched the name held by their bank.
string or null
The reason for the validation result.
string
The reason code for the validation result.Allowable values: N000, N100, N101, N102, N103, N104, N200, N201, N202, N203, N204, N205, N206, N207, N300, N400, N500
string or null
The name held by the recipient’s bank, when it differs from the name provided.
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PaymentCreated

PaymentCompleted

The payment has been paid out and has reached a final status. This event is sent for payments in a payment batch, whatever the size of the batch.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the payment batch the payment belongs to.Allowable values: ≤ 36 characters
string
required
The ID of the payment that completed. Example: E1C51Q925JX3-P0000
string
required
The payment amount. Example: 100
string
required
The currency code of the payment, ISO-4217 format. Example: EUR
object
required
Object containing the recipient’s details, bank identifiers, address, bank address and Confirmation of Payee result.
string or null
The ID of the recipient. Example: 8lqccfgmo
string or null
The default reference used for payments to this recipient. Example: Monthly invoice
string
required
The type of account, either individual, business or charity.
string
required
The name of the recipient. Example: John Frank
string or null
Display name for the payee. Example: Electrician
array or null
The email addresses that are sent notifications of payments to this recipient. Each entry has a name and an email.
string
required
The identifier of the recipient’s account, such as an account number or IBAN. Example: GB29NWBK60161331926819
string
required
The identifier of the recipient’s bank, such as a sort code, BIC or routing number. Example: NWBKGB2L
string or null
The BIC of the intermediary bank. Example: QBLCCCCV
string
required
The payment network used to pay this recipient.Allowable values: SWIFT, SEPA.INSTANT, SEPA.CREDITTRANSFER, CHAPS, UKFPS, ACH, WIRETRANSFER, NIP
object
required
The recipient’s address.
string
Type of the recipient’s address. Example: ADDR
string or null
Street name of the recipient’s address. Example: Churchill Place
string or null
Building number of the recipient’s address. Example: 7
string or null
Building name of the recipient’s address. Example: Abram
string or null
Postal code of the recipient’s address. Example: SW1A 1AA
string or null
City of the recipient’s address. Example: London
string or null
Region of the recipient’s address. Example: Greater London
string
required
Country code for the recipient’s address, ISO 3166 format. Example: GB
object
required
The address of the recipient’s bank.
string or null
Name of the recipient’s bank. Example: Brilliant Bank
string or null
Branch of the recipient’s bank. Example: Main Branch
string or null
Street name of the bank’s address. Example: Threadneedle Street
string or null
Building number of the bank’s address. Example: 1
string or null
Building name of the bank’s address. Example: Bank Building
string or null
Postal code of the bank’s address. Example: EC2R 8AH
string or null
City of the bank’s address. Example: London
string or null
Region of the bank’s address. Example: Greater London
string
required
Country code for the bank’s address, ISO 3166 format. Example: GB
object or null
The Confirmation of Payee result for this recipient, or null when no check was performed.
boolean
Whether the recipient name matched the name held by their bank.
string or null
The reason for the validation result.
string
The reason code for the validation result.Allowable values: N000, N100, N101, N102, N103, N104, N200, N201, N202, N203, N204, N205, N206, N207, N300, N400, N500
string or null
The name held by the recipient’s bank, when it differs from the name provided.
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PaymentCompleted

PaymentReturned

The payment has been returned. This event is sent for payments in a payment batch, whatever the size of the batch.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the payment batch the payment belongs to.Allowable values: ≤ 36 characters
string
required
The ID of the payment that was returned. Example: E1C51Q925JX3-P0000
string
required
The payment amount. Example: 100
string
required
The currency code of the payment, ISO-4217 format. Example: EUR
object
required
Object containing the recipient’s details, bank identifiers, address, bank address and Confirmation of Payee result.
string or null
The ID of the recipient. Example: 8lqccfgmo
string or null
The default reference used for payments to this recipient. Example: Monthly invoice
string
required
The type of account, either individual, business or charity.
string
required
The name of the recipient. Example: John Frank
string or null
Display name for the payee. Example: Electrician
array or null
The email addresses that are sent notifications of payments to this recipient. Each entry has a name and an email.
string
required
The identifier of the recipient’s account, such as an account number or IBAN. Example: GB29NWBK60161331926819
string
required
The identifier of the recipient’s bank, such as a sort code, BIC or routing number. Example: NWBKGB2L
string or null
The BIC of the intermediary bank. Example: QBLCCCCV
string
required
The payment network used to pay this recipient.Allowable values: SWIFT, SEPA.INSTANT, SEPA.CREDITTRANSFER, CHAPS, UKFPS, ACH, WIRETRANSFER, NIP
object
required
The recipient’s address.
string
Type of the recipient’s address. Example: ADDR
string or null
Street name of the recipient’s address. Example: Churchill Place
string or null
Building number of the recipient’s address. Example: 7
string or null
Building name of the recipient’s address. Example: Abram
string or null
Postal code of the recipient’s address. Example: SW1A 1AA
string or null
City of the recipient’s address. Example: London
string or null
Region of the recipient’s address. Example: Greater London
string
required
Country code for the recipient’s address, ISO 3166 format. Example: GB
object
required
The address of the recipient’s bank.
string or null
Name of the recipient’s bank. Example: Brilliant Bank
string or null
Branch of the recipient’s bank. Example: Main Branch
string or null
Street name of the bank’s address. Example: Threadneedle Street
string or null
Building number of the bank’s address. Example: 1
string or null
Building name of the bank’s address. Example: Bank Building
string or null
Postal code of the bank’s address. Example: EC2R 8AH
string or null
City of the bank’s address. Example: London
string or null
Region of the bank’s address. Example: Greater London
string
required
Country code for the bank’s address, ISO 3166 format. Example: GB
object or null
The Confirmation of Payee result for this recipient, or null when no check was performed.
boolean
Whether the recipient name matched the name held by their bank.
string or null
The reason for the validation result.
string
The reason code for the validation result.Allowable values: N000, N100, N101, N102, N103, N104, N200, N201, N202, N203, N204, N205, N206, N207, N300, N400, N500
string or null
The name held by the recipient’s bank, when it differs from the name provided.
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PaymentReturned

PaymentBatchOrderCreated

The group has been approved, processing will begin, and funds will be blocked. This is particularly useful for scheduled batches.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the payment batch that was created.Allowable values: ≤ 36 characters
string
The order ID of the payment batch that was created.Allowable values: ≤ 36 characters
object
An object containing details relating to the source currency such as code, numberOfFees, valueOfFees, settlementTotal
string
The currency code of the source currency.Allowable values: A valid code
number
The number of fees.
number
The value of the fees.
number
The settlement amount.
object
An object containing details relating to the destination currency such as code, numberOfPayments, valueOfPayments
number
The number of payments.
number
The value of the payments.
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PaymentBatchOrderCreated

PaymentBatchOrderCompleted

The group has been approved, and processing was successful. This is especially relevant for scheduled batches.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the payment batch that was created.Allowable values: ≤ 36 characters
string
The order ID of the payment batch that was created.Allowable values: ≤ 36 characters
object
An object containing details relating to the source currency such as code, numberOfFees, valueOfFees, settlementTotal
string
The currency code of the source currency.Allowable values: A valid code
number
The number of fees.
number
The value of the fees.
number
The settlement amount.
object
An object containing details relating to the destination currency such as code, numberOfPayments, valueOfPayments
number
The number of payments.
number
The value of the payments.
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PaymentBatchOrderCompleted

PaymentBatchOrderCancelled

The batch order has been cancelled. This is especially relevant for scheduled batches.
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the payment batch that was created.Allowable values: ≤ 36 characters
string
The order ID of the payment batch that was created.Allowable values: ≤ 36 characters
object
An object containing details relating to the source currency such as code, numberOfFees, valueOfFees, settlementTotal
string
The currency code of the source currency.Allowable values: A valid code
number
The number of fees.
number
The value of the fees.
number
The settlement amount.
object
An object containing details relating to the destination currency such as code, numberOfPayments, valueOfPayments
number
The number of payments.
number
The value of the payments.
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: PaymentBatchOrderCancelled

BoxCredited

A budget was credited.
Sample payload
Event structure
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the budget that was credited.Allowable values: An existing budgetId
string
The type of event that triggered the credit:
  • exchange: two currencies were exchanged on an Equals budget, and funds have been credited to the currency that the funds were exchanged into
  • internal_transfer: funds were received from another budget on your account
  • external_credit: funds were credited to the budget from an external source
  • orders: funds were received from another budget on another Equals account
Allowable values: exchange, internal_transfer, external_credit, orders
string
The remitter’s account identifier.Allowable values: A bank account number (^\d{8,17}$) or IBAN (≤ 100 characters)
string
The identifier of the remitter’s bank.Allowable values: A sort code (^\d{6}$) or BIC (^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)
string or null
The address of the remitter’s bank.Allowable values: ≤ 109 characters
string
The name of the scheme.Allowable values: UK.OBIE.SortCodeAccountNumber, UK.OBIE.IBAN
string
The payment reference sent by the remitter.Allowable values: ≤ 256 characters
string or null
The address of the remitter.Allowable values: ≤ 256 characters
string
The name of the remitter.Allowable values: ≤ 256 characters
string
The name of the budget that was credited.Allowable values: An existing budgetName (≤ 75 characters)
number
The settlement amount.Allowable values: A valid number
string
The currency of the settlement, in ISO 4217 format.Allowable values: 3 characters
string
The name of the payment method used, in Open Banking’s standard format.Allowable values: UK.OBIE.FPS, UK.OBIE.BACS, UK.OBIE.CHAPS, UK.OBIE.SWIFT, UK.OBIE.BalanceTransfer, UK.OBIE.SEPACreditTransfer
integer
The ID of the budget transaction.Allowable values: A valid integer
string
The ledger balance after the credit has been applied.Allowable values: A valid string
string
An incrementing number representing the latest balance.Allowable values: A valid string
string
The date and time at which the ledger was updated, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: BoxCredited

BoxCreditPending

A budget was credited, but the payment is still being processed.
Sample payload
Event structure
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the budget that was credited.Allowable values: An existing budgetId
string
The type of event that triggered the credit:
  • exchange: two currencies were exchanged on an Equals budget, and funds have been credited to the currency that the funds were exchanged into
  • internal_transfer: funds were received from another budget on your account
  • external_credit: funds were credited to the budget from an external source
  • orders: funds were received from another budget on another Equals account
Allowable values: exchange, internal_transfer, external_credit, orders
string
The remitter’s account identifier.Allowable values: A bank account number (^\d{8,17}$) or IBAN (≤ 100 characters)
string
The identifier of the remitter’s bank.Allowable values: A sort code (^\d{6}$) or BIC (^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)
string or null
The address of the remitter’s bank.Allowable values: ≤ 109 characters
string
The name of the scheme.Allowable values: UK.OBIE.SortCodeAccountNumber, UK.OBIE.IBAN
string
The payment reference sent by the remitter.Allowable values: ≤ 256 characters
string or null
The address of the remitter.Allowable values: ≤ 256 characters
string
The name of the remitter.Allowable values: ≤ 256 characters
string
The name of the budget that was credited.Allowable values: An existing budgetName (≤ 75 characters)
number
The settlement amount.Allowable values: A valid number
string
The currency of the settlement, in ISO 4217 format.Allowable values: 3 characters
string
The name of the payment method used, in Open Banking’s standard format.Allowable values: UK.OBIE.FPS, UK.OBIE.BACS, UK.OBIE.CHAPS, UK.OBIE.SWIFT, UK.OBIE.BalanceTransfer, UK.OBIE.SEPACreditTransfer
integer
The ID of the budget transaction.Allowable values: A valid integer
string
The ledger balance after the credit has been applied.Allowable values: A valid string
string
An incrementing number representing the latest balance.Allowable values: A valid string
string
The date and time at which the ledger was updated, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: BoxCreditPending

BoxDebited

A budget was debited.
Sample payload
Event structure
string
The ID of the account.Allowable values: An existing accountId
integer
The ID of the budget transaction.Allowable values: A valid integer
string
The ID of the budget that was debited.Allowable values: An existing budgetId
string
The name of the budget that was debited.Allowable values: An existing budgetName (≤ 75 characters)
string
The recipients’s account identifier.Allowable values: A bank account number (^\d{8,17}$) or IBAN (≤ 100 characters)
string
The identifier of the recipient’s bank.Allowable values: A sort code (^\d{6}$) or BIC (^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)
string or null
The address of the recipient’s bank.Allowable values: ≤ 109 characters
string
The ID of the order.Allowable values: A valid orderId (12 characters)
string
The name of the payment method used, in Open Banking’s standard format.Allowable values: UK.OBIE.FPS, UK.OBIE.BACS, UK.OBIE.CHAPS, UK.OBIE.SWIFT, UK.OBIE.BalanceTransfer, UK.OBIE.SEPACreditTransfer
string
The payment reference sent by the remitter.Allowable values: ≤ 256 characters
string
The name of the scheme.Allowable values: UK.OBIE.SortCodeAccountNumber, UK.OBIE.IBAN
number
The settlement amount.Allowable values: A valid number
string
The currency of the settlement, in ISO 4217 format.Allowable values: 3 characters
string
The type of event that triggered the debit:
  • exchange: two currencies were exchanged on an Equals budget, and funds have been debited from the currency that the funds were exchanged from
  • internal_transfer: funds were sent to another Equals budget, which is in the same currency
  • orders: an order was created to send funds from a budget
Allowable values: exchange, internal_transfer, orders
string
The ledger balance after the debit has been applied.Allowable values: A valid string
string
An incremental number representing the latest balance.Allowable values: A valid string
string
The date and time at which the ledger was updated, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: BoxDebited

OrderCreated

An order was created.
string
The ID of the account that created the order.Allowable values: An existing accountId
string
The ID of the newly-created order.Allowable values: A valid orderId (12 characters)
object
Details about the payment source.Allowable values: amount, currency
object
Details about the payment destination.Allowable values: amount, currency
object
Details about the recipient of the payment.Allowable values: id, name
string
The status of the order.Allowable values: created
string
The ID of the parent forward contract, when this order was derived from one, set on drawdowns and forward rolls. null for a standalone order.Allowable values: A valid orderId, or null
boolean
Whether this order is a forward contract.Allowable values: true, false
boolean
Whether this order is a drawdown against a parent forward. Use together with parentOrderId to identify which forward the drawdown belongs to.Allowable values: true, false
string
The payment method used for the payment. Unlike the other payment fields this one is omitted altogether, rather than sent as null, when the source order does not specify a method.Allowable values: A valid payment method
boolean
Whether the payment was booked as SEPA. null where the source does not carry the option.Allowable values: true, false, null
boolean
Whether the sender elected to pay all charges for the payment. null where the source does not carry the option.Allowable values: true, false, null
string
The payment rail resolved for the payment. null when the network is not resolved at the time the order is booked.Allowable values: For example SWIFT, SEPA.CREDITTRANSFER, CHAPS, or null
number
The fee resolved for this individual payment, in the order’s sell currency. It is charged as a separate fee order, reported by FeeCreated, so it is not included in the order’s settlementFee. Currently always null, because no source populates a per-payment fee yet: treat a non-null value as a future addition rather than something to expect today.Allowable values: A valid number, or null
object
The deposit (margin) held against a forward contract. null on orders that carry no deposit, including all non-forward orders, which settle in full.Allowable values: null, or a valid deposit object containing the following fields: amount, currency, depositPercent, dueDate
number
The total amount sold across the whole order. This is authoritative for the order: the per-payment from blocks cover only the recipients assigned so far and can sum to less.Allowable values: A valid number
string
The currency sold, in ISO-4217 format.Allowable values: 3 characters
number
The total amount bought across the whole order. Authoritative for the order, as with fromAmount.Allowable values: A valid number
string
The currency bought, in ISO-4217 format.Allowable values: 3 characters
string
When this order is a new forward created by rolling an earlier one, the ID of the previous forward. null otherwise.Allowable values: A valid orderId, or null
string
When this order is a new forward created by rolling an earlier one, the ID of the roll order that created it. null otherwise.Allowable values: A valid orderId, or null
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: OrderCreated

OrderCompleted

An order was successfully completed.
Payments cancelled before completion are excluded from payments. Only the payments that were actually made appear, so do not treat this event as a full history of the order. Where every payment on the order was cancelled, payments carries a single entry with a null recipient and the order-level amounts.
string
The ID of the account that created the order.Allowable values: A valid accountId
string
The ID of the completed order.Allowable values: A valid orderId (12 characters)
object
Details about the payment source.Allowable values: amount, currency
object
Details about the payment destination.Allowable values: amount, currency
object
Details about the recipient of the payment.Allowable values: id, name
string
The status of the order.Allowable values: complete
string
The ID of the parent forward contract, when this order was derived from one, set on drawdowns and forward rolls. null for a standalone order.Allowable values: A valid orderId, or null
boolean
Whether this order is a forward contract.Allowable values: true, false
boolean
Whether this order is a drawdown against a parent forward. Use together with parentOrderId to identify which forward the drawdown belongs to.Allowable values: true, false
string
The payment method used for the payment. Unlike the other payment fields this one is omitted altogether, rather than sent as null, when the source order does not specify a method.Allowable values: A valid payment method
boolean
Whether the payment was booked as SEPA. null where the source does not carry the option.Allowable values: true, false, null
boolean
Whether the sender elected to pay all charges for the payment. null where the source does not carry the option.Allowable values: true, false, null
string
The payment rail resolved for the payment. null when the network is not resolved at the time the order is booked.Allowable values: For example SWIFT, SEPA.CREDITTRANSFER, CHAPS, or null
number
The fee resolved for this individual payment, in the order’s sell currency. It is charged as a separate fee order, reported by FeeCreated, so it is not included in the order’s settlementFee. Currently always null, because no source populates a per-payment fee yet: treat a non-null value as a future addition rather than something to expect today.Allowable values: A valid number, or null
object
The deposit (margin) held against a forward contract. null on orders that carry no deposit, including all non-forward orders, which settle in full.Allowable values: null, or a valid deposit object containing the following fields: amount, currency, depositPercent, dueDate
number
The total amount sold across the whole order. This is authoritative for the order: the per-payment from blocks cover only the recipients assigned so far and can sum to less.Allowable values: A valid number
string
The currency sold, in ISO-4217 format.Allowable values: 3 characters
number
The total amount bought across the whole order. Authoritative for the order, as with fromAmount.Allowable values: A valid number
string
The currency bought, in ISO-4217 format.Allowable values: 3 characters
string
When this order is a new forward created by rolling an earlier one, the ID of the previous forward. null otherwise.Allowable values: A valid orderId, or null
string
When this order is a new forward created by rolling an earlier one, the ID of the roll order that created it. null otherwise.Allowable values: A valid orderId, or null
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: OrderCompleted

OrderFundsReceived

The funds needed to settle an order have arrived. This is the point at which an order stops waiting for money and can be paid out, and it sits between OrderCreated and OrderCompleted in an order’s life. It carries the same normalised payment and order fields as OrderCreated and OrderCompleted, so you can parse all three with the same code, plus fundsSettledDate for when the funds actually landed. It does not carry the roll-lineage fields rolledFromOrderId and rolledFromRollId: those identify a forward born from a roll, which is a property of the order’s creation rather than of its funding.
Receiving funds is not the same as the order completing. Funds arriving means the money is with us, not that the payments have been sent. Wait for OrderCompleted before treating recipients as paid.
Payments cancelled before the funds arrived are excluded from payments. Where every payment on the order was cancelled, payments carries a single entry with a null recipient and the order-level amounts.
string
The ID of the account that created the order.Allowable values: A valid accountId
string
The ID of the order the funds were received for.Allowable values: A valid orderId (12 characters)
object
Details about the payment source.Allowable values: amount, currency
object
Details about the payment destination.Allowable values: amount, currency
object
Details about the recipient of the payment.Allowable values: id, name
string
The status of the order.Allowable values: funds_received
string
The ID of the parent forward contract, when this order was derived from one, set on drawdowns and forward rolls. null for a standalone order.Allowable values: A valid orderId, or null
boolean
Whether this order is a forward contract.Allowable values: true, false
boolean
Whether this order is a drawdown against a parent forward. Use together with parentOrderId to identify which forward the drawdown belongs to.Allowable values: true, false
string
The payment method used for the payment. Unlike the other payment fields this one is omitted altogether, rather than sent as null, when the source order does not specify a method.Allowable values: A valid payment method
boolean
Whether the payment was booked as SEPA. null where the source does not carry the option.Allowable values: true, false, null
boolean
Whether the sender elected to pay all charges for the payment. null where the source does not carry the option.Allowable values: true, false, null
string
The payment rail resolved for the payment. null when the network is not resolved at the time the order is booked.Allowable values: For example SWIFT, SEPA.CREDITTRANSFER, CHAPS, or null
number
The fee resolved for this individual payment, in the order’s sell currency. It is charged as a separate fee order, reported by FeeCreated, so it is not included in the order’s settlementFee. Currently always null, because no source populates a per-payment fee yet: treat a non-null value as a future addition rather than something to expect today.Allowable values: A valid number, or null
object
The deposit (margin) held against a forward contract. null on orders that carry no deposit, including all non-forward orders, which settle in full.Allowable values: null, or a valid deposit object containing the following fields: amount, currency, depositPercent, dueDate
number
The total amount sold across the whole order. This is authoritative for the order: the per-payment from blocks cover only the recipients assigned so far and can sum to less.Allowable values: A valid number
string
The currency sold, in ISO-4217 format.Allowable values: 3 characters
number
The total amount bought across the whole order. Authoritative for the order, as with fromAmount.Allowable values: A valid number
string
The currency bought, in ISO-4217 format.Allowable values: 3 characters
string
The date and time the funds were received, in ISO 8601 format. This is a real timestamp of when the money landed, unlike the per-payment settlementDate, which is the date the order settles on. null where it is not available.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ, or null
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: OrderFundsReceived

OrderCancelled

An order was cancelled.
string
The ID of the account that created the order.Allowable values: A valid accountId
string
The ID of the order.Allowable values: A valid orderId (12 characters)
string
The type of the order that was cancelled.Allowable values: For example forward, drawdown, balance_load, balance_transfer, payment
number
The rate the cancelled order was booked at. A cancellation refunds at the original rate, so this lets you reconcile the refund without holding the earlier OrderCreated or OrderCompleted event.Allowable values: A valid number
number
The inverse of the rate the cancelled order was booked at.Allowable values: A valid number
object
Details about the payment.Allowable values: A valid payments object containing the following fields: amount, externalReference, fundsSettled, fundsSettled, internalReference, payAllCharges, recipientId, recipientName, sepa
string
The status of the order.Allowable values: cancelled
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: OrderCancelled

OrderModified

An existing order was changed, for example its rate, settlement date or assigned recipients were amended, or a forward was rolled. Unlike OrderCreated and OrderCompleted, this event also carries the order’s flat top-level values (rate, settlementDate, spread, settlementFee and so on) alongside the normalised payments array.
Fields that the order does not carry are omitted from this event rather than sent as null. The exceptions are deposit, payments and modification, which are always present. Check for the presence of a key (for example rolledIntoOrderId) rather than testing it against null.
This event reports the order’s state after the change. Two fields narrow down what changed: modification tags a recipient addition, and previousSettlementDate carries the settlement date the order held before the event. Neither tells you which payment changed, so to detect that, compare the payments array against the last event you received for the same orderId. It fires when a payment on the order is edited or cancelled, when a recipient is added to the order, when a forward’s settlement date is extended, when a forward is rolled, when a drawdown is taken against a forward, when the order’s funding source or payment destination changes, and when a payment awaiting dual authorisation is approved or rejected. A single business action can produce more than one OrderModified. Treat the events as a stream of order states keyed on orderId rather than assuming one event per change, and apply a settlement date change as a compare-and-swap against previousSettlementDate so that events arriving out of order cannot regress a newer date. It does not fire when the order itself is cancelled or completes. Those are reported by OrderCancelled and OrderCompleted. Fee orders are reported by FeeCreated and are never sent as OrderModified.
Cancelled payments and cancelled wires. Cancelling a payment on an order does produce an OrderModified, but the cancellation is visible only as an absence: the cancelled payment is removed from payments. There is no per-payment status, no cancellation flag, and no separate webhook event for the cancellation of a payment on an order.The order-level fromAmount and toAmount are unchanged by a cancellation, since they remain the order’s booked totals. After a cancellation the payments amounts will therefore sum to less than the order total, and the difference is the cancelled value.Replace your stored payments array wholesale rather than merging into it. An integration that merges will never observe a cancellation at all. To identify which payment was cancelled, compare payments.recipient.id against the previous event for the same orderId, using externalReference as a secondary key where the same recipient appears more than once on an order.A cancelled wire and a cancelled payment behave identically here. Both are the removal of a payment line, and both reach you as an OrderModified with a shorter payments array.Cancelled payments stay excluded for the rest of the order’s life, including on the eventual OrderCompleted. If every payment on the order is cancelled, payments carries a single entry with a null recipient and the order-level amounts rather than an empty array.
Edited payments. Editing a payment’s amount or recipient produces an OrderModified carrying the new values, with recipient names resolved at the time of the change. As with cancellations, nothing marks which entry changed, so compare against the previous event.
Added recipients and payments. Adding a recipient to an order reaches you as an OrderModified carrying modification: "beneficiaryAdded". That is the event to act on: it carries the new recipient in payments.A single addition also produces untagged OrderModified events alongside the tagged one, and those are not all complete: one of them carries the payments array as it stood before the addition. Do not rely on the number or the order of the events you receive. Filter on modification instead, and do not treat an untagged OrderModified arriving at the same time as authoritative for the new recipient.
string
The ID of the account that owns the order.Allowable values: An existing accountId
string
The ID of the modified order.Allowable values: A valid orderId (12 characters)
string
The type of the order.Allowable values: For example forward, drawdown, balance_load, balance_transfer, payment
string
The status of the order. Omitted when the source order does not carry a status.Allowable values: modified
string or null
What was changed, where the change is one we can name. beneficiaryAdded means a recipient was added to the order, and this event carries the addition. null means a general modification, which covers every other change reported by this event. This field is always sent, unlike the fields that are omitted when the order does not carry them, so you can read it without first checking that the key exists. Treat an unrecognised value as a general modification: we may name further changes over time.Allowable values: beneficiaryAdded, or null
number
The rate applied to the order.Allowable values: A valid number
number
The inverse of the rate applied to the order.Allowable values: A valid number
number
The total amount sold across the whole order. This is authoritative for the order: the per-payment from blocks cover only the recipients assigned so far and can sum to less.Allowable values: A valid number
string
The currency sold, in ISO-4217 format.Allowable values: 3 characters
number
The total amount bought across the whole order. Authoritative for the order, as with fromAmount.Allowable values: A valid number
string
The currency bought, in ISO-4217 format.Allowable values: 3 characters
string
When this forward has been rolled, the ID of the new forward the roll created. Omitted on modifications that are not a roll.Allowable values: A valid orderId
object
The deposit (margin) held against a forward contract. null on orders that carry no deposit, including all non-forward orders, which settle in full. Always present on this event.Allowable values: null, or a valid deposit object containing the following fields: amount, currency, depositPercent, dueDate
object
Details about each payment on the order, in the same shape as OrderCreated. Cancelled payments are excluded. An order with no live payments, either because no recipient has been assigned yet or because every payment has been cancelled, carries a single entry with a null recipient and the order-level amounts.Allowable values: A valid payments object containing the following fields: settlementDate, rate, inverseRate, internalReference, externalReference, from, to, recipient, sepa, payAllCharges, paymentNetwork, fee
string
The settlement date of the order.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The settlement date the order carried before this event. Compare it against settlementDate to detect a maturity change: the two differing is the signal, not this key being present. On a modification that did not move the settlement date it holds the same value as settlementDate. Omitted when the source event carries no previous state.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
number
The fee applied on settlement.Allowable values: A valid number
number
The spread applied to the order.Allowable values: A valid number
string
The date and time at which the order was placed, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
Where the funds for the order come from.Allowable values: For example bank, balance
string
Where the funds for the order are going.Allowable values: For example payment, balance
number
The GBP equivalent of the amount sold.Allowable values: A valid number
string
The destination country of the payment, in ISO-3166 alpha-2 format. May be an empty string where the order has no single destination country.Allowable values: 2 characters, or an empty string
number
The amount to be settled.Allowable values: A valid number
string
The currency of the amount to be settled, in ISO-4217 format.Allowable values: 3 characters
string
The ID of the quote the order was booked against.Allowable values: A valid quoteRequestId
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: OrderModified

FeeCreated

A fee was created, either against a trade or standalone. The sample below is a fee charged against a trade. A standalone fee, such as one for receiving an inbound credit, carries the same shape with a null parentOrderId.
string
The ID of the account.Allowable values: A valid accountId
string
The ID of the fee order, which is not the ID of the trade the fee relates to. Where the fee was charged against a trade, it is that trade’s orderId with -Fee appended, and parentOrderId carries the unsuffixed ID. FeeCreated and FeeCompleted carry the same value for the same fee, so you can pair them on it.Allowable values: A valid fee orderId. Longer than a trade orderId where it carries the -Fee suffix
string
The currency of the fee, in ISO-4217 format.Allowable values: 3 characters
The box transaction ID of the inbound credit that caused the fee, where the fee was generated by one. Omitted on fees not raised against an inbound credit, which is the majority, so check for the presence of the key rather than testing it against null.Allowable values: A valid number, or the key is absent
string
The settlement date of the fee order, in ISO 8601 format. Despite the name, this is not the time the fee was created, and on FeeCompleted it is not the time the fee was paid: both events carry the same settlement date, which can be weeks after the fee was raised. These events carry no creation or payment timestamp.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
number
The amount of the fee.Allowable values: A valid number (=>0)
string
The reference of the fee. This is set by Equals.Allowable values: A valid string
string
The ID of the order this fee was charged against, if any. null for a standalone fee with no parent order, such as a fee for receiving an inbound credit.Allowable values: A valid orderId (12 characters), or null
string
The ID of the payment this fee was charged for, if the fee relates to a specific payment rather than to the order as a whole. null otherwise.Allowable values: A valid paymentId, or null
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: FeeCreated

FeeCompleted

A fee has been paid. This is the completion counterpart to FeeCreated, and carries the same fields, so you can pair a fee’s creation and completion on orderId.
string
The ID of the account.Allowable values: A valid accountId
string
The ID of the fee order, which is not the ID of the trade the fee relates to. Where the fee was charged against a trade, it is that trade’s orderId with -Fee appended, and parentOrderId carries the unsuffixed ID. FeeCreated and FeeCompleted carry the same value for the same fee, so you can pair them on it.Allowable values: A valid fee orderId. Longer than a trade orderId where it carries the -Fee suffix
string
The currency of the fee, in ISO-4217 format.Allowable values: 3 characters
The box transaction ID of the inbound credit that caused the fee, where the fee was generated by one. Omitted on fees not raised against an inbound credit, which is the majority, so check for the presence of the key rather than testing it against null.Allowable values: A valid number, or the key is absent
string
The settlement date of the fee order, in ISO 8601 format. Despite the name, this is not the time the fee was created, and on FeeCompleted it is not the time the fee was paid: both events carry the same settlement date, which can be weeks after the fee was raised. These events carry no creation or payment timestamp.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
number
The amount of the fee.Allowable values: A valid number (=>0)
string
The reference of the fee. This is set by Equals.Allowable values: A valid string
string
The ID of the order this fee was charged against, if any. null for a standalone fee with no parent order, such as a fee for receiving an inbound credit.Allowable values: A valid orderId (12 characters), or null
string
The ID of the payment this fee was charged for, if the fee relates to a specific payment rather than to the order as a whole. null otherwise.Allowable values: A valid paymentId, or null
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: FeeCompleted

3DSAuthRequest

3D Secure (3DS) authentication was requested.
string
The ID of the transaction, as assigned by the issuing bank’s Access Control Server (ACS).Allowable values: 36 characters
string
The type of authentication request (AReq).Allowable values: PAYMENT, RECURRING, INSTALLMENT, ADD_CARD, MAINTAIN_CARD, EMV_CARDHOLDER_VERIFICATION
string
The ID of the budget associated with the card that 3DS authentication was requested for.Allowable values: An existing budgetId (≤ 36 characters)
string
The name of the budget.Allowable values: An existing budgetName (≤ 75 characters)
object
Details about the merchant with which the transaction is being made.Allowable values: A valid cardAcceptor object containing the following fields: acquirerBin, country, merchantCategoryCode, merchantId, name
string
The ID of the card.Allowable values: An existing cardId (≤ 36 characters)
string
The token that represents the card.Allowable values: ≤ 36 characters
string
The date and time at which the authentication request was created, in ISO 8601 format.Allowable values: Format: yyyy-MM-ddThh:mm:ss.sssZ
string
The numeric code of the currency used in the transaction, in ISO 4217 format. For example, 826 for GBP.Allowable values: 3 characters
integer
The maximum period of time, in minutes, that the 3DS Requestor will wait for an ACS to provide the results of a decoupled authentication transaction.Allowable values: 1-10080
string
The 3DS protocol version used by the 3DS Requestor.Allowable values: 5-8 characters
string
The card network associated with the authentication request.Allowable values: MASTERCARD, VISA
string
The ID of the person.Allowable values: An existing personId (≤ 36 characters)
string
The status of the authentication request.Allowable values: PENDING, SUCCESS, FAILED
object
Details about the transaction.Allowable values: A valid transaction object containing the following fields: amount, currencyCode, exponent, subType, transactionType
string
The type of 3DS authentication, which describes the action to be taken.Allowable values: authentication.decision, authentication.result, authentication.challenge.out_of_band
string
The token that identifies the user.Allowable values: 36 characters
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: 3DSAuthRequest

CardTransaction

A card transaction has occurred.
string
The ID of the account.Allowable values: A valid accountId
string
The date and time at which the card transaction event was recorded by the Equals platform, in ISO 8601 format without milliseconds.Allowable values: Format: yyyy-MM-ddThh:mm:ssZ
object
Details about the merchant.Allowable values: A valid merchant object containing the following fields: name, id, subMerchantId, address, merchantCategory
object
Details about the transaction.Allowable values: A valid transaction object containing the following fields: transactionGroupId, boxTransactionId, budgetId, budgetName, personId, status, type, localAmount, localAmountCurrency, feeAmount, feeCurrency, exchangeRate, total, createdAt, updatedAt, transactionCreatedAt, transactionCompletedAt, response
string
Details about the card.Allowable values: A valid card object containing the following fields: id, type, name, lastDigits, createdAt, updatedAt
type
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
type
The name of the webhook event type.Allowable values: CardTransaction

CardStateUpdated

A card’s state was changed.
string
The name of the product.Allowable values: An existing productName
string
The ID of the account.Allowable values: An existing accountId
string
The ID of the card.Allowable values: An existing cardId
string
The groupID of the card.Allowable values: An existing cardGroupId
string
The type of the card.Allowable values: An existing cardType
string
The state of the card.Allowable values: A valid state object containing the following fields:ACTIVE REPLACED TERMINATED SUSPENDED UNACTIVATED
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: CardStateUpdated

DigitalWalletTokenTransition

A digital wallet token’s state has changed. This can be either because a digital wallet token has been created, or because an existing token’s state has been updated.
string
The ID of the account associated with the digital wallet token.Allowable values: A valid accountId
string (uuid)
The ID of the card that the digital wallet token represents.Allowable values: An existing cardId (≤ 36 characters)
string
The type of card that the digital wallet token represents.Allowable values: VIRTUAL_PAN, PHYSICAL_MSR, PHYSICAL_COMBO
string
The type of owner that the card belongs to: a budget (BUDGET) or an individual (PEOPLE).Allowable values: BUDGET, PEOPLE
string
The token that represents the digital wallet token’s state, rather than the digital wallet itself.Allowable values: ≤ 36 characters
string
The method through which the digital wallet token transition was initiated.Allowable values: TOKEN_SERVICE_PROVIDER, DIGITAL_WALLET, API, IVR, FRAUD, ADMIN, SYSTEM, TOKEN_SERVICE_PROVIDER_API
string (uuid)
The digital wallet token.Allowable values: A valid digitalWalletToken (≤ 36 characters)
string (uuid)
The newly-updated state of the digital wallet token. For a newly-created digital wallet token, this is set to REQUESTED.Allowable values: REQUESTED, REQUEST_DECLINED, ACTIVE, SUSPENDED, TERMINATED
string
The type of digital wallet token transition that occurred.Allowable values: fulfillment.requested, state.request_declined, state.activated, state.suspended, state.reinstated, state.terminated, card.swap
string
The fulfillment status of the digital wallet token transition.Allowable values: DECISION_RED, DECISION_YELLOW, DECISION_GREEN, REJECTED, PROVISIONED
string
The state of the card. Learn more about card states.Allowable values: ACTIVE, SUSPENDED, TERMINATED, UNACTIVATED, REPLACED
string
The date and time at which the resource was last modified, in ISO 8601 format without milliseconds.Allowable values: yyyy-MM-ddThh:mm:ssZ
string
The ID of the specific webhook event message. We’ll keep retrying to send an event with the same messageId until we receive a 200 response from you.Allowable values: 36 characters
string
The name of the webhook event type.Allowable values: AccountCreated