User Manual
Overview
Get Balances
Balance History
Create Deposit Order
Get Deposit Order Detail
Cancel Deposit Order
Create Withdraw Order
Get Withdraw Order Detail
Cancel Withdraw Order
Create Exchange Order
Get Exchange Order Detail
Upload File
Customer Rate
Home/Withdraw

Create Withdraw Order

Last Updated: 2026-05-29
HTTP Request
POST/v1/withdraw/order

Auth: Signed API key required

Permissions: Withdrawal

Signed Location: JSON body

Content-Type: application/json

Create a fiat withdraw request and support the add/update beneficiary flow.

Headers

Parameter NameRequiredTypeNotes
X-MBX-APIKEYtruestringProvisioned ACCESS_ID. x-access-id is also accepted by the backend, but X-MBX-APIKEY is recommended.

Request Body

Parameter NameRequiredTypeNotes
currencytruestringDebitCurrency enum value.
amounttruestringDecimal string. Single-currency order — no price/rate.
fee_amounttruestringDecimal string.
payeesfalsearray<WithdrawOrderPayee>Preferred multi-account input. Each row: payee_type (Card/QrCode/PdfFile), sort_order, and for Card the bank_name/account_name/account_no (plus address/swift_code/mobile where required); for QrCode/PdfFile an uploaded file_id. Optional remark.
bank_namefalsestringLegacy single-card field. Optional now — sent without payees, the server auto-creates one Card payee from bank_name/account_name/account_no.
account_namefalsestringLegacy single-card field. Account holder name.
account_nofalsestringLegacy single-card field. Account number or card number.
reference_idfalsestringReference id.
remarkfalsestringGeneral remark.
file_idsfalsestringJSON array string.
account_remarkfalsestringBeneficiary nickname.
bank_account_file_idfalseintegerFile id of the related QR/log.
actiontruestringBeneficiary action.
timestamptrueint64Request timestamp in milliseconds. Microseconds are also accepted and normalized by the server.
recvWindowfalseintegerOptional receive window. Default 5000, maximum 60000.
signaturetruestringHMAC-SHA256 signature of the signed payload. signature itself is not part of the payload string being signed.
Notes
  • Prefer payees for the multi-account flow. Sending the legacy single-card fields without payees auto-creates one Card payee (back-compat).
  • If action is add-new, the endpoint may create or restore a beneficiary.
  • The maximum number of files is limited by MAX_DEBIT_FILE.

Request Example

curl -X POST 'https://<host>/v1/withdraw/order' \
  -H 'X-MBX-APIKEY: <ACCESS_ID>' \
  -H 'Content-Type: application/json' \
  -d '{
    "currency":"NGN",
    "amount":"1000",
    "fee_amount":"25",
    "payees":[
      {"payee_type":"Card","sort_order":0,"bank_name":"Bank A","account_name":"John Doe","account_no":"1234567890"}
    ],
    "action":"add-new",
    "timestamp":1717200000000,
    "recvWindow":5000,
    "signature":"<SIGNATURE>"
  }'
About
  • About Us
  • Terms of Service
  • Privacy Policy
Products
  • Deposit
  • Withdrawal
  • Exchange
Developers
  • API Docs
  • API Management
Support
  • Help Center
Community
Theme
    • About Us
    • Terms of Service
    • Privacy Policy
    • Deposit
    • Withdrawal
    • Exchange
    • API Docs
    • API Management
    • Help Center
© 2020-2026 PayAny.com. All rights reserved.