Documentation
Initialize Quote

Initializing a quote

Overview

The next step once you've created a quote and reviewed the exchange rate, is to initialize the quote. Initialization involves providing beneficiary details such as bank account information or mobile wallet details.

Request

You initialize a quote by sending a POST request to /api/v1/payouts/initialize with the quote ID, beneficiary details and some other information. The beneficiary's details should include their bank account or mobile wallet information. Here's a sample request payload:

Sample Request Payload

{
  "quoteId": "QT_6156",
  "customerId": "6ae40f3c-0eb5-478e-8892-560bb547rt3d",
  "country": "NG",
  "reference": "off_QT_ref-10a4",
  "beneficiaryId": "a21b99cb-e00d-4f39-8486-6f82e0e78dee", // Can be used in place of the beneficiary object if the beneficiary has been use before
  "beneficiary": {
       "type": "BANK",
       "bankCode": "110072",
       "accountNumber": "1421795566"
   },
  "paymentReason": "Funds for stuff",
  "callbackUrl": "https://example.com/callback/id",
  "clientMetaData": {
    "name": "john doe",
    "height": "194"
  } // whatever custom data that needs to be recorded about the customer
}

The complete specification of the endpoint and its properties can be found in the API reference (opens in a new tab).

Response

The response will confirm the quote initialization, providing an updated status, payment ETA, and beneficiary details. Here's a sample response:

Sample Response

{
    "status": true,
    "message": "OffRamp quote initialized successfully",
    "data": {
        "fees": 0,
        "id": "6ae40f3c-0eb5-478e-8892-560ee427ee3c",
        "address": "TS8bXUyq2QdyYceKVxcvJpHQ6NX6qY2xaZ",
        "chain": "trc20",
        "status": "initiated",
        "paymentETA": "3-5 minutes",
        "reference": "off_QT_ref-10a4",
        "fromAsset": "usdt",
        "quoteId": "QT_6156",
        "paymentReason": "Funds for stuff",
        "settlementCurrency": "ngn",
        "exchangeRate": 1626.1,
        "expiryTimeStamp": 1736937230,
        "amount": 200,
        "btcAmount": 0.00211578,
        "satAmount": 211578,
        "expiresInText": "This invoice expires in 15 minutes",
        "beneficiaryDetails": {
            "id": "e8455a92-65a6-4ad0-b902-ba51392de269",
            "status": "success",
            "country": "NG",
            "currency": "NGN",
            "createdAt": "2025-01-15T10:17:49.419Z",
            "reference": "QT_6156_86cadb25a4ac",
            "updatedAt": "2025-01-15T10:17:49.419Z",
            "destination": {
                "type": "BANK",
                "bankCode": "000014",
                "accountName": "JANE DOE",
                "accountNumber": "1421795566"
            }
        },
        "settlementAmount": 325220
    }
}

Although an address was provided in the response, it is worth mentioning that payment should not be made to the address until the quote has been finalized.