Skip to main content
POST
/
onramp
/
initiate
Initiate on-ramp
curl --request POST \
  --url https://api.zetmoney.co/v1/onramp/initiate \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "quoteId": "qt_01H8X3...",
  "walletId": "wal_01H8X3...",
  "destinationAddress": "0xabc...",
  "reference": "order_12345",
  "callbackUrl": "https://yourapp.com/webhooks/zet"
}
'
{
  "success": true,
  "data": {
    "transactionId": "txn_01H8X3...",
    "reference": "order_12345",
    "status": "pending",
    "depositAccount": {
      "bankName": "Wema Bank",
      "bankCode": "035",
      "accountNumber": "0123456789",
      "accountName": "Zet / John Doe"
    },
    "amount": "50120",
    "expiresAt": "2023-11-07T05:31:56Z"
  }
}

Authorizations

x-api-key
string
header
required

Your Zet API key. Contact zetdotmoney@gmail.com to obtain your keys.

Body

application/json
quoteId
string
required

Quote ID from a prior /onramp/quote call.

Example:

"qt_01H8X3..."

walletId
string
required

Zet wallet ID to receive the crypto. Required for custodial flow.

Example:

"wal_01H8X3..."

destinationAddress
string

External wallet address to receive crypto. Used for non-custodial flow. Mutually exclusive with walletId.

Example:

"0xabc..."

reference
string

Your unique reference for this transaction. If not provided, one is generated.

Example:

"order_12345"

callbackUrl
string<uri>

URL to receive webhook events for this specific transaction. Overrides the default webhook URL.

Example:

"https://yourapp.com/webhooks/zet"

Response

On-ramp initiated. Display deposit details to user.

success
boolean
Example:

true

data
object