Skip to main content
POST
Auth method: Signed (HMAC) — this endpoint requires the full set of signed headers: x-access-id, x-request-id, x-timestamp, and an HMAC-SHA256 authorization signature. See Authentication.
Returns a single-use quote that you pass to Initiate On-ramp.
  • The quote expires 60 seconds after it is created. Initiate before expiresAt.
  • The minimum on-ramp is $15 USD worth of fiat.
  • Only the merchant that requested a quote can redeem it.
This request counts against the on-ramp limit of 10 requests per minute. See Rate limits.

How the estimate is calculated

rate is the number of fiat units per 1 USD (for example about 1600 for NGN). Tender converts the fiat amount to USD, rounds to 2 decimal places, then divides by the target coin’s USD price:
For example, 50,000 NGN at a rate of 1600 is $31.25, which is `31.250000` USDT at $1.00 per USDT.

Headers

string
required
Base64-encoded HMAC-SHA256 signature of {"timeStamp":"<x-timestamp>","requestId":"<x-request-id>","accessId":"<x-access-id>"}, signed with your access secret. The request body is not part of the signature.Example: "pV3n0o8kq0lK2mJ8bZ1yq3Yt6hR0cXK9u4mVJ2l9sE0="
string
required
ISO 8601 timestamp; must be within 5 minutes of server timeExample: "2026-10-15T09:45:53.000Z"
string
required
A unique UUID v4 per requestExample: "550e8400-e29b-41d4-a716-446655440000"
string
required
Your API access IDExample: "your-access-id-here"
string
required
Example: "application/json"

Body

integer
required
Amount the customer will pay in fiatCurrency, in whole units (for example naira, not kobo). Must be an integer.Example: 50000
string
Fiat currency code, matched case-insensitively. Defaults to NGN.Example: "NGN"
string
required
The coin’s symbol from Fetch On-ramp Coins, matched case-insensitively.Example: "USDT"
string
required
The chain id to deliver on, from Fetch On-ramp Chains. The coin must be available on this chain.Example: "tron"

Response

string
required
Example: "success"
string
required
Example: "Quote generated"
object
required

Error responses

All errors return HTTP 400.

Authorizations

authorization
string
header
required

Signed (HMAC) authentication. Required headers: x-access-id, x-request-id (UUID v4), x-timestamp (ISO 8601, must be within 5 minutes of server time), and authorization: the Base64 HMAC-SHA256 of the JSON string {"timeStamp":"","requestId":"","accessId":""} (keys in that order, no whitespace) using your access secret. The request body, method and path are not signed. The API key must be linked to an outlet.

Headers

authorization
string
required

Base64-encoded HMAC-SHA256 signature of {"timeStamp":"","requestId":"","accessId":""}, signed with your access secret. The request body is not part of the signature.

x-timestamp
string<date-time>
required

ISO 8601 timestamp; must be within 5 minutes of server time

x-request-id
string<uuid>
required

A unique UUID v4 per request

x-access-id
string
required
Content-Type
string
required

Body

application/json
fiatAmount
integer
required

Whole fiat units (e.g. naira, not kobo). Must be worth at least $15 USD.

Example:

50000

targetCurrency
string
required

Coin symbol from Fetch On-ramp Coins.

Example:

"USDT"

targetChain
string
required

Chain id from Fetch On-ramp Chains.

Example:

"tron"

fiatCurrency
string
default:NGN
Example:

"NGN"

Response

Quote

status
string
Example:

"success"

message
string
Example:

"Quote generated"

data
object