Prefund Order Events
Prefund order events provide real-time updates on the lifecycle of a prefund transaction. These events can be consumed via webhooks to track payment progress and update customer balances accordingly.
Fiat Prefund Order Events
Order Status Events
| Event | Event Type | Status | Description |
|---|---|---|---|
| Payment Initiated | Order | initiated | Prefund order has been created and is awaiting payment. |
| Payment Authorised | Order | fund_settled | Apara has successfully received the funds. |
| Manual Review | Order | manual_review | The order has been placed on hold for compliance verification and manual review. |
| Completed | Order | completed | The prefund process has been completed and the corresponding customer balance has been updated. |
Event Flow
Payment Initiated
↓
Payment Authorised
↓
Completed
Alternate Flow
Payment Initiated
↓
Manual Review
↓
Completed
Sample Event Payload
Payment Initiated
{
"eventId": "EV-260305152722158",
"entityId": "PF-2603051527094076932",
"entityType": "prefund",
"status": "initiated",
"customer": {
"name": "sumanth",
"mid": "SAH5F0_NA_NA",
"createdAt": "2025-02-06T04:03:51.052Z"
},
"order": {
"orderId": "",
"type": "fiat_prefund",
"depositCurrency": "EUR",
"withdrawCurrency": "USDT",
"depositAmount": 10,
"withdrawAmount": 11.849141,
"paymentType": "bank_transfer",
"createdAt": "2026-03-05T15:27:11.721Z",
"customerOrderId": "PF-2603051527094076932",
"failureCode": "",
"failureMessage": "",
"bankTxnId": []
},
"createdAt": "2026-03-05T15:27:22.947Z"
}
The same payload structure is used for subsequent events, with the
statusfield updated to reflect the latest order state (fund_settled,manual_review, orcompleted).
Crypto Prefund Order Events
Order Status Events
| Event | Event Type | Status | Description |
|---|---|---|---|
| Payment Initiated | Order | initiated | Prefund order has been created and is awaiting blockchain confirmation. |
| Payment Authorised | Order | completed | Apara has successfully received the cryptocurrency and updated the customer balance. |
Event Flow
Payment Initiated
↓
Payment Authorised
Sample Event Payload
Payment Initiated
{
"eventId": "EV-260305154015494",
"entityId": "PF-2603051540043841902",
"entityType": "prefund",
"status": "initiated",
"customer": {
"name": "sumanth",
"mid": "SAH5F0_NA_NA",
"createdAt": "2025-02-06T04:03:51.052Z"
},
"order": {
"orderId": "",
"type": "crypto_prefund",
"depositCurrency": "USDC",
"withdrawCurrency": "USDC",
"depositAmount": 200000,
"withdrawAmount": 200000,
"paymentType": "crypto",
"createdAt": "2026-03-05T15:40:08.588Z",
"customerOrderId": "PF-2603051540043841902",
"failureCode": "",
"failureMessage": "",
"bankTxnId": [],
"network": "Ethereum",
"sendersWalletAddress": "",
"destinationWalletAddress": "0xde7cBED5AFA0E5F5863af199475513b55c7DCB40"
},
"createdAt": "2026-03-05T15:40:15.480Z"
}
Once the cryptocurrency is successfully received and verified, a final event is generated with the
statusfield set tocompleted.
Event Consumption Notes
-
Every event contains a unique
eventId. -
entityIdcorresponds to the original prefund order identifier. -
Events are delivered sequentially as the order progresses through its lifecycle.
-
Use the
statusfield as the source of truth when updating transaction state in your system. -
Customer balances should only be considered available after a terminal status (
completed) is received.