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:

  1. Estimate outbound transfer costs.
  2. 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

ParameterTypeRequiredDescription
source_account_idstring✅ YesThe ID of the source account from which the transfer will be made.
amountnumber✅ YesThe amount to be transferred.
beneficiary_idstring✅ YesThe ID of the beneficiary receiving the transfer.
fixed_sidestring❌ NoDetermines which amount remains fixed: "source" or "destination".
destination_currencystring❌ NoDestination 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

ParameterTypeRequiredDescription
source_account_idstringThe ID of the source account for the exchange.
amountnumberThe amount to be exchanged.
fixed_sidestringDetermines whether the source or destination amount is fixed. Accepted values: "source" or "destination".
destinationobjectThe 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
ParameterTypeRequiredDescription
typestringMust be "account"
account_idstringThe ID of main account to settle into (must be different currency than source)
fx_settlement_batch
ParameterTypeRequiredDescription
typestringMust be "fx_settlement_batch"
currencystringCurrency 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.

FieldTypeDescription
idstringUnique ID for the quote, can be used to subsequently create a transfer
sending_amountobjectAmount to send from source account
total_feesobjectTotal fees to be charged
billing_amountobjectTotal amount to be debited from source account
destination_amountobjectAmount to be received by Beneficiary/Destination
fee_breakdownarrayDetailed breakdown of fees
expiry_datedateDate after which the quote will expire
operationstringType of operation (TRANSFER, EXCHANGE, TRANSFER_WITH_EXCHANGE)
ratenumberExchange rate (only for EXCHANGE or TRANSFER_WITH_EXCHANGE)
currency_pairstringCurrency pair format (base/quote), e.g. "NGN/USD"
source_account_idstringSource account ID
destinationobjectDestination detail
Amount
FieldTypeDescription
valuenumberThe amount value
currencystringThe currency of the amount
Fee Breakdown
FieldTypeDescription
valuenumberThe fee value
currencystringThe currency in which the fee is paid
descriptionstringA 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"
  }
}