Foreign Exchange
Get Current Rate​
This API retrieves the foreign exchange rate for a given transfer between two currencies.
- Endpoint
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Shared X-API key provided by Zoqq |
| x-product-id | string | Yes | Shared ProductID By Zoqq |
| x-request-id | string | Yes | Idempotency key for request tracking |
| x-user-id | string | Yes | User identification key |
| Content-Type | string | Yes | Must be application/json |
| Authorization | string | Yes | Bearer token |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| sourceAmount | number | Conditional | Amount to be debited (must be null if destinationAmount is provided) |
| destinationCurrencyCode | string | Yes | Target Currency (ISO currency code) |
| sourceCurrencyCode | string | Yes | Source Cureency (ISO currency code) |
| destinationAmount | number | Conditional | Amount to be received (must be null if sourceAmount is provided) |
Request Example
- cURL
- Python
- Java
- php
- C#
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}}'
import requests
import json
url = "{{baseUrl}}/zoqq/api/v1/transfer/rate?sourceAmount=10&destinationCurrencyCode=USD&sourceCurrencyCode=SGD&destinationAmount="
payload = {}
headers = {
'x-api-key': '{{Shared X-API key By Zoqq}}',
'x-product-id': '{{Shared ProductID By Zoqq}}',
'x-user-id': '{{UserID}}',
'x-request-id': '{{IdempotencyKey}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("{{baseUrl}}/zoqq/api/v1/transfer/rate?sourceAmount=10&destinationCurrencyCode=USD&sourceCurrencyCode=SGD&destinationAmount=")
.method("GET", body)
.addHeader("x-api-key", "{{Shared X-API key By Zoqq}}")
.addHeader("x-product-id", "{{Shared ProductID By Zoqq}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
<?php
$client = new Client();
$headers = [
'x-api-key' => '{{Shared X-API key By Zoqq}}',
'x-product-id' => '{{Shared ProductID By Zoqq}}',
'x-user-id' => '{{UserID}}',
'x-request-id' => '{{IdempotencyKey}}',
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {{AccessToken}}'
];
$request = new Request('GET', '{{baseUrl}}/zoqq/api/v1/transfer/rate?sourceAmount=10&destinationCurrencyCode=USD&sourceCurrencyCode=SGD&destinationAmount=', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "{{baseUrl}}/zoqq/api/v1/transfer/rate?sourceAmount=10&destinationCurrencyCode=USD&sourceCurrencyCode=SGD&destinationAmount=");
request.Headers.Add("x-api-key", "{{Shared X-API key By Zoqq}}");
request.Headers.Add("x-product-id", "{{Shared ProductID By Zoqq}}");
request.Headers.Add("x-user-id", "{{UserID}}");
request.Headers.Add("x-request-id", "{{IdempotencyKey}}");
request.Headers.Add("Authorization", "Bearer {{AccessToken}}");
var content = new StringContent(string.Empty);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response Example
- 200: Created
- 400: Error
{
"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
}
]
}
{
"code": 400,
"status": "error",
"message": "Something went wrong"
}
Generate Quote​
This API generates a quote for currency conversion or payout transactions.
- Endpoint
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Shared X-API key provided by Zoqq |
| x-product-id | string | Yes | Shared ProductID By Zoqq |
| x-request-id | string | Yes | Idempotency key |
| x-user-id | string | Yes | User identification key |
| Authorization | string | Yes | Bearer token |
| Content-Type | string | Yes | application/json |
Request Body Parameters
| Parameter | Type | Required | Description | Values |
|---|---|---|---|---|
| quoteType | string | Yes | Type of quote | payout, conversion |
| lockPeriod | string | Yes | Rate lock duration | 5_mins, 15_mins, 1_hour, 4_hours, 8_hours, 24_hours |
| conversionSchedule | string | Yes | Conversion timing | immediate, end_of_day, next_day, 2_days |
| sourceCurrencyCode | string | Yes | Source currency | ISO currency code |
| destinationCurrencyCode | string | Yes | Target currency | ISO currency code |
| sourceAmount | number | Conditional | Amount to convert | Must be null if destination_amount is provided |
| destinationAmount | number | Conditional | Target amount | Must be null if source_amount is provided |
Request Example
- cURL
- Python
- Java
- PHP
- C#
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
}'
import requests
import json
url = "{{baseUrl}}/zoqq/api/v1/transfer/quote"
payload = json.dumps({
"quoteType": "conversion",
"lockPeriod": "15_mins",
"conversionSchedule": "immediate",
"sourceCurrencyCode": "USD",
"destinationCurrencyCode": "SGD",
"sourceAmount": 500,
"destinationAmount": None
})
headers = {
'x-product-id': '{{Shared ProductID By Zoqq}}',
'x-api-key': '{{Shared X-API key By Zoqq}}',
'x-user-id': '{{UserID}}',
'x-request-id': '{{IdempotencyKey}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}',
'Cookie': ''
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"quoteType\":\"conversion\",\n \"lockPeriod\":\"15_mins\",\n \"conversionSchedule\":\"immediate\",\n \"sourceCurrencyCode\":\"USD\",\n \"destinationCurrencyCode\":\"SGD\",\n \"sourceAmount\": 500,\n \"destinationAmount\":null\n}");
Request request = new Request.Builder()
.url("{{baseUrl}}/zoqq/api/v1/transfer/quote")
.method("POST", body)
.addHeader("x-product-id", "{{Shared ProductID By Zoqq}}")
.addHeader("x-api-key", "{{Shared X-API key By Zoqq}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.addHeader("Cookie", "")
.build();
Response response = client.newCall(request).execute();
<?php
$client = new Client();
$headers = [
'x-product-id' => '{{Shared ProductID By Zoqq}}',
'x-api-key' => '{{Shared X-API key By Zoqq}}',
'x-user-id' => '{{UserID}}',
'x-request-id' => '{{IdempotencyKey}}',
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {{AccessToken}}',
'Cookie' => ''
];
$body = '{
"quoteType": "conversion",
"lockPeriod": "15_mins",
"conversionSchedule": "immediate",
"sourceCurrencyCode": "USD",
"destinationCurrencyCode": "SGD",
"sourceAmount": 500,
"destinationAmount": null
}';
$request = new Request('POST', '{{baseUrl}}/zoqq/api/v1/transfer/quote', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "{{baseUrl}}/zoqq/api/v1/transfer/quote");
request.Headers.Add("x-product-id", "{{Shared ProductID By Zoqq}}");
request.Headers.Add("x-api-key", "{{Shared X-API key By Zoqq}}");
request.Headers.Add("x-user-id", "{{UserID}}");
request.Headers.Add("x-request-id", "{{IdempotencyKey}}");
request.Headers.Add("Authorization", "Bearer {{AccessToken}}");
request.Headers.Add("Cookie", "");
var content = new StringContent("{\n \"quoteType\":\"conversion\",\n \"lockPeriod\":\"15_mins\",\n \"conversionSchedule\":\"immediate\",\n \"sourceCurrencyCode\":\"USD\",\n \"destinationCurrencyCode\":\"SGD\",\n \"sourceAmount\": 500,\n \"destinationAmount\":null\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response Example
- 200: Success
- 400: Error
{
"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"
}
]
}
{
"code": 400,
"status": "Error",
"message": "Reason of the error",
"data": null
}
Fetch Quote Details​
This API retrieves details of a previously generated quote.
- Endpoint
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Shared X-API key provided by Zoqq |
| x-product-id | string | Yes | Shared ProductID By Zoqq |
| x-request-id | string | Yes | Idempotency key |
| x-user-id | string | Yes | User identification key |
| Authorization | string | Yes | Bearer token |
| Content-Type | string | Yes | application/json |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| quote_id | string | Yes | The ID of the previously generated quote to retrieve the quote details |
Request Example
- cURL
- Python
- Java
- PHP
- C#
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}}'
import requests
url = "{{baseUrl}}/zoqq/api/v1/transfer/quotedetails"
params = {
"quote_id": "{{PreviouslyGeneratedQuoteId}}"
}
headers = {
"x-api-key": "{{Shared X-API key By Zoqq}}",
"x-product-id": "{{Shared ProductID By Zoqq}}",
"x-request-id": "{{IdempotencyKey}}",
"x-user-id": "{{UserID}}",
"Authorization": "Bearer {{AccessToken}}"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{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("Authorization", "Bearer {{AccessToken}}")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$client = new Client();
$headers = [
'x-product-id' => '{{Shared ProductID By Zoqq}}',
'x-api-key' => '{{Shared X-API key By Zoqq}}',
'x-user-id' => '{{UserID}}',
'x-request-id' => '{{IdempotencyKey}}',
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {{AccessToken}}'
];
$request = new Request('GET', '{{baseUrl}}/zoqq/api/v1/transfer/quotedetails?quote_id={{PreviouslyGeneratedQuoteId}}', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "{{baseUrl}}/zoqq/api/v1/transfer/quotedetails?quote_id={{PreviouslyGeneratedQuoteId}}");
request.Headers.Add("x-product-id", "{{Shared ProductID By Zoqq}}");
request.Headers.Add("x-api-key", "{{Shared X-API key By Zoqq}}");
request.Headers.Add("x-user-id", "{{UserID}}");
request.Headers.Add("x-request-id", "{{IdempotencyKey}}");
request.Headers.Add("Authorization", "Bearer {{AccessToken}}");
var content = new StringContent(string.Empty);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response Example
- 200: Success
- 400: Error
{
"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
}
}
{
"code": 400,
"status": "Error",
"message": "Reason of the error",
"data": null
}
Create Conversion​
This API executes a currency conversion based on a previously generated quote.
- Endpoint
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Shared X-API key provided by Zoqq |
| x-product-id | string | Yes | Shared ProductID By Zoqq |
| x-request-id | string | Yes | Idempotency key |
| x-user-id | string | Yes | User identification key |
| Authorization | string | Yes | Bearer token |
| Content-Type | string | Yes | application/json |
Request Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| quote_id | string | Yes* | Valid quote ID from Generate Quote |
| source_amount | number | Conditional** | Amount to convert |
| destination_amount | number | Conditional* | Target amount |
| source_currency | string | Yes*** | The currency code being sent* |
| destination_currency | string | Yes*** | 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
- Python
- Java
- PHP
- C#
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"
}'
import requests
import json
url = "{{baseUrl}}/zoqq/api/v1/transfer/conversion"
payload = json.dumps({
"quote_id": "{{PreviouslyGeneratedQuoteId}}",
"source_amount": 500,
"destination_amount": None,
"source_currency": "USD",
"destination_currency": "SGD"
})
headers = {
'x-product-id': '{{Shared ProductID By Zoqq}}',
'x-api-key': '{{Shared X-API key By Zoqq}}',
'x-user-id': '{{UserID}}',
'x-request-id': '{{IdempotencyKey}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n\"quote_id\": \"{{PreviouslyGeneratedQuoteId}}\",\n\"source_amount\": 500,\n\"destination_amount\":null,\n\"source_currency\":\"USD\",\n\"destination_currency\":\"SGD\"\n}");
Request request = new Request.Builder()
.url("{{baseUrl}}/zoqq/api/v1/transfer/conversion")
.method("POST", body)
.addHeader("x-product-id", "{{Shared ProductID By Zoqq}}")
.addHeader("x-api-key", "{{Shared X-API key By Zoqq}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
<?php
$client = new Client();
$headers = [
'x-product-id' => '{{Shared ProductID By Zoqq}}',
'x-api-key' => '{{Shared X-API key By Zoqq}}',
'x-user-id' => '{{UserID}}',
'x-request-id' => '{{IdempotencyKey}}',
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {{AccessToken}}'
];
$body = '{
"quote_id": "{{PreviouslyGeneratedQuoteId}}",
"source_amount": 500,
"destination_amount": null,
"source_currency": "USD",
"destination_currency": "SGD"
}';
$request = new Request('POST', '{{baseUrl}}/zoqq/api/v1/transfer/conversion', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "{{baseUrl}}/zoqq/api/v1/transfer/conversion");
request.Headers.Add("x-product-id", "{{Shared ProductID By Zoqq}}");
request.Headers.Add("x-api-key", "{{Shared X-API key By Zoqq}}");
request.Headers.Add("x-user-id", "{{UserID}}");
request.Headers.Add("x-request-id", "{{IdempotencyKey}}");
request.Headers.Add("Authorization", "Bearer {{AccessToken}}");
var content = new StringContent("{\n\"quote_id\": \"{{PreviouslyGeneratedQuoteId}}\",\n\"source_amount\": 500,\n\"destination_amount\":null,\n\"source_currency\":\"USD\",\n\"destination_currency\":\"SGD\"\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response Example
- 200: Success
- 400: Error
{
"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"
}
}
{
"code": 400,
"status": "Error",
"message": "Reason of failure",
"data": null
}
Get Conversion By ID​
This API retrieves the status and details of a specific currency conversion.
- Endpoint
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Shared X-API key provided by Zoqq |
| x-product-id | string | Yes | Shared ProductID By Zoqq |
| x-request-id | string | Yes | Idempotency key |
| x-user-id | string | Yes | User identification key |
| Authorization | string | Yes | Bearer token |
| Content-Type | string | Yes | application/json |
Request Example
- cURL
- Python
- Java
- PHP
- C#
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}}' \
import requests
import json
url = "{{baseUrl}}/zoqq/api/v1/transfer/conversion/{{ConversionID}}"
payload = {}
headers = {
'x-product-id': '{{Shared ProductID By Zoqq}}',
'x-api-key': '{{Shared X-API key By Zoqq}}',
'x-user-id': '{{UserID}}',
'x-request-id': '{{IdempotencyKey}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("{{baseUrl}}/zoqq/api/v1/transfer/conversion/{{ConversionID}}")
.method("GET", body)
.addHeader("x-product-id", "{{Shared ProductID By Zoqq}}")
.addHeader("x-api-key", "{{Shared X-API key By Zoqq}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
<?php
$client = new Client();
$headers = [
'x-product-id' => '{{Shared ProductID By Zoqq}}',
'x-api-key' => '{{Shared X-API key By Zoqq}}',
'x-user-id' => '{{UserID}}',
'x-request-id' => '{{IdempotencyKey}}',
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {{AccessToken}}'
];
$request = new Request('GET', '{{baseUrl}}/zoqq/api/v1/transfer/conversion/{{ConversionID}}', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "{{baseUrl}}/zoqq/api/v1/transfer/conversion/{{ConversionID}}");
request.Headers.Add("x-product-id", "{{Shared ProductID By Zoqq}}");
request.Headers.Add("x-api-key", "{{Shared X-API key By Zoqq}}");
request.Headers.Add("x-user-id", "{{UserID}}");
request.Headers.Add("x-request-id", "{{IdempotencyKey}}");
request.Headers.Add("Authorization", "Bearer {{AccessToken}}");
var content = new StringContent(string.Empty);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response Example
- 200: Success
- 400: Error
{
"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"
}
}
{
"code": 400,
"status": "Error",
"message": "Reason of failure",
"data": null
}
Get Conversion List​
This API retrieves the status and details of a currency conversion performed by the user.
- Endpoint
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| x-api-key | string | Yes | Shared X-API key provided by Zoqq |
| x-product-id | string | Yes | Shared ProductID By Zoqq |
| x-request-id | string | Yes | Idempotency key |
| x-user-id | string | Yes | User identification key |
| Authorization | string | Yes | Bearer token |
| Content-Type | string | Yes | application/json |
Request Example
- cURL
- Python
- Java
- PHP
- C#
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}}'
import requests
url = "{{baseUrl}}/zoqq/api/v1/transfer/conversionlist"
payload = {}
headers = {
'x-api-key': ' {{Shared X-API key By Zoqq}}',
'x-product-id': ' {{Shared ProductID By Zoqq}}',
'x-request-id': ' {{IdempotencyKey}}',
'x-user-id': ' {{UserID}}',
'Content-Type': ' application/json',
'Authorization': ' Bearer {{AccessToken}}'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse(" application/json");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("{{baseUrl}}/zoqq/api/v1/transfer/conversionlist")
.method("GET", body)
.addHeader("x-api-key", " {{Shared X-API key By Zoqq}}")
.addHeader("x-product-id", " {{Shared ProductID By Zoqq}}")
.addHeader("x-request-id", " {{IdempotencyKey}}")
.addHeader("x-user-id", " {{UserID}}")
.addHeader("Content-Type", " application/json")
.addHeader("Authorization", " Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
<?php
$client = new Client();
$headers = [
'x-api-key' => ' {{Shared X-API key By Zoqq}}',
'x-product-id' => ' {{Shared ProductID By Zoqq}}',
'x-request-id' => ' {{IdempotencyKey}}',
'x-user-id' => ' {{UserID}}',
'Content-Type' => ' application/json',
'Authorization' => ' Bearer {{AccessToken}}'
];
$request = new Request('GET', '{{baseUrl}}/zoqq/api/v1/transfer/conversionlist', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "{{baseUrl}}/zoqq/api/v1/transfer/conversionlist");
request.Headers.Add("x-api-key", " {{Shared X-API key By Zoqq}}");
request.Headers.Add("x-product-id", " {{Shared ProductID By Zoqq}}");
request.Headers.Add("x-request-id", " {{IdempotencyKey}}");
request.Headers.Add("x-user-id", " {{UserID}}");
request.Headers.Add("Authorization", " Bearer {{AccessToken}}");
var content = new StringContent(string.Empty);
content.Headers.ContentType = new MediaTypeHeaderValue(" application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Response Example
- 200: Success
- 400: Error
{
"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
}
]
}
]
}
{
"code": 400,
"status": "Error",
"message": "Reason of failure",
"data": null
}