Skip to content

Bank Disbursement

This endpoint is used to initiate a bank disbursement from a merchant wallet to a beneficiary bank account.

Sandbox Endpoint

POST https://api.lipila.dev/api/v1/disbursements/bank


Headers

The following headers are accepted.

HeaderTypeDescriptionRequired
acceptapplication/jsonExpected response formatYes
x-api-keystringMerchant API authentication keyYes
Content-Typeapplication/jsonRequest payload formatYes
callbackUrlstringURL to receive asynchronous callback notificationsOptional

Request Body

The following fields are expected in the request payload.

FieldTypeDescriptionRequired
referenceIdstringUnique reference ID for the disbursement transactionYes
amountnumberAmount to be disbursedYes
currencystringTransaction currency (e.g. ZMW)Yes
narrationstringDescription or narration for the disbursementYes
accountNumberstringBeneficiary bank account numberYes
swiftCodestringBank SWIFT codeYes
firstNamestringBeneficiary first nameYes
lastNamestringBeneficiary last nameYes
accountHolderNamestringFull name of the account holderYes
phoneNumberstringBeneficiary mobile numberYes
emailstringBeneficiary emailNo
callbackUrlstringcallback urlNo

Example Request

js

curl -X 'POST' \
  'https://api.lipila.dev/api/v1/disbursements/bank' \
  -H 'accept: application/json' \
  -H 'x-api-key: your_api_key' \
  -H 'callbackUrl: https://lipila.io/callback' \
  -H 'Content-Type: application/json' \
  -d '{
  "referenceId": "12345", // Use this Id to check the transaction status
  "amount": 1,
  "narration": "Settlement Payout",
  "accountNumber": "532346464756758674654744564646546464",
  "currency": "ZMW",
  "swiftCode": "ZNCOZMLU",
  "firstName": "John",
  "lastName": "Doe",
  "phoneNumber": "260xxxxxxxxx",
  "accountHolderName": "John Doe"
}'

Important

referenceId should always be unique

Example Successful Response

Below is an example successful response.

HTTP Status CodeDescription
200SUCCESS
js


{
  "amount": 1,
  "externalId": null,
  "narration": "Settlement Payout",
  "ipAddress": "102.212.181.61",
  "referenceId": "12345",
  "status": "Pending",
  "currency": "ZMW",
  "type": "Disbursement",
  "accountNumber": "532346464756758674654744564646546464",
  "paymentType": "Bank",
  "createdAt": "2025-12-09T09:56:35.4174786+00:00",
  "identifier": "LPLXD-20261209-095635-417-2344"
}

Error Codes

HTTP Status CodeError CodeDescription
400BAD REQUESTInvalid or missing request parameters
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENAPI key is inactive or unauthorized
429TOO MANY REQUESTSRate limit exceeded, slow down requests

Important

Do not share your api key with anyone, Use permissions on your dashboard to keep it safe.

Released under the MIT License.