Skip to main content
POST
/
v1
/
api
/
onramp
/
initiate
Initiate On-ramp
curl --request POST \
  --url https://secureapi.tender.cash/v1/api/onramp/initiate \
  --header 'Content-Type: <content-type>' \
  --header 'authorization: <api-key>' \
  --header 'x-access-id: <x-access-id>' \
  --header 'x-request-id: <x-request-id>' \
  --header 'x-timestamp: <x-timestamp>' \
  --data '
{
  "quoteId": "b7f2a1c3-9d4e-4b2f-a8c0-1e2d3f4a5b6c",
  "targetAddress": "TRDFGhjkytywooiueonuoo",
  "customer": {
    "email": "customer@example.com",
    "name": "Ada Obi"
  },
  "metadata": {
    "orderId": "ORD-9821"
  }
}
'
{
  "status": "success",
  "message": "Onramp initiated",
  "data": {
    "reference": "a3f1c2d4-8e7b-4f0a-9c1d-2e3f4a5b6c7d",
    "status": "pending_payment",
    "bankTransfer": {
      "accountNumber": "0123456789",
      "accountName": "Tender / Ada Obi",
      "bankName": "Wema Bank"
    },
    "expiresAt": "2025-06-09T11:00:00.000Z",
    "amount": {
      "value": 50000,
      "currency": "NGN"
    },
    "targetChain": "tron",
    "targetAddress": "TRDFGhjkytywooiueonuoo",
    "targetCurrency": "USDT"
  }
}

Headers

authorization
string
required
Base64-encoded HMAC-SHA256 signature of the request payload using your API secretExample: "5e73d044c44d733fcf819ad3409aaa..."
x-timestamp
string
required
Example: "2025-03-15T09:45:53.000Z"
x-request-id
string
required
Example: "550e8400-e29b-41d4-a716-446655440000"
x-access-id
string
required
Example: "your-access-id-here"
Content-Type
string
required
Example: "application/json"

Body

quoteId
string
required
The quoteId returned by Get On-ramp Quote. Must not be expired or already used. Each quote is single-use.Example: "b7f2a1c3-9d4e-4b2f-a8c0-1e2d3f4a5b6c"
targetAddress
string
required
Wallet address that will receive the crypto. Must be valid for the chain specified in the quote.Example: "TRDFGhjkytywooiueonuoo"
customer
object
required
Details of the customer making the fiat payment
metadata
object
Optional key-value pairs for your own reference. Values must be strings or numbers.Example: { "orderId": "ORD-9821", "userId": "usr_42" }

Error cases

ConditionMessage
quoteId not found or already used"Quote not found or already used"
Quote past its expiresAt"Quote has expired"
Missing quoteId fieldJoi 400 validation error

Response

status
string
required
Example: "success"
message
string
required
Example: "Onramp initiated"
data
object
required

Authorizations

authorization
string
header
required

HMAC-SHA256 signature. Required headers: x-access-id, x-request-id (UUID), x-timestamp (ISO), authorization (HMAC signature)

Headers

authorization
string
required

Base64-encoded HMAC-SHA256 signature of the request payload using the API secret

x-timestamp
string<date-time>
required

Current timestamp in ISO 8601 format

x-request-id
string<uuid>
required

Unique identifier for the request (UUID v4)

x-access-id
string
required

Your API access ID provided by Tender

Content-Type
string
required

Body

application/json
quoteId
string<uuid>
required
Example:

"b7f2a1c3-9d4e-4b2f-a8c0-1e2d3f4a5b6c"

targetAddress
string
required
Example:

"TRDFGhjkytywooiueonuoo"

customer
object
required
metadata
object

Response

On-ramp initiated successfully

status
string
message
string
data
object