Bill Initiators/Bill Payment V3
POST
/api/BillPaymentV3Bill Payment V3
Execute a bill payment after a successful Bill Inquiry. Always call BillInquiryV3 first to confirm bill details with the consumer.
Showing the request for Kuickpay Billers.Change
Authentication
X-API-KEYYour API key from the Business PortalIN-IDYour Bill Initiator IDAmount Format
paid_amount must be in paisa. Multiply PKR amount by 100. Rs. 2,500 → 250000
Idempotency
Always check if tran_auth_id has already been processed before marking a bill as paid. If a duplicate transaction is received, return response_Code: "03".
If a bill is already paid and the customer attempts repayment, validate all four of the following. If they all match, return "03":
- Consumer number
- Date paid
- tran_auth_id
- Amount paid
Note: Do not restrict tran_auth_id to a single consumer number. Two different banks may send the same tran_auth_id simultaneously for different consumers.
Request Parameters
| Parameter | Type | Required | Max Length | Description |
|---|---|---|---|---|
BillerID | string | optional | 5 | Biller ID from GetBillers (same as the first 5 digits of consumer_number). Optional for Kuickpay billers. |
consumer_number | numeric | required | 18 | Consumer/account number (same as used in Bill Inquiry). Numeric characters only. |
bank_mnemonic | string | optional | 7 | Biller short code from GetBillers. Optional. |
tran_auth_id | numeric | required | 6 | Your unique transaction ID. Numeric characters only. Used for idempotency and reconciliation. Not restricted to a single consumer number. |
paid_amount | string | required | 12 | Amount paid in paisa (1 PKR = 100 paisa). E.g. Rs.2500 → "250000". |
tran_date | string | required | 8 | Transaction date in YYYYMMDD format (e.g. "20250615"). |
tran_time | string | required | 6 | Transaction time in HHMMSS format (e.g. "143025"). |
reserved | string | optional | 100 | Optional metadata. Pass empty string if unused. |
Response
{
"response_Code": "00",
"response_description": "Bill Payment Successful",
"Identification_parameter": "123456",
"reserved": "",
"Is_BI_completed": true
}Response Codes
| Code | Meaning |
|---|---|
| 00 | Success. |
| 01 | Invalid Voucher Number. |
| 02 | Voucher is blocked. Payment not allowed. |
| 03 | Already paid — duplicate tran_auth_id received. |
| 04 | Invalid data — missing/wrong fields or bad credentials. |
| 05 | Server error — API or ERP system failed internally. |
| 401 | Authentication failed — check X-API-KEY / IN-ID / IP. |
Bill Payment V3 — Request
curl -X POST https://sandbox-kpcore.kuickpay.com/api/BillPaymentV3 \
-H "X-API-KEY: your_api_key" \
-H "IN-ID: your_initiator_id" \
-H "Content-Type: application/json" \
-d '{
"BillerID": "XXXXX",
"consumer_number": "XXXXX0000000000001",
"bank_mnemonic": "MCB",
"tran_auth_id": "123456",
"paid_amount": "250000",
"tran_date": "20250615",
"tran_time": "143025",
"reserved": ""
}'