Forward payments
Forward contracts let your finance, treasury, or payment workflow agree an exchange rate today for a currency exchange that will settle on a future value date. This can make the cost of a planned payment more predictable and reduce exposure to exchange-rate changes. In this flow, your application requests and reviews a quote, creates a contract to lock the rate, retrieves the invoice and funding instructions, and then attaches payment instructions for the recipients or accounts you need to pay.
API Endpoints
For an integration, persist the quoteId and resulting contractNumber with your internal payment or treasury record. You will need them for the later contract, invoice, and payment-instruction requests. The sequence below stays the same whether the workflow starts in accounts payable, treasury, or another internal finance system.
Create a Forward Quote
Returns an indicative forward quote for the currency pair and amount you provide. The response includes the proposed exchange rate, fees, total cost, settlement and delivery methods, and value date. Use it to show your finance team or payment workflow what your business will send and what will be delivered. You can also include the payments and recipients you plan to fund. The quote is valid for 60 seconds from the response timestamp.
POST /v2/fxquotesUpdate Quote Details
Use this endpoint when your application changes the quote inputs—for example, the amount, settlement method, delivery method, planned payments, or recipient details. It returns a new indicative rate, fees, and total cost for the updated parameters. The updated quote is valid for 60 seconds from the response timestamp. Create the FX contract with the returned quoteId before it expires to lock in the rate.
PATCH /v2/fxquotes/{quoteId}Refresh Quote
Use this endpoint when the business needs more time to review the quote or the quote is close to expiring. It refreshes the exchange rate and returns an updated quote. Create the FX contract with the returned quoteId before that quote expires to lock in the rate.
POST /v2/fxquotes/{quoteId}/refreshCreate FX Contract
Creates the forward FX contract from a valid quote and locks in the exchange rate for the specified future value date. The response provides the contract number, which you should store with your internal finance or payment record. Use that number to retrieve the invoice and provide the funding details needed to complete the exchange; the quote is no longer just an estimate once the contract is created.
POST /v2/contracts/quote/{quoteId}Download Invoice
Downloads the invoice for the FX contract. The invoice contains the funding instructions—such as where and how to send the sell currency—so your treasury, accounts payable, or payment system can arrange the transfer to XE. XE also emails the invoice to your registered email address.
GET /v2/contracts/{contractNumber}/invoiceAttach Payment Instructions
Adds one or more registered recipients to the approved contract together with the purpose of payment. Use this after the contract is created and your funding workflow has been arranged. The recipient currency must match the contract's buy currency—the currency XE will deliver—and the total disbursement cannot exceed the contract's buy amount. Store the payment details and any response identifiers with your internal payment or ERP record for reconciliation.
POST /v2/contracts/{contractNumber}/paymentsSequence diagram
This diagram shows the request sequence your finance or payment system can follow: create or update a quote, create the contract, retrieve funding instructions, and attach payment instructions. Use the identifiers returned at each step to connect XE records with your internal workflow.
Process flow
The process flow is an implementation checklist for a business-led payment: confirm the quote, lock the rate in a contract, arrange funding, and allocate the contracted buy currency to recipients or internal accounts. Your surrounding approval, ERP, and reconciliation steps can remain in your existing systems.