active (see GET /api/v1/accountissuance/{accountId}/status).payeeId must be a saved payee of the customer.200) and does not move money or reserve balance.expiresAt in the response and re-quote if expired before withdrawing.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.GET /api/v1/accountwithdrawal/purpose · POST /api/v1/accountwithdrawal/withdraw| Field | Type | Description | Constraints |
|---|---|---|---|
customer | object | Wrapper for the customer reference | - |
customer.id | string (uuid) | Customer requesting the withdrawal | Required |
source | object | Wrapper for the source account | - |
source.accountId | string (uuid) | ArthaPay account to withdraw from | Required |
| Field | Type | Description | Constraints |
|---|---|---|---|
beneficiary | object | Target payee / currency for the quote | Nullable |
beneficiary.payeeId | string (uuid) | Saved payee to quote against | Nullable |
beneficiary.currency | string | ISO-4217 target currency (e.g. USD) | Nullable |
amount | object | Amount to quote | Nullable |
amount.value | number (double) | Amount in amount.currency | Min: 0.01 · Max: 1,000,000,000 · Nullable |
amount.currency | string | ISO-4217 currency of value | Nullable |
payment.scheme | string | Rail: sepa, sepa_instant, swift, faster_payments | Max: 50 · Nullable |
| Field | Type | Nullable | Description |
|---|---|---|---|
data.quoteId | string (uuid) | No | Quote ID — pass context to your withdraw call while valid |
data.sourceAmount | object | No | { value, currency } debited from the source account |
data.targetAmount | object | No | { value, currency } the beneficiary receives |
data.fxRate | number | Yes | Locked exchange rate (null for same-currency transfers) |
data.fee | object | No | { value, currency } total fee charged |
data.scheme | string | No | Payment rail the quote is valid for |
data.expiresAt | string (date-time) | No | UTC expiry — re-quote after this time |
data.createdAt | string (date-time) | No | UTC creation timestamp |
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"
}
}'{
"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"
}
}