> For the complete documentation index, see [llms.txt](https://docs.nexusglobalpayments.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nexusglobalpayments.org/apis/quotes.md).

# Quotes

## Get quotes for a specific currency pair and amount

> Retrieves a list of quotes for currency exchange based on the specified country/currency pair and the amount (denominated in either the source currency or destination currency)

```json
{"openapi":"3.1.0","info":{"title":"Nexus APIs","version":"0.3.1"},"tags":[{"name":"FX Quotes","description":"Get Quotes"}],"servers":[{"url":"http://localhost:8080","description":"Local development"},{"url":"https://nexus-ai-simulator-683365449922.asia-southeast1.run.app","description":"Nexus simulator"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"ErrorResultDto":{"type":"object","description":"Structured business rejection returned for all error responses. This response is only returned for rejection cases; the statusCode is always RJCT.","properties":{"statusCode":{"type":"string","enum":["RJCT"],"description":"Business level status code indicating the outcome. Always RJCT (Rejected)."},"reasonCode":{"type":"string","pattern":"^(TE|AE|BE)[A-Z0-9]*$","description":"Categorised reason code with a prefix indicating the error category: TE for Technical Error, AE for Authentication Error, BE for Business Error."},"name":{"type":"string","description":"Machine readable business error name from the error catalogue."},"description":{"type":"string","description":"Human readable error description."}},"required":["statusCode","reasonCode","name","description"]}}},"paths":{"/v1/quotes":{"get":{"summary":"Get quotes for a specific currency pair and amount","description":"Retrieves a list of quotes for currency exchange based on the specified country/currency pair and the amount (denominated in either the source currency or destination currency)","parameters":[{"name":"sourceCountry","in":"query","description":"2-letter country code for the Source Country","required":true,"schema":{"type":"string"}},{"name":"sourceCurrency","in":"query","description":"3-letter currency code for the Source Currency","required":true,"schema":{"type":"string"}},{"name":"destinationCountry","in":"query","description":"2-letter country code for the Destination Country","required":true,"schema":{"type":"string"}},{"name":"destinationCurrency","in":"query","description":"3-letter currency code for the Destination Currency","required":true,"schema":{"type":"string"}},{"name":"amountCurrency","in":"query","description":"Source Currency if the Sender defined the amount to be sent. Destination Currency if the Sender defined the amount to be received by the Recipient.","required":true,"schema":{"type":"string"}},{"name":"amount","in":"query","description":"The amount to be exchanged. If the Sender defined the amount to be sent in the source currency, the amount here must be the amount set by the Sender MINUS any Source PSP Deducted Fee. If the Sender defined the amount for the Recipient to receive, then the amount here is the amount that will be credited to the Recipient's account.","required":true,"schema":{"type":"number"}},{"name":"finInstIdType","in":"query","required":true,"description":"Type ID of the financial institution.","schema":{"type":"string"}},{"name":"finInstId","in":"query","required":true,"description":"ID of the financial institution.","schema":{"type":"string"}},{"name":"destFinInstIdType","in":"query","required":false,"description":"Type ID of the destination financial institution.","schema":{"type":"string"}},{"name":"destFinInstId","in":"query","required":false,"description":"ID of the destination financial institution.","schema":{"type":"string"}}],"responses":{"200":{"description":"Quotes retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"quoteRequestId":{"type":"string","description":"A universally unique ID for the overall quote request. (Each individual quote in this response has its own unique Quote Id)"},"sourceCountry":{"type":"string","description":"2-letter country code for the Source Country"},"sourceCurrency":{"type":"string","description":"3-letter country code for the Source Country"},"destinationCountry":{"type":"string","description":"2-letter country code for the Destination Country"},"destinationCurrency":{"type":"string","description":"3-letter country code for the Destination Country"},"amountCurrency":{"type":"string","description":"Source Currency if the Sender defined the amount to be sent. Destination Currency if the Sender defined the amount to be received by the Recipient."},"amount":{"type":"number","description":"The amount to be exchanged. If the Sender defined the amount to be sent in the source currency, the amount here must be the amount set by the Sender MINUS any Source PSP Deducted Fee. If the Sender defined the amount for the Recipient to receive, then the amount here is the amount that will be credited to the Recipient's account."},"quotes":{"type":"array","items":{"type":"object","properties":{"quoteId":{"type":"string","description":"The universally unique identifier (UUID) for this specific quote."},"issuedDateTime":{"type":"string","format":"date-time","description":"The date and time when the quote was issued."},"expiryDateTime":{"type":"string","format":"date-time","description":"The date and time when the quote will expire."},"fxpFinInstIdType":{"type":"string","description":"The type of Financial Institution Id provided for the FXP eg BICFI, LEI"},"fxpFinInstId":{"type":"string","description":"The FXP's Financial Institution identifier."},"exchangeRate":{"type":"number","description":"The exchange rate. Source Currency Amount * Exchange Rate = Destination Currency Amount"},"debtorAgent":{"type":"object","properties":{"interbankSettlementAmount":{"type":"object","properties":{"currency":{"type":"string","description":"3-letter currency code (will be the same as sourceCurrency above)."},"amount":{"type":"number","description":"The InterbankSettlementAmount (in the Source Currency) to be transferred from the Source PSP to the FXP's account at the Source SAP."},"cappedToMaxAmount":{"type":"boolean","description":"True if the requested amount exceeded the Source IPS's value cap (at the current exchange rate). If true, the amount above shows the actual amount that can be successfully transferred to the Destination PSP at the current exchange rate."}}}}},"intermediaryAgent1":{"type":"object","properties":{"finInstId":{"type":"object","properties":{"name":{"type":"string","description":"The name of the Source SAP."},"BICFI":{"type":"string","description":"The BICFI code of the Source SAP."},"LEI":{"type":"string","description":"The Legal Entity Identifier of the Source SAP."},"clearingSystemMemberId":{"type":"object","properties":{"clearingSystemId":{"type":"string","description":"The Clearing System Identifier (as per ISO 20022)."},"memberId":{"type":"string","description":"Clearing System Member Identifier (as per ISO 20022)"}}},"other":{"type":"object","properties":{"id":{"type":"string","description":"Other type of financial institution identifier (as per ISO 20022)"}}}}}}},"intermediaryAgent1Account":{"type":"object","properties":{"id":{"type":"string","description":"The account ID of the FXP's account at the Source SAP"}}},"intermediaryAgent2":{"type":"object","properties":{"finInstId":{"type":"object","properties":{"name":{"type":"string","description":"The name of the Destination SAP"},"BICFI":{"type":"string","description":"The BICFI code of the Destination SAP"},"LEI":{"type":"string","description":"The Legal Entity Identifier."},"clearingSystemMemberId":{"type":"object","properties":{"clearingSystemId":{"type":"string","description":"Clearing System Identification (as per ISO 20022)."},"memberId":{"type":"string","description":"Clearing System Member Identification (as per ISO 20022)."}}},"other":{"type":"object","properties":{"id":{"type":"string","description":"Other type of financial institution identifier (as per ISO 20022)"}}}}}}},"intermediaryAgent2Account":{"type":"object","properties":{"id":{"type":"string","description":"The account ID of the FXP's account at the Destination SAP"}}},"creditorAgent":{"type":"object","properties":{"interbankSettlementAmount":{"type":"object","properties":{"amount":{"type":"number","description":"The InterbankSettlementAmount that must be transferred from the Destination SAP to the Destination PSP (CreditorAgent). Provided for information, but not used in the pacs.008 (as Nexus will recalculate this amount when it prepares the pacs.008 to be sent to the Destination IPS)"},"currency":{"type":"string","description":"3-letter currency code. Same as Destination Currency."},"cappedToMaxAmount":{"type":"boolean","description":"True if the requested amount exceeded the Destination IPS's value cap (at the current exchange rate). If true, the amount above shows the actual amount that can be successfully transferred to the Destination PSP at the current exchange rate."}}},"chargesInformation":{"type":"object","properties":{"amount":{"type":"object","properties":{"amount":{"type":"number","description":"The Destination PSP fee, as calculated according to the Nexus Scheme Fee."},"currency":{"type":"string","description":"3-letter currency code. Same as Destination Currency."}}}}},"creditorAccountAmount":{"type":"number","description":"The exact amount that will be credited to the Recipient's account."}}}}}}}}}}},"400":{"description":"Invalid request. Applicable reason codes: TE001 INVALID_REQUEST, BE007 QUOTE_SAME_CURRENCY, BE008 QUOTE_DESTINATION_PSP_REQUIRED.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResultDto"}}}},"401":{"description":"Authentication failed. Applicable reason codes: AE001 AUTH_TOKEN_MISSING, AE002 AUTH_TOKEN_INVALID.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResultDto"}}}},"403":{"description":"Authorization failed. The token is valid but its OAuth2 scopes do not grant access to this endpoint or corridor. Reason code AE004 ACCESS_DENIED.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResultDto"}}}},"404":{"description":"No FX Provider has registered an active currency pair matching the request. Reason code BE009 QUOTE_CURRENCY_PAIR_NOT_CONFIGURED.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResultDto"}}}},"429":{"description":"Rate limit exceeded. Returned by the API gateway and carries no structured Nexus body. The Retry-After response header indicates when to retry."},"500":{"description":"An unhandled exception or infrastructure failure occurred. Reason code TE099 INTERNAL_ERROR. The caller may retry with exponential backoff.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResultDto"}}}}},"tags":["FX Quotes"],"operationId":"getQuotes"}}}}
```
