After executing a transaction, display the deposit instructions to your user and monitor for completion.
Get Transaction
curl https://api.ramp.gnosis.io/v1/intent/ ${ INTENT_ID } /transaction \
-H "Authorization: Bearer ${ ACCESS_TOKEN }"
Response
{
"id" : "txn_xyz789" ,
"status" : "IN_PROGRESS" ,
"context" : [
{
"encoding" : "DISPLAY" ,
"type" : "BANK" ,
"instructions" : {
"beneficiary" : "Gnosis Ramp Ltd" ,
"bankName" : "Example Bank" ,
"accountNumber" : "12345678" ,
"routingNumber" : "021000021" ,
"reference" : "GR-ABC123" ,
"rail" : "ACH"
}
}
],
"createdAt" : "2026-03-29T10:05:00.000Z" ,
"updatedAt" : "2026-03-29T10:06:00.000Z" ,
"lastActivityAt" : "2026-03-29T10:06:00.000Z"
}
Transaction Status
Status Description PENDINGTransaction created, waiting for user action IN_PROGRESSProcessing (funds detected or transfer initiated) SUCCESSTransaction completed successfully FAILEDTransaction failed CANCELLEDTransaction was cancelled
Deposit Instructions
The context array contains instructions for the user. Each entry has:
Field Description encodingFormat type (e.g., DISPLAY for human-readable) typeInstruction type: BANK or CRYPTO instructionsThe actual deposit details
BANK Instructions (ONRAMP)
For fiat-to-crypto (ONRAMP), users send money to a bank account:
{
"type" : "BANK" ,
"encoding" : "DISPLAY" ,
"instructions" : {
"beneficiary" : "Gnosis Ramp Ltd" ,
"bankName" : "Example Bank" ,
"accountNumber" : "12345678" ,
"routingNumber" : "021000021" ,
"reference" : "GR-ABC123" ,
"rail" : "ACH"
}
}
Display this to your user:
Beneficiary: Who to pay
Bank details: Account/routing numbers
Reference: Must be included in the transfer
The reference is critical — it’s how the payment is matched to the intent. Instruct users to include it exactly as shown.
CRYPTO Instructions (OFFRAMP)
For crypto-to-fiat (OFFRAMP), users send crypto to an address:
{
"type" : "CRYPTO" ,
"encoding" : "DISPLAY" ,
"instructions" : {
"address" : "0x742d35Cc6634C0532925a3b844Bc9e7595f..." ,
"chain" : "gnosis" ,
"currency" : "USDC" ,
"destinationTag" : null
}
}
Display this to your user:
Address: Wallet address to send to
Chain: Which blockchain network
Currency: Token to send
Monitoring Completion
Polling
Poll every 5 seconds until terminal status:
async function monitorTransaction ( intentId ) {
while ( true ) {
const response = await fetch (
`https://api.ramp.gnosis.io/v1/intent/ ${ intentId } /transaction` ,
{ headers: { 'Authorization' : `Bearer ${ accessToken } ` } }
);
const transaction = await response . json ();
switch ( transaction . status ) {
case 'SUCCESS' :
return { success: true , transaction };
case 'FAILED' :
case 'CANCELLED' :
return { success: false , transaction };
default :
// Still in progress
await new Promise ( r => setTimeout ( r , 5000 ));
}
}
}
Webhooks (Recommended)
For real-time updates without polling, use webhooks . Listen for MONEY_MOVEMENT_UPDATED events:
{
"eventType" : "MONEY_MOVEMENT_UPDATED" ,
"data" : {
"intentId" : "int_abc123def456" ,
"transactionId" : "txn_xyz789" ,
"status" : "SUCCESS"
}
}
Displaying to Users
ONRAMP Example UI
┌─────────────────────────────────────────┐
│ Complete Your Payment │
│ │
│ Send $100.00 USD via ACH to: │
│ │
│ Beneficiary: Gnosis Ramp Ltd │
│ Bank: Example Bank │
│ Account: 12345678 │
│ Routing: 021000021 │
│ │
│ Include this reference: │
│ GR-ABC123 │
│ │
│ [Copy Reference] │
└─────────────────────────────────────────┘
OFFRAMP Example UI
┌─────────────────────────────────────────┐
│ Send Your Crypto │
│ │
│ Send 100.000000 USDC to: │
│ │
│ Address: 0x742d35Cc... │
│ Network: Gnosis Chain │
│ │
│ [Copy Address] │
└─────────────────────────────────────────┘
Next Steps
Webhooks Set up real-time notifications.
ONRAMP Guide See the complete ONRAMP flow.