kuickpayDeveloper Portal
kuickpayDeveloper Portal

Bill Initiator APIs

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

Generated October 20, 2026 — see the live docs for the full interactive reference.

Sandbox Base URL

https://sandbox-kpcore.kuickpay.com

1. Authentication

POST/api/Login

Login

Login with your Bill Initiator username and password to receive a JWT token and your API key / IN-ID. Pass X-API-KEY and IN-ID headers on every subsequent request.

FieldTypeReqDescription
usernamestringYesYour Bill Initiator username from the Business Portal.
passwordstringYesYour password.

Response

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expiry": "2025-06-15T12:00:00Z",
  "apiKey": "KP-XXXXXXXXXXXXXXXX",
  "initiatorId": "INIT-XXXXX"
}
Pass the returned apiKey as X-API-KEY and initiatorId as IN-ID on every Get Billers, Bill Inquiry, and Bill Payment request.

2. Get Billers

POST/api/GetBillers

Get Billers

Returns the full list of billers available on Kuickpay. Use bank_mnemonic from this response in Bill Inquiry and Bill Payment requests. Cache this list — it changes infrequently.

Authentication

X-API-KEYYour API key
IN-IDYour Initiator ID

Response

[
  { "billerID": "XXXXX", "billerName": "Utility Company", "bank_mnemonic": "UTIL", "category": "Utility", "isActive": true },
  { "billerID": "YYYYY", "billerName": "Telecom Provider", "bank_mnemonic": "TELCO", "category": "Telecom", "isActive": true }
]

3. Bill Inquiry V3

POST/api/BillInquiryV3

Bill Inquiry V3

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

Authentication

X-API-KEYYour API key
IN-IDYour Initiator ID
FieldTypeReqMax LenDescription
consumer_numbernumericYes18Consumer/account number. First 5 digits identify the biller. Numeric characters only.
bank_mnemonicstringNo7Biller short code from Get Billers (e.g. MCB, HBL). Optional.
reservedstringNo100Optional metadata. Pass empty string if unused.
networkstringNo20Payment network identifier.
channelstringNo20Channel identifier (e.g. MOBILE, WEB).

Response — Success (00)

{
  "response_Code": "00",
  "response_description": "Success",
  "consumer_detail": "JOHN DOE",
  "bill_status": "U",
  "due_date": "20250630",
  "amount_within_due_date": "0000000250000+",
  "amount_after_due_date": "0000000265000+",
  "billing_month": "2506",
  "date_paid": "",
  "amount_paid": "",
  "tran_auth_id": "",
  "contact_number": "03001234567",
  "email": "john.doe@example.com",
  "reserved": "",
  "institution_id": "XXXXX",
  "institution_name": "Utility Company"
}
amount_within_due_date / amount_after_due_date use AN14: a 13-digit amount left-padded with zeros (last 2 digits are minor units) followed by a +/- sign — e.g. Rs. 2,500.00 → 0000000250000+. tran_auth_id in the response is numeric only, max length 6, populated once the bill is paid.

Response Codes

CodeMeaning
00Bill found — proceed to payment
01Consumer number not found
02Voucher is blocked or inactive
03Unknown error or bad request
04Invalid data — wrong credentials or malformed request
05Server error — API or ERP system failed internally
401Authentication failed — check X-API-KEY / IN-ID / IP

4. Bill Payment V3

POST/api/BillPaymentV3

Bill Payment V3

Execute a bill payment after a successful Bill Inquiry. Always call Bill Inquiry V3 first to confirm bill details with the consumer.

Authentication

X-API-KEYYour API key
IN-IDYour Initiator ID
FieldTypeReqMax LenDescription
consumer_numbernumericYes18Consumer/account number (same as used in Bill Inquiry). Numeric characters only.
bank_mnemonicstringNo7Biller short code from Get Billers. Optional.
tran_auth_idnumericYes6Your unique transaction ID. Numeric characters only. Used for idempotency and reconciliation. Not restricted to a single consumer number.
paid_amountstringYes12Amount paid in paisa (1 PKR = 100 paisa). E.g. Rs.2500 → "250000".
tran_datestringYes8Transaction date in YYYYMMDD format.
tran_timestringYes6Transaction time in HHMMSS format.
reservedstringNo100Optional metadata. Pass empty string if unused.
Always check if tran_auth_id has already been processed before marking a bill as paid — if a duplicate is received, return response code 03. Do not restrict tran_auth_id to a single consumer number; two different banks may send the same value simultaneously for different consumers.

Response — Success (00)

{
  "response_Code": "00",
  "response_description": "Bill Payment Successful",
  "Identification_parameter": "123456",
  "reserved": "",
  "Is_BI_completed": true
}

Response Codes

CodeMeaning
00Success
01Invalid Voucher Number
02Voucher is blocked. Payment not allowed
03Already paid — duplicate tran_auth_id received
04Invalid data — missing/wrong fields or bad credentials
05Server error — API or ERP system failed internally
401Authentication failed — check X-API-KEY / IN-ID / IP