For the complete documentation index, see llms.txt. This page is also available as Markdown.

Webhook

For webhook delivery mechanics, security verification, and retry behaviour, see Event Notification.

This page documents 5 of the 7 event types in the collection-transaction event group, covering the lifecycle of an incoming collection: TRADE_COLLECTION_RECEIVED, PLATFORM_COLLECTION_RECEIVED, COLLECTION_COMPLETED, COLLECTION_REJECTED, and COLLECTION_CANCEL.

Unlike other Global Collections webhooks, this group is not delivered to a per-request webhookUrl — that makes sense structurally, since these events (funds arriving, collection completed/rejected/cancelled) are not triggered by a merchant-initiated create call that could carry a webhookUrl parameter. Delivery falls back to the merchant's configured global-collection webhook URL/secret (see Event Notification).

The remaining 2 events in this group — TRADE_COLLECTION_REFUND_PROCESS and TRADE_COLLECTION_REFUND_SUCCESS — cover refund outcomes and are documented on Refund Requests Webhook instead, alongside the refund flow they relate to. They are still delivered through this same collection-transaction channel, not to a per-request webhookUrl.

TRADE_COLLECTION_RECEIVED

Sent when funds arrive in a virtual account for a trade-collection-type order.

Event data

Field Name
Type
Description

type

string

Event type. Fixed value: TRADE_COLLECTION_RECEIVED.

subMerchantId

string

NeoX identifier of the sub-merchant that owns the receiving virtual account, if applicable.

orderType

string

Fixed value: TRADE_COLLECTION.

payerAccountSwiftCode

string

SWIFT/BIC code of the payer's bank.

amount

number

Incoming amount as notified by the receiving bank.

bankSerialNum

string

Serial number assigned by the receiving bank to this incoming transfer.

orderId

string

NeoX identifier of the collection order.

remark

string

Free-text remark attached to the incoming transfer.

createdAt

string

Timestamp when the collection order was created (ISO 8601).

payAmount

number

Amount actually posted/matched for this collection.

requestId

string

Unique identifier for this webhook event. Use this for idempotency.

payCurrency

string

Currency of payAmount.

currency

string

Currency of the incoming funds.

vaNo

string

Virtual account number that received the incoming funds.

payerAccountNum

string

Account number of the party that sent the funds.

payerAccountName

string

Account name of the party that sent the funds.

extData

string

Reserved for future use. Currently always the literal string "{}".

secureHash

string

Base64-encoded SHA-256 signature. See Event Notification.

Sample data

Real captured example:

PLATFORM_COLLECTION_RECEIVED

Sent when funds arrive in a virtual account for a platform-collection-type order. Same field shape as TRADE_COLLECTION_RECEIVED, with orderType set to PLATFORM_COLLECTION.

Event data

Same fields as TRADE_COLLECTION_RECEIVED above, except:

Field Name
Type
Description

type

string

Event type. Fixed value: PLATFORM_COLLECTION_RECEIVED.

orderType

string

Fixed value: PLATFORM_COLLECTION.

Sample data

Real captured example:

COLLECTION_COMPLETED

Sent when a collection order finishes matching/review and funds are credited.

The list of matched trade orders (tradeOrderList in the source system) cannot be represented in a flat payload and is omitted here. Call Get Detail Trade Order or Get Detail Collection Order to retrieve match detail.

Event data

Field Name
Type
Description

type

string

Event type. Fixed value: COLLECTION_COMPLETED.

subMerchantId

string

NeoX identifier of the sub-merchant that owns the receiving virtual account, if applicable.

orderId

string

NeoX identifier of the collection order.

requestId

string

Unique identifier for this webhook event. Use this for idempotency.

orderType

string

Classification of the collection. Enum: TRADE_COLLECTION, PLATFORM_COLLECTION.

amount

number

Original incoming amount.

payAmount

number

Amount actually posted/matched.

currency

string

Currency of the incoming funds.

payCurrency

string

Currency of payAmount.

vaNo

string

Virtual account number that received the incoming funds.

bankSerialNum

string

Serial number assigned by the receiving bank.

payerAccountNum

string

Account number of the party that sent the funds.

payerAccountName

string

Account name of the party that sent the funds.

feeAmount

number

Fee charged for this collection.

feeCurrency

string

Currency of feeAmount.

createdAt

string

Timestamp when the collection order was created (ISO 8601).

extData

string

Reserved for future use. Currently always the literal string "{}".

secureHash

string

Base64-encoded SHA-256 signature. See Event Notification.

Sample data

Real captured example:

COLLECTION_REJECTED

Sent when a collection order's review is rejected.

The source system carries a list of rejection reasons (rejectReasonInfoList). Since a flat payload cannot represent an array, this webhook flattens it to only the first entry (rejectReasonCode/rejectReasonText) — if a collection is rejected for multiple reasons, later reasons are not included here. Call Get Detail Collection Order for the complete list.

Event data

Field Name
Type
Description

type

string

Event type. Fixed value: COLLECTION_REJECTED.

subMerchantId

string

NeoX identifier of the sub-merchant that owns the receiving virtual account, if applicable.

orderId

string

NeoX identifier of the collection order.

requestId

string

Unique identifier for this webhook event. Use this for idempotency.

orderType

string

Classification of the collection. Enum: TRADE_COLLECTION, PLATFORM_COLLECTION.

amount

number

Original incoming amount.

payAmount

number

Amount actually posted/matched (if any).

currency

string

Currency of the incoming funds.

payCurrency

string

Currency of payAmount.

vaNo

string

Virtual account number that received the incoming funds.

remark

string

Free-text remark attached to the collection order.

createdAt

string

Timestamp when the collection order was created (ISO 8601).

rejectReasonCode

string

Code of the first rejection reason. See hint above.

rejectReasonText

string

Human-readable description of the first rejection reason. See hint above.

extData

string

Reserved for future use. Currently always the literal string "{}".

secureHash

string

Base64-encoded SHA-256 signature. See Event Notification.

Sample data

COLLECTION_CANCEL

Sent when a collection transaction is cancelled.

Event data

Field Name
Type
Description

type

string

Event type. Fixed value: COLLECTION_CANCEL.

subMerchantId

string

NeoX identifier of the sub-merchant that owns the receiving virtual account, if applicable.

orderId

string

NeoX identifier of the collection order.

requestId

string

Unique identifier for this webhook event. Use this for idempotency.

remark

string

Free-text remark describing the cancellation.

extData

string

Reserved for future use. Currently always the literal string "{}".

secureHash

string

Base64-encoded SHA-256 signature. See Event Notification.

Sample data

Last updated

Was this helpful?