# Balance update

Triggered every time a multi-currency account is credited or debited.
* Event type: `balances#update`
* Profile level subscriptions: Supported
* Application level subscriptions: Supported

Events may not be delivered in the order they occurred. Use `data.occurred_at` to reconcile the order, and `data.step_id` to order events within a single transaction.
For tracking events related to a single transaction such as a cancelled card transaction, use `data.step_id` to reconcile the order.
See the [Event ordering guide](/guides/developer/webhooks/event-ordering) for details.
See the [Webhooks guide](/guides/developer/webhooks) for setup instructions, signature verification, and best practices.

Endpoint: POST balances#update

## Header parameters:

  - `X-Signature-SHA256` (string)
    RSA-SHA256 signature of the request body, Base64 encoded. Verify this against the [Wise public key](/guides/developer/webhooks/event-handling#requests) to ensure the request is authentic and has not been tampered with.

  - `X-Delivery-Id` (string)
    Unique identifier for this webhook delivery attempt.

  - `X-Test-Notification` (boolean)
    Present with the value `true` if this is a test notification sent to verify your callback URL during subscription setup.

## Request fields (application/json):

  - `schema_version` (string)
    Version of the event schema. Determined by the `schema_version` on your [webhook subscription](/api-reference/webhook).
    Enum: "4.0.0"

  - `subscription_id` (string)
    ID of the webhook subscription that triggered this event.
    Example: f2264fe5-a0f5-4dab-a1b4-6faa87761425

  - `event_type` (string)
    Event type identifier
    Example: balances#update

  - `sent_at` (string)
    Timestamp when the event was sent.
    Example: 2023-03-08T14:55:39.456Z

  - `data` (object)

  - `data.resource` (object)

  - `data.resource.type` (string)
    Resource type (always `balance-account`).
    Example: balance-account

  - `data.resource.id` (integer)
    ID of the account.
    Example: 2

  - `data.resource.profile_id` (integer)
    ID of the profile that owns the account.
    Example: 2

  - `data.amount` (number)
    Transaction amount
    Example: 70

  - `data.balance_id` (integer)
    ID of the balance credited or debited.
    Example: 111

  - `data.channel_name` (string)
    Transfer category
    Example: TRANSFER

  - `data.currency` (string)
    Currency code
    Example: GBP

  - `data.occurred_at` (string)
    When the transaction occurred.
    Example: 2023-03-08T14:55:38.123Z

  - `data.post_transaction_balance_amount` (number)
    Available balance after current transaction.
    Example: 88.93

  - `data.step_id` (integer)
    Unique identifier for tracking sequence of transaction events.
    Example: 1234567

  - `data.transaction_type` (string)
    Either credit or debit
    Example: credit

  - `data.transfer_reference` (string)
    ID of the transfer.
    Example: BNK-1234567

  - `subscription_id` (string)
    ID of the webhook subscription that triggered this event
    Example: f2264fe5-a0f5-4dab-a1b4-6faa87761425

  - `sent_at` (string)
    Timestamp when the event was sent
    Example: 2023-03-08T15:26:07Z

## Response 200 fields (application/json):

  - `status` (string)
    Example: ok

