Quotes and Exchanges
The Quotes API provides endpoints to help users estimate the cost of transfers and currency conversions before processing transactions.
With this API, you can:
- Estimate outbound transfer costs.
- Estimate conversion costs.
1. Estimate Transfer Costs
Overview
This endpoint allows users to estimate the cost of an outbound transfer before initiating the transaction. It provides details such as the billing amount, destination amount, total fees, exchange rate (if applicable), and expiry date.
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
source_account_id | string | ✅ Yes | The ID of the source account from which the transfer will be made. |
amount | number | ✅ Yes | The amount to be transferred. |
beneficiary_id | string | ✅ Yes | The ID of the beneficiary receiving the transfer. |
fixed_side | string | ❌ No | Determines which amount remains fixed: "source" or "destination". |
destination_currency | string | ❌ No | Destination currency for Currency Conversion |
Example Request
{
"source_account_id": "0191db23-369e-73c6-aa53-9f5f9a1c534e",
"amount": 1000000,
"beneficiary_id": "01922d50-b3d0-7e3e-af73-1a8d460cd2fa",
"fixed_side": "source",
"destination_currency":"AED"
}
Example cURL Request
curl --location 'http://api.sandbox.waza.co/lync/banking/v2/quotes/transfers' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"source_account_id": "0191db23-369e-73c6-aa53-9f5f9a1c534e",
"amount": 1000000,
"beneficiary_id": "01922d50-b3d0-7e3e-af73-1a8d460cd2fa",
"fixed_side": "source",
"destination_currency":"AED"
}'
2. Estimate Conversion Costs
The Estimate Conversion Costs API is used to get an estimated cost of an conversion when transferring funds between different currencies. This helps users determine the exchange rate and applicable fees before initiating a transaction.
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
source_account_id | string | ✅ | The ID of the source account for the exchange. |
amount | number | ✅ | The amount to be exchanged. |
fixed_side | string | ✅ | Determines whether the source or destination amount is fixed. Accepted values: "source" or "destination" . |
destination | object | ✅ | The details about the intended destination for the conversion. See section below |
Destination Types
The destination object can be one of two types: account
or fx_settlement_batch
account
Parameter | Type | Required | Description |
---|---|---|---|
type | string | ✅ | Must be "account" |
account_id | string | ✅ | The ID of main account to settle into (must be different currency than source) |
fx_settlement_batch
Parameter | Type | Required | Description |
---|---|---|---|
type | string | ✅ | Must be "fx_settlement_batch" |
currency | string | ✅ | Currency to settle using the FX settlement batching flow |
Example Request
{
"source_account_id": "abcdef12-3456-7890-abcd-ef1234567890",
"amount": 100000,
"fixed_side": "source",
"destination": {
"type": "account",
"account_id": "fedcba09-8765-4321-fedc-ba0987654321"
}
}
{
"source_account_id": "abcdef12-3456-7890-abcd-ef1234567890",
"amount": 100000,
"fixed_side": "source",
"destination": {
"type": "fx_settlement_batch",
"currency": "EUR"
}
}
Example cURL Request
curl --location 'http://api.sandbox.waza.co/lync/banking/v2/quotes/conversions' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"source_account_id": "abcdef12-3456-7890-abcd-ef1234567890",
"amount": 100000,
"fixed_side": "source",
"destination": {
"type": "account",
"account_id": "fedcba09-8765-4321-fedc-ba0987654321"
}
}'
curl --location 'http://api.sandbox.waza.co/lync/banking/v2/quotes/conversions' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"source_account_id": "abcdef12-3456-7890-abcd-ef1234567890",
"amount": 100000,
"fixed_side": "source",
"destination": {
"type": "fx_settlement_batch",
"currency": "EUR"
}
}'
Response Structure
A successful request returns a JSON response with transfer cost estimates. This response applies to both transfers and conversions
Example Response
{
"id": "12345678-9abc-def0-1234-56789abcdef0",
"sending_amount": {
"value": 100000,
"currency": "USD"
},
"total_fees": {
"value": 500,
"currency": "USD"
},
"billing_amount": {
"value": 100500,
"currency": "USD"
},
"destination_amount": {
"value": 92000,
"currency": "EUR"
},
"fee_breakdown": [
{
"value": 500,
"currency": "USD",
"description": "Transfer fee"
}
],
"expiry_date": "2023-05-14T15:00:00Z",
"operation": "EXCHANGE",
"rate": 0.920000,
"currency_pair": "USD/EUR",
"source_account_id": "abcdef12-3456-7890-abcd-ef1234567890",
"destination": {
"type": "Account",
"id": "fedcba09-8765-4321-fedc-ba0987654321"
}
}
Quote Response Schema
The response returned from estimation endpoints for transfers and conversions.
Field | Type | Description |
---|---|---|
id | string | Unique ID for the quote, can be used to subsequently create a transfer |
sending_amount | object | Amount to send from source account |
total_fees | object | Total fees to be charged |
billing_amount | object | Total amount to be debited from source account |
destination_amount | object | Amount to be received by Beneficiary/Destination |
fee_breakdown | array | Detailed breakdown of fees |
expiry_date | date | Date after which the quote will expire |
operation | string | Type of operation (TRANSFER , EXCHANGE , TRANSFER_WITH_EXCHANGE ) |
rate | number | Exchange rate (only for EXCHANGE or TRANSFER_WITH_EXCHANGE ) |
currency_pair | string | Currency pair format (base/quote), e.g. "NGN/USD" |
source_account_id | string | Source account ID |
destination | object | Destination detail |
Amount
Field | Type | Description |
---|---|---|
value | number | The amount value |
currency | string | The currency of the amount |
Fee Breakdown
Field | Type | Description |
---|---|---|
value | number | The fee value |
currency | string | The currency in which the fee is paid |
description | string | A description of the fee |
If the request fails, the API returns an error response with relevant details.
Example Error Response (Invalid Account ID):
{
"error": {
"message": "Invalid source account ID",
"code": "400"
}
}
Updated 2 months ago