data object and follows one of two distinct structures:transactionId, externalId, status, sourceAmount, destinationAmount, sourceCurrency, destinationCurrency, rate, fee, createdAt).transactionId and the specific error code in the error string field.transactionId: Internal partner transaction identifier (UUID).externalId: External reference identifier for the exchange (UUID).status: Current processing state (e.g., started, pending, successful).sourceAmount: Amount deducted from the source balance (as a decimal string).destinationAmount: Amount credited to the destination balance (as a decimal string).sourceCurrency: Asset code being converted (e.g., EUR, BTC).destinationCurrency: Target asset code received (e.g., USDT, EUR).rate: Executed exchange conversion rate (as a decimal string).fee: Provision/fee applied to the operation (as a decimal string).createdAt: ISO 8601 UTC creation timestamp.started: Exchange request initiated and entered execution queue.pending: Order queued or waiting for liquidity execution.successful: Conversion executed; source and destination balances successfully updated.unsuccessful / rejected-by-reviewer: Exchange failed to execute or was cancelled.successful status before updating internal ledger accounts.error is present, handle the execution rejection immediately without waiting for standard status fields.rate, fee, and amount parameters to ensure precise audit records.successful or error) or query the exchange details endpoint to confirm final execution.curl --location 'https://your-api-server.com' \
--header 'Content-Type: application/json' \
--data '{
"type": "EXCHANGE_UPDATE",
"data": {
"transactionId": "7f8b9e10-3c2a-4b5d-9e8f-1a2b3c4d5e6f",
"externalId": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"status": "successful",
"sourceAmount": "1000.00",
"destinationAmount": "1085.50",
"sourceCurrency": "EUR",
"destinationCurrency": "USDT",
"rate": "1.0855",
"fee": "2.00",
"createdAt": "2026-09-14T09:15:00.123Z"
}
}'{}