1. Fiat Withdrawal
v2.1 (Production)
  • v2.1 (Production)
  • v2.1 (Sandbox)
  • v2.0 (Sandbox)
  • v1.0 (Deprecated)
  • v2.1
    • Getting Started
    • Account Setup For PSP
    • Account Setup For Direct Client
    • Idempotent Requests
    • Webhook
    • API Error Handling Guide
    • Changelog
    • Authentication
      • Create Token
    • Account Management
      • Get Balance
      • Internal Transfer
      • Get Internal Transfer
    • Merchant Management
      • Initiate Merchant Activation
      • Confirm Merchant Activation
      • Create Merchant
      • Get Merchant
      • Merchant Status Webhook
    • Fiat Payment
      • Fiat Deposit
        • Get Deposit Bank Account
        • Get Fiat Deposit Detail
        • Get Fiat Deposit History
        • Fiat Deposit Webhook
      • Fiat Account Management
        • Get Fiat Account Capabilities
        • Create Fiat Account Request
        • Submit Additional Information for Fiat Account Request
        • Get Fiat Account Application Status
        • Get Bank Accounts
        • Add Bank Account
        • Fiat Account Request Status Webhook
      • Fiat Withdrawal
        • Get Same Name Withdrawal Capabilities
          GET
        • Activate Same Name Withdrawal
          POST
        • Submit Additional Information for Activating Same Name Withdrawal
          POST
        • Activate Same Name Withdrawal Webhook
        • Create Fiat Withdrawal
          POST
        • Submit Additional Information for Fiat Withdrawal Request
          POST
        • Get Fiat Withdrawal Detail
          GET
        • Get Fiat Withdrawal History
          GET
        • Fiat Withdrawal Webhook
    • Crypto Payment
      • Crypto Deposit
        • Update Crypto Deposit Travel Rule Info
        • Get Crypto Deposit Wallet
        • Get Crypto Deposit
        • Get Crypto Deposit History
        • Crypto Deposit Webhook
        • Crypto Deposit Wallet Status Webhook
      • Crypto Withdrawal
        • Register Wallet Address
        • Remove Wallet Address
        • Create Crypto Withdrawal
        • Get Wallet Address
        • Get Crypto Withdrawal
        • Get Crypto Withdrawal History
        • Crypto Withdrawal Webhook
      • Crypto Checkout v1.0
        • Create Crypto Checkout
        • Create Crypto Checkout Link
        • Crypto Checkout Wallet Connection
        • Generate POS Payment Request
        • Close Crypto Checkout
        • Get Convertible Cryptos
        • Get Supported Blockchains
        • Get Crypto Checkout
        • Get Crypto Checkout Link
        • Get Crypto Checkout Currencies
        • Crypto Checkout Webhook
      • Crypto Refund v1.0
        • Refunding a High-Risk Crypto Deposit
        • Create Crypto Refund
        • Confirm Crypto Refund
        • Get Crypto Refund
        • Crypto Refund Webhook
      • Crypto Checkout v2.0
        • Create Checkout
        • Create Crypto Quotation
        • Order Accept
        • Get Checkout
        • Get Checkout History
        • Close Checkout
        • Get Checkout Acceptable Cryptos
        • Checkout Status Webhook
      • Crypto Refund v2.0
        • Get Checkout Refundable Info
        • Create Crypto Void
        • Create Crypto Risk Refund
        • Create Crypto Refund
        • Close Crypto Refund
        • Get Crypto Refund
        • Refund Status Webhook
    • Conversion
      • Create Quotation
      • Create Conversion
      • Get Quotation
      • Get Conversion
      • Conversion Webhook
    • Statements
      • Create statement
      • Get statement overview
      • Get statement entries
      • Get statement transactions
    • Points
      • Get Points Balance
      • List Points Transactions
      • Get Points Transaction Detail
    • Fee Estimate
      • Fee Estimate
    • Tool
      • Validate Crypto Address
      • Upload File
      • getTnC
  1. Fiat Withdrawal

Create Fiat Withdrawal

POST
/v2.0/payment/fiat/createWithdrawal
Submit a fiat withdrawal request.
For missingFields, refer to the Fiat Account Management documentation.
Fee charging behavior by withdrawalType
First-party withdrawal (withdrawalType=1): fees are charged internally -- deducted from the amount you submit. The recipient receives less than the requested amount.
Third-party withdrawal (withdrawalType=2): fees are charged externally -- added on top of the amount you submit. The total amount deducted from your account exceeds the requested amount.
amount in the request
Withdrawal TypeMeaning of amount
First-party (internal fee)Gross amount: total to be deducted from your account, including fees.
Third-party (external fee)Net amount: amount the recipient will receive, excluding fees.
amount in the response
In both withdrawal types, the response amount represents the gross amount -- the total deducted from your account, including fees. It always satisfies:
amount (response) = fees + estimatedAmountReceivable
Important compatibility note
For third-party withdrawals, the value of amount is not the same in the request and the response:
Request amount = net (receivable) amount
Response amount = gross (deducted) amount
2026-07-10 Update
Request Body Additions:
amountType (integer, required): 1=Debit (gross debit amount), 2=Receive (net received amount). Backward Compatibility: when not provided by callers not yet upgraded, the backend falls back on withdrawalType (first-party -> Debit, third-party -> Receive), matching legacy behavior. New integrations must provide this field.
feeBearer (integer, optional, default=1): 1=Customer (borne by trading party), 2=Partner (borne by platform partner). Default behavior is unchanged.
Modified Fields:
amount: meaning now depends on amountType (previously relied on implicit withdrawalType convention).
Response Data Additions:
amountType, feeBearer (echoed from request)
debitAmount (string): gross debit amount
feeAmount (string): platform fee (alias for legacy field fees)
feeCurrency (string): fee currency
receivedAmount (string): net amount received by payee (alias for legacy field estimatedAmountReceivable)
Legacy Fields Retained as Aliases: fees -> feeAmount, estimatedAmountReceivable -> receivedAmount.
2026-08-14 Update
Third-party (POBO) withdrawal risk control (AML / Travel Rule). Applies to withdrawalType=2 (first-party withdrawalType=1 is unaffected), all client types, any amount.
Request Body Additions:
purposeOfTransactionDetails (string, optional): free-text description of the transaction purpose. Length 1-200, trimmed.
Modified Fields:
purposeOfTransaction: mandatory for third-party withdrawals (withdrawalType=2), ).free-text description of the transaction purpose
proofFile: mandatory for third-party withdrawals (withdrawalType=2).
Applies to: PSP and Direct Client

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Body Params application/json

Example
{
  "participantCode": "B0100106",
  "requireSameNamePayout": true,
  "withdrawalType": 1,
  "currency": "USD",
  "amount": "339.97",
  "amountType": 1,
  "swiftChargingCode": 1,
  "to": "US12345678901234567890",
  "paymentReference": "PAY-20260415-001",
  "clientReference": "REF202604150008",
  "bankInfo": {
    "type": 1,
    "typeOfThirdParty": 2,
    "corporateCountryCode": "US",
    "label": "Business Withdrawal Account",
    "bankAccountNumber": "US98765432109876543210",
    "swiftCode": "CHASUS33",
    "bankName": "JPMorgan Chase Bank",
    "bankAddress": "270 Park Avenue",
    "bankCountry": "US",
    "bankState": "NY",
    "bankCity": "New York",
    "postCode": "10017",
    "routingNumber": "021000021",
    "intermediaryBank": [
      {
        "currency": "USD",
        "swiftCode": "IRVTUS3N",
        "bankName": "The Bank of New York Mellon",
        "bankAddress": "225 Liberty Street",
        "bankCountry": "US"
      }
    ],
    "relationship": "Subsidiary",
    "beneficiaryOfThirdParty": {
      "name": "Scott Rippin",
      "email": "scott.rippin@example.com",
      "addressInfo": {
        "country": "US",
        "state": "Utah",
        "city": "Salt Lake City",
        "postCode": "84101",
        "addressLine1": "123 Main Street",
        "addressLine2": "Suite 400"
      }
    }
  },
  "purposeOfTransaction": "withdrawal",
  "proofFile": "550e8400-e29b-41d4-a716-446655440000",
  "idorPassportFile": "660e8400-e29b-41d4-a716-446655440001"
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/v2.0/payment/fiat/createWithdrawal' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "participantCode": "B0100106",
  "requireSameNamePayout": true,
  "withdrawalType": 1,
  "currency": "USD",
  "amount": "339.97",
  "amountType": 1,
  "swiftChargingCode": 1,
  "to": "US12345678901234567890",
  "paymentReference": "PAY-20260415-001",
  "clientReference": "REF202604150008",
  "bankInfo": {
    "type": 1,
    "typeOfThirdParty": 2,
    "corporateCountryCode": "US",
    "label": "Business Withdrawal Account",
    "bankAccountNumber": "US98765432109876543210",
    "swiftCode": "CHASUS33",
    "bankName": "JPMorgan Chase Bank",
    "bankAddress": "270 Park Avenue",
    "bankCountry": "US",
    "bankState": "NY",
    "bankCity": "New York",
    "postCode": "10017",
    "routingNumber": "021000021",
    "intermediaryBank": [
      {
        "currency": "USD",
        "swiftCode": "IRVTUS3N",
        "bankName": "The Bank of New York Mellon",
        "bankAddress": "225 Liberty Street",
        "bankCountry": "US"
      }
    ],
    "relationship": "Subsidiary",
    "beneficiaryOfThirdParty": {
      "name": "Scott Rippin",
      "email": "scott.rippin@example.com",
      "addressInfo": {
        "country": "US",
        "state": "Utah",
        "city": "Salt Lake City",
        "postCode": "84101",
        "addressLine1": "123 Main Street",
        "addressLine2": "Suite 400"
      }
    }
  },
  "purposeOfTransaction": "withdrawal",
  "proofFile": "550e8400-e29b-41d4-a716-446655440000",
  "idorPassportFile": "660e8400-e29b-41d4-a716-446655440001"
}'

Responses

🟢200OK
application/json
Bodyapplication/json

Example
{
    "code": 200,
    "msg": "success",
    "data": {
        "fiatWithdrawalId": "WD2026071913310003",
        "participantCode": "B0100348",
        "requireSameNamePayout": false,
        "withdrawalType": 1,
        "currency": "EUR",
        "amount": "150.00",
        "fees": "50.00",
        "swiftChargingCode": null,
        "estimatedAmountReceivable": "100.00",
        "debitAmount": "150.00",
        "feeAmount": "50.00",
        "feeCurrency": "EUR",
        "receivedAmount": "100.00",
        "amountType": 1,
        "feeBearer": 1,
        "to": "9922334455",
        "paymentReference": null,
        "clientReference": "cw-fw-1784439097",
        "purposeOfTransaction": "testing",
        "proofFile": null,
        "idorPassportFile": null,
        "status": 1,
        "statusInfo": "",
        "createdAt": 1784439101000,
        "updatedAt": 1784439101000,
        "bankInfo": {
            "bankAccountNumber": "9922334455",
            "label": "test-au2"
        }
    }
}
Modified at 2026-10-21 01:27:01
Previous
Activate Same Name Withdrawal Webhook
Next
Submit Additional Information for Fiat Withdrawal Request
Built with