CREATED, ONRAMP_INITIATED, ONRAMP_INCONSISTENT and REFUND_COMPLETED) may be observed via the transaction-status API but are never sent as webhooks for the onramp flow.
Sample Payloads
All payloads also include a top-leveluuid field (string) that always equals id. It is retained for backward compatibility and is a deprecated duplicate of id.
source_id, bank_transaction_id, and tag are always present and are serialized as an empty string ("") when unset, never null. txn_hash is always present (top-level string); it is serialized as an empty string ("") until the outgoing crypto withdrawal has an on-chain hash, so it is "" on ONRAMP_COMPLETED and FAILED, and is populated only on COMPLETED. failure_code and failure_desc are present only when the order fails; on success these keys are absent from the payload (not null).