> ## Documentation Index
> Fetch the complete documentation index at: https://developer.me-cash.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quote Examples

Use the samples below to experiment with the [`POST /v1/quote`](/quote/create-quote) endpoint. Each tab shows the request payload and the success response for a different corridor.

## Endpoint

**POST** `{{baseURL}}/v1/quote`

## Required headers

| **Header**     | **Description**                 | **Required** | **Example**        |
| -------------- | ------------------------------- | ------------ | ------------------ |
| `x-api-key`    | Workspace API key.              | ✅ Yes        | `YOUR_API_KEY`     |
| `Content-Type` | Media type of the request body. | ✅ Yes        | `application/json` |

## Requests and responses

### Table of Contents

* [Convert 100,000 NGN to EUR](#convert-100000-ngn-to-eur) ([Payout Example](/payout-docs/payout-examples/ngn-eur-example))
* [Convert 100,000 NGN to GBP](#convert-100000-ngn-to-gbp) ([Payout Example](/payout-docs/payout-examples/ngn-gbp-example))
* [Convert 500,000 NGN to USD](#convert-500000-ngn-to-usd) ([Payout Example](/payout-docs/payout-examples/ngn-usd-example))
* [Convert 5,000 NGN domestically](#convert-5000-ngn-domestically) ([Payout Example](/payout-docs/payout-examples/ngn-ngn-example))
* [Convert 2,000 NGN to SGD](#convert-2000-ngn-to-sgd) ([Payout Example](/payout-docs/payout-examples/ngn-sgd-example))
* [Convert 10,000 NGN to KRW](#convert-10000-ngn-to-krw) ([Payout Example](/payout-docs/payout-examples/ngn-krw-example))
* [Convert 100,000 NGN to CNY](#convert-100000-ngn-to-cny) ([Payout Example](/payout-docs/payout-examples/ngn-cny-example))
* [Convert 100 USD to KRW](#convert-100-usd-to-krw) ([Payout Example](/payout-docs/payout-examples/usd-krw-example))
* [Convert 100 USD to THB](#convert-100-usd-to-thb) ([Payout Example](/payout-docs/payout-examples/usd-thb-example))
* [Convert 100 USD to MYR](#convert-100-usd-to-myr) ([Payout Example](/payout-docs/payout-examples/usd-myr-example))
* [Convert 100 USD to SGD](#convert-100-usd-to-sgd) ([Payout Example](/payout-docs/payout-examples/usd-sgd-example))
* [Convert 100 USD to VND](#convert-100-usd-to-vnd) ([Payout Example](/payout-docs/payout-examples/usd-vnd-example))
* [Convert 1,000 USD via Global SWIFT](#convert-1000-usd-via-global-swift) ([Payout Example](/payout-docs/payout-examples/usd-usd-swift-example))
* [Convert 125,000 NGN to CAD (Bank Transfer)](#convert-125000-ngn-to-cad-bank-transfer) ([Payout Example](/payout-docs/payout-examples/ngn-cad-example))
* [Convert 150,000 NGN to CAD (Interac)](#convert-150000-ngn-to-cad-interac) ([Payout Example](/payout-docs/payout-examples/ngn-cad-example))

***

### Convert 100,000 NGN to EUR

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": {
        "amount": 100000,
        "country": "NG",
        "currency": "NGN"
      },
      "target": {
        "country": "DK",
        "currency": "EUR"
      }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "74bgf9ea-141e-13c7-ade9-xxxxxxxxxxxxx",
      "source": { "currency": "NGN", "country": "NG", "amount": 100000 },
      "target": { "currency": "EUR", "country": "DK", "amount": 61.72 },
      "rate": 1620.21,
      "fee": { "amount": 1000 },
      "rules": [
        {
          "category": "LIMIT",
          "appliedCurrency": "EUR",
          "appliedCountry": "DK",
          "transaction": { "minimum": 10, "maximum": 25000 },
          "invoice": 25000
        }
      ],
      "summary": { "total": 101000 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "EUR",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 100,000 NGN to GBP

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 100000, "country": "NG", "currency": "NGN" },
      "target": { "country": "GB", "currency": "GBP" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "19agf2da-441e-54b7-cde9-xxxxxxxxxxxxx",
      "source": { "currency": "NGN", "country": "NG", "amount": 100000 },
      "target": { "currency": "GBP", "country": "GB", "amount": 52.5 },
      "rate": 1904.76,
      "fee": { "amount": 1000 },
      "rules": [
        {
          "category": "LIMIT",
          "appliedCurrency": "GBP",
          "appliedCountry": "GB",
          "transaction": { "minimum": 10, "maximum": 5000 },
          "invoice": 5000
        }
      ],
      "summary": { "total": 101000 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "GBP",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 500,000 NGN to USD

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 500000, "country": "NG", "currency": "NGN" },
      "target": { "country": "US", "currency": "USD" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "98agb1da-351e-54b7-cde9-xxxxxxxxxxxxx",
      "source": { "currency": "NGN", "country": "NG", "amount": 500000 },
      "target": { "currency": "USD", "country": "US", "amount": 335.5 },
      "rate": 1490.31,
      "fee": { "amount": 5000 },
      "rules": [
        {
          "category": "LIMIT",
          "appliedCurrency": "USD",
          "appliedCountry": "US",
          "transaction": { "minimum": 20, "maximum": 1000000 },
          "invoice": 1000000
        }
      ],
      "summary": { "total": 505000 },
      "settlementTime": "1 hour",
      "quoteCurrency": "USD",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 5,000 NGN domestically

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 5000, "country": "NG", "currency": "NGN" },
      "target": { "country": "NG", "currency": "NGN" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "02fjf834-665g-77h8-ade9-xxxxxxxxxxxxx",
      "source": { "currency": "NGN", "country": "NG", "amount": 5000 },
      "target": { "currency": "NGN", "country": "NG", "amount": 5000 },
      "rate": 1,
      "fee": { "amount": 150 },
      "rules": [],
      "summary": { "total": 5150 },
      "settlementTime": "Instant",
      "quoteCurrency": "NGN",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 2,000 NGN to SGD

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 2000, "country": "NG", "currency": "NGN" },
      "target": { "country": "SG", "currency": "SGD" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "sgd-quote-id-123456",
      "source": { "currency": "NGN", "country": "NG", "amount": 2000 },
      "target": { "currency": "SGD", "country": "SG", "amount": 3.50 },
      "rate": 571.42,
      "fee": { "amount": 50 },
      "rules": [],
      "summary": { "total": 2050 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "SGD",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 10,000 NGN to KRW

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 10000, "country": "NG", "currency": "NGN" },
      "target": { "country": "KR", "currency": "KRW" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "krw-quote-id-123456",
      "source": { "currency": "NGN", "country": "NG", "amount": 10000 },
      "target": { "currency": "KRW", "country": "KR", "amount": 14000 },
      "rate": 1.4,
      "fee": { "amount": 100 },
      "rules": [],
      "summary": { "total": 10100 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "KRW",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 100,000 NGN to CNY

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 100000, "country": "NG", "currency": "NGN" },
      "target": { "country": "CN", "currency": "CNY" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "cny-quote-id-123456",
      "source": { "currency": "NGN", "country": "NG", "amount": 100000 },
      "target": { "currency": "CNY", "country": "CN", "amount": 434.78 },
      "rate": 230.00,
      "fee": { "amount": 500 },
      "rules": [],
      "summary": { "total": 100500 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "CNY",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 100 USD to KRW

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 100, "country": "US", "currency": "USD" },
      "target": { "country": "KR", "currency": "KRW" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "kr-usd-quote-id-sample",
      "source": { "currency": "USD", "country": "US", "amount": 100 },
      "target": { "currency": "KRW", "country": "KR", "amount": 143267.38 },
      "rate": 1432.67,
      "fee": { "amount": 0.77 },
      "rules": [],
      "summary": { "total": 100.77 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "KRW",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 100 USD to THB

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 100, "country": "US", "currency": "USD" },
      "target": { "country": "TH", "currency": "THB" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "779997685019",
      "source": { "currency": "USD", "country": "US", "amount": 100 },
      "target": { "currency": "THB", "country": "TH", "amount": 3304.41 },
      "rate": 33.04,
      "fee": { "amount": 0.77 },
      "rules": [],
      "summary": { "total": 100.77 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "THB",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 100 USD to MYR

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 100, "country": "US", "currency": "USD" },
      "target": { "country": "MY", "currency": "MYR" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "779997685832",
      "source": { "currency": "USD", "country": "US", "amount": 100 },
      "target": { "currency": "MYR", "country": "MY", "amount": 426.72 },
      "rate": 4.26,
      "fee": { "amount": 0.77 },
      "rules": [],
      "summary": { "total": 100.77 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "MYR",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 100 USD to SGD

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 100, "country": "US", "currency": "USD" },
      "target": { "country": "SG", "currency": "SGD" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "usd-sgd-quote-id-sample",
      "source": { "currency": "USD", "country": "US", "amount": 100 },
      "target": { "currency": "SGD", "country": "SG", "amount": 135.50 },
      "rate": 1.355,
      "fee": { "amount": 1.00 },
      "rules": [],
      "summary": { "total": 101.00 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "SGD",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 100 USD to VND

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 100, "country": "US", "currency": "USD" },
      "target": { "country": "VN", "currency": "VND" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "vn-usd-quote-id-sample",
      "source": { "currency": "USD", "country": "US", "amount": 100 },
      "target": { "currency": "VND", "country": "VN", "amount": 2500000 },
      "rate": 25000,
      "fee": { "amount": 1.00 },
      "rules": [],
      "summary": { "total": 101.00 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "VND",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 1,000 USD via Global SWIFT

<Note>Use `SWIFT_CUSTOMER` when the sender bears all charges, `SWIFT_SHARED` when charges are split, or `SWIFT_BENEFICIARY` when the beneficiary bears all charges. All channels use the same quote request format.</Note>

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "SWIFT_CUSTOMER",
      "source": { "amount": 1000, "country": "US", "currency": "USD" },
      "target": { "country": "US", "currency": "USD" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "d3267c84-2b3c-4d6e-9f8g-xxxxxxxxxxxx",
      "source": { "currency": "USD", "country": "US", "amount": 1000 },
      "target": { "currency": "USD", "country": "US", "amount": 1000 },
      "rate": 1,
      "fee": { "amount": 25 },
      "rules": [],
      "summary": { "total": 1025 },
      "settlementTime": "1 hour",
      "quoteCurrency": "USD",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 125,000 NGN to CAD (Bank Transfer)

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "BANK_TRANSFER",
      "source": { "amount": 125000, "country": "NG", "currency": "NGN" },
      "target": { "country": "CA", "currency": "CAD" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "f1474828-6a2e-4ee8-xxxxxxxxxxxx",
      "source": { "currency": "NGN", "country": "NG", "amount": 125000 },
      "target": { "currency": "CAD", "country": "CA", "amount": 100 },
      "rate": 1250,
      "fee": { "amount": 500 },
      "rules": [],
      "summary": { "total": 125500 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "CAD",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

### Convert 150,000 NGN to CAD (Interac)

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST '{{baseURL}}/v1/quote' \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "paymentChannel": "INTERAC",
      "source": { "amount": 150000, "country": "NG", "currency": "NGN" },
      "target": { "country": "CA", "currency": "CAD" }
    }'
  ```

  ```json Response theme={null}
  {
    "message": "quote successfully created",
    "status": "success",
    "data": {
      "id": "5392890f-cab6-40ee-8db2-xxxxxxxxxx",
      "source": { "currency": "NGN", "country": "NG", "amount": 150000 },
      "target": { "currency": "CAD", "country": "CA", "amount": 120 },
      "rate": 1250,
      "fee": { "amount": 500 },
      "rules": [],
      "summary": { "total": 150500 },
      "settlementTime": "15 minutes",
      "quoteCurrency": "CAD",
      "expiresInSeconds": 600
    }
  }
  ```
</CodeGroup>

## Response field reference

<Note>Quotes expire 10 minutes after creation unless otherwise stated. If `expiresInSeconds` hits zero, request a new quote.</Note>

### General attributes

| **Field** | **Type** | **Description**                                  |
| --------- | -------- | ------------------------------------------------ |
| `message` | String   | Overall result of the request.                   |
| `status`  | String   | `success` or `error`.                            |
| `data.id` | String   | Quote identifier required when creating payouts. |

### Source (send) details

| **Field**         | **Type** | **Description**                     |
| ----------------- | -------- | ----------------------------------- |
| `source.currency` | String   | Currency being debited.             |
| `source.country`  | String   | Country where funds originate.      |
| `source.amount`   | Number   | Amount the sender pays before fees. |

### Target (receive) details

| **Field**         | **Type** | **Description**                |
| ----------------- | -------- | ------------------------------ |
| `target.currency` | String   | Currency being delivered.      |
| `target.country`  | String   | Destination country.           |
| `target.amount`   | Number   | Amount the recipient receives. |

### Rates, fees, and rules

| **Field**                     | **Type** | **Description**                   |
| ----------------------------- | -------- | --------------------------------- |
| `rate`                        | Number   | Exchange rate applied.            |
| `fee.amount`                  | Number   | Fees charged on this quote.       |
| `rules[].category`            | String   | Rule category (e.g. `LIMIT`).     |
| `rules[].transaction.minimum` | Number   | Minimum transaction size allowed. |
| `rules[].transaction.maximum` | Number   | Maximum transaction size allowed. |

### Expiry and settlement

| **Field**          | **Type** | **Description**                                  |
| ------------------ | -------- | ------------------------------------------------ |
| `summary.total`    | Number   | Total debit amount including fees.               |
| `settlementTime`   | String   | Estimated delivery time for the payout.          |
| `quoteCurrency`    | String   | Currency context for the quote rate.             |
| `expiresInSeconds` | Number   | Time remaining before the quote becomes invalid. |

## Error handling

| **Status** | **Message**                                                             | **Cause**                                          | **Next steps**                                           |
| ---------- | ----------------------------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------------- |
| 400        | `Invalid country or currency ISO code`                                  | Country/currency combination is not supported.     | Align to the corridors enabled for your workspace.       |
| 400        | `Invalid Payment Channel, check docs or contact support`                | `paymentChannel` isn’t supported for the corridor. | Switch to a supported channel before retrying.           |
| 400        | `Required field missing or invalid request`                             | Missing or malformed required fields.              | Validate payload fields prior to calling the API.        |
| 400        | `Minimum target amount for transaction is {minimum_transaction_amount}` | Target amount is below the minimum allowed.        | Increase the amount to meet the stated minimum.          |
| 400        | `Maximum target amount for transaction is {maximum_transaction_amount}` | Target amount exceeds the maximum allowed.         | Reduce the amount to fall under the limit.               |
| 400        | `Transaction target amount {transaction_amount} requires invoice`       | Amount crosses invoice documentation threshold.    | Attach the required invoice before requesting the quote. |
| 401        | `API key missing or incorrect`                                          | Authentication header missing/invalid.             | Include the proper API key for the environment.          |
| 403        | `Quote route not available, contact support`                            | Quote endpoint disabled for your workspace.        | Contact support to enable the route.                     |
| 403        | `Access denied: IP address not whitelisted`                             | Request comes from a non-whitelisted IP.           | Add the IP inside the dashboard allowlist.               |
| 429        | `API rate limit exceeded`                                               | Too many quote requests in a short period.         | Implement retries with exponential backoff.              |
| 500        | `Service temporarily unavailable`                                       | Temporary outage or maintenance.                   | Retry after a delay; escalate if it persists.            |

## Best practices

* Keep the `quoteId` from the response and use it immediately when you call the payout API.
* Inspect the `rules` array to decide whether to prompt the user for a different amount.
* When running demos, delete sensitive logs that may contain your API key before sharing.
