Bills
Pay utility bills, government fees, and more via Xendit Bill Payments.
GET
/v1/bills/productsList billers
Returns all available billers. Filter by category (UTILITIES, GOVERNMENT, TELCO, etc.).
Required scope:
bills:readQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| category | string | No | Filter by biller category |
Response
{
"data": [
{
"id": "MERALCO",
"name": "Meralco",
"category": "UTILITIES",
"requires_inquiry": true,
"status": "ACTIVE"
}
]
}POST
/v1/bills/inquiryIdempotentInquire bill
Fetches the current bill amount for an account. Required before paying billers with requires_inquiry: true. Returns a transaction in INQUIRY_SUCCEEDED status.
Required scope:
bills:writeRequest Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| biller_id | string | Yes | Biller ID from /v1/bills/products |
| account_number | string | Yes | Customer account number |
| reference_id | string | Yes | Your unique reference ID |
Response
{
"id": "bill_01HXYZ",
"status": "INQUIRY_SUCCEEDED",
"biller_id": "MERALCO",
"biller_name": "Meralco",
"account_number": "123456789012",
"amount": 250000,
"currency": "PHP",
"due_date": "2024-02-01T00:00:00.000Z",
"reference_id": "BILL-001",
"created_at": "2024-01-01T00:00:00.000Z"
}POST
/v1/bills/payIdempotentPay a bill
Pays a bill using the transaction ID from a successful inquiry. The transaction must be in INQUIRY_SUCCEEDED status.
Required scope:
bills:writeRequest Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| transaction_id | string | Yes | Transaction ID from /v1/bills/inquiry |
| customer_name | string | No | Customer name for receipt |
Response
{
"id": "bill_01HXYZ",
"status": "PROCESSING",
"amount": 250000,
"currency": "PHP",
"payment_code": "PAY123456",
"reference_id": "BILL-001",
"created_at": "2024-01-01T00:00:00.000Z"
}