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

# Collection Account Webhook Payload Enhancement

**Release type:** API Change (Webhooks)

**Applies to:** Collection Accounts — all `collection_account.*` webhook events

The Collection Account webhook payload now matches the response of [Get Collection Account](/api-reference/tazapay-api/get-collection-account) (`GET /v3/collection_account/{id}`). `data` is the collection account. Details of the request that triggered the event are in the `data.requests` array. Every Collection Account event uses this same structure.

## What changed

No existing webhook key is removed or renamed. The payload gains new keys, and four existing keys now carry the values of the collection account instead of the request.

In this entry, "request events" means every `collection_account.*` event except `creation_succeeded`, `disablement_succeeded`, and `reenable_succeeded`. The request events are listed under [Upcoming Webhook Events](/api-reference/tazapay-api/collection-account-webhooks#upcoming-webhook-events).

### Existing keys with new values

| **Key**                              | **Before**                                                                 | **After**                                                                    |
| ------------------------------------ | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `data.id`                            | Request ID (`cvar_` / `cwar_`) on request events                           | Collection account ID (`cva_` / `cwa_`) on every event                       |
| `data.status`                        | Request status (for example `failed`, `requires_action`) on request events | Account status (`enabled` / `disabled`) on every event                       |
| `data.created_at`, `data.updated_at` | Request timestamps on request events                                       | Account timestamps on every event                                            |
| `data.currencies`                    | Every currency on the account                                              | Only currencies with status `enabled`. Empty (`[]`) for a `disabled` account |

`creation_succeeded`, `disablement_succeeded`, and `reenable_succeeded` already sent the account ID, status, and timestamps. For these three events, only `data.currencies` changes value.

### New keys in `data`

| **Key**                     | **Description**                                                                                                              |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `type`                      | Account type: `virtual_account` or `wallet`                                                                                  |
| `status_description`        | Description of the account status                                                                                            |
| `entity_id`                 | Same value as `on_behalf_of`. Sent only for on-behalf-of accounts                                                            |
| `alias`                     | Nickname of the account                                                                                                      |
| `country`                   | Country in which the account is opened                                                                                       |
| `description`               | Use case description for the account                                                                                         |
| `balance_transaction`       | ID of the balance transaction linked to the account                                                                          |
| `currency_status`           | Every currency on the account mapped to its status                                                                           |
| `ftn`                       | Fund transfer networks the account can receive on                                                                            |
| `fee_details`               | Setup and maintenance fees for the account                                                                                   |
| `is_reenablement_supported` | Whether the account can be re-enabled after it is disabled                                                                   |
| `requests`                  | Every enablement, disablement, and re-enablement request on the account, newest first, each with its own `type` and `status` |

`payment_method_type` and `metadata` were sent only on these three events. They are now sent on every event.

`data.failure_reason` is unchanged. It is still sent on `*_failed` events, and the same value is in `requests[].failure_reason`.

## Action required

If your integration reads `data.id` or `data.status` to track a request, update it:

1. Read the account ID from `data.id`. It is now always the `cva_` / `cwa_` ID, which you can pass to Get Collection Account.
2. Read the request status from `status` on the matching entry in `data.requests`, not from `data.status`.
3. Read the list of currencies the account accepts from `data.currencies`, or the status of every currency from `data.currency_status`.

<Warning>
  On `disablement_failed`, `disablement_cancelled`, `disablement_requires_action`, and `disablement_under_processing`, `data.status` is `enabled`, because the account still accepts funds. Before this change, `data.status` showed the request status, such as `failed`.
</Warning>

## Example webhook payload

This `collection_account.creation_succeeded` payload shows the new structure:

```json expandable theme={null}
{
  "type": "collection_account.creation_succeeded",
  "id": "evt_dal79979fmtfu0md56b0",
  "object": "event",
  "created_at": "2026-09-16T10:51:16.720338281Z",
  "data": {
    "metadata": {},
    "virtual_account": {
      "account_holder_name": "AccountName",
      "account_number": "AccountNumber",
      "bank_address": {
        "address_line_1": "address_line_1",
        "address_line_2": "address_line_2",
        "city": "address_city",
        "country": "address_country",
        "postal_code": "123456",
        "state": "address_state"
      },
      "bank_codes": {
        "bank_code": "sample_bank_code",
        "bsb_code": "sample_bsb_code",
        "swift_code": "sample_swift_code"
      },
      "bank_branch": "sample_bank_branch",
      "bank_name": "sample_bank_name",
      "iban": "AccountIBAN"
    },
    "fee_details": {
      "maintenance_fee_frequency": "monthly",
      "one_time_setup_fee": 10,
      "maintenance_fee": 10
    },
    "created_at": "2026-09-16T10:45:28.936281Z",
    "updated_at": "2026-09-16T10:51:16.38561Z",
    "id": "cva_dal76i2bfsb1k0drq6n0",
    "object": "collection_account",
    "type": "virtual_account",
    "payment_method_type": "wire_transfer",
    "status": "enabled",
    "status_description": "",
    "on_behalf_of": "",
    "alias": "collection_account_alias",
    "country": "SG",
    "description": "sample_description",
    "balance_transaction": "",
    "currencies": ["CNH", "HKD", "JPY", "EUR", "GBP", "DKK", "AUD", "CAD", "NZD", "USD", "SGD", "SEK", "NOK", "CHF"],
    "currency_status": {
      "AUD": "enabled",
      "CAD": "enabled",
      "CHF": "enabled",
      "CNH": "enabled",
      "DKK": "enabled",
      "EUR": "enabled",
      "GBP": "enabled",
      "HKD": "enabled",
      "JPY": "enabled",
      "NOK": "enabled",
      "NZD": "enabled",
      "SEK": "enabled",
      "SGD": "enabled",
      "USD": "enabled"
    },
    "ftn": [],
    "requests": [
      {
        "id": "cvar_dal76i2bfsb1k0drq6mg",
        "object": "collection_account_request",
        "collection_account_id": "cva_dal76i2bfsb1k0drq6n0",
        "type": "enable",
        "status": "succeeded",
        "status_description": "",
        "alias": "collection_account_alias",
        "country": "SG",
        "created_at": "2026-09-16T10:45:28Z",
        "updated_at": "2026-09-16T10:51:16Z",
        "currencies": ["AUD", "CAD", "CHF", "CNH", "DKK", "EUR", "GBP", "HKD", "JPY", "NOK", "NZD", "SEK", "SGD", "USD"],
        "requested_currencies": ["AUD", "CAD", "CHF", "CNH", "DKK", "EUR", "GBP", "HKD", "JPY", "NOK", "NZD", "SEK", "SGD", "USD"]
      }
    ],
    "is_reenablement_supported": false
  }
}
```

## Relevant Links

* [Collection Account Webhooks](/api-reference/tazapay-api/collection-account-webhooks)
* [Get Collection Account](/api-reference/tazapay-api/get-collection-account)
* [Global Collection Account object](/api-reference/tazapay-api/global-collection-account-object)
