> ## Documentation Index
> Fetch the complete documentation index at: https://docs.equalsmoney.com/llms.txt
> Use this file to discover all available pages before exploring further.

# About webhook event types

> View the payload structures of the webhook event types that are currently supported by the Equals API.

## AccountCreated

An account has been created and all KYC checks have been successfully completed. This is the first event received during the onboarding process.

<Info>
  This is a legacy notification.
</Info>

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "F12345",
      "correlationId": "123456789",
      "eventTime": "2023-05-31T15:59:17.613Z",
      "status": "applicationPending",
      "type": "Business",
      "messageId": "0473b4d0-2f69-4bc5-ab7b-94589a4e48ba",
      "webhookEventTypeName": "AccountCreated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "correlationId": "string",
      "eventTime": "string",
      "status": "string",
      "type": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the newly-created account.

  Allowable values: A valid `accountId`
</ParamField>

<ParamField body="correlationId" type="string">
  The ID that represents the link between the asynchronous request made to onboard an account and the webhook.

  Allowable values: A valid string
</ParamField>

<ParamField body="eventTime" type="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`
</ParamField>

<ParamField body="status" type="string">
  The status of the account.

  Allowable values: `applicationPending`
</ParamField>

<ParamField body="type" type="string">
  The type of account.

  Allowable values: `Business`, `Personal`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `AccountCreated`
</ParamField>

## 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.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "correlationId": "4333f2ef-8f1a-4b9e-92d8-42a00689883b",
      "createdAt": "2023-01-30T08:30:00Z",
      "details": {
        "countryOfRegistration": "United Kingdom",
        "fourthLine": "ACME",
        "name": "ACME",
        "timezone": "Europe/London"
      },
      "id": "F12345",
      "marketId": "e644ba77-7cb5-419b-8bea-57240e8ae21d",
      "primaryOwnerPersonaId": "e1a0720b-b78a-4b6b-a18d-e9e7d5a52bb0",
      "productId": "3135d763-551c-4289-b002-ea812bbd0d71",
      "settlementDetails": [
        {
          "currency": "GBP",
          "sortCode": "23-18-84",
          "accountNumber": "53448377",
          "ibans": [
            {
              "iban": "GB33SPPV23188453448377",
              "bic": "SPPVGB2LXXX"
            }
          ],
          "accountName": "William Walker",
          "bankName": "Brilliant Bank",
          "bankAddress": "41 Middle Street\nEnfield\nEN1 3JY\nUnited Kingdom",
          "balanceReference": null
        },
        {
          "currency": "EUR",
          "ibans": [
            {
              "iban": "GB33SPPV23188453448377",
              "bic": "SPPVGB2LXXX"
              }
          ],
          "accountName": "William Walker",
          "bankName": "Brilliant Bank",
          "bankAddress": "41 Middle Street\nEnfield\nEN1 3JY\nUnited Kingdom",
          "balanceReference": null
        },
        {
          "currency": "USD",
          "ibans": [
            {
              "iban": "GB33SPPV23188453448377",
              "bic": "SPPVGB2LXXX"
            }
          ],
          "accountName": "William Walker",
          "bankName": "Brilliant Bank",
          "bankAddress": "41 Middle Street\nEnfield\nEN1 3JY\nUnited Kingdom",
          "balanceReference": null
        }
      ],
      "status": "active",
      "type": "Business",
      "updatedAt": "2023-01-30T08:30:00Z",
      "messageId": "dbf14241-0ea2-41c3-8931-3cf064170118",
      "webhookEventTypeName": "AccountActivated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "correlationId": "string",
      "createdAt": "string",
      "details": {
        "countryOfRegistration": "string",
        "fourthLine": "string",
        "name": "string",
        "timezone": "string"
      },
      "id": "string",
      "marketId": "string",
      "primaryOwnerPersonaId": "string",
      "productId": "string",
      "settlementDetails": [
        {
          "currency": "string",
          "sortCode": "string",
          "accountNumber": "string",
          "ibans": [
            {
              "iban": "string",
              "bic": "string"
            }
          ],
          "accountName": "string",
          "bankName": "string",
          "bankAddress": "string",
          "balanceReference": "string"
        },
        {
          "currency": "string",
          "ibans": [
            {
              "iban": "string",
              "bic": "string"
              }
          ],
          "accountName": "string",
          "bankName": "string",
          "bankAddress": "string",
          "balanceReference": "string"
        },
        {
          "currency": "string",
          "ibans": [
            {
              "iban": "string",
              "bic": "string"
            }
          ],
          "accountName": "string",
          "bankName": "string",
          "bankAddress": "string",
          "balanceReference": "string"
        }
      ],
      "status": "string",
      "type": "string",
      "updatedAt": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="correlationId" type="string">
  The ID that represents the link between the asynchronous request made to onboard an account and the webhook.

  Allowable values: A valid string
</ParamField>

<ParamField body="createdAt" type="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`
</ParamField>

<ParamField body="details" type="object">
  Details about the account.

  Allowable values: A valid `details` object containing the following fields: `countryOfRegistration`, `fourthLine`, `name`, `timezone`

  <Expandable title="details properties">
    <ParamField body="details.countryOfRegistration" type="string">
      The country that the account was registered in.

      Allowable values: ≤ 256 characters
    </ParamField>

    <ParamField body="details.fourthLine" type="string">
      The line that appears below the name on the payment card. For example, `Equals`. This is only for business accounts.

      Allowable values: ≤ 21 characters
    </ParamField>

    <ParamField body="details.name" type="string">
      The name of the account.

      Allowable values: ≤ 256 characters
    </ParamField>

    <ParamField body="details.timezone" type="string">
      The account's timezone.

      Allowable values: ≤ 256 characters
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="id" type="string">
  The ID of the account.

  Allowable values: A valid `accountId`
</ParamField>

<ParamField body="marketId" type="string">
  The ID of the market that the account is in.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="primaryOwnerPersonaID" type="string">
  The persona ID of the account's Primary Owner.

  Allowable values: A valid `personaId` (≤ 36 characters)
</ParamField>

<ParamField body="productId" type="string">
  The ID of the product.

  Allowable values: A valid `productId` (≤ 36 characters)
</ParamField>

<ParamField body="status" type="string">
  The status of the account.

  Allowable values: `active`
</ParamField>

<ParamField body="type" type="string">
  The type of account.

  Allowable values: `Business`, `Personal`
</ParamField>

<ParamField body="settlementDetails" type="object">
  The account's settlement details.

  Allowable values: A valid `settlementDetails` object containing the following fields: `currency`, `sortCode`, `accountNumber`, `ibans`, `accountName`, `bankName`, `bankAddress`, `balanceReference`
</ParamField>

<ParamField body="currency" type="string">
  The currency of the bank account, in ISO 4217 format.

  Allowable values: 3 characters
</ParamField>

<ParamField body="sortCode" type="string">
  The sort code. This is only present for GBP budgets.

  Allowable values: ≤ 32 characters
</ParamField>

<ParamField body="accountNumber" type="string">
  The account number. This is only present for GBP budgets.

  Allowable values: ≤ 34 characters
</ParamField>

<ParamField body="ibans" type="string">
  Details about the IBAN and BIC.

  Allowable values: A valid `ibans` object containing the following fields: `iban`, `bic`
</ParamField>

<ParamField body="ibans.iban" type="string">
  The International Bank Account Number (IBAN).

  Allowable values: ≤ 100 characters
</ParamField>

<ParamField body="ibans.bic" type="string">
  The Bank Identifier Code (BIC).

  Allowable values: `^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?`
</ParamField>

<ParamField body="accountName" type="string">
  The name of the bank account.

  Allowable values: A valid string
</ParamField>

<ParamField body="bankName" type="string">
  The name of the bank that the bank account is held with.

  Allowable values: A valid string
</ParamField>

<ParamField body="bankAddress" type="string">
  The address of the bank that the bank account is held with.

  Allowable values: A valid string
</ParamField>

<ParamField body="balanceReference" type="string or null">
  The balance reference.

  Allowable values: A valid string
</ParamField>

<ParamField body="updatedAt" type="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`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `AccountActivated`
</ParamField>

## PersonCreated

This is event is received when a new person has been created.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "F12345",
      "id": "288cf796-c1ad-4ffd-9eb9-af210bff0ea0",
      "firstName": "Sally",
      "lastName": "Smith",
      "primaryEmailAddress": "sally.smith@example.com",
      "primaryMobileNumber": "+447572841215",
      "roleName": "Viewer",
      "messageId": "0473b4d0-2f69-4bc5-ab7b-94589a4e48ba",
      "webhookEventTypeName": "PersonCreated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "id": "string",
      "firstName": "string",
      "lastName": "string",
      "primaryEmailAddress": "string",
      "primaryMobileNumber": "string",
      "roleName": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the newly-created account.

  Allowable values: A valid `accountId`
</ParamField>

<ParamField body="id" type="string">
  The ID of the person.

  Allowable values: A valid string
</ParamField>

<ParamField body="firstName" type="string">
  The first name of the person created.

  Allowable values: A valid string
</ParamField>

<ParamField body="lastName" type="string">
  The last name of the person created.

  Allowable values: A valid string
</ParamField>

<ParamField body="primaryEmailAddress" type="string">
  The primary email address of the person created.

  Allowable values: A valid string
</ParamField>

<ParamField body="primaryMobileNumber" type="string">
  The primary mobile number of the person created.

  Allowable values: A valid string
</ParamField>

<ParamField body="roleName" type="string">
  The role of the person.

  Allowable values: `Owner` `Admin` `Viewer` `Accountant` `Balance admin` `Balance payer` `Balance user`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `PersonCreated`
</ParamField>

## IdentityVerificationRequest <span class="new-badge" />

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.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "applicationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "associatedPersonId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "name": "William Walker",
      "email": "william@example.com",
      "actionUrl": "https://verify.example.com/session/abc123",
      "eventTime": "2026-03-02T10:45:00.000Z",
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "IdentityVerificationRequest"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "applicationId": "string",
      "associatedPersonId": "string | null",
      "name": "string",
      "email": "string",
      "actionUrl": "string",
      "eventTime": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="applicationId" type="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
</ParamField>

<ParamField body="associatedPersonId" type="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`
</ParamField>

<ParamField body="name" type="string">
  Full name of the applicant who needs to complete identity verification.

  Allowable values: An existing `name`
</ParamField>

<ParamField body="email" type="string">
  Email address of the applicant who needs to complete identity verification.

  Allowable values: An existing `email`
</ParamField>

<ParamField body="actionUrl" type="string">
  The URL for the applicant to complete their identity verification session.

  Allowable values: A valid URL
</ParamField>

<ParamField body="eventTime" type="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`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `IdentityVerificationRequest`
</ParamField>

## IdentityVerificationStatusUpdated <span class="new-badge" />

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.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "applicationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "correlationId": "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
      "name": "William Walker",
      "email": "william@example.com",
      "status": "completed",
      "result": "approved",
      "eventTime": "2026-06-11T10:00:00.000Z",
      "messageId": "dbf14241-0ea2-41c3-8931-3cf064170118",
      "webhookEventTypeName": "IdentityVerificationStatusUpdated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "applicationId": "string",
      "associatedPersonId": "string",
      "correlationId": "string",
      "name": "string",
      "email": "string",
      "status": "string",
      "result": "string",
      "eventTime": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

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.

<ParamField body="applicationId" type="string">
  The ID of the personal onboarding application whose verification status changed. Present instead of `associatedPersonId` for personal applications.

  Allowable values: A valid UUID
</ParamField>

<ParamField body="associatedPersonId" type="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
</ParamField>

<ParamField body="correlationId" type="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](/pages/accounts/track-guided-id-status) endpoint.

  Allowable values: A valid UUID
</ParamField>

<ParamField body="name" type="string">
  Full name of the person completing identity verification.

  Allowable values: An existing `name`
</ParamField>

<ParamField body="email" type="string">
  Email address of the person completing identity verification.

  Allowable values: An existing `email`
</ParamField>

<ParamField body="status" type="string">
  The current status of the identity verification session.

  Allowable values: `to_be_completed`, `in_progress`, `completed`
</ParamField>

<ParamField body="result" type="string">
  The outcome of the verification. Only present when `status` is `completed`; omitted otherwise.

  Allowable values: `approved`, `declined`, `resubmission_requested`
</ParamField>

<ParamField body="eventTime" type="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`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `IdentityVerificationStatusUpdated`
</ParamField>

## KycInformationRequest <span class="deprecated-badge" />

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.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "name": "William Walker",
      "email": "william@example.com",
      "requiredInformation": "PROOF_OF_ADDRESS",
      "additionalInformation": "Additional information about the document requested",
      "applicationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "eventTime": "2023-05-31T15:59:17.613Z",
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "KycInformationRequest"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "name": "string",
      "email": "string",
      "requiredInformation": "string",
      "additionalInformation": "string",
      "applicationId": "string",
      "correlationId": "string",
      "eventTime": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="name" type="string">
  The name of the account.

  Allowable values: An existing `name`
</ParamField>

<ParamField body="email" type="string">
  The email of the account.

  Allowable values: An existing `email`
</ParamField>

<ParamField body="requiredInformation" type="string">
  The type of document that is required for the KYC process.

  Allowable values: `PROOF_OF_ADDRESS`, `PROOF_OF_IDENTITY`, `BANK_STATEMENT`
</ParamField>

<ParamField body="additionalInformation" type="string">
  Additional information about the document requested.

  Allowable values: ≤ 255 characters
</ParamField>

<ParamField body="applicationId" type="string">
  The ID of the onboarding application this webhook relates to.

  Allowable values: A valid string
</ParamField>

<ParamField body="correlationId" type="string">
  <span class="deprecated-badge" /> 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
</ParamField>

<ParamField body="eventTime" type="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`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `KycInformationRequest`
</ParamField>

## KybInformationRequest <span class="deprecated-badge" />

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.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "registeredName": "Acme Trading Ltd",
      "tradingNames": ["Acme Trading"],
      "applicant": {
        "id": "167fbb77-2866-4cdf-9afc-6ff275b173d1",
        "emailAddress": "janesmith@acme.co.uk",
        "name": "Jane Smith"
      },
      "requiredInformation": ["PROOF_OF_ADDRESS"],
      "associatedPeople": [
        {
          "id": "167fbb77-2866-4cdf-9afc-6ff275b173d1",
          "name": "Jane Smith",
          "requiredInformation": ["PROOF_OF_IDENTITY", "PROOF_OF_ADDRESS"]
        },
        {
          "id": "d6bb0f3c-1197-4f6a-b38b-44e89c0dfa4d",
          "name": "Bob Johnson",
          "requiredInformation": ["PROOF_OF_IDENTITY"]
        }
      ],
      "additionalInformation": "Please upload documents for all associated people",
      "applicationId": "abc-123",
      "eventTime": "2024-01-01T00:00:00.000Z",
      "messageId": "a3741526-bcb3-4128-a1a9-286be8a03626",
      "webhookEventTypeName": "KybInformationRequest"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "registeredName": "string",
      "tradingNames": "array of strings",
      "applicant": {
        "id": "string",
        "emailAddress": "string",
        "name": "string"
      },
      "requiredInformation": "array of strings",
      "associatedPeople": [
        {
          "id": "string",
          "name": "string",
          "requiredInformation": "array of strings"
        }
      ],
      "additionalInformation": "string",
      "applicationId": "string",
      "eventTime": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="registeredName" type="string">
  The registered name of the business.

  Allowable values: A valid string
</ParamField>

<ParamField body="tradingNames" type="array of strings">
  The trading names of the business.

  Allowable values: An array of valid strings
</ParamField>

<ParamField body="applicant" type="object">
  The person who submitted the business onboarding application.
</ParamField>

<ParamField body="applicant.id" type="string">
  The ID of the applicant.

  Allowable values: A valid string
</ParamField>

<ParamField body="applicant.emailAddress" type="string">
  The email address of the applicant.

  Allowable values: A valid email address
</ParamField>

<ParamField body="applicant.name" type="string">
  The full name of the applicant.

  Allowable values: A valid string
</ParamField>

<ParamField body="requiredInformation" type="array of strings">
  The types of documents required for the business.

  Allowable values: `PROOF_OF_ADDRESS`, `PROOF_OF_IDENTITY`, `BANK_STATEMENT`
</ParamField>

<ParamField body="associatedPeople" type="array of objects">
  The directors, beneficial owners, or other individuals associated with the business who require additional documentation.
</ParamField>

<ParamField body="associatedPeople[].id" type="string">
  The ID of the associated person.

  Allowable values: A valid string
</ParamField>

<ParamField body="associatedPeople[].name" type="string">
  The full name of the associated person.

  Allowable values: A valid string
</ParamField>

<ParamField body="associatedPeople[].requiredInformation" type="array of strings">
  The types of documents required for this associated person.

  Allowable values: `PROOF_OF_ADDRESS`, `PROOF_OF_IDENTITY`, `BANK_STATEMENT`
</ParamField>

<ParamField body="additionalInformation" type="string">
  Additional information about the documents requested.

  Allowable values: ≤ 255 characters
</ParamField>

<ParamField body="applicationId" type="string">
  The ID of the onboarding application this webhook relates to.

  Allowable values: A valid string
</ParamField>

<ParamField body="eventTime" type="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`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `KybInformationRequest`
</ParamField>

## KycInformationRequested <span class="new-badge" />

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`.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
      "applicationId": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
      "name": "Jane Smith",
      "email": "j.smith@example.com",
      "requiredInformation": [
        { "expectedResponseType": "file", "code": "PROOF_OF_ADDRESS" },
        { "expectedResponseType": "text", "code": "PROOF_OF_FUNDS" }
      ],
      "additionalInformation": "Please provide these documents urgently",
      "eventTime": "2026-03-09T11:30:00.000Z",
      "messageId": "dbf14241-0ea2-41c3-8931-3cf064170118",
      "webhookEventTypeName": "KycInformationRequested"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "id": "string",
      "applicationId": "string",
      "name": "string",
      "email": "string",
      "requiredInformation": [
        { "expectedResponseType": "string", "code": "string" }
      ],
      "additionalInformation": "string or null",
      "eventTime": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="id" type="string">
  The information request identifier.

  Allowable values: A valid UUID
</ParamField>

<ParamField body="applicationId" type="string">
  The ID of the onboarding application this webhook relates to.

  Allowable values: A valid UUID
</ParamField>

<ParamField body="name" type="string">
  The applicant's full name.

  Allowable values: An existing `name`
</ParamField>

<ParamField body="email" type="string">
  The applicant's email address.

  Allowable values: An existing `email`
</ParamField>

<ParamField body="requiredInformation" type="array">
  Items requested from the applicant. Each item specifies what type of response is expected.
</ParamField>

<ParamField body="requiredInformation[].expectedResponseType" type="string">
  The type of response expected for this item.

  Allowable values: `file`, `text`, `boolean`, `date`
</ParamField>

<ParamField body="requiredInformation[].code" type="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`)
</ParamField>

<ParamField body="additionalInformation" type="string or null">
  Free-text context from the onboarding agent providing additional instructions.

  Allowable values: A string or `null`
</ParamField>

<ParamField body="eventTime" type="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`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `KycInformationRequested`
</ParamField>

## KybInformationRequested <span class="new-badge" />

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.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
      "applicationId": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
      "registeredName": "Acme Ltd",
      "tradingNames": ["Acme"],
      "applicant": {
        "id": "b63ea5d6-1234-5678-90ab-cdef12345678",
        "firstName": "Jane",
        "lastName": "Smith",
        "emailAddress": "j.smith@example.com"
      },
      "requiredInformation": [
        { "expectedResponseType": "file", "code": "PROOF_OF_FORMATION" },
        { "expectedResponseType": "text", "code": "PROOF_OF_FINANCES" }
      ],
      "associatedPeople": [
        {
          "id": "c74fb5e7-2345-6789-01bc-def123456789",
          "requiredInformation": [
            { "expectedResponseType": "file", "code": "PROOF_OF_IDENTITY" }
          ]
        }
      ],
      "additionalInformation": "Please provide these documents urgently",
      "eventTime": "2026-03-09T11:30:00.000Z",
      "messageId": "dbf14241-0ea2-41c3-8931-3cf064170118",
      "webhookEventTypeName": "KybInformationRequested"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "id": "string",
      "applicationId": "string",
      "registeredName": "string",
      "tradingNames": ["string"],
      "applicant": {
        "id": "string",
        "firstName": "string",
        "lastName": "string",
        "emailAddress": "string"
      },
      "requiredInformation": [
        { "expectedResponseType": "string", "code": "string" }
      ],
      "associatedPeople": [
        {
          "id": "string",
          "requiredInformation": [
            { "expectedResponseType": "string", "code": "string" }
          ]
        }
      ],
      "additionalInformation": "string or null",
      "eventTime": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="id" type="string">
  The information request identifier.

  Allowable values: A valid UUID
</ParamField>

<ParamField body="applicationId" type="string">
  The ID of the onboarding application this webhook relates to.

  Allowable values: A valid UUID
</ParamField>

<ParamField body="registeredName" type="string">
  The registered name of the business.

  Allowable values: An existing `registeredName`
</ParamField>

<ParamField body="tradingNames" type="array">
  The trading names of the business.

  Allowable values: An array of strings
</ParamField>

<ParamField body="applicant" type="object">
  The person who submitted the business onboarding application.
</ParamField>

<ParamField body="applicant.id" type="string">
  The applicant's unique identifier.

  Allowable values: A valid UUID
</ParamField>

<ParamField body="applicant.firstName" type="string">
  The applicant's first name.

  Allowable values: An existing `firstName`
</ParamField>

<ParamField body="applicant.lastName" type="string">
  The applicant's last name.

  Allowable values: An existing `lastName`
</ParamField>

<ParamField body="applicant.emailAddress" type="string">
  The applicant's email address.

  Allowable values: An existing `emailAddress`
</ParamField>

<ParamField body="requiredInformation" type="array">
  Items requested at the business level. Each item specifies what type of response is expected.
</ParamField>

<ParamField body="requiredInformation[].expectedResponseType" type="string">
  The type of response expected for this item.

  Allowable values: `file`, `text`, `boolean`, `date`
</ParamField>

<ParamField body="requiredInformation[].code" type="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`)
</ParamField>

<ParamField body="associatedPeople" type="array">
  Per-person information requests. Each entry contains the person's identifier and their required information items.
</ParamField>

<ParamField body="associatedPeople[].id" type="string">
  The associated person's unique identifier.

  Allowable values: A valid UUID
</ParamField>

<ParamField body="associatedPeople[].requiredInformation" type="array">
  Items requested for this specific associated person.
</ParamField>

<ParamField body="additionalInformation" type="string or null">
  Free-text context from the onboarding agent providing additional instructions.

  Allowable values: A string or `null`
</ParamField>

<ParamField body="eventTime" type="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`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `KybInformationRequested`
</ParamField>

## KycUpdate <span class="deprecated-badge" />

When identity verification is required, the `actionUrl` field contains a link to a Guided identity verification (Guided ID) check for the applicant to complete.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "name": "William Walker",
      "email": "william@example.com",
      "accountId": "F12345",
      "status": "PENDING",
      "requiredAction": "identityVerificationCheck",
      "actionUrl":"i132r34t.com",
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "KycUpdate"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "name": "string",
      "email": "string",
      "accountId": "string",
      "status": "string",
      "requiredAction": "string",
      "actionUrl": "string or null",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="name" type="string">
  The name of the account.

  Allowable values: An existing `name`
</ParamField>

<ParamField body="email" type="string">
  The email of the account.

  Allowable values: An existing `email`
</ParamField>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="status" type="string">
  The status of the journey.

  Allowable values: `PENDING`, `DECLINED`, `COMPLETED`
</ParamField>

<ParamField body="requiredAction" type="string">
  The action required to progress application.

  Allowable values: `uploadProofOfAddress`, `identityVerificationCheck`, `notApplicable`
</ParamField>

<ParamField body="actionUrl" type="string or null">
  The URL for the corresponding `requiredAction`. Returns `null` when no action is required.

  Allowable values: A valid URL string or `null`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `KycUpdate`
</ParamField>

## ApplicationStatusUpdated <span class="new-badge" />

The outcome of an onboarding application has been determined. This event fires for both approved and declined applications.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "applicationId": "7b3e4d2a-1f5c-4a8b-9e6d-0c2f8a7b3e4d",
      "name": "John Doe",
      "decision": "approved",
      "messageId": "dbf14241-0ea2-41c3-8931-3cf064170118",
      "webhookEventTypeName": "ApplicationStatusUpdated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "applicationId": "string",
      "name": "string",
      "decision": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="applicationId" type="string">
  The ID of the onboarding application this webhook relates to.

  Allowable values: A valid string
</ParamField>

<ParamField body="name" type="string">
  The full name of the applicant.

  Allowable values: A valid string
</ParamField>

<ParamField body="decision" type="string">
  The outcome of the application.

  Allowable values: `approved`, `declined`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `ApplicationStatusUpdated`
</ParamField>

## AccountStatusUpdated

An account's status has been updated.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "F12345",
      "status": "active",
      "eventTime": "2023-05-31T15:59:17.613Z",
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "AccountStatusUpdated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "status": "string",
      "eventTime": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="status" type="string">
  The new status of the account.

  Allowable values: `applicationPending`, `active`, `inactive`, `customerClosed`, `equalsFullClosed`, `equalsReadonlyClosed`, `identityVerificationRequired`, `restricted`
</ParamField>

<ParamField body="eventTime" type="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`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `AccountStatusUpdated`
</ParamField>

## RecipientCreated

A recipient was created.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "e644ba77-7cb5-419b-8bea-57240e8ae21d",
      "isIban": "true",
      "isNcc": "false",
      "isSwift": "false",
      "name": "Jane Doe",
      "reasonForTransfer": "Payment",
      "recipientBankCountry": "GB",
      "recipientBankCurrency": "GBP",
      "recipientCity": "London",
      "recipientCountry": "United Kingdom",
      "uniqueId": "4333f2ef-8f1a-4b9e-92d8-42a00689883b",
      "messageId": "9e4f387d-a60c-45f0-b38b-37a5ceefd43f",
      "webhookEventTypeName": "RecipientCreated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "isIban": boolean,
      "isNcc": boolean,
      "isSwift": boolean,
      "name": "string",
      "reasonForTransfer": "string",
      "recipientBankCountry": "string",
      "recipientBankCurrency": "string",
      "recipientCity": "string",
      "recipientCountry": "string",
      "uniqueId": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="isIban" type="boolean">
  Whether or not the banking information provided for the recipient was an International Bank Account Number (IBAN).

  Allowable values: `true`, `false`
</ParamField>

<ParamField body="isNcc" type="boolean">
  Whether or not the banking information provided for the recipient was a National Clearing Code (NCC).

  Allowable values: `true`, `false`
</ParamField>

<ParamField body="isSwift" type="boolean">
  Whether or not the banking information provided for the recipient was a SWIFT account.

  Allowable values: `true`, `false`
</ParamField>

<ParamField body="name" type="string">
  The name of the recipient.

  Allowable values: ≤ 256 characters
</ParamField>

<ParamField body="reasonForTransfer" type="string">
  The reason for the transfer.

  Allowable values: ≤ 256 characters
</ParamField>

<ParamField body="recipientBankCountry" type="string">
  The country of the recipient's bank, in ISO 3166-1 format.

  Allowable values: ≤ 2 characters
</ParamField>

<ParamField body="recipientBankCurrency" type="string">
  The currency of the recipient's bank account, in ISO 4217 format.

  Allowable values: 3 characters
</ParamField>

<ParamField body="recipientCity" type="string">
  The city of the recipient.

  Allowable values: ≤ 256 characters
</ParamField>

<ParamField body="recipientCountry" type="string">
  The country of the recipient.

  Allowable values: `^[A-Z]{2}$`
</ParamField>

<ParamField body="uniqueId" type="string">
  The ID of the newly-created recipient. This is also known as the `recipientId`.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `RecipientCreated`
</ParamField>

## RecipientDeleted

A recipient was deleted.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "F12345",
      "uniqueId": "dbf14241-0ea2-41c3-8931-3cf064170118",
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "RecipientDeleted"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "uniqueId": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="uniqueId" type="string">
  The ID of the recipient that was deleted.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `RecipientDeleted`
</ParamField>

## 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.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "paymentBatchId": "37843e37-9d90-4c6d-baaf-45b3b190e39c",
      "accountId": "F12345",
      "ordersSummary": {
        "numberOfOrders": 0,
        "uniqueCurrencyCodes": [
          "USD"
        ]
      },
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "PaymentBatchCreated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "paymentBatchId": "string",
      "accountId": "string",
      "ordersSummary": {
        "numberOfOrders": number,
        "uniqueCurrencyCodes": [
          "string"
        ]
      },
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="paymentBatchId" type="string">
  The ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="ordersSummary" type="object">
  Object containing the number of orders, and their unique currency codes.
</ParamField>

<ParamField body="ordersSummary.numberOfOrders" type="number">
  The number of orders in the payment batch that was created.

  Allowable values: A valid number
</ParamField>

<ParamField body="ordersSummary.uniqueCurrencyCodes" type="array">
  The unique currency codes of the orders in the payment batch that was created.

  Allowable values: Valid `uniqueCurrencyCodes`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `PaymentBatchCreated`
</ParamField>

## PaymentBatchCancelled

The payment batch has been cancelled.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "paymentBatchId": "37843e37-9d90-4c6d-baaf-45b3b190e39c",
      "accountId": "F12345",
      "ordersSummary": {
        "numberOfOrders": 0,
        "uniqueCurrencyCodes": [
          "USD"
        ]
      },
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "PaymentBatchCancelled"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "paymentBatchId": "string",
      "accountId": "string",
      "ordersSummary": {
        "numberOfOrders": number,
        "uniqueCurrencyCodes": [
          "string"
        ]
      },
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="paymentBatchId" type="string">
  The ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="ordersSummary" type="object">
  Object containing the number of orders, and their unique currency codes.
</ParamField>

<ParamField body="ordersSummary.numberOfOrders" type="number">
  The number of orders in the payment batch that was created.

  Allowable values: A valid number
</ParamField>

<ParamField body="ordersSummary.uniqueCurrencyCodes" type="array">
  The unique currency codes of the orders in the payment batch that was created.

  Allowable values: Valid `uniqueCurrencyCodes`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `PaymentBatchCancelled`
</ParamField>

## 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-reference/payment-batches/list-payment-batch-payments) API.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "paymentBatchId": "37843e37-9d90-4c6d-baaf-45b3b190e39c",
      "accountId": "F12345",
      "ordersSummary": {
        "numberOfOrders": 0,
        "uniqueCurrencyCodes": [
          "GBP"
        ]
      },
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "PaymentBatchValidationError"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "paymentBatchId": "string",
      "accountId": "string",
      "ordersSummary": {
        "numberOfOrders": number,
        "uniqueCurrencyCodes": [
          "string"
        ]
      },
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="paymentBatchId" type="string">
  The ID of the payment batch that failed validation.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="ordersSummary" type="object">
  Object containing the number of orders, and their unique currency codes.
</ParamField>

<ParamField body="ordersSummary.numberOfOrders" type="number">
  The number of orders in the payment batch.

  Allowable values: A valid number
</ParamField>

<ParamField body="ordersSummary.uniqueCurrencyCodes" type="array">
  The unique currency codes of the orders in the payment batch.

  Allowable values: Valid `uniqueCurrencyCodes`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `PaymentBatchValidationError`
</ParamField>

## PaymentBatchProcessing

The payment batch has been confirmed, or the scheduled date has been reached.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "paymentBatchId": "37843e37-9d90-4c6d-baaf-45b3b190e39c",
      "accountId": "F12345",
      "ordersSummary": {
        "numberOfOrders": 0,
        "uniqueCurrencyCodes": [
          "USD"
        ]
      },
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "PaymentBatchProcessing"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "paymentBatchId": "string",
      "accountId": "string",
      "ordersSummary": {
        "numberOfOrders": number,
        "uniqueCurrencyCodes": [
          "string"
        ]
      },
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="paymentBatchId" type="string">
  The ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="ordersSummary" type="object">
  Object containing the number of orders, and their unique currency codes.
</ParamField>

<ParamField body="ordersSummary.numberOfOrders" type="number">
  The number of orders in the payment batch that was created.

  Allowable values: A valid number
</ParamField>

<ParamField body="ordersSummary.uniqueCurrencyCodes" type="array">
  The unique currency codes of the orders in the payment batch that was created.

  Allowable values: Valid `uniqueCurrencyCodes`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `PaymentBatchProcessing`
</ParamField>

## PaymentBatchCompleted

The payment batch has completed, and all payments within the batch have reached a final status.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "paymentBatchId": "37843e37-9d90-4c6d-baaf-45b3b190e39c",
      "accountId": "F12345",
      "ordersSummary": {
        "numberOfOrders": 0,
        "uniqueCurrencyCodes": [
          "USD"
        ]
      },
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "PaymentBatchCompleted"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "paymentBatchId": "string",
      "accountId": "string",
      "ordersSummary": {
        "numberOfOrders": number,
        "uniqueCurrencyCodes": [
          "string"
        ]
      },
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="paymentBatchId" type="string">
  The ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="ordersSummary" type="array">
  Object containing the number of orders, and their unique currency codes.
</ParamField>

<ParamField body="ordersSummary.numberOfOrders" type="number">
  The number of orders in the payment batch that was created.

  Allowable values: A valid number
</ParamField>

<ParamField body="ordersSummary.uniqueCurrencyCodes" type="array">
  The unique currency codes of the orders in the payment batch that was created.

  Allowable values: Valid `uniqueCurrencyCodes`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `PaymentBatchCompleted`
</ParamField>

## PaymentCreated

The payments have passed the initial checks, and no additional information is needed to proceed with the payout.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "paymentBatchId": "37843e37-9d90-4c6d-baaf-45b3b190e39c",
      "accountId": "F12345",
      "amount": "100",
      "currencyCode": "GBP",
      "recipient": {
        "id": "123",
        "externalReference": "string",
        "type": "individual",
        "name": "John Frank",
        "displayName": "Electrician",
        "subscribedEmails": [
          {
            "name": "string",
            "email": "user@example.com"
          }
        ],
        "verificationMethod": "sms_otp",
        "address": {
          "addressType": "ADDR",
          "streetName": "Churchill Place",
          "buildingNumber": "7",
          "buildingName": "Abram",
          "postcode": "SW1A 1AA",
          "city": "London",
          "region": "string",
          "countryCode": "GB"
        },
        "bankDetails": {
          "accountIdentifier": "5555555",
          "bankIdentifier": "123456",
          "intermediaryBankIdentifier": "QBLCCCCV",
          "method": "string",
          "bankCountryCode": "GB"
        }
      },
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "PaymentCreated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "paymentBatchId": "string",
      "accountId": "string",
      "amount": "string",
      "currencyCode": "string",
      "recipient": {
        "id": "string",
        "externalReference": "string",
        "type": "string",
        "name": "string", 
        "displayName": "string", 
        "subscribedEmails": [
          {
            "name": "string",
            "email": "string"
          }
        ],
        "verificationMethod": "string",
        "address": {
          "addressType": "string",
          "streetName": "string",
          "buildingNumber": "string",
          "buildingName": "string",
          "postcode": "string",
          "city": "string",
          "region": "string",
          "countryCode": "string"
        },
        "bankDetails": {
          "accountIdentifier": "string",
          "bankIdentifier": "string",
          "intermediaryBankIdentifier": "string",
          "method": "string",
          "bankCountryCode": "string"
        }
      },
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="paymentBatchId" type="string">
  The ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="amount" type="number" required>
  The payment amount. Example: `100`
</ParamField>

<ParamField body="currencyCode" type="string" required>
  The currency code of which the recipient will receive payments in, ISO-4217 format. Example: `EUR`
</ParamField>

<ParamField body="recipient" type="object" required>
  object containing the recipient details such as `id`, `externalReference`, `type`, `name`, `displayName`, `subscribedEmails`
</ParamField>

<ParamField body="recipient.id" type="string" required>
  The ID of the recipient. Example: `8lqccfgmo`
</ParamField>

<ParamField body="recipient.type" type="string" required>
  The type of account, either `individual`,`business` or `charity`.
</ParamField>

<ParamField body="recipient.name" type="string" required>
  The name of the recipient. Example: `John Frank`
</ParamField>

<ParamField body="recipient.displayName" type="string">
  Display name for the payee. Example: `Electrician`
</ParamField>

<ParamField body="subscribedEmails" type="array">
  This defines the Email addresses who will be sent notifications of payments to this recipient. This array requires a name and an email as input.
</ParamField>

<ParamField body="verificationMethod" type="string" required>
  The method used for verifying the recipient.

  Allowable values: `sms_otp`, `phone`, `email`, `biometrics`, `other`
</ParamField>

<ParamField body="address" type="object" required>
  The recipient address object.
</ParamField>

<ParamField body="address.type" type="string">
  Type of the recipient's address.
</ParamField>

<ParamField body="address.streetName" type="string">
  Street name of the recipient's address. Example: `cannon Street`
</ParamField>

<ParamField body="address.buildingNumber" type="string">
  Building number of the recipient's address. Example: `9`
</ParamField>

<ParamField body="address.buildingName" type="string">
  Building name of the recipient's address. Example: `Abram`
</ParamField>

<ParamField body="address.postcode" type="string">
  Postal code of the recipient's address. Example: `SW1A 1AA`
</ParamField>

<ParamField body="address.city" type="string">
  City of the recipient's address. Example: `London`
</ParamField>

<ParamField body="address.region" type="string">
  Region of the recipient's address. Example: `central`
</ParamField>

<ParamField body="address.countryCode" type="string" required>
  Country code for the recipient's address. Example: `GB`
</ParamField>

<ParamField body="bankDetails" type="object">
  The recipient's bank address object.
</ParamField>

<ParamField body="bankDetails.accountIdentifier" type="string" required>
  This represents the identifier of the bank, such as an Account Number or IBAN. Example: `55555555`
</ParamField>

<ParamField body="bankDetails.bankIdentifier" type="string" required>
  This represents the identifier of the recipient's bank, such as an a Sort Code, BIC or Routing Number. This field is required if the accountIdentifier provided is not an IBAN. Example: `123456`
</ParamField>

<ParamField body="bankDetails.intermediaryBankIdentifier" type="string">
  Identifier for intermediary bank. Example: `QBLCCCCV`
</ParamField>

<ParamField body="bankDetails.countryCode" type="string" required>
  Country code for the recipient's bank address. Example: `GB`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `PaymentCreated`
</ParamField>

## PaymentReturned

The payment has been refunded.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "paymentBatchId": "37843e37-9d90-4c6d-baaf-45b3b190e39c",
      "accountId": "F12345",
      "amount": "100",
      "currencyCode": "GBP",
      "recipient": {
        "id": "123",
        "externalReference": "string",
        "type": "individual",
        "name": "John Frank",
        "displayName": "Electrician",
        "subscribedEmails": [
          {
            "name": "string",
            "email": "user@example.com"
          }
        ],
        "verificationMethod": "sms_otp",
        "address": {
          "addressType": "ADDR",
          "streetName": "Churchill Place",
          "buildingNumber": "7",
          "buildingName": "Abram",
          "postcode": "SW1A 1AA",
          "city": "London",
          "region": "string",
          "countryCode": "GB"
        },
        "bankDetails": {
          "accountIdentifier": "5555555",
          "bankIdentifier": "123456",
          "intermediaryBankIdentifier": "QBLCCCCV",
          "method": "string",
          "bankCountryCode": "GB"
        }
      },
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "PaymentReturned"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "paymentBatchId": "string",
      "accountId": "string",
      "amount": "string",
      "currencyCode": "string",
      "recipient": {
        "id": "string",
        "externalReference": "string",
        "type": "string",
        "name": "string", 
        "displayName": "string", 
        "subscribedEmails": [
          {
            "name": "string",
            "email": "string"
          }
        ],
        "verificationMethod": "string",
        "address": {
          "addressType": "string",
          "streetName": "string",
          "buildingNumber": "string",
          "buildingName": "string",
          "postcode": "string",
          "city": "string",
          "region": "string",
          "countryCode": "string"
        },
        "bankDetails": {
          "accountIdentifier": "string",
          "bankIdentifier": "string",
          "intermediaryBankIdentifier": "string",
          "method": "string",
          "bankCountryCode": "string"
        }
      },
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="paymentBatchId" type="string">
  The ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="amount" type="number" required>
  The payment amount. Example: `100`
</ParamField>

<ParamField body="currencyCode" type="string" required>
  The currency code of which the recipient will receive payments in, ISO-4217 format. Example: `EUR`
</ParamField>

<ParamField body="recipient" type="object" required>
  object containing the recipient details such as `id`, `externalReference`, `type`, `name`, `displayName`, `subscribedEmails`
</ParamField>

<ParamField body="recipient.id" type="string" required>
  The ID of the recipient. Example: `8lqccfgmo`
</ParamField>

<ParamField body="recipient.type" type="string" required>
  The type of account, either `individual`,`business` or `charity`.
</ParamField>

<ParamField body="recipient.name" type="string" required>
  The name of the recipient. Example: `John Frank`
</ParamField>

<ParamField body="recipient.displayName" type="string">
  Display name for the payee. Example: `Electrician`
</ParamField>

<ParamField body="subscribedEmails" type="array">
  This defines the Email addresses who will be sent notifications of payments to this recipient. This array requires a name and an email as input.
</ParamField>

<ParamField body="verificationMethod" type="string" required>
  The method used for verifying the recipient.

  Allowable values: `sms_otp`, `phone`, `email`, `biometrics`, `other`
</ParamField>

<ParamField body="address" type="object" required>
  The recipient address object.
</ParamField>

<ParamField body="address.type" type="string">
  Type of the recipient's address.
</ParamField>

<ParamField body="address.streetName" type="string">
  Street name of the recipient's address. Example: `cannon Street`
</ParamField>

<ParamField body="address.buildingNumber" type="string">
  Building number of the recipient's address. Example: `9`
</ParamField>

<ParamField body="address.buildingName" type="string">
  Building name of the recipient's address. Example: `Abram`
</ParamField>

<ParamField body="address.postcode" type="string">
  Postal code of the recipient's address. Example: `SW1A 1AA`
</ParamField>

<ParamField body="address.city" type="string">
  City of the recipient's address. Example: `London`
</ParamField>

<ParamField body="address.region" type="string">
  Region of the recipient's address. Example: `central`
</ParamField>

<ParamField body="address.countryCode" type="string" required>
  Country code for the recipient's address. Example: `GB`
</ParamField>

<ParamField body="bankDetails" type="object">
  The recipient's bank address object.
</ParamField>

<ParamField body="bankDetails.accountIdentifier" type="string" required>
  This represents the identifier of the bank, such as an Account Number or IBAN. Example: `55555555`
</ParamField>

<ParamField body="bankDetails.bankIdentifier" type="string" required>
  This represents the identifier of the recipient's bank, such as an a Sort Code, BIC or Routing Number. This field is required if the accountIdentifier provided is not an IBAN. Example: `123456`
</ParamField>

<ParamField body="bankDetails.intermediaryBankIdentifier" type="string">
  Identifier for intermediary bank. Example: `QBLCCCCV`
</ParamField>

<ParamField body="bankDetails.countryCode" type="string" required>
  Country code for the recipient's bank address. Example: `GB`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `PaymentReturned`
</ParamField>

## PaymentBatchOrderCreated

The group has been approved, processing will begin, and funds will be blocked. This is particularly useful for scheduled batches.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "paymentBatchId": "37843e37-9d90-4c6d-baaf-45b3b190e39c",
      "accountId": "F12345",
      "orderId": "M35TVZVMB4NYPO",
      "sourceCurrency": {
  		  "code": "GBP",
  		  "numberOfFees": 1402,
  		  "valueOfFees": 974.00,
  		  "settlementTotal": 12381.32
      }
      "destinationCurrency": {
  		  "code": "GBP",
  		  "numberOfPayments": 1402,
        "valueOfPayments": 974.00
  		},
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "PaymentBatchOrderCreated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "paymentBatchId": "string",
      "accountId": "string",
      "orderId": "string",
      "sourceCurrency": {
  		  "code": "string",
  		  "numberOfFees": number,
  		  "valueOfFees": number,
  		  "settlementTotal": number
      }
      "destinationCurrency": {
  		  "code": "string",
  		  "numberOfPayments": number,
        "valueOfPayments": number
  		},
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="paymentBatchId" type="string">
  The ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="orderId" type="string">
  The order ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="sourceCurrency" type="object">
  An object containing details relating to the source currency such as `code`, `numberOfFees`, `valueOfFees`, `settlementTotal`
</ParamField>

<ParamField body="sourceCurrency.code" type="string">
  The currency code of the source currency.

  Allowable values: A valid `code`
</ParamField>

<ParamField body="sourceCurrency.numberOfFees" type="number">
  The number of fees.
</ParamField>

<ParamField body="sourceCurrency.valueOfFees" type="number">
  The value of the fees.
</ParamField>

<ParamField body="sourceCurrency.settlemtTotal" type="number">
  The settlement amount.
</ParamField>

<ParamField body="destinationCurrency" type="object">
  An object containing details relating to the destination currency such as `code`, `numberOfPayments`, `valueOfPayments`
</ParamField>

<ParamField body="destinationCurrency.numberOfPayments" type="number">
  The number of payments.
</ParamField>

<ParamField body="destinationCurrency.valueOfPayments" type="number">
  The value of the payments.
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `PaymentBatchOrderCreated`
</ParamField>

## PaymentBatchOrderCompleted

The group has been approved, and processing was successful. This is especially relevant for scheduled batches.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "paymentBatchId": "37843e37-9d90-4c6d-baaf-45b3b190e39c",
      "accountId": "F12345",
      "orderId": "M35TVZVMB4NYPO",
      "sourceCurrency": {
  		  "code": "GBP",
  		  "numberOfFees": 1402,
  		  "valueOfFees": 974.00,
  		  "settlementTotal": 12381.32
      }
      "destinationCurrency": {
  		  "code": "GBP",
  		  "numberOfPayments": 1402,
        "valueOfPayments": 974.00
  		},
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "PaymentBatchOrderCompleted"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "paymentBatchId": "string",
      "accountId": "string",
      "orderId": "string",
      "sourceCurrency": {
  		  "code": "string",
  		  "numberOfFees": number,
  		  "valueOfFees": number,
  		  "settlementTotal": number
      }
      "destinationCurrency": {
  		  "code": "string",
  		  "numberOfPayments": number,
        "valueOfPayments": number
  		},
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="paymentBatchId" type="string">
  The ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="orderId" type="string">
  The order ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="sourceCurrency" type="object">
  An object containing details relating to the source currency such as `code`, `numberOfFees`, `valueOfFees`, `settlementTotal`
</ParamField>

<ParamField body="sourceCurrency.code" type="string">
  The currency code of the source currency.

  Allowable values: A valid `code`
</ParamField>

<ParamField body="sourceCurrency.numberOfFees" type="number">
  The number of fees.
</ParamField>

<ParamField body="sourceCurrency.valueOfFees" type="number">
  The value of the fees.
</ParamField>

<ParamField body="sourceCurrency.settlemtTotal" type="number">
  The settlement amount.
</ParamField>

<ParamField body="destinationCurrency" type="object">
  An object containing details relating to the destination currency such as `code`, `numberOfPayments`, `valueOfPayments`
</ParamField>

<ParamField body="destinationCurrency.numberOfPayments" type="number">
  The number of payments.
</ParamField>

<ParamField body="destinationCurrency.valueOfPayments" type="number">
  The value of the payments.
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `PaymentBatchOrderCompleted`
</ParamField>

## PaymentBatchOrderCancelled

The batch order has been cancelled. This is especially relevant for scheduled batches.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "paymentBatchId": "37843e37-9d90-4c6d-baaf-45b3b190e39c",
      "accountId": "F12345",
      "orderId": "M35TVZVMB4NYPO",
      "sourceCurrency": {
  		  "code": "GBP",
  		  "numberOfFees": 1402,
  		  "valueOfFees": 974.00,
  		  "settlementTotal": 12381.32
      }
      "destinationCurrency": {
  		  "code": "GBP",
  		  "numberOfPayments": 1402,
        "valueOfPayments": 974.00
  		},
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "PaymentBatchOrderCancelled"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "paymentBatchId": "string",
      "accountId": "string",
      "orderId": "string",
      "sourceCurrency": {
  		  "code": "string",
  		  "numberOfFees": number,
  		  "valueOfFees": number,
  		  "settlementTotal": number
      }
      "destinationCurrency": {
  		  "code": "string",
  		  "numberOfPayments": number,
        "valueOfPayments": number
  		},
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="paymentBatchId" type="string">
  The ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="orderId" type="string">
  The order ID of the payment batch that was created.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="sourceCurrency" type="object">
  An object containing details relating to the source currency such as `code`, `numberOfFees`, `valueOfFees`, `settlementTotal`
</ParamField>

<ParamField body="sourceCurrency.code" type="string">
  The currency code of the source currency.

  Allowable values: A valid `code`
</ParamField>

<ParamField body="sourceCurrency.numberOfFees" type="number">
  The number of fees.
</ParamField>

<ParamField body="sourceCurrency.valueOfFees" type="number">
  The value of the fees.
</ParamField>

<ParamField body="sourceCurrency.settlemtTotal" type="number">
  The settlement amount.
</ParamField>

<ParamField body="destinationCurrency" type="object">
  An object containing details relating to the destination currency such as `code`, `numberOfPayments`, `valueOfPayments`
</ParamField>

<ParamField body="destinationCurrency.numberOfPayments" type="number">
  The number of payments.
</ParamField>

<ParamField body="destinationCurrency.valueOfPayments" type="number">
  The value of the payments.
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `PaymentBatchOrderCancelled`
</ParamField>

## BoxCredited

A budget was credited.

```json Sample payload theme={null}
{
  "body": {
    "accountId": "F12345",
    "budgetId": "4db84122-9c4e-4607-98f7-84b2bbe02daf",
    "source": "orders",
    "identification": "231884",
    "institutionBic": "88604892",
    "institutionAddress": null,
    "schemeName": "UK.OBIE.SortCodeAccountNumber",
    "reference": "REF 123456",
    "remitterAddress": null,    
    "remitterName": "Sally Smith",
    "budgetName": "Marketing",
    "settlementPriceAmount": 0.5,
    "settlementPriceCurrency": "EUR",
    "paymentMethod": "UK.OBIE.BalanceTransfer",
    "boxTransactionId": 1234567,
    "ledgerBalance": "19.99",
    "sequentialId": "10",
    "valueDateTime": "2024-04-30T06:26:17.297Z",
    "messageId": "b04b2d4a-0ae7-4125-9389-15bb6d47645c",
    "webhookEventTypeName": "BoxCredited"
  }
}

```

```json Event structure theme={null}
{
  "body": {
    "accountId": "string",
    "budgetId": "string",
    "source": "string",
    "identification": "string",
    "institutionBic": "",
    "institutionAddress": null,
    "schemeName": "string",
    "reference": "string",
    "remitterAddress": null,    
    "remitterName": "string",
    "budgetName": "string",
    "settlementPriceAmount": number,
    "settlementPriceCurrency": "string",
    "paymentMethod": "string",
    "boxTransactionId": integer,
    "ledgerBalance": "string",
    "sequentialId": "string",
    "valueDateTime": "string",
    "messageId": "string",
    "webhookEventTypeName": "string"
  }
}
```

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="budgetId" type="string">
  The ID of the budget that was credited.

  Allowable values: An existing `budgetId`
</ParamField>

<ParamField body="source" type="string">
  The type of event that triggered the credit: <ul><li><code>exchange</code>: two currencies were exchanged on an Equals budget, and funds have been credited to the currency that the funds were exchanged into</li><li><code>internal\_transfer</code>: funds were received from another budget on your account</li><li><code>external\_credit</code>: funds were credited to the budget from an external source</li><li><code>orders</code>: funds were received from another budget on another Equals account</li></ul>

  Allowable values: `exchange`, `internal_transfer`, `external_credit`, `orders`
</ParamField>

<ParamField body="identification" type="string">
  The remitter's account identifier.

  Allowable values: A bank account number (`^\d{8,17}$`) or IBAN (≤ 100 characters)
</ParamField>

<ParamField body="institutionBic" type="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})?`)
</ParamField>

<ParamField body="institutionAddress" type="string or null">
  The address of the remitter's bank.

  Allowable values: ≤ 109 characters
</ParamField>

<ParamField body="schemeName" type="string">
  The name of the scheme.

  Allowable values: `UK.OBIE.SortCodeAccountNumber`, `UK.OBIE.IBAN`
</ParamField>

<ParamField body="reference" type="string">
  The payment reference sent by the remitter.

  Allowable values: ≤ 256 characters
</ParamField>

<ParamField body="remitterAddress" type="string or null">
  The address of the remitter.

  Allowable values: ≤ 256 characters
</ParamField>

<ParamField body="remitterName" type="string">
  The name of the remitter.

  Allowable values: ≤ 256 characters
</ParamField>

<ParamField body="budgetName" type="string">
  The name of the budget that was credited.

  Allowable values: An existing `budgetName` (≤ 75 characters)
</ParamField>

<ParamField body="settlementPriceAmount" type="number">
  The settlement amount.

  Allowable values: A valid number
</ParamField>

<ParamField body="settlementPriceCurrency" type="string">
  The currency of the settlement, in ISO 4217 format.

  Allowable values: 3 characters
</ParamField>

<ParamField body="paymentMethod" type="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`
</ParamField>

<ParamField body="boxTransactionId" type="integer">
  The ID of the budget transaction.

  Allowable values: A valid integer
</ParamField>

<ParamField body="ledgerBalance" type="string">
  The ledger balance after the credit has been applied.

  Allowable values: A valid string
</ParamField>

<ParamField body="sequentialId" type="string">
  An incrementing number representing the latest balance.

  Allowable values: A valid string
</ParamField>

<ParamField body="valueDateTime" type="string">
  The date and time at which the ledger was updated, in ISO 8601 format.

  Allowable values: Format: `yyyy-MM-ddThh:mm:ss.sssZ`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `BoxCredited`
</ParamField>

## BoxCreditPending

A budget was credited, but the payment is still being processed.

```json Sample payload theme={null}
{
  "body": {
    "accountId": "F12345",
    "budgetId": "4db84122-9c4e-4607-98f7-84b2bbe02daf",
    "source": "orders",
    "identification": "231884",
    "institutionBic": "88604892",
    "institutionAddress": null,
    "schemeName": "UK.OBIE.SortCodeAccountNumber",
    "reference": "REF 123456",
    "remitterAddress": null,    
    "remitterName": "Sally Smith",
    "budgetName": "Marketing",
    "settlementPriceAmount": 0.5,
    "settlementPriceCurrency": "EUR",
    "paymentMethod": "UK.OBIE.BalanceTransfer",
    "boxTransactionId": 1234567,
    "ledgerBalance": "19.99",
    "sequentialId": "10",
    "valueDateTime": "2024-04-30T06:26:17.297Z",
    "messageId": "b04b2d4a-0ae7-4125-9389-15bb6d47645c",
    "webhookEventTypeName": "BoxCreditPending"
  }
}

```

```json Event structure theme={null}
{
  "body": {
    "accountId": "string",
    "budgetId": "string",
    "source": "string",
    "identification": "string",
    "institutionBic": "",
    "institutionAddress": null,
    "schemeName": "string",
    "reference": "string",
    "remitterAddress": null,    
    "remitterName": "string",
    "budgetName": "string",
    "settlementPriceAmount": number,
    "settlementPriceCurrency": "string",
    "paymentMethod": "string",
    "boxTransactionId": integer,
    "ledgerBalance": "string",
    "sequentialId": "string",
    "valueDateTime": "string",
    "messageId": "string",
    "webhookEventTypeName": "string"
  }
}
```

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="budgetId" type="string">
  The ID of the budget that was credited.

  Allowable values: An existing `budgetId`
</ParamField>

<ParamField body="source" type="string">
  The type of event that triggered the credit: <ul><li><code>exchange</code>: two currencies were exchanged on an Equals budget, and funds have been credited to the currency that the funds were exchanged into</li><li><code>internal\_transfer</code>: funds were received from another budget on your account</li><li><code>external\_credit</code>: funds were credited to the budget from an external source</li><li><code>orders</code>: funds were received from another budget on another Equals account</li></ul>

  Allowable values: `exchange`, `internal_transfer`, `external_credit`, `orders`
</ParamField>

<ParamField body="identification" type="string">
  The remitter's account identifier.

  Allowable values: A bank account number (`^\d{8,17}$`) or IBAN (≤ 100 characters)
</ParamField>

<ParamField body="institutionBic" type="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})?`)
</ParamField>

<ParamField body="institutionAddress" type="string or null">
  The address of the remitter's bank.

  Allowable values: ≤ 109 characters
</ParamField>

<ParamField body="schemeName" type="string">
  The name of the scheme.

  Allowable values: `UK.OBIE.SortCodeAccountNumber`, `UK.OBIE.IBAN`
</ParamField>

<ParamField body="reference" type="string">
  The payment reference sent by the remitter.

  Allowable values: ≤ 256 characters
</ParamField>

<ParamField body="remitterAddress" type="string or null">
  The address of the remitter.

  Allowable values: ≤ 256 characters
</ParamField>

<ParamField body="remitterName" type="string">
  The name of the remitter.

  Allowable values: ≤ 256 characters
</ParamField>

<ParamField body="budgetName" type="string">
  The name of the budget that was credited.

  Allowable values: An existing `budgetName` (≤ 75 characters)
</ParamField>

<ParamField body="settlementPriceAmount" type="number">
  The settlement amount.

  Allowable values: A valid number
</ParamField>

<ParamField body="settlementPriceCurrency" type="string">
  The currency of the settlement, in ISO 4217 format.

  Allowable values: 3 characters
</ParamField>

<ParamField body="paymentMethod" type="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`
</ParamField>

<ParamField body="boxTransactionId" type="integer">
  The ID of the budget transaction.

  Allowable values: A valid integer
</ParamField>

<ParamField body="ledgerBalance" type="string">
  The ledger balance after the credit has been applied.

  Allowable values: A valid string
</ParamField>

<ParamField body="sequentialId" type="string">
  An incrementing number representing the latest balance.

  Allowable values: A valid string
</ParamField>

<ParamField body="valueDateTime" type="string">
  The date and time at which the ledger was updated, in ISO 8601 format.

  Allowable values: Format: `yyyy-MM-ddThh:mm:ss.sssZ`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `BoxCreditPending`
</ParamField>

## BoxDebited

A budget was debited.

```json Sample payload theme={null}
{
  "body": {
    "accountId": "F12345",
    "boxTransactionId": 8622112,
    "budgetId": "42082c6b-4ab2-4bf6-b71f-287ge74a66c3",
    "budgetName": "Marketing",
    "identification": "231884",
    "institutionBic": "88604892",
    "institutionAddress": null,
    "orderId": "E7PD93VMX3MC",
    "paymentMethod": "UK.OBIE.BalanceTransfer",
    "reference": "",
    "schemeName": "UK.OBIE.SortCodeAccountNumber",
    "settlementPriceAmount": 40000,
    "settlementPriceCurrency": "USD",
    "source": "orders",
    "ledgerBalance": "19.99",
    "sequentialId": "10",
    "valueDateTime": "2024-04-30T06:26:17.297Z",
    "messageId": "f10bf4e9-bf1a-49e0-b10a-a461bf5659f8",
    "webhookEventTypeName": "BoxDebited"
  }
}
```

```json Event structure theme={null}
{
  "body": {
    "accountId": "string",
    "boxTransactionId": integer,
    "budgetId": "string",
    "budgetName": "string",
    "identification": "string",
    "institutionBic": "string",
    "institutionAddress": "string",
    "orderId": "string",
    "paymentMethod": "string",
    "reference": "string",
    "schemeName": "string",
    "settlementPriceAmount": number,
    "settlementPriceCurrency": "string",
    "source": "string",
    "ledgerBalance": "number",
    "sequentialId": "string",
    "valueDateTime": "string",
    "messageId": "string",
    "webhookEventTypeName": "string"
  }
}
```

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="boxTransactionId" type="integer">
  The ID of the budget transaction.

  Allowable values: A valid integer
</ParamField>

<ParamField body="budgetId" type="string">
  The ID of the budget that was debited.

  Allowable values: An existing `budgetId`
</ParamField>

<ParamField body="budgetName" type="string">
  The name of the budget that was debited.

  Allowable values: An existing `budgetName` (≤ 75 characters)
</ParamField>

<ParamField body="identification" type="string">
  The recipients's account identifier.

  Allowable values: A bank account number (`^\d{8,17}$`) or IBAN (≤ 100 characters)
</ParamField>

<ParamField body="institutionBic" type="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})?`)
</ParamField>

<ParamField body="institutionAddress" type="string or null">
  The address of the recipient's bank.

  Allowable values: ≤ 109 characters
</ParamField>

<ParamField body="orderId" type="string">
  The ID of the order.

  Allowable values: A valid `orderId` (12 characters)
</ParamField>

<ParamField body="paymentMethod" type="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`
</ParamField>

<ParamField body="reference" type="string">
  The payment reference sent by the remitter.

  Allowable values: ≤ 256 characters
</ParamField>

<ParamField body="schemeName" type="string">
  The name of the scheme.

  Allowable values: `UK.OBIE.SortCodeAccountNumber`, `UK.OBIE.IBAN`
</ParamField>

<ParamField body="settlementPriceAmount" type="number">
  The settlement amount.

  Allowable values: A valid number
</ParamField>

<ParamField body="settlementPriceCurrency" type="string">
  The currency of the settlement, in ISO 4217 format.

  Allowable values: 3 characters
</ParamField>

<ParamField body="source" type="string">
  The type of event that triggered the debit: <ul><li><code>exchange</code>: two currencies were exchanged on an Equals budget, and funds have been debited from the currency that the funds were exchanged from</li><li><code>internal\_transfer</code>: funds were sent to another Equals budget, which is in the same currency</li><li><code>orders</code>: an order was created to send funds from a budget</li></ul>

  Allowable values: `exchange`, `internal_transfer`, `orders`
</ParamField>

<ParamField body="ledgerBalance" type="string">
  The ledger balance after the debit has been applied.

  Allowable values: A valid string
</ParamField>

<ParamField body="sequentialId" type="string">
  An incremental number representing the latest balance.

  Allowable values: A valid string
</ParamField>

<ParamField body="valueDateTime" type="string">
  The date and time at which the ledger was updated, in ISO 8601 format.

  Allowable values: Format: `yyyy-MM-ddThh:mm:ss.sssZ`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `BoxDebited`
</ParamField>

## OrderCreated

An order was created.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "F12345",
      "orderId": "M35TVZVMB4NYPO",
      "payments": [
        {
          "settlementDate": "2023-05-27T21:41:50Z",
          "rate": 1,
          "inverseRate": 1,
          "internalReference": "Payroll",
          "externalReference": "Payday",
          "from": {
            "amount": 5,
            "currency": "USD"
          },
          "to": {
            "amount": 5,
            "currency": "USD"
          },
          "recipient": {
            "id": "g54rt034",
            "name": "Jane Doe"
          }
        }
      ],
      "status": "created",
      "messageId": "2f25e9bb-4dd0-4427-8af5-48ac9ba8b185",
      "webhookEventTypeName": "OrderCreated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "orderId": "string",
      "payments": [
        {
          "settlementDate": "string",
          "rate": number,
          "inverseRate": number,
          "internalReference":"string",
          "externalReference":"string",
          "from": {
            "amount": number,
            "currency": "string"
          },
          "to": {
            "amount": number,
            "currency": "string"
          },
          "recipient": {
            "id": "string",
            "name": "string"
          }
        }
      ],
      "status": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account that created the order.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="orderId" type="string">
  The ID of the newly-created order.

  Allowable values: A valid `orderId` (12 characters)
</ParamField>

<ParamField body="from" type="object">
  Details about the payment source.

  Allowable values: `amount`, `currency`

  <Expandable title="from properties">
    <ParamField body="from.amount" type="string">
      The amount in the source currency.

      Allowable values: A valid number
    </ParamField>

    <ParamField body="from.currency" type="string">
      The source currency, in in ISO-4217 format.

      Allowable values: 3 characters
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="to" type="object">
  Details about the payment destination.

  Allowable values: `amount`, `currency`

  <Expandable title="to properties">
    <ParamField body="to.amount" type="string">
      The amount in the destination currency.

      Allowable values: A valid number
    </ParamField>

    <ParamField body="to.currency" type="string">
      The destination currency, in ISO-4217 format.

      Allowable values: 3 characters
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="recipient" type="object">
  Details about the recipient of the payment.

  Allowable values: `id`, `name`

  <Expandable title="recipient properties">
    <ParamField body="recipient.id" type="string">
      The ID of the recipient.

      Allowable values: An existing `recipientId`
    </ParamField>

    <ParamField body="recipient.name" type="string">
      The name of the recipient.

      Allowable values: ≤ 256 characters
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="status" type="string">
  The status of the order.

  Allowable values: `created`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `OrderCreated`
</ParamField>

## OrderCompleted

An order was successfully completed.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "F12345",
      "orderId": "M35TVZVMB4NYPO",
      "payments": [
        {
          "settlementDate": "2023-05-27T21:41:50Z",
          "rate": 1,
          "inverseRate": 1,
          "internalReference": "Payroll",
          "externalReference": "Payday",
          "from": {
            "amount": 5,
            "currency": "USD"
          },
          "to": {
            "amount": 5,
            "currency": "USD"
          },
          "recipient": {
            "id": "g54rt034",
            "name": "Jane Doe"
          }
        }
      ],
      "status": "complete",
      "messageId": "2f25e9bb-4dd0-4427-8af5-48ac9ba8b185",
      "webhookEventTypeName": "OrderCompleted"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "orderId": "string",
      "payments": [
        {
          "settlementDate": "string",
          "rate": number,
          "inverseRate": number,
          "internalReference":"string",
          "externalReference": "string",
          "from": {
            "amount": number,
            "currency": "string"
          },
          "to": {
            "amount": number,
            "currency": "string"
          },
          "recipient": {
            "id": "string",
            "name": "string"
          }
        }
      ],
      "status": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account that created the order.

  Allowable values: A valid `accountId`
</ParamField>

<ParamField body="orderId" type="string">
  The ID of the completed order.

  Allowable values: A valid `orderId` (12 characters)
</ParamField>

<ParamField body="from" type="object">
  Details about the payment source.

  Allowable values: `amount`, `currency`

  <Expandable title="from properties">
    <ParamField body="from.amount" type="string">
      The amount in the source currency.

      Allowable values: A valid number
    </ParamField>

    <ParamField body="from.currency" type="string">
      The source currency, in in ISO-4217 format.

      Allowable values: 3 characters
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="to" type="object">
  Details about the payment destination.

  Allowable values: `amount`, `currency`

  <Expandable title="to properties">
    <ParamField body="to.amount" type="string">
      The amount in the destination currency..

      Allowable values: A valid number
    </ParamField>

    <ParamField body="to.currency" type="string">
      The destination currency, in ISO-4217 format.

      Allowable values: 3 characters
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="recipient" type="object">
  Details about the recipient of the payment.

  Allowable values: `id`, `name`

  <Expandable title="recipient properties">
    <ParamField body="recipient.id" type="string">
      The ID of the recipient.

      Allowable values: An existing `recipientId`
    </ParamField>

    <ParamField body="recipient.name" type="string">
      The name of the recipient.

      Allowable values: ≤ 256 characters
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="status" type="string">
  The status of the order.

  Allowable values: `complete`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `OrderCompleted`
</ParamField>

## OrderCancelled

An order was cancelled.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "F12345",
      "orderId": "M35TVZVMB4NYPO",
      "payments": [
        {
          "amount": "2000",
          "externalReference": "PAY-45321",
          "fundsSettled": "true",
          "internalReference": "PAY-45321",
          "payAllCharges": "true",
          "recipientId": "2471fbf0-cb07-42fc-863e-5979d5773122",
          "recipientName": "Jane Doe",
          "sepa": "true"
        },
      ],
      "status": "cancelled",
      "messageId": "2f25e9bb-4dd0-4427-8af5-48ac9ba8b185",
      "webhookEventTypeName": "OrderCancelled"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "orderId": "string",
      "payments": [
        {
          "amount": number,
          "externalReference": "string",
          "fundsSettled": boolean,
          "internalReference": "string",
          "payAllCharges": boolean,
          "recipientId": "string",
          "recipientName": "string",
          "sepa": boolean
        },
      ],
      "status": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account that created the order.

  Allowable values: A valid `accountId`
</ParamField>

<ParamField body="orderId" type="string">
  The ID of the order.

  Allowable values: A valid `orderId` (12 characters)
</ParamField>

<ParamField body="payments" type="object">
  Details about the payment.

  Allowable values: A valid `payments` object containing the following fields: `amount`, `externalReference`, `fundsSettled`, `fundsSettled`, `internalReference`, `payAllCharges`, `recipientId`, `recipientName`, `sepa`

  <Expandable title="payments properties">
    <ParamField body="payments.amount" type="number">
      The value of the payment.

      Allowable values: A valid number
    </ParamField>

    <ParamField body="payments.externalReference" type="string">
      The payment reference that the recipient sees.

      Allowable values: ≤ 256 characters
    </ParamField>

    <ParamField body="payments.fundsSettled" type="boolean">
      Whether or not the payment has been funded.

      Allowable values: `true`, `false`
    </ParamField>

    <ParamField body="payments.internalReference" type="string">
      The payment reference that you see.

      Allowable values: ≤ 256 characters
    </ParamField>

    <ParamField body="payments.payAllCharges" type="boolean">
      Whether or not all routing charges are paid for by Equals.

      Allowable values: `true`, `false`
    </ParamField>

    <ParamField body="payments.recipientId" type="string">
      The ID of the recipient.

      Allowable values: An existing `recipientId`
    </ParamField>

    <ParamField body="payments.recipientName" type="string">
      The name of the recipient.

      Allowable values: ≤ 256 characters
    </ParamField>

    <ParamField body="payments.sepa" type="boolean">
      Whether or not the payment was a SEPA payment.

      Allowable values: `true`, `false`
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="status" type="string">
  The status of the order.

  Allowable values: `cancelled`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `OrderCancelled`
</ParamField>

## FeeCreated

A standalone fee was created. For example, a fee for receiving an inbound credit.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "F12345",
      "orderId": "E7PD93VMX3MC",
      "currency": "GBP",
      "relatedCreditId": 48731088,
      "createdAt": "2023-01-30T08:30:00Z",
      "amount": 20,
      "reference": "Fee for payment from William Walker",
      "messageId": "4b70ce20-defd-421c-aacc-f0d49ac645e1",
      "webhookEventTypeName": "FeeCreated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "orderId": "string",
      "currency": "string",
      "relatedCreditId": number,
      "createdAt": "string",
      "amount": number,
      "reference": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: A valid `accountId`
</ParamField>

<ParamField body="orderId" type="string">
  The ID of the order.

  Allowable values: A valid `orderId` (12 characters)
</ParamField>

<ParamField body="currency" type="string">
  The currency of the fee, in ISO-4217 format.

  Allowable values: 3 characters
</ParamField>

<ParamField body="relatedCreditId" type="number">
  The related credit ID. If the fee was generated as a result of an inbound credit, this field will be populated with the box transaction ID of the related credit.

  Allowable values: A valid number
</ParamField>

<ParamField body="createdAt" type="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`
</ParamField>

<ParamField body="amount" type="number">
  The amount of the fee.

  Allowable values: A valid number (`=>0`)
</ParamField>

<ParamField body="reference" type="string">
  The reference of the fee. This is set by Equals.

  Allowable values: A valid string
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `FeeCreated`
</ParamField>

## 3DSAuthRequest

3D Secure (3DS) authentication was requested.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "F12345",
      "acsTransactionId": "d7d34e0f-c6e9-4cea-8c25-baaffa81714f",
      "authenticationRequestType": "PAYMENT",
      "budgetId": "4bf13dc8-d128-4521-99b8-4002b8987499",
      "budgetName": "Account balance",
      "cardAcceptor": {
        "acquirerBin": "526567",
        "country": "",
        "merchantCategoryCode": "5734",
        "merchantId": "123456789012345",
        "name": "Computer Co.",
      },
      "cardId": "7221d41b-69c3-4fbc-8317-d3210d97b3ab",
      "createdTime": "2023-08-04T11:45:40.050Z",
      "currency": "GBP",
      "maxResponseTime": 8,
      "messageVersion": "2.2.0",
      "network": "MASTERCARD",
      "personId": "cf7c5c33-ba60-4f25-b8b1-0d9f28cf17d2",
      "state": "PENDING",
      "transaction": {
        "amount": 95.99,
        "currencyCode": 826,
        "exponent": 2,
        "subType": "PURCHASE",
        "transactionType": "PAYMENT",
      },
      "type": "authentication.challenge.out_of_band",
      "messageId": "2f25e9bb-4dd0-4427-8af5-48ac9ba8b185",
      "webhookEventTypeName": "3DSAuthRequest"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "acsTransactionId": "string",
      "authenticationRequestType": "string",
      "budgetId": "string",
      "budgetName": "string",
      "cardAcceptor": {
        "acquirerBin": "string",
        "country": "string",
        "merchantCategoryCode": "string",
        "merchantId": "string",
        "name": "string",
      },
      "cardId": "string",
      "createdTime": "string",
      "currency": "string",
      "maxResponseTime": integer,
      "messageVersion": "string",
      "network": "string",
      "personId": "string",
      "state": "string",
      "transaction": {
        "amount": number,
        "currencyCode": integer,
        "exponent": integer,
        "subType": "string",
        "transactionType": "string",
      },
      "type": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="acsTransactionId" type="string">
  The ID of the transaction, as assigned by the issuing bank's Access Control Server (ACS).

  Allowable values: 36 characters
</ParamField>

<ParamField body="authenticationRequestType" type="string">
  The type of authentication request (AReq).

  Allowable values: `PAYMENT`, `RECURRING`, `INSTALLMENT`, `ADD_CARD`, `MAINTAIN_CARD`, `EMV_CARDHOLDER_VERIFICATION`
</ParamField>

<ParamField body="budgetId" type="string">
  The ID of the budget associated with the card that 3DS authentication was requested for.

  Allowable values: An existing `budgetId` (≤ 36 characters)
</ParamField>

<ParamField body="budgetName" type="string">
  The name of the budget.

  Allowable values: An existing `budgetName` (≤ 75 characters)
</ParamField>

<ParamField body="cardAcceptor" type="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`

  <Expandable title="cardAcceptor properties">
    <ParamField body="cardAcceptor.acquirerBin" type="string">
      The identification code of the acquiring institution, as assigned by the payment network (DS) receiving the authentication request message.

      Allowable values: ≤ 11 characters
    </ParamField>

    <ParamField body="cardAcceptor.country" type="string">
      The country that the merchant is based in, in ISO 3166-1 format.

      Allowable values: 2-3 characters
    </ParamField>

    <ParamField body="cardAcceptor.merchantCategoryCode" type="string">
      The merchant category code (MCC).

      Allowable values: ≤ 4 characters
    </ParamField>

    <ParamField body="cardAcceptor.merchantId" type="string">
      The ID of the merchant, as assigned by the acquirer.

      Allowable values: ≤ 35 characters
    </ParamField>

    <ParamField body="cardAcceptor.name" type="string">
      The name of the merchant.

      Allowable values: ≤ 40 characters
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="cardId" type="string">
  The ID of the card.

  Allowable values: An existing `cardId` (≤ 36 characters)
</ParamField>

<ParamField body="cardToken" type="string">
  The token that represents the card.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="createdTime" type="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`
</ParamField>

<ParamField body="currency" type="string">
  The numeric code of the currency used in the transaction, in ISO 4217 format. For example, `826` for GBP.

  Allowable values: 3 characters
</ParamField>

<ParamField body="maxResponseTime" type="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`
</ParamField>

<ParamField body="messageVersion" type="string">
  The 3DS protocol version used by the 3DS Requestor.

  Allowable values: 5-8 characters
</ParamField>

<ParamField body="network" type="string">
  The card network associated with the authentication request.

  Allowable values: `MASTERCARD`, `VISA`
</ParamField>

<ParamField body="personId" type="string">
  The ID of the person.

  Allowable values: An existing `personId` (≤ 36 characters)
</ParamField>

<ParamField body="state" type="string">
  The status of the authentication request.

  Allowable values: `PENDING`, `SUCCESS`, `FAILED`
</ParamField>

<ParamField body="transaction" type="object">
  Details about the transaction.

  Allowable values: A valid `transaction` object containing the following fields: `amount`, `currencyCode`, `exponent`, `subType`, `transactionType`

  <Expandable title="transaction properties">
    <ParamField body="transaction.amount" type="number">
      The transaction amount, in minor units of currency and with all punctuation removed. For example, £1.99 would be `199`.

      Allowable values: A valid number, without punctuation
    </ParamField>

    <ParamField body="transaction.currencyCode" type="integer">
      The currency code of the currency used in the transaction, in ISO 4217 format (numeric). For example, `826`.

      Allowable values: 3 characters
    </ParamField>

    <ParamField body="transaction.exponent" type="integer">
      The decimal relationship between the currency and its minor unit. For example, `2` for GBP.

      Allowable values: 1 character
    </ParamField>

    <ParamField body="transaction.subType" type="string">
      The type of transaction being authenticated.

      Allowable values: `PURCHASE`, `ACCOUNT_VERIFICATION`, `ACCOUNT_FUNDING`, `QUASI_CASH`, `PREPAID_ACTIVATION_AND_LOAD`
    </ParamField>

    <ParamField body="transaction.transactionType" type="string">
      The category of the message.

      Allowable values: `PAYMENT`, `NON_PAYMENT`
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="type" type="string">
  The type of 3DS authentication, which describes the action to be taken.

  Allowable values: `authentication.decision`, `authentication.result`, `authentication.challenge.out_of_band`
</ParamField>

<ParamField body="userToken" type="string">
  The token that identifies the user.

  Allowable values: 36 characters
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `3DSAuthRequest`
</ParamField>

## CardTransaction

A card transaction has occurred.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "F12345",
      "createdAt": "2023-08-04T08:45:06Z",
      "merchant": {
        "name": "ACME",
        "id": "28edbbe7-9554-4f57-acef-abfcfc2218f5",
        "subMerchantId": null,
        "address": {
          "address": "624 12th Ave S",
          "city": "Nampa",
          "state": "Illinois",
          "postalCode": "83651",
          "countryCode": "US",
        },
        "merchantCategory": {
          "id": "f45f87b8-4920-49a2-8fce-15d0f5fa09d8",
          "code": "5734",
          "description": "Computer software stores",
          "createdAt": "2021-09-10T08:55:06.000Z",
          "updatedAt": "2021-09-10T08:55:06.000Z"
        },
      },
      "transaction": {
        "id": "9888e73c-3ea6-4911-bbdd-79f9bab5919c",
        "transactionGroupId": "fd3a65c7-4075-41ed-8d7e-e457be06f4e4",
        "boxTransactionId": "1234567",
        "budgetId": "34b61e61-a107-4bea-8efc-edf70c8e8e57",
        "budgetName": "Account balance",
        "personId": "5add9c37-0d7c-4d14-8192-16e822b3a080",
        "status": "COMPLETION",
        "type": "pgfs.refund",
        "method": "pgfs.refund",
        "localAmount": 1,
        "localAmountCurrency": "USD",
        "feeAmount": 0,
        "feeCurrency": "GBP",
        "exchangeRate": 1,
        "total": 1,
        "createdAt": "2023-08-04T08:45:08.000Z",
        "updatedAt": "2023-08-04T08:45:08.000Z",
        "transactionCreatedAt": "2023-08-04T08:45:06Z",
        "transactionCompletedAt": "2023-08-04T08:45:06Z",
        "approvalCode": "264647",
        "pos": {
          "cardDataInputCapability": "CHIP",
          "cardHolderPresence": true,
          "cardPresence": true,
          "cardholderAuthenticationMethod": "PIN",
          "countryCode": "USA",
          "isInstallment": "false",
          "isRecurring": "false",
          "panEntryMode": "CHIP",
          "partialApprovalCapable": false,
          "pinEntryMode": "TRUE",
          "pinPresent": true,
          "purchaseAmountOnly": false,
          "specialConditionIndicator": "UNSPECIFIED",
          "terminalAttendance": "ATTENDED",
          "terminalId": "12345678",
          "terminalLocation": "ON_PREMISE",
          "terminalType": "AUTO_DISPENSER_WITH_PIN",
          "zip": "94111",
        },
        "response": {
          "code": "0000",
          "memo": "Approved or completed successfully"
        },
        "isTokenised": "true",
        "digitalWallet": {
          "state": "ACTIVE",
          "id": "DM4MMC1GB0000000h7yej914h4zq5w3n7150nm1f75jkl963",
          "provider": "APPLE_PAY",
          "device": {
            "type": "MOBILE_PHONE",
            "name": "Example user device name"
          }
        },
      },
      "card": {
        "id": "8aca473d-8906-4283-8aab-964f7c52c61a",
        "type": "PHYSICAL_COMBO",
        "name": "Marketing team card",
        "lastDigits": "1234",
        "createdAt": "2023-05-05T20:22:54.000Z",
        "updatedAt": "2023-06-12T21:51:06.000Z"
      },
      "messageId": "7c055b43-d309-4fc2-b40d-4f65213a39d6",
      "webhookEventTypeName": "CardTransaction"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "createdAt": "string",
      "merchant": {
        "name": "string",
        "id": "string",
        "subMerchantId": "string",
        "address": {
          "address": "string",
          "city": "string",
          "state": "string",
          "postalCode": "string",
          "countryCode": "string",
        },
        "merchantCategory": {
          "id": "string",
          "code": "string",
          "description": "string",
          "createdAt": "string",
          "updatedAt": "string"
        },
      },
      "transaction": {
        "id": "string",
        "transactionGroupId": "string",
        "boxTransactionId": integer,
        "budgetId": "string",
        "budgetName": "string",
        "personId": "string",
        "status": "string",
        "type": "string",
        "method": "string",
        "localAmount": number,
        "localAmountCurrency": "string",
        "feeAmount": number,
        "feeCurrency": "string",
        "exchangeRate": number,
        "total": number,
        "createdAt": "string",
        "updatedAt": "string",
        "transactionCreatedAt": "string",
        "transactionCompletedAt": "string",
        "approvalCode": "string",
        "acquirerReferenceNumber": "string",
        "pos": {
          "cardDataInputCapability": "string",
          "cardHolderPresence": boolean,
          "cardPresence": boolean,
          "cardholderAuthenticationMethod": "string",
          "countryCode": "string",
          "isInstallment": boolean,
          "isRecurring": boolean,
          "panEntryMode": "string",
          "partialApprovalCapable": boolean,
          "pinEntryMode": "string",
          "pinPresent": boolean,
          "purchaseAmountOnly": boolean,
          "specialConditionIndicator": "string",
          "terminalAttendance": "string",
          "terminalId": "string",
          "terminalLocation": "string",
          "terminalType": "string",
          "zip": "string",
        },
        "response": {
          "code": "string",
          "memo": "string"
        },
        "digitalWallet": {
          "state": "string",
          "id": "string",
          "provider": "string",
          "device": {
            "type": "string",
            "name": "string"
          }
        }
      },
      "card": {
        "id": "string",
        "type": "string",
        "name": "string",
        "lastDigits": "string",
        "createdAt": "string",
        "updatedAt": "string"
      },
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: A valid `accountId`
</ParamField>

<ParamField body="createdAt" type="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`
</ParamField>

<ParamField body="merchant" type="object">
  Details about the merchant.

  Allowable values: A valid `merchant` object containing the following fields: `name`, `id`, `subMerchantId`, `address`, `merchantCategory`

  <Expandable title="merchant properties">
    <ParamField body="merchant.name" type="string">
      The name of the merchant.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="merchant.id" type="string">
      The ID of the merchant.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="merchant.subMerchantId" type="string">
      The ID of the submerchant.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="merchant.address" type="object">
      Details about the merchant's address.

      Allowable values: A valid `address` object containing the following fields: `address`, `city`, `state`, `postalCode`, `countryCode`
    </ParamField>

    <ParamField body="merchant.merchantCategory" type="object">
      Details about the merchant category.

      Allowable values: A valid `merchantCategory` object containing the following fields: `id`, `code`, `description`, `createdAt`, `updatedAt`
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="transaction" type="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`

  <Expandable title="transaction properties">
    <ParamField body="transaction.id" type="string">
      The ID of the budget transaction.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="transaction.transactionGroupId" type="string">
      The ID of the transaction group, which can be used to find all transactions that are part of the same transaction group.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="transaction.boxTransactionId" type="integer">
      The ID of the budget transaction.

      Allowable values: A valid integer
    </ParamField>

    <ParamField body="transaction.budgetId" type="string">
      The ID of the budget that funded the card transaction.

      Allowable values: An existing `budgetId`
    </ParamField>

    <ParamField body="transaction.budgetName" type="string">
      The name of the budget that funded the card transaction.

      Allowable values: An existing `budgetName` (≤ 75 characters)
    </ParamField>

    <ParamField body="transaction.personId" type="string">
      The ID of the person that initiated the card transaction.

      Allowable values: An existing `personId` (≤ 36 characters)
    </ParamField>

    <ParamField body="transaction.status" type="string">
      The status of the transaction.

      Allowable values: `AUTHORIZATION`, `PENDING`, `CLEARING`, `CLEARED`, `COMPLETION`, `REVERSAL`
    </ParamField>

    <ParamField body="transaction.type" type="string">
      The transaction type. This may be different from the transaction method.

      Allowable values: `card_check`, `pgfs.adjustment.credit`, `pgfs.adjustment.debit`, `pgfs.authorization`, `pgfs.authorization.account_verification`, `pgfs.authorization.capture`, `pgfs.authorization.capture.chargeback`, `pgfs.authorization.capture.chargeback.reversal`, `pgfs.authorization.incremental`, `pgfs.authorization.reversal`, `pgfs.authorization.standin`, `pgfs.auth_plus_capture`, `pgfs.auth_plus_capture.standin`, `pgfs.balanceinquiry`, `pgfs.billpayment`, `pgfs.billpayment.capture`, `pgfs.billpayment.reversal`, `pgfs.directdeposit.credit`, `pgfs.directdeposit.credit.reversal`, `pgfs.directdeposit.debit`, `pgfs.directdeposit.debit.reversal`, `pgfs.dispute.credit`, `pgfs.dispute.debit`, `pgfs.force_capture`, `pgfs.network.load`, `pgfs.original.credit.authorization`, `pgfs.original.credit.auth_plus_capture`, `pgfs.pindebit.chargeback`, `pgfs.pindebit.chargeback.reversal`, `pgfs.refund`, `pgfs.refund.authorization`, `pgfs.refund.authorization.reversal`
    </ParamField>

    <ParamField body="transaction.method" type="string">
      The transaction method. This may be different from the transaction type.

      Allowable values: `pgfs.adjustment.credit`, `pgfs.adjustment.debit`, `pgfs.auth_plus_capture`,`pgfs.auth_plus_capture.reversal`, `pgfs.auth_plus_capture.standin`, `pgfs.authorization`, `pgfs.authorization.account_verification`, `pgfs.authorization.capture`, `pgfs.authorization.capture.chargeback`, `pgfs.authorization.capture.chargeback.reversal`, `pgfs.authorization.incremental`, `pgfs.authorization.reversal`, `pgfs.authorization.standin`, `pgfs.force_capture`, `pgfs.original.credit.authorization`, `pgfs.original.credit.authorization.clearing`, `pgfs.original.credit.authorization.reversal`, `pgfs.original.credit.auth_plus_capture`, `pgfs.original.credit.auth_plus_capture.reversal`, `pgfs.balanceinquiry`, `pgfs.pindebit.chargeback`, `pgfs.pindebit.chargeback.reversal`, `pgfs.refund`, `pgfs.refund.authorization`, `pgfs.refund.authorization.reversal`
    </ParamField>

    <ParamField body="transaction.localAmount" type="number">
      The transaction amount, in the local currency.

      Allowable values: A valid number
    </ParamField>

    <ParamField body="transaction.localAmountCurrency" type="string">
      The currency of the transaction, in ISO 4217 format.

      Allowable values: 3 characters
    </ParamField>

    <ParamField body="transaction.feeAmount" type="number">
      The amount of the fee passed on from the network. This is not set by Equals.

      Allowable values: A valid number
    </ParamField>

    <ParamField body="transaction.feeCurrency" type="string">
      The currency of the fee, in ISO 4217 format.

      Allowable values: 3 characters
    </ParamField>

    <ParamField body="transaction.exchangeRate" type="number">
      The exchange rate.

      Allowable values: A valid number
    </ParamField>

    <ParamField body="transaction.total" type="number">
      The total amount.

      Allowable values: A valid number
    </ParamField>

    <ParamField body="transaction.createdAt" type="string">
      The date and time at which the transaction event was created, in ISO 8601 format.

      Allowable values: Format: `yyyy-MM-ddThh:mm:ss.sssZ`
    </ParamField>

    <ParamField body="transaction.updatedAt" type="string">
      The date and time at which the transaction event was last updated, in ISO 8601 format.

      Allowable values: Format: `yyyy-MM-ddThh:mm:ss.sssZ`
    </ParamField>

    <ParamField body="transaction.transactionCreatedAt" type="string">
      The date and time at which a creation event was recorded for this transaction group, in ISO 8601 format without milliseconds.

      Allowable values: Format: `yyyy-MM-ddThh:mm:ssZ`
    </ParamField>

    <ParamField body="transaction.transactionCompletedAt" type="string">
      The date and time at which a completion event was recorded for this transaction group, in ISO 8601 format without milliseconds.

      Allowable values: Format: `yyyy-MM-ddThh:mm:ssZ`
    </ParamField>

    <ParamField body="transaction.approvalCode" type="string">
      The transaction's unique approval code, printed on the receipt at point of sale.

      Allowable values: ≤ 255 characters
    </ParamField>

    <ParamField body="transaction.acquirerReferenceNumber" type="string">
      The acquirer reference number (ARN).

      Allowable values: A valid string (≤ 255 characters)
    </ParamField>

    <ParamField body="transaction.pos" type="object">
      Details about the point of sale.

      Allowable values: A valid `pos` object containing the following fields: `cardDataInputCapability`, `cardHolderPresence`, `cardPresence`, `cardholderAuthenticationMethod`, `countryCode`, `isInstallment`, `isRecurring`, `panEntryMode`, `partialApprovalCapable`, `pinEntryMode`, `pinPresent`, `purchaseAmountOnly`, `specialConditionIndicator`, `terminalAttendance`, `terminalId`, `terminalLocation`, `terminalType`, `zip`
    </ParamField>

    <ParamField body="transaction.response" type="object">
      Details about the response.

      Allowable values: A valid `response` object containing the following fields: `code`, `memo`
    </ParamField>

    <ParamField body="transaction.isTokenised" type="boolean">
      The indicator describing if a card transaction is made with a digital wallet token.

      Allowable values: `true`, `false`
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="card" type="string">
  Details about the card.

  Allowable values: A valid `card` object containing the following fields: `id`, `type`, `name`, `lastDigits`, `createdAt`, `updatedAt`

  <Expandable title="card properties">
    <ParamField body="card.id" type="string">
      The ID of the card.

      Allowable values: ≤ 36 characters
    </ParamField>

    <ParamField body="card.type" type="string">
      The card's type.

      Allowable values: `VIRTUAL_PAN`, `PHYSICAL_MSR`, `PHYSICAL_COMBO`
    </ParamField>

    <ParamField body="card.name" type="string">
      The name of the card.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="card.lastDigits" type="string">
      The last four digits of the card.

      Allowable values: 4 characters
    </ParamField>

    <ParamField body="card.createdAt" type="string">
      The date and time at which the card was created, in ISO 8601 format.

      Allowable values: Format: `yyyy-MM-ddThh:mm:ss.sssZ`
    </ParamField>

    <ParamField body="card.updatedAt" type="string">
      The date and time at which the card was last updated, in ISO 8601 format.

      Allowable values: Format: `yyyy-MM-ddThh:mm:ss.sssZ`
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="type">
  The name of the webhook event type.

  Allowable values: `CardTransaction`
</ParamField>

## CardStateUpdated

A card's state was changed.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "productName": "EQUALSMONEY",
      "accountId": "F12345",
      "cardId": "d6dcfdb7-5b31-4627-9513-4321254a8b09",
      "cardGroupId": "b71a0b9c-4aa6-4851-94b4-4b72a7e695d2",
      "cardType": "VIRTUAL_PAN",
      "state":"ACTIVE",
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "CardStateUpdated"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "productName": "string",
      "accountId": "string",
      "cardId": "string",
      "cardGroupId": "string",
      "cardType": "string",
      "state":"string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="productName" type="string">
  The name of the product.

  Allowable values: An existing `productName`
</ParamField>

<ParamField body="accountId" type="string">
  The ID of the account.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="cardId" type="string">
  The ID of the card.

  Allowable values: An existing `cardId`
</ParamField>

<ParamField body="cardGroupId" type="string">
  The groupID of the card.

  Allowable values: An existing `cardGroupId`
</ParamField>

<ParamField body="cardType" type="string">
  The type of the card.

  Allowable values: An existing `cardType`
</ParamField>

<ParamField body="state" type="string">
  The state of the card.

  Allowable values: A valid `state` object containing the following fields:`ACTIVE` `REPLACED` `TERMINATED` `SUSPENDED` `UNACTIVATED`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `CardStateUpdated`
</ParamField>

## 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.

<CodeGroup>
  ```json Sample payload theme={null}
  {
    "body": {
      "accountId": "F12345",
      "cardId": "9e25d1de-80ed-4c18-8fb0-48b0a859e4df",
      "cardType": "PHYSICAL_COMBO",
      "cardOwnerType": "PEOPLE",
      "digitalWalletTokenTransitionToken": "4333f2ef-8f1a-4b9e-92d8-42a00689883b",
      "digitalWalletTokenTransitionChannel": "API",
      "digitalWalletToken": "dbf14241-0ea2-41c3-8931-3cf064170118",
      "digitalWalletTokenState": "ACTIVE",
      "digitalWalletTokenTransitionType": "state.activated",
      "digitalWalletTokenTransitionFulfillmentStatus": "DECISION_GREEN",
      "cardState": "ACTIVE",
      "updatedAt": "2023-10-30T12:30:12.000Z",
      "messageId": "66854098-aac7-4084-938e-bc2e62fb6a44",
      "webhookEventTypeName": "DigitalWalletTokenTransition"
    }
  }
  ```

  ```json Event structure theme={null}
  {
    "body": {
      "accountId": "string",
      "cardId": "string",
      "cardType": "string",
      "cardOwnerType": "string",
      "digitalWalletTokenTransitionToken": "string",
      "digitalWalletTokenTransitionChannel": "string",
      "digitalWalletToken": "string",
      "digitalWalletTokenState": "string",
      "digitalWalletTokenTransitionType": "string",
      "digitalWalletTokenTransitionFulfillmentStatus": "string",
      "cardState": "string",
      "updatedAt": "string",
      "messageId": "string",
      "webhookEventTypeName": "string"
    }
  }
  ```
</CodeGroup>

<ParamField body="accountId" type="string">
  The ID of the account associated with the digital wallet token.

  Allowable values: A valid `accountId`
</ParamField>

<ParamField body="cardId" type="string (uuid)">
  The ID of the card that the digital wallet token represents.

  Allowable values: An existing `cardId` (≤ 36 characters)
</ParamField>

<ParamField body="cardType" type="string">
  The type of card that the digital wallet token represents.

  Allowable values: `VIRTUAL_PAN`, `PHYSICAL_MSR`, `PHYSICAL_COMBO`
</ParamField>

<ParamField body="cardOwnerType" type="string">
  The type of owner that the card belongs to: a budget (`BUDGET`) or an individual (`PEOPLE`).

  Allowable values: `BUDGET`, `PEOPLE`
</ParamField>

<ParamField body="digitalWalletTokenTransitionToken" type="string">
  The token that represents the digital wallet token's state, rather than the digital wallet itself.

  Allowable values: ≤ 36 characters
</ParamField>

<ParamField body="digitalWalletTokenTransitionChannel" type="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`
</ParamField>

<ParamField body="digitalWalletToken" type="string (uuid)">
  The digital wallet token.

  Allowable values: A valid `digitalWalletToken` (≤ 36 characters)
</ParamField>

<ParamField body="digitalWalletTokenState" type="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`
</ParamField>

<ParamField body="digitalWalletTokenTransitionType" type="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`
</ParamField>

<ParamField body="digitalWalletTokenTransitionFulfillmentStatus" type="string">
  The fulfillment status of the digital wallet token transition.

  Allowable values: `DECISION_RED`, `DECISION_YELLOW`, `DECISION_GREEN`, `REJECTED`, `PROVISIONED`
</ParamField>

<ParamField body="cardState" type="string">
  The state of the card. [Learn more about card states](../cards/about-card-states).

  Allowable values: `ACTIVE`, `SUSPENDED`, `TERMINATED`, `UNACTIVATED`, `REPLACED`
</ParamField>

<ParamField body="updatedAt" type="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`
</ParamField>

<ParamField body="messageId" type="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
</ParamField>

<ParamField body="webhookEventTypeName" type="string">
  The name of the webhook event type.

  Allowable values: `AccountCreated`
</ParamField>
