Skip to Content

Fiat Withdrawal

Withdraw fiat from your BLOX wallet balance to a linked bank account.

POST /v1/wallet/fiat/withdraw

Initiate a withdrawal to your bank account.

Authentication

This endpoint requires API Key + RFC 9421 Signature.

HeaderRequiredDescription
blox-api-keyYesYour API key
Content-TypeYesapplication/json
Content-DigestYesSHA-256 hash of request body
Signature-InputYesRFC 9421 signature parameters
SignatureYesRFC 9421 cryptographic signature

Learn how to sign requests →

Request Body

{ "bankAccountId": "ba_clxyz1234567890abcdef", "amount": 50000, "reference": "WD-2026-0001", "note": "Monthly settlement" }

Parameters

ParameterTypeRequiredDescription
bankAccountIdstring (UUID)YesID of the linked bank account
amountintegerYesAmount in cents (min 1000 = 10.00, max 100000000 = 1,000,000.00)
referencestringNoYour reference ID (max 32 chars)
notestringNoInternal note for this withdrawal

Response

Success Response (201 Created)

{ "id": "wd_clxyz1234567890abcdef", "status": "CREATED", "type": "FIAT_WITHDRAWAL", "amount": "50000", "currency": "MYR", "bankAccount": { "id": "ba_clxyz1234567890abcdef", "bankName": "Maybank", "accountNumber": "****1234", "accountHolder": "Your Company Sdn Bhd" }, "reference": "WD-2026-0001", "createdAt": "2026-01-16T10:30:00.000Z", "estimatedArrival": "2026-01-17T17:00:00.000Z" }

Response Fields

FieldTypeDescription
idstringUnique withdrawal ID
statusstringCurrent withdrawal status
typestringTransaction type (FIAT_WITHDRAWAL)
amountstringAmount to withdraw (in cents)
currencystringCurrency (MYR)
bankAccountobjectDestination bank account
bankAccount.idstringBank account ID
bankAccount.bankNamestringBank name
bankAccount.accountNumberstringMasked account number
bankAccount.accountHolderstringAccount holder name
referencestringYour reference ID
createdAtstringISO 8601 creation timestamp
estimatedArrivalstringEstimated bank arrival time

Withdrawal Status Values

StatusDescription
CREATEDWithdrawal request received
PROCESSINGWithdrawal in progress
PENDINGSent to bank, awaiting credit
COMPLETEDSuccessfully deposited to bank
FAILEDWithdrawal failed
REJECTEDRejected (compliance or bank issue)

List Bank Accounts

Get your linked bank accounts to use for withdrawals.

GET /v1/wallet/bank-accounts

Authentication

This endpoint requires API Key only (no signature required for GET requests).

Example Request

curl "https://api.blox.my/v1/wallet/bank-accounts" \ -H "blox-api-key: $BLOX_API_KEY"

Response

{ "data": [ { "id": "ba_clxyz1234567890abcdef", "bankName": "Maybank", "accountNumber": "****1234", "accountHolder": "Your Company Sdn Bhd", "status": "ACTIVE" } ] }

Error Responses

Insufficient Balance (400)

{ "statusCode": 400, "error": "Bad Request", "message": "Insufficient balance", "details": { "available": "25000", "requested": "50000" } }

Invalid Bank Account (400)

{ "statusCode": 400, "error": "Bad Request", "message": "Bank account not found or inactive" }

Limit Exceeded (400)

{ "statusCode": 400, "error": "Bad Request", "message": "Daily withdrawal limit exceeded", "details": { "dailyLimit": "5000000", "usedToday": "4800000", "available": "200000" } }

Example

Create Withdrawal

curl -X POST "https://api.blox.my/v1/wallet/fiat/withdraw" \ -H "blox-api-key: $BLOX_API_KEY" \ -H "Content-Type: application/json" \ -H "Content-Digest: sha-256=:$CONTENT_DIGEST:" \ -H "Signature-Input: sig1=(@method @path content-digest content-type);created=$TIMESTAMP;keyid=\"$KEY_ID\";alg=\"ed25519\"" \ -H "Signature: sig1=:$SIGNATURE:" \ -d '{ "bankAccountId": "ba_clxyz1234567890abcdef", "amount": 50000, "reference": "WD-2026-0001" }'

Check Withdrawal Status

Use the wallet transactions endpoint to check withdrawal status:

curl "https://api.blox.my/v1/wallet/transactions" \ -H "blox-api-key: $BLOX_API_KEY"

Processing Timeline

StageTimeline
Request to processingImmediate
Sent to bankSame business day (before 5 PM)
Bank creditT+1 working day

Requests after banking hours (5 PM MYT) or on weekends are processed on the next working day.

Limits

Limit TypeStandardBusiness
MinimumRM 10RM 10
Per TransactionRM 50,000RM 500,000
DailyRM 50,000RM 500,000
MonthlyRM 500,000RM 5,000,000
Last updated