1. Quote
Artha All Module Api's
  • Introduction
  • Authentication
  • KYC/KYB Requirements
  • API Setup Guide
  • Products
    • List Products
      GET
    • Get Product
      GET
    • Get Customer Product Status
      GET
  • Customers
    • Create Customer
      POST
    • List Customers
      GET
    • Get Customer
      GET
    • Submit Applicant (KYC/KYB)
      POST
    • Create Onboarding Session
      POST
  • Wallets
    • Beneficiary
      • Create Crypto Beneficiary
      • Update Crypto Beneficiary
      • List Crypto Withdraw Beneficiaries
    • Create Wallet
      POST
    • Get Wallet Address
      GET
    • Get Customer Balances
      GET
    • List Wallets
      GET
    • List Withdrawals
      GET
    • List Withdrawal Networks
      GET
    • Preview Withdrawal Summary
      POST
    • Create Crypto Withdrawal
      POST
  • Cards
    • Issuance
      • Issue Card
      • List Cards
      • List Customer Cards
      • Get Card Details
      • Get Sensitive Card Details
    • Funding
      • Top Up Card
      • Get Card Balance
      • Get Top-Up Status
      • List Top-Up History
    • Operations
      • Resend Activation Code
      • Activate Card
      • Set Card PIN
      • Change Card PIN
      • Update Card Limits
      • Freeze Card
      • Unfreeze Card
      • Replace Card
      • Cancel Card
      • Get Card Limits
      • Show Card PIN Details
      • Get PIN View Iframe URL
      • Get PIN Change Iframe URL
      • Get PIN Set Iframe URL
      • Get Card View Iframe URL
      • Show Card PIN
  • Payees
    • Create a payee for a customer.
    • List a customer's payees.
    • Update a payee.
    • Retrieve a payee by id.
    • Look up an existing payee.
    • List the currencies a payee can be created in.
    • List the accepted payment purpose codes for a payee.
    • List the countries a payee can be created in.
    • List currency/country pairings for payees.
    • List the accepted beneficiary relationship codes.
  • Payments
    • Onboarding
      • List the customer's payout-currency configuration sections.
      • Enable a payout-currency section for the customer.
      • Get the customer's terms-of-service acceptance status.
      • Enable or disable a payout-currency section.
    • Quote
      • List the currencies a beneficiary can be paid in under a product.
        GET
      • List the payout rails available for a product and beneficiary.
        GET
      • Create an FX quote giving the rate and fee for a cross-currency payout.
        POST
    • Order
      • Submit a payout order to send money to a beneficiary.
      • Retrieve the on-chain address to fund an order.
      • Retrieve the status and settlement detail of a payout order.
    • Lookups
      • List the accepted payment purpose codes for a payout.
      • List the accepted source-of-funds codes for a payout.
      • List the document types accepted on a payout order.
  • Banks
    • Accounts
      • Create Bank Account
      • Get Account Details
      • Get Account Issuance Status
    • Withdraw
      • Create Withdrawal Quote
      • List Withdrawal Purposes
      • Get Payment Schemes
      • Execute Withdrawal
  • Exchange
    • Quote
      • Get Exchange Rate
      • Create Price Quote
    • Order
      • Place Exchange Order
  • Transactions
    • List Transactions
    • Get Transaction Details
  • Utilities
    • List Currencies
    • List Countries
    • Get Fee Schedule
    • List Product Occupations
    • List Product Industry Codes
    • Upload File
  • Webhook's
    • Wallets Webhooks
    • Banks Webhooks
    • Payments Webhooks
    • Exchange Webhooks
    • Card Webhooks
  1. Quote

Create an FX quote giving the rate and fee for a cross-currency payout.

POST
/api/v1/payments/quote
A quote is a price calculation and moves no money. The rate comes from the provider that
will execute the payout, resolved from the product. Send the returned quoteId with
the payout order to settle at the quoted price.
Prerequisites: valid productId and beneficiaryId; payment.transferType if the destination currency requires a rail (see GET .../quote/currencies/{productId}).
Important: a quote moves no money and expires at expiresAt — submit the order before then, or request a fresh quote.
Async vs sync: 201 Created, synchronous — the rate is calculated and returned immediately.
Related: send the returned quoteId on POST /api/v1/payments/order to settle at this price.

⚠️ Required Fields#

FieldTypeDescriptionConstraints
productIdstring (uuid)The payout product being priced. Drives provider resolution (Products.Provider) and the corridor — the quote always comes from the provider that will execute the payout.—
beneficiaryIdstring (uuid)The beneficiary the payout is priced for. Named to match the /beneficiaries resource and the beneficiaryId route parameter; the legacy contract called this "payeeId".—
sourceobjectThe debit side of a quote.—
source.amountnumber (double)Amount to convert, in the product's source currency.min 1
destinationobjectThe credit side of a quote.—
destination.currencystringISO currency the beneficiary receives (e.g. "EUR", "BRL"). The legacy contract called this "fiatCurrency", which named an implementation detail rather than the party it describes — and reads wrongly for a crypto destination.minLength 1

Optional Fields#

FieldTypeDescriptionConstraints
paymentobjectHow the payout is routed to the beneficiary.—
payment.typestringPayment method for the payout leg.nullable
payment.transferTypestringPayout rail: ach / rtp / wire / swift. Required for USD and AED corridors and ignored for all others, which route by bank id instead. Call GET v1/quotes/currencies/{productId} — the transferTypeRequired flag on each currency says whether this must be supplied.nullable

📤 Response Fields#

201 response:
FieldTypeNullableDescription
dataobjectNoAn FX quote returned to the partner.
data.quoteIdstringYesPass this back as quoteId on POST /order to settle at this locked rate before it expires.
data.sourceCurrencystringYesThe product's funding currency this quote was priced in.
data.targetCurrencystringYesCurrency the beneficiary will be paid in — echoes destination.currency from the request.
data.sourceAmountnumber (double)YesAmount that will be debited, in sourceCurrency.
data.targetAmountnumber (double)YesAmount the beneficiary will receive, in targetCurrency, after fees.
data.exchangeRatenumber (double)YesLocked exchange rate this quote guarantees until expiresAt.
data.feenumber (double)YesFee for this transfer, in feeCurrency.
data.feeCurrencystringYesCurrency the fee amount is denominated in.
data.statusstringYesQuote status, e.g. active or expired.
data.providerstringYesThe provider the quote was resolved to (e.g. "MESTA", "TAZAPAY") — from the product.
data.transferTypestringYesPayout rail the quote was priced for, echoing payment.transferType from the request when supplied.
data.expiresAtstring (date-time)YesLast moment this quoteId can be used on POST /order. After this, request a new quote.
requestIdstringYes—
timestampstring (date-time)No—

Request

Query Params

Header Params

Body Params
application/json-patch+json

Examples

Responses

🟢201
application/json
Created
Bodyapplication/json

🟠401
🟠403
🟠422
🟠429
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location '/api/v1/payments/quote?customerId=c1f4a9d2-6b3e-4a7c-9f1d-2e8b5c0a7d31' \
--header 'X-Idempotency-Key: 6f1a9c0e-2b7d-4c31-9f8a-1d5e7c3b0a42' \
--header 'X-API-Key: ak_live_8f3a9b2c7e1d4f6a9b0c2d5e8f1a3b6c' \
--header 'X-Signature: kZ3fQeT2m7xVvC9pR1sLdY8bN0hU4jK6oW5aE2gI7cQ=' \
--header 'X-Timestamp: 1758556800' \
--header 'X-Nonce: 3fa85f64-5717-4562-b3fc-2c963f66afa6' \
--header 'X-Body-Hash: 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' \
--header 'Content-Type: application/json-patch+json' \
--data '{
    "productId": "b4d1e7f2-3a9c-4e6b-8d0a-1f7c2b9e4a63",
    "beneficiaryId": "e9c2a7d4-5b8f-4c1e-9a3d-6f0b1c8e2d47",
    "source": {
        "amount": 5000
    },
    "destination": {
        "currency": "EUR"
    }
}'
Response Response Example
201 - Success
{
    "data": {
        "quoteId": "qte_9a3f7c1e5b8d4a2f6c0e3b9d1a7f5c8e",
        "sourceCurrency": "USDT",
        "targetCurrency": "EUR",
        "sourceAmount": 5000,
        "targetAmount": 4587.32,
        "exchangeRate": 0.917464,
        "fee": 12.5,
        "feeCurrency": "USDT",
        "status": "active",
        "provider": "MESTA",
        "transferType": null,
        "expiresAt": "2026-09-22T14:15:00Z"
    },
    "requestId": "req_4f9a2c7e1b8d3f6a9c2e0b7d1f8a3c6e",
    "timestamp": "2026-09-22T14:03:11Z"
}
Modified at 2026-09-22 10:35:55
Previous
List the payout rails available for a product and beneficiary.
Next
Submit a payout order to send money to a beneficiary.
Built with