Skip to main content

2.1 Create PayOut

POST /api/v2/withdrawals

Request​

ParameterTypeRequiredDescription
X-Api-KeystringYesYour enabled merchant API key.
X-SignaturestringYesLowercase hexadecimal HMAC-SHA256 of the exact raw JSON body, using the API signing secret.
Content-TypestringYesapplication/json.

v2 does not require X-Timestamp or X-Request-Id. See authentication.

Example request​

Example for an active card shop with no additional required fields. Replace your_bdt_shop with your actual shop code:

{
"order_id": "WD-BDT-1001",
"amount": 500,
"currency": "BDT",
"method": "your_bdt_shop",
"customer_account_id": 77,
"callback_url": "https://merchant.example.com/webhooks/payfield",
"account_number": "4111111111111111",
"fields": {
"merchant_user_ip": "203.0.113.10"
}
}

Send one JSON object and no query string. Use the v2 authentication headers. The successful response is HTTP 200.

Response​

Response fields​

HTTP 200.

ParameterTypeDescription
transaction_idstringPayfield transaction ID. Store it for status requests.

Example response​

{
"transaction_id": "12345"
}

A successful create response does not confirm that the recipient was paid. Retrieve the current result even after HTTP 200.

Store transaction_id and check its status. A retry with the same order_id and equivalent request returns the same response without creating another withdrawal. Reusing the order_id with different request data returns 409. Idempotency is scoped to the merchant and withdrawal type, across shops; an existing v1 withdrawal with the same ID also conflicts. See API errors.