JSON Payload Explanation
The HTTP POST callback’s JSON body contains the transaction details. Callbacks are sent for completed payments only, so there is no status field — receiving the callback means the funds have been delivered to your wallet.
| Field | Type | Description |
|---|---|---|
| accountEDTO | string | The iPay Account ID of the wallet that received the funds (e.g., GqEPbMBb55CH8x12b5le). |
| blockchainTxId | string | Blockchain transaction hash of the transfer to your wallet (e.g., 0x73c2...e566f). |
| chain | string | Blockchain network. Currently always MATIC (Polygon). |
| currency | string | Cryptocurrency delivered. Currently always USDT. |
| customerID | string | Your customId from the payment URL, returned as a string (e.g., "7228468"). |
| timestamp | object | Payment completion time as { "seconds": <unix seconds>, "nanoseconds": <ns> }. |
| transactionFee | number | Fee deducted, in currency (e.g., 0.615). |
| transactionFeePrecent | number | Fee rate applied, as a decimal fraction (e.g., 0.0123). Note the spelling — sent exactly as shown. |
| transferedAmount | number | Net amount delivered to your wallet, in currency (e.g., 49.385). Note the single r. |
| value_in_usd | number | Net amount in USD. May be omitted; do not rely on it for crediting. |
note
Field names are sent literally as listed — including transferedAmount and transactionFeePrecent. Use these exact keys when parsing.
Crediting the customer: use transferedAmount (the net amount that reached your wallet), matched to your order via customerID.
info
If a secret token is configured for your API key, it is sent in the authorization HTTP header of the callback request, not in the JSON body. Verify this header before processing the body. See Security Token.