Skip to main content

FX Quote

An FX Quote returns the real-time exchange rate, converted source amount, fees (if any), and a 30-second expiry timestamp for an upcoming International Wire. Quotes are ephemeral — you must create the international-wire transaction before the quote expires.


Resource Access

Production (api.ahrvo.network)

POST https://api.ahrvo.network/banking/us2/v1/transaction/fxQuote
GET https://api.ahrvo.network/banking/us2/v1/transaction/fxQuote/id/{fxQuoteId}

Staging (gateway.ahrvo.network)

POST https://gateway.ahrvo.network/banking/us2/v1/transaction/fxQuote
GET https://gateway.ahrvo.network/banking/us2/v1/transaction/fxQuote/id/{fxQuoteId}

Request Body — Create Quote

AttributeRequiredNotes
destination.amountYes*One of destination.amount or source.amount is mandatory.
Specify the amount that must arrive at the foreign beneficiary.
destination.currencyYesThree-letter ISO currency, e.g. CNY, EUR.
source.amountYes*Use when you know the USD you wish to debit.
Only valid when paired with destination.currency.
— other fields —N/AAll other response-only attributes are system-generated.

Response Attributes

FieldDescription
source.amount / currencyUSD amount debited from the customer’s Ahrvo account.
destination.amount / currencyForeign amount delivered to the beneficiary.
fxRateInterbank spot rate (pair: USD → destination.currency).
feeFX service fee charged.
fxQuoteExpiryUTC timestamp — quote is valid for 30 s from creation.
statusGENERATED (default) • ACCEPTED (after a transaction is created using the quote).
Audit Fieldsid, resourceName, url, createdOn/By, lastUpdatedOn/By.

Sample 1 — Create Quote by destination amount + currency
POST /v1/transaction/fxQuote HTTP/1.1
Host: <hostname>
Authorization: Bearer <JWT token>
x-api-key: {apiKey}
Content-Type: application/json
{
"destination": {
"amount": "31",
"currency": "CNY"
}
}
Sample Response
{
"resourceName": "fxQuote",
"url": "v1/customer/id/4258731/transaction/fxQuote/id/17",
"id": 17,
"destination": { "amount": "31.00", "currency": "CNY" },
"source": { "amount": "4.36", "currency": "USD" },
"fxRate": "0.140623",
"fee": "0.00",
"fxQuoteExpiry": "05/27/2025 06:18:32",
"status": "ACCEPTED",
"createdOn": "05/27/2025 06:18:02",
"lastUpdatedOn": "05/27/2025 06:18:11",
"createdBy": { "userType": "API_USER", "userName": "nikhil.thakur+39340430393@prth.com" },
"lastUpdatedBy": { "userType": "API_USER", "userName": "nikhil.thakur+39340430393@prth.com" }
}
HTTP/1.1 200 OK

Sample 2 — Create Quote by source amount + destination currency
POST /v1/transaction/fxQuote HTTP/1.1
Host: <hostname>
Authorization: Bearer <JWT token>
x-api-key: {apiKey}
Content-Type: application/json
{
"destination": { "currency": "CNY" },
"source": { "amount": "31" }
}
Sample Response
{
"resourceName": "fxQuote",
"url": "v1/customer/id/4258731/transaction/fxQuote/id/19",
"id": 19,
"destination": { "amount": "220.48", "currency": "CNY" },
"source": { "amount": "31.00", "currency": "USD" },
"fxRate": "0.140600",
"fee": "0.00",
"fxQuoteExpiry": "05/27/2025 07:45:11",
"status": "GENERATED",
"createdOn": "05/27/2025 07:44:41",
"lastUpdatedOn": "05/27/2025 07:44:41",
"createdBy": { "userType": "API_USER", "userName": "nikhil.thakur+39340430393@prth.com" },
"lastUpdatedBy": { "userType": "API_USER", "userName": "nikhil.thakur+39340430393@prth.com" }
}
HTTP/1.1 200 OK

Sample 3 — Retrieve an Existing FX Quote
GET /v1/transaction/fxQuote/id/17 HTTP/1.1
Host: <hostname>
Authorization: Bearer <JWT token>
x-api-key: {apiKey}
Accept: application/json

Response body is identical to the Sample 1 response above (status may be GENERATED or ACCEPTED).

HTTP/1.1 200 OK

OpenAPI Specification