📣 New Region Unlocked: You can now send payouts directly to Malawi! 🇲🇼
Quotes
Create Quote-OffRamp

Create Quote (Off Ramp)

This endpoint creates a quote for converting a cryptocurrency (crypto-to-fiat) in an off-ramp scenario. The data generated includes calculated rates, fees, and applicable transaction limits.


Endpoint

POST {{baseURL}}/v1/ramp/quote

Header

HeaderValueRequired
Content-Typeapplication/jsonYes
x-api-keyYOUR_API_KEYYes

Example Request Body

cURL

curl --location --request POST '{{baseURL}}/v1/ramp/quote' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
  "paymentChannel": "BANK_TRANSFER",
  "source": {
    "amount": 5000,
    "symbol": "USDC",
    "blockchain": "MATIC"
  },
  "target": {
    "country": "NG",
    "currency": "NGN"
  }
}'
ℹ️

Note: Gas fee level defaults to MEDIUM.

Success Response 200 OK

{
  "message": "quote successfully created",
  "status": "success",
  "data": {
    "id": "92da6ea0-79fe-4000-971d-xxxxxxxxxx",
    "source": {
      "currency": "USDC",
      "symbol": "USDC",
      "addressRegex": "^(0x)[0-9A-Fa-f]{40}$",
      "amount": 0.12,
      "type": "CRYPTOCURRENCY",
      "network": {
        "id": "24d4025f-46fb-4021-b0c4-xxxxxxxxxx",
        "name": "USDC",
        "blockchain": "MATIC"
      }
    },
    "target": {
      "currency": "NGN",
      "country": "NG",
      "amount": 117.30,
      "type": "FIAT"
    },
    "rate": 0.00102300,
    "fees": {
      "amount": 0.00
    },
    "rules": [
      {
        "category": "LIMIT",
        "appliedCurrency": "NGN",
        "appliedCountry": "NG",
        "transaction": {
          "minimum": 10.00,
          "maximum": 2000000.00
        },
        "invoice": 2000000.00
      }
    ],
    "gasFee": {
      "feeLevel": {
        "type": "MEDIUM",
        "fee": {
          "name": "USDC",
          "symbol": "USDC",
          "amount": 0.02440458
        }
      }
    },
    "summary": {
      "total": 0.12
    }
  }
}

Response Fields Breakdown

FieldTypeDescription
messagestringResult message.
statusstringStatus of the request (e.g., success).
data.idstringUnique identifier for the created quote.

Source Object

FieldTypeDescription
data.source.currencystringName of the source currency (e.g., USDC).
data.source.symbolstringSymbol of the source currency (e.g., USDC).
data.source.addressRegexstringRegular expression to validate addresses.
data.source.amountnumberAmount of the source asset.
data.source.typestringType of the source asset (e.g., CRYPTOCURRENCY).
data.source.network.idstringUnique ID of the source network.
data.source.network.namestringName of the source network (e.g., USDC).
data.source.network.blockchainstringBlockchain name (e.g., MATIC).

Target Object

FieldTypeDescription
data.target.currencystringTarget currency (e.g., NGN).
data.target.countrystringCountry code of the target (e.g., NG).
data.target.amountnumberAmount in the target currency.
data.target.typestringType of the target asset (FIAT or CRYPTOCURRENCY).

Rate and Fees

FieldTypeDescription
data.ratenumberConversion rate from source to target.
data.fees.amountnumberFee amount applied to the transaction.

Rules Array

FieldTypeDescription
data.rules[].categorystringRule category (e.g., LIMIT).
data.rules[].appliedCurrencystringCurrency to which the rule is applied.
data.rules[].appliedCountrystringCountry where the rule is applied.
data.rules[].transaction.minimumnumberMinimum allowable transaction amount.
data.rules[].transaction.maximumnumberMaximum allowable transaction amount.
data.rules[].invoicenumberInvoice amount limit.

Gas Fee Object

FieldTypeDescription
data.gasFee.feeLevel.typestringSelected gas fee level (e.g., MEDIUM).
data.gasFee.feeLevel.fee.namestringName of the token used for gas fee (e.g., USDC).
data.gasFee.feeLevel.fee.symbolstringSymbol of the gas fee token.
data.gasFee.feeLevel.fee.amountnumberGas fee amount in the token.

Summary

FieldTypeDescription
data.summary.totalnumberTotal amount to be sent by the user.

Error Responses

HTTP StatusError CodeMessageDescription
400INVALID_INPUTInvalid request payloadOne or more fields are missing or have invalid values.
401UNAUTHORIZEDMissing or invalid API keyThe x-api-key header is missing or incorrect.
403FORBIDDENAccess deniedThe authenticated user is not allowed to create quotes.
404NOT_FOUNDResource not foundThe requested network or currency does not exist.
500SERVER_ERRORInternal server errorAn unexpected error occurred on the server.