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
| Attribute | Required | Notes |
|---|---|---|
destination.amount | Yes* | One of destination.amount or source.amount is mandatory.Specify the amount that must arrive at the foreign beneficiary. |
destination.currency | Yes | Three-letter ISO currency, e.g. CNY, EUR. |
source.amount | Yes* | Use when you know the USD you wish to debit. Only valid when paired with destination.currency. |
| — other fields — | N/A | All other response-only attributes are system-generated. |
Response Attributes
| Field | Description |
|---|---|
source.amount / currency | USD amount debited from the customer’s Ahrvo account. |
destination.amount / currency | Foreign amount delivered to the beneficiary. |
fxRate | Interbank spot rate (pair: USD → destination.currency). |
fee | FX service fee charged. |
fxQuoteExpiry | UTC timestamp — quote is valid for 30 s from creation. |
status | GENERATED (default) • ACCEPTED (after a transaction is created using the quote). |
| Audit Fields | id, 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