kuickpayDeveloper Portal
Bill Initiators

Bill Initiator APIs

Download Integration Guide

Call Kuickpay's V3 REST APIs to look up and pay bills on behalf of consumers. Three calls: GetBillers → BillInquiryV3 → BillPaymentV3.

Base URLhttps://sandbox-kpcore.kuickpay.com

Which billers do you want to integrate?

Authentication

Pass these two headers on every request. Obtain them from business.kuickpay.com.

X-API-KEYYour Bill Initiator API key.
IN-IDYour Bill Initiator ID.
HTTP Headers
X-API-KEY: your_api_key
IN-ID: your_initiator_id
Content-Type: application/json

Missing or invalid headers return HTTP 401. Your server IP must also be whitelisted in the Business Portal.

POSTGet Billers
/api/GetBillers

Returns all active billers and their mnemonic codes. Cache this list — it changes infrequently.

Request

FieldTypeReqDescription
reservedstringOOptional. Pass empty string.
Request
POST /api/GetBillers

{
  "reserved": ""
}
Response
{
  "response_Code": "00",
  "response_description": "Success",
  "billers": [
    { "mnemonic": "SSGC", "name": "Sui Southern Gas Company", "category": "Utilities" },
    { "mnemonic": "LESCO", "name": "Lahore Electric Supply Co.", "category": "Utilities" }
  ]
}
POSTBill Inquiry V3
/api/BillInquiryV3

Look up a consumer's bill. Save the tran_auth_id from the response — it's required for payment.

Request Parameters

FieldTypeReqDescription
BillerIDstringOBiller ID from GetBillers (same as the first 5 digits of consumer_number). Optional for Kuickpay billers.
consumer_numberstringMConsumer's account/reference number.
bank_mnemonicstringMBiller code from GetBillers. e.g. SSGC, LESCO.
reservedstringOOptional.
Request
POST /api/BillInquiryV3

{
  "BillerID": "XXXXX",
  "consumer_number": "1234567890",
  "bank_mnemonic": "SSGC",
  "reserved": ""
}

Response

FieldTypeReqDescription
response_CodestringM00=Found, 01=Not found, 02=Blocked, 03=Unknown, 04=Invalid, 05=Failed, 06=Paid
consumer_namestringMConsumer name.
bill_statusstringMU=Unpaid, P=Paid, B=Blocked.
due_datestringMyyyyMMdd
amount_within_due_datestringMAmount in paisa. 25000 = Rs. 250.00
amount_after_due_datestringMSurcharge amount in paisa.
billing_monthstringMMMYY e.g. 0525
tran_auth_idstringMPass this in the Bill Payment request.
Success Response (Unpaid)
{
  "response_Code": "00",
  "response_description": "Bill found",
  "consumer_name": "MUHAMMAD ALI",
  "bill_status": "U",
  "due_date": "20250531",
  "amount_within_due_date": "25000",
  "amount_after_due_date": "27500",
  "billing_month": "0525",
  "tran_auth_id": "698243"
}
CodeMeaning
00Bill found — proceed to payment
01Consumer number not found
02Consumer blocked or inactive
03Unknown error or bad request
04Invalid data or credentials
05Server error — retry
06Bill already paid
401Unauthorized — check X-API-KEY / IN-ID / IP whitelist
POSTBill Payment V3
/api/BillPaymentV3

Confirm payment after a successful inquiry. Use tran_auth_id from the inquiry response.

Request Parameters

FieldTypeReqDescription
BillerIDstringOBiller ID from GetBillers (same as the first 5 digits of consumer_number). Optional for Kuickpay billers.
consumer_numberstringMSame number used in inquiry.
bank_mnemonicstringMSame mnemonic used in inquiry.
tran_auth_idstringMValue returned by BillInquiryV3.
paid_amountstringMAmount in paisa. Must match amount_within_due_date.
billing_monthstringMMMYY from inquiry response.
reservedstringOOptional.
Request
POST /api/BillPaymentV3

{
  "BillerID": "XXXXX",
  "consumer_number": "1234567890",
  "bank_mnemonic": "SSGC",
  "tran_auth_id": "698243",
  "paid_amount": "25000",
  "billing_month": "0525",
  "reserved": ""
}
Success Response
{
  "response_Code": "00",
  "response_description": "Payment successful",
  "tran_auth_id": "698243",
  "receipt_id": "KP20250507001234"
}
CodeMeaning
00Payment processed successfully
01Consumer not found
02Consumer blocked
03Duplicate or unknown transaction
04Invalid data or credentials
05Server error — verify before retrying; may have processed
06Bill already paid
401Unauthorized — check headers and IP whitelist