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
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 "{}".
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:
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
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 "{}".
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
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 "{}".
Sample data
COLLECTION_CANCEL
Sent when a collection transaction is cancelled.
Event data
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 "{}".
Sample data
Last updated
Was this helpful?