> For the complete documentation index, see [llms.txt](https://docs.neox.vn/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.neox.vn/docs/global/global-collections/collection-management/webhook.md).

# Webhook

For webhook delivery mechanics, security verification, and retry behaviour, see [Event Notification](/docs/global/global-collections/integration/event-notification.md).

### Event data

| Field Name            | Type   | Description                                                                                                                                                                                                                        |
| --------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| collectionOrderId     | string | NeoX identifier of the incoming-funds collection order. Use this to correlate the webhook with your collection records and to call the Collection APIs.                                                                            |
| type                  | string | Event type. Fixed value: `"COLLECTION"`.                                                                                                                                                                                           |
| merchantCode          | string | NeoX merchant code of the account that received the funds.                                                                                                                                                                         |
| requestId             | string | Unique identifier for this webhook event. Use this for idempotency — de-duplicate handlers on this value to avoid processing the same event twice.                                                                                 |
| vaNumber              | string | Virtual account number that received the incoming funds.                                                                                                                                                                           |
| orderType             | string | Classification of the incoming collection. Enum: `RECHARGE`, `TRADE_COLLECTION`, `PLATFORM_COLLECTION`.                                                                                                                            |
| amount                | number | Original incoming amount as notified by the receiving bank.                                                                                                                                                                        |
| currency              | string | Currency of the incoming funds (e.g. `USD`, `EUR`, `HKD`).                                                                                                                                                                         |
| actualAmount          | number | Actual settled amount after any deductions or adjustments.                                                                                                                                                                         |
| payerAccountName      | string | Account name of the party that sent the funds. May be absent when payer information is not yet identified.                                                                                                                         |
| payerAccountNum       | string | Account number of the party that sent the funds. May be absent when payer information is not yet identified.                                                                                                                       |
| payerAccountBankName  | string | Name of the payer's bank. May be absent when payer information is not yet identified.                                                                                                                                              |
| payerAccountSwiftCode | string | SWIFT/BIC code of the payer's bank. May be absent when payer information is not yet identified.                                                                                                                                    |
| status                | string | Current processing status of the collection order. See Order Status Values below.                                                                                                                                                  |
| createdAt             | string | Timestamp when the collection order was created (ISO 8601, e.g. `"2024-03-02T14:30:00Z"`).                                                                                                                                         |
| secureHash            | string | Base64-encoded SHA256 hash of all payload fields (excluding `secureHash`) sorted alphabetically by key and concatenated with the Secret Key configured on the Merchant Portal. Use this to verify the authenticity of the payload. |

#### Order Status Values

| Status           | Meaning                                                                               |
| ---------------- | ------------------------------------------------------------------------------------- |
| `WAIT_MATCH`     | The collection order has been received and is waiting to be matched to a trade order. |
| `MATCHED`        | The collection order has been fully matched to one or more trade orders.              |
| `REJ_WAIT_MATCH` | A previous match attempt was rejected; the order is awaiting a new match.             |
| `PENDING`        | The collection order is under compliance or bank review.                              |
| `SUCCESS`        | The collection order has been fully processed and settled.                            |
| `CANCEL`         | The collection order has been cancelled.                                              |
| `REFUND_PROCESS` | A refund for this collection order is being processed.                                |
| `REFUND_SUCCESS` | The refund for this collection order has completed successfully.                      |

When a collection arrives without identifiable payer information, call the [Supplement Payer Information](/docs/global/global-collections/integration/collections/api-supplement-payer-information.md) API to provide the sender's account name, account number, SWIFT code, and payment proof documents. When a recharge-type collection (`orderType=RECHARGE`) requires supplementary funds-nature documentation, call the [Supplement Recharge Information](/docs/global/global-collections/integration/collections/api-supplement-recharge-information.md) API to supply the classification codes and supporting files.

### Sample data

```json
{
  "collectionOrderId": "CO-20240302-000091",
  "type": "COLLECTION",
  "merchantCode": "MC-00012345",
  "requestId": "b7c8d9e0-1234-4fab-a567-890123456789",
  "vaNumber": "HK82000000012345678901",
  "orderType": "TRADE_COLLECTION",
  "amount": 15800.00,
  "currency": "USD",
  "actualAmount": 15800.00,
  "payerAccountName": "Global Retail GmbH",
  "payerAccountNum": "DE89370400440532013000",
  "payerAccountBankName": "Deutsche Bank AG",
  "payerAccountSwiftCode": "DEUTDEDBXXX",
  "status": "WAIT_MATCH",
  "createdAt": "2024-03-02T09:15:00Z",
  "secureHash": "Base64EncodedSHA256HashValue=="
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.neox.vn/docs/global/global-collections/collection-management/webhook.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
