1. Withdraw
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.
      • List the payout rails available for a product and beneficiary.
      • Create an FX quote giving the rate and fee for a cross-currency payout.
    • 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
        POST
      • List Withdrawal Purposes
        GET
      • Get Payment Schemes
        GET
      • Execute Withdrawal
        POST
  • 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. Withdraw

Create Withdrawal Quote

POST
/api/v1/accountwithdrawal/quote
Requests a quote for a withdrawal — locking in FX rate, fees, and the exact amount the beneficiary will receive — before you commit funds.
Prerequisites
The source account must be active (see GET /api/v1/accountissuance/{accountId}/status).
If quoting against a specific beneficiary, the payeeId must be a saved payee of the customer.
Notes
Quoting is synchronous (200) and does not move money or reserve balance.
Quotes expire — check expiresAt in the response and re-quote if expired before withdrawing.
Either beneficiary.payeeId or beneficiary.currency can drive the target currency; supply amount to get exact figures, omit it for an indicative rate.
payment.scheme selects the rail (e.g. sepa, sepa_instant, swift, faster_payments). Omit to let ArthaPay pick the cheapest valid rail.
Related endpoints: GET /api/v1/accountwithdrawal/purpose · POST /api/v1/accountwithdrawal/withdraw

⚠️ Required Fields
FieldTypeDescriptionConstraints
customerobjectWrapper for the customer reference-
customer.idstring (uuid)Customer requesting the withdrawalRequired
sourceobjectWrapper for the source account-
source.accountIdstring (uuid)ArthaPay account to withdraw fromRequired
Optional Fields
FieldTypeDescriptionConstraints
beneficiaryobjectTarget payee / currency for the quoteNullable
beneficiary.payeeIdstring (uuid)Saved payee to quote againstNullable
beneficiary.currencystringISO-4217 target currency (e.g. USD)Nullable
amountobjectAmount to quoteNullable
amount.valuenumber (double)Amount in amount.currencyMin: 0.01 · Max: 1,000,000,000 · Nullable
amount.currencystringISO-4217 currency of valueNullable
payment.schemestringRail: sepa, sepa_instant, swift, faster_paymentsMax: 50 · Nullable
📤 Response Fields
FieldTypeNullableDescription
data.quoteIdstring (uuid)NoQuote ID — pass context to your withdraw call while valid
data.sourceAmountobjectNo{ value, currency } debited from the source account
data.targetAmountobjectNo{ value, currency } the beneficiary receives
data.fxRatenumberYesLocked exchange rate (null for same-currency transfers)
data.feeobjectNo{ value, currency } total fee charged
data.schemestringNoPayment rail the quote is valid for
data.expiresAtstring (date-time)NoUTC expiry — re-quote after this time
data.createdAtstring (date-time)NoUTC creation timestamp

Request

Header Params

Body Params application/json-patch+jsonRequired

Examples

Responses

🟢200
application/json
Quote created. Not a funds movement — commit with the withdraw endpoint before expiresAt.
Bodyapplication/json

🟠401
🟠404
🟠422
Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/api/v1/accountwithdrawal/quote' \
--header 'X-API-Key: ak_live_8f3a9b2c1d4e5f6a7b8c' \
--header 'X-Signature: q2h8Zx0kPz5mVw7Yb3Nc1Rt6Ue9Ia4Od2Sf8Gk0Jl4=' \
--header 'X-Timestamp: 1754812800' \
--header 'X-Nonce: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
--header 'X-Body-Hash: n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=' \
--header 'Content-Type: application/json-patch+json' \
--data '{
  "customer": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  },
  "source": {
    "accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "amount": 1000000000,
    "currency": "string"
  },
  "beneficiary": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  },
  "payment": {
    "scheme": "string"
  }
}'
Response Response Example
200 - Success
{
    "data": {
        "quoteId": "d4f7a2b8-1c3e-4a5d-9e6f-2b8c7d1a3e5f",
        "sourceAmount": {
            "value": 2500,
            "currency": "EUR"
        },
        "targetAmount": {
            "value": 2891.25,
            "currency": "USD"
        },
        "fxRate": 1.1625,
        "fee": {
            "value": 6.5,
            "currency": "EUR"
        },
        "scheme": "swift",
        "expiresAt": "2026-08-10T09:45:00Z",
        "createdAt": "2026-08-10T09:30:00Z"
    }
}
Modified at 2026-09-23 05:50:12
Previous
Get Account Issuance Status
Next
List Withdrawal Purposes
Built with