Payments for software partnersProduct offering

Spot payments

Use these endpoints when your software needs to exchange one currency for another at the current market rate. A spot transaction is the simplest FX flow: request a quote, confirm it to create a contract, and then provide payment instructions so XE can deliver the purchased currency. Spot transactions usually settle within two business days, although the exact timing depends on the currencies, payment method and delivery method.


API Endpoints

In the API, the sell currency is the currency your customer provides, and the buy currency is the currency XE exchanges it into for delivery. A quote is an estimate; creating the FX contract confirms the quote and locks the rate.

Create a Spot Quote

Returns an indicative exchange rate and a cost breakdown for the currency pair and amount your application wants to exchange. You can include the settlement method, delivery method, payments and recipients in the quote request. The response helps you show your customer how much they will send, how much the recipient will receive and what fees apply. The quote is valid for 60 seconds from the response timestamp.

POST /v2/fxquotes

Update Quote Details

Updates an existing spot quote when your application changes details such as the amount, settlement method, delivery method, payments or recipients. The response includes the updated indicative rate, fees and total transfer cost. The updated quote is valid for 60 seconds from the response timestamp. Create an FX contract with the quoteId before the quote expires to lock in the rate.

PATCH /v2/fxquotes/{quoteId}

Refresh Quote

Requests a fresh indicative rate for an existing quote before it expires. Use this when your application needs more time or the customer wants to review the latest rate. The refreshed quote replaces the previous quote details and must be confirmed by creating an FX contract with its quoteId before it expires.

POST /v2/fxquotes/{quoteId}/refresh

Create FX Contract

Confirms the selected quoteId and creates an FX contract. This locks the exchange rate and the agreed transaction details, creating a legally binding obligation with XE. After the contract is created, the system generates an invoice that tells you how to fund the transaction.

POST /v2/contracts/quote/{quoteId}

Download Invoice

Downloads the invoice for an FX contract so your application or operations team can use the payment details to fund the transaction. XE also emails the invoice to the registered email address.

GET /v2/contracts/{contractNumber}/invoice

Attach Payment Instructions

Adds one or more registered recipients to an approved contract and records the purpose of the payment. Use this endpoint after the contract is created and funded according to the invoice. Each recipient must receive the contract's buy currency, and the total amount disbursed to recipients cannot exceed the contract's buy amount.

POST /v2/contracts/{contractNumber}/payments

Sequence diagram

This diagram shows the typical integration sequence: your application requests and reviews a quote, creates a contract before the quote expires, and then submits payment instructions.


Process flow

Use this flow as a practical implementation guide. Your application should keep the quoteId and contract number from each response, check quote expiry, and only send payment instructions after the contract has been created successfully.


On this page

Get help