bKash Cash In API

NICTBD.COM bKash Cash In API Integration Guide

Integrate bKash Cash In into your merchant software, recharge application, reseller panel or backend. Submit a request, save the returned references and check the status until a final result is received.

bKash Cash In API Overview

The NICTBD.COM bKash Cash In API allows a merchant application to submit a Cash In request using a receiver number, amount and unique client reference.

Save the returned order_number, client_reference and job_id. Use the status API to retrieve the latest result of the request.

Do not mark a request as completed from the submit response alone. Check the status field until a final status is returned.

Recommended Integration Flow

1. Submit Request Send receiver_number, amount and a unique client_reference.
2. Save References Save order_number, client_reference and job_id from the response.
3. Check Status Call the status endpoint using the order number or client reference.
4. Handle Final Result Complete your local order when the API returns a final status.

Submit Cash In API

POST https://www.nictbd.com/api/bkash-cash-in

Headers

Headers
Content-Type: application/json
Accept: application/json

Submit Request Fields

Field Required Type Description
receiver_number Required string Customer bKash receiver number.
phone Alternative string Alternative field for receiver_number.
amount Required number Cash In amount. Minimum value is 1.
client_reference Required string A unique reference generated by your application.

JSON Request Example

JSON
{
  "receiver_number": "01712345678",
  "amount": 500,
  "client_reference": "MY-ORDER-10001"
}

Submit Response

JSON Response
{
  "success": true,
  "message": "bKash Cash In request submitted successfully.",
  "data": {
    "job_id": 451,
    "order_number": "NICT-451-260622-A8F4",
    "client_reference": "MY-ORDER-10001",
    "type": "cash-in",
    "service_name": "bKash Cash In",
    "service_type": "mobile_financial_service",
    "service_code": "BKASH_CASH_IN",
    "receiver_number": "01712345678",
    "amount": "500.00",
    "debit_amount": "500.00",
    "status": "processing",
    "job_status": "processing",
    "transaction_status": "pending",
    "operator_transaction_id": null,
    "failure_reason": null,
    "refund_order_number": null,
    "created_at": "2026-06-22T10:30:00+06:00",
    "completed_at": null
  }
}

Cash In Status API

POST https://www.nictbd.com/api/bkash-cash-in/status
Field Required Type Description
order_number One Required string Order number returned by the submit API.
client_reference One Required string Your original client reference.

Check by Client Reference

JSON
{
  "client_reference": "MY-ORDER-10001"
}

Check by Order Number

JSON
{
  "order_number": "NICT-451-260622-A8F4"
}

Status Responses

Successful Response

Successful
{
  "success": true,
  "message": "bKash Cash In completed successfully.",
  "data": {
    "job_id": 451,
    "order_number": "NICT-451-260622-A8F4",
    "client_reference": "MY-ORDER-10001",
    "receiver_number": "01712345678",
    "amount": "500.00",
    "debit_amount": "500.00",
    "status": "successfull",
    "job_status": "success",
    "transaction_status": "successfull",
    "operator_transaction_id": "C8F4A91B2D",
    "failure_reason": null,
    "refund_order_number": null,
    "completed_at": "2026-06-22T10:31:18+06:00"
  }
}
Mark your local order as completed only when the API returns status: successfull.

Failed Response

Failed
{
  "success": true,
  "message": "bKash Cash In failed.",
  "data": {
    "job_id": 451,
    "order_number": "NICT-451-260622-A8F4",
    "client_reference": "MY-ORDER-10001",
    "status": "failed",
    "job_status": "failed",
    "transaction_status": "failed",
    "operator_transaction_id": null,
    "failure_reason": "Cash In request could not be completed.",
    "refund_order_number": null,
    "completed_at": "2026-06-22T10:31:18+06:00"
  }
}

Refunded Response

Refunded
{
  "success": true,
  "message": "bKash Cash In failed and the amount was refunded.",
  "data": {
    "job_id": 451,
    "order_number": "NICT-451-260622-A8F4",
    "client_reference": "MY-ORDER-10001",
    "status": "refunded",
    "job_status": "refunded",
    "transaction_status": "refunded",
    "operator_transaction_id": null,
    "failure_reason": "Cash In request failed.",
    "refund_order_number": "REFUND-451-260622",
    "completed_at": "2026-06-22T10:32:00+06:00"
  }
}

Cash In Status Values

pending

The request has been accepted and is waiting to be processed.

processing

The request is currently being processed.

awaiting_sms

The request is waiting for final confirmation.

manual_review

The request needs additional review.

successfull

The Cash In request completed successfully.

failed

The request could not be completed.

refunded

The request failed and the deducted amount was refunded.

Response Fields

Field Type Description
job_idintegerRequest tracking ID.
order_numberstring / nullNICTBD.COM order number.
client_referencestringYour application reference.
receiver_numberstringbKash receiver number.
amountdecimal stringRequested Cash In amount.
debit_amountdecimal stringAmount debited for the request.
statusstringPublic request status.
job_statusstringCurrent processing status.
transaction_statusstring / nullCurrent transaction status.
operator_transaction_idstring / nullOperator transaction reference.
failure_reasonstring / nullReason returned for a failed request.
refund_order_numberstring / nullRefund reference when available.
created_atISO 8601 stringRequest creation date and time.
completed_atISO 8601 string / nullFinal completion date and time.

Integration Examples

cURL
curl -X POST "https://www.nictbd.com/api/bkash-cash-in" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "receiver_number": "01712345678",
    "amount": 500,
    "client_reference": "MY-ORDER-10001"
  }'
PHP
$payload = [
    'receiver_number' => '01712345678',
    'amount' => 500,
    'client_reference' => 'MY-ORDER-10001',
];

$ch = curl_init(
    'https://www.nictbd.com/api/bkash-cash-in'
);

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Accept: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($payload),
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
Laravel
use Illuminate\Support\Facades\Http;

$response = Http::acceptJson()
    ->asJson()
    ->post(
        'https://www.nictbd.com/api/bkash-cash-in',
        [
            'receiver_number' => '01712345678',
            'amount' => 500,
            'client_reference' => 'MY-ORDER-10001',
        ]
    );

$result = $response->json();
Node.js
const response = await fetch(
  "https://www.nictbd.com/api/bkash-cash-in",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Accept": "application/json"
    },
    body: JSON.stringify({
      receiver_number: "01712345678",
      amount: 500,
      client_reference: "MY-ORDER-10001"
    })
  }
);

const result = await response.json();

Status Check Example

cURL
curl -X POST "https://www.nictbd.com/api/bkash-cash-in/status" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "client_reference": "MY-ORDER-10001"
  }'

Error Responses

HTTP Code Message Reason
422 Validation error A required field is missing or invalid.
404 bKash Cash In request not found. No matching request was found.
500 Unable to process the request. An unexpected processing error occurred.

Frequently Asked Questions

What should I save after submitting a request?

Save the job_id, order_number and client_reference returned by the API.

How should I check the result?

Call the status endpoint using the order_number or client_reference.

Which statuses are final?

The final statuses are successfull, failed and refunded.

When should I mark my local order as successful?

Mark it successful only when the public status field returns successfull.