Skip to main content

Initiate Exchange

Before creating an exchange, you must first fetch a rate from the utility endpoint /utility/exchange-rate. The _id from that response is required as the offerId parameter when creating the exchange. See the Get Rate guide for more details. When making an exchange, the initiating currency — the one the user is giving or has — is represented by buyerDebit, while the target currency — the one the user is receiving or wants — is represented by buyerCredit.

Headers

The idempotencykey header is required. Generate a new key for every new exchange. Only reuse a key when retrying the same request after a timeout or network error.

Request Body

The request body requires the following fields: The shape of buyerDebitPaymentDetails and buyerCreditPaymentDetails depends on the payment method specified in their corresponding buyerCredit or buyerDebit PaymentMethod fields.

Supported Payment Methods

Each payment method (BANK_TRANSFER, ACH, WIRE, MOBILE_MONEY, ZELLE, INTERAC, STABLE_CURRENCY, ALIPAY and WECHAT_PAY) has its own required fields and rules, and some are limited to specific currencies. See the Supported Payment Methods guide for the full list before building your request.

Request Examples

Every example below needs the idempotencykey header. Replace {offerId} with the _id from your rate response. The payment methods and currencies in the body should match the currency pair of the rate you fetched.

Response

A successful request returns a PENDING exchange order. The sellerCreditPaymentDetails object contains Monirates’ receiving account — this is where the buyer should send funds.

Key Response Fields

proceed to the Payment Made guide.