Bills

Pay utility bills, government fees, and more via Xendit Bill Payments.

GET/v1/bills/products

List billers

Returns all available billers. Filter by category (UTILITIES, GOVERNMENT, TELCO, etc.).

Required scope:bills:read

Query Parameters

ParameterTypeRequiredDescription
categorystringNoFilter by biller category

Response

{
  "data": [
    {
      "id": "MERALCO",
      "name": "Meralco",
      "category": "UTILITIES",
      "requires_inquiry": true,
      "status": "ACTIVE"
    }
  ]
}
POST/v1/bills/inquiryIdempotent

Inquire 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:write

Request Body

ParameterTypeRequiredDescription
biller_idstringYesBiller ID from /v1/bills/products
account_numberstringYesCustomer account number
reference_idstringYesYour 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/payIdempotent

Pay a bill

Pays a bill using the transaction ID from a successful inquiry. The transaction must be in INQUIRY_SUCCEEDED status.

Required scope:bills:write

Request Body

ParameterTypeRequiredDescription
transaction_idstringYesTransaction ID from /v1/bills/inquiry
customer_namestringNoCustomer 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"
}