Skip to main content

Foreign Exchange

Get Current Rate​

This API retrieves the foreign exchange rate for a given transfer between two currencies.

GET {{baseUrl}}/zoqq/api/v1/transfer/rate

Description

This API returns the applicable exchange rate, calculated destination amount, and related details based on the provided source amount and currency codes.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Zoqq
x-product-idstringYesShared ProductID By Zoqq
x-request-idstringYesIdempotency key for request tracking
x-user-idstringYesUser identification key
Content-TypestringYesMust be application/json
AuthorizationstringYesBearer token

Query Parameters

ParameterTypeRequiredDescription
sourceAmountnumberConditionalAmount to be debited (must be null if destinationAmount is provided)
destinationCurrencyCodestringYesTarget Currency (ISO currency code)
sourceCurrencyCodestringYesSource Cureency (ISO currency code)
destinationAmountnumberConditionalAmount to be received (must be null if sourceAmount is provided)

Request Example

curl --location --request GET \
--url '{{baseUrl}}/zoqq/api/v1/transfer/rate?sourceAmount=10&destinationCurrencyCode=USD&sourceCurrencyCode=SGD&destinationAmount=' \
--header 'x-api-key: {{Shared X-API key By Zoqq}}' \
--header 'x-product-id: {{Shared ProductID By Zoqq}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}'

Response Example

{
"code": 200,
"status": "success",
"message": "Rate fetched Successfully",
"data": [
{
"netExchangeRate": 0.775,
"sourceCurrencyCode": "SGD",
"destinationCurrencyCode": "USD",
"rateCaptureTime": "2025-08-20T11:10:12+0000",
"sourceAmount": 10.0,
"destinationAmount": 7.75
}
]
}


Generate Quote​

This API generates a quote for currency conversion or payout transactions.

POST {{baseUrl}}/zoqq/api/v1/transfer/quote

Description

Retrieve a foreign exchange (FX) quote for a currency conversion. Th qoute provides the applicable exchange rate, the amount to be received after conversion, and the duration for which the rate remains valid. This helps to preview the conversion details in advance before proceeding with the actual transaction.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Zoqq
x-product-idstringYesShared ProductID By Zoqq
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesapplication/json

Request Body Parameters

ParameterTypeRequiredDescriptionValues
quoteTypestringYesType of quotepayout, conversion
lockPeriodstringYesRate lock duration5_mins, 15_mins, 1_hour, 4_hours, 8_hours, 24_hours
conversionSchedulestringYesConversion timingimmediate, end_of_day, next_day, 2_days
sourceCurrencyCodestringYesSource currencyISO currency code
destinationCurrencyCodestringYesTarget currencyISO currency code
sourceAmountnumberConditionalAmount to convertMust be null if destination_amount is provided
destinationAmountnumberConditionalTarget amountMust be null if source_amount is provided

Request Example

curl --location --request POST \
--url '{{baseUrl}}/zoqq/api/v1/transfer/quote' \
--header 'x-api-key: {{Shared X-API key By Zoqq}}' \
--header 'x-product-id: {{Shared ProductID By Zoqq}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}' \
--data '{
"quoteType":"conversion",
"lockPeriod":"15_mins",
"conversionSchedule":"immediate",
"sourceCurrencyCode":"USD",
"destinationCurrencyCode":"SGD",
"sourceAmount": 500,
"destinationAmount":null
}'

Response Example

{
"code": 200,
"status": "success",
"message": "Quote Generated Successfully",
"data": [
{
"id": "6d3c2419-7921-30ed-b093-739a4fa25a4d",
"netExchangeRate": "1.2726106800",
"expiryTime": "2025-08-07T07:49:12+0000",
"sourceCurrencyCode": "USD",
"destinationCurrencyCode": "SGD",
"quoteType": "conversion",
"conversionSchedule": "2025-08-07",
"lockPeriod": "MIN_15",
"rateCaptureTime": "2025-08-07T07:34:12+0000",
"sourceAmount": "500.0",
"destinationAmount": "636.31",
"createdTime": "2025-08-07"
}
]
}

Fetch Quote Details​

This API retrieves details of a previously generated quote.

GET {{baseUrl}}/zoqq/api/v1/transfer/quotedetails

Description

Retrieve the full details of a previously generated FX quote using it’s unique quote ID. It is used to confirm quote details such as exchange rate, buy/sell currencies, and quote expiration before executing the conversion. This ensures that the quote is still valid and can be referenced in a conversion request.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Zoqq
x-product-idstringYesShared ProductID By Zoqq
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesapplication/json

Query Parameters

ParameterTypeRequiredDescription
quote_idstringYesThe ID of the previously generated quote to retrieve the quote details

Request Example

curl --location --request GET \
--url '{{baseUrl}}/zoqq/api/v1/transfer/quotedetails?quote_id={{PreviouslyGeneratedQuoteId}}' \
--header 'x-api-key: {{Shared X-API key By Zoqq}}' \
--header 'x-product-id: {{Shared ProductID By Zoqq}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}'

Response Example

{
"code": 200,
"status": "success",
"message": "Quote fetched Successfully",
"data": {
"id": "quote_6wBIHIRhPElAHfcgVaDFZs",
"netExchangeRate": 1.3279389,
"expiryTime": "2023-06-16T05:07:03Z",
"sourceCurrencyCode": "USD",
"destinationCurrencyCode": "SGD",
"conversionSchedule": "immediate",
"lockPeriod": "5_mins",
"rateCaptureTime": "2023-06-16T01:02:03Z",
"sourceAmount": 100,
"destinationAmount": 132.79
}
}

Create Conversion​

This API executes a currency conversion based on a previously generated quote.

POST {{baseUrl}}/zoqq/api/v1/transfer/conversion

Description

Initiate a currency conversion between two wallets. This will debit one currency and credit another in your Zoqq account. It is used to perform actual FX transactions to convert wallet balances, optionally tied to a quote. You can reference a previously obtained quote for a fixed rate, or proceed.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Zoqq
x-product-idstringYesShared ProductID By Zoqq
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesapplication/json

Request Body Parameters

ParameterTypeRequiredDescription
quote_idstringYes*Valid quote ID from Generate Quote
source_amountnumberConditional**Amount to convert
destination_amountnumberConditional*Target amount
source_currencystringYes***The currency code being sent*
destination_currencystringYes***The currency code being received

*The quote_id must match the previously generated quote.

**Either source_amount or destination_amount must match the original quote.

***Both source_currency and destination_currency must match the original quote.

Request Example

curl --location --request POST \
--url '{{baseUrl}}/zoqq/api/v1/transfer/conversion' \
--header 'x-api-key: {{Shared X-API key By Zoqq}}' \
--header 'x-product-id: {{Shared ProductID By Zoqq}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}' \
--data '{
"quote_id": "{{PreviouslyGeneratedQuoteId}}",
"source_amount": 500,
"destination_amount":null,
"source_currency":"USD",
"destination_currency":"SGD"
}'

Response Example

{
"code": 200,
"status": "success",
"message": "Create Conversion Successfully Executed",
"data": {
"id": "conversion_4UTXo2tQnThdZGrMz6FdQR",
"status": "processing",
"conversion_time": "2023-06-16T05:22:14Z",
"source_currencycode": "USD",
"destination_currencycode": "SGD",
"source_amount": 100,
"destination_amount": 132.52,
"quote_id": "quote_6WRfj2CkYaRSuiPskK3kj3",
"net_exchangerate": 1.3251652,
"system_reference_number": "WFT9188961163",
"createdTime": "2023-06-16T05:22:14Z"
}
}

Get Conversion By ID​

This API retrieves the status and details of a specific currency conversion.

GET {{baseUrl}}/zoqq/api/v1/transfer/conversion

Description

Fetch details of a specific conversion using its conversion_id. Used to track or audit the status and details of a particular FX conversion transaction. This includes transaction status, rates, currencies involved, and settlement details.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Zoqq
x-product-idstringYesShared ProductID By Zoqq
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesapplication/json

Request Example

curl --location --request GET \ 
--url '{{baseUrl}}/zoqq/api/v1/transfer/conversion/{{ConversionID}}' \
--header 'x-api-key: {{Shared X-API key By Zoqq}}' \
--header 'x-product-id: {{Shared ProductID By Zoqq}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}' \

Response Example

{
"code": 200,
"status": "success",
"message": "Conversion Details Fetched",
"data": {
"id": "13a154ca-4ca6-4f8b-9c30-eb09312f44ce",
"status": "SETTLED",
"conversionTime": "2025-04-23T08:05:52+0000",
"sourceCurrencycode": "USD",
"destinationCurrencycode": "SGD",
"sourceAmount": 100.0,
"destinationAmount": 131.73,
"quoteId": "cf9dbf97-a74f-3f77-8ced-913861b31336",
"netExchangerate": 1.317342,
"systemReferenceNumber": "C250423-V53OOTQ",
"createdTime": "2025-04-23T08:05:52+0000"
}
}

Get Conversion List​

This API retrieves the status and details of a currency conversion performed by the user.

GET {{baseUrl}}/zoqq/api/v1/transfer/conversionlist

Description

Fetch details of a all conversions performed by the user. Used to track or audit the status and details of a all FX conversion transactions. This includes transaction status, rates, currencies involved, and settlement details.

Request Headers

ParameterTypeRequiredDescription
x-api-keystringYesShared X-API key provided by Zoqq
x-product-idstringYesShared ProductID By Zoqq
x-request-idstringYesIdempotency key
x-user-idstringYesUser identification key
AuthorizationstringYesBearer token
Content-TypestringYesapplication/json

Request Example

curl --location --request GET \ 
--url '{{baseUrl}}/zoqq/api/v1/transfer/conversionlist' \
--header 'x-api-key: {{Shared X-API key By Zoqq}}' \
--header 'x-product-id: {{Shared ProductID By Zoqq}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}'

Response Example

{
"code": 200,
"status": "success",
"message": "Conversion List Fetched Successfully",
"data": [
{
"conversions": [
{
"id": "e7e68c38-5720-456e-8ce1-4615764ce1bd",
"status": "SETTLED",
"conversionTime": "2025-08-08T04:52:31+0000",
"sourceCurrencycode": "SGD",
"destinationCurrencycode": "USD",
"sourceAmount": 9.97,
"destinationAmount": 7.73,
"quoteId": "a8f32636-5eba-3144-aa6e-b67157594faf",
"netExchangerate": 1.290062,
"systemReferenceNumber": "C250808-FJXG170",
"createdTime": null
},
{
"id": "b8d1b489-4764-48f4-acf0-03ae2b707186",
"status": "SETTLED",
"conversionTime": "2025-08-08T04:42:57+0000",
"sourceCurrencycode": "SGD",
"destinationCurrencycode": "USD",
"sourceAmount": 9.97,
"destinationAmount": 7.73,
"quoteId": "c72ef69e-071a-38d6-a4f9-af2922087bf8",
"netExchangerate": 1.290311,
"systemReferenceNumber": "C250808-5J14Q0Z",
"createdTime": null
}
]
}
]
}