---
title: "Pay a bill"
method: POST
path: "/bill-payments"
tags: ["Bill Payments"]
---

# Pay a bill

`POST /bill-payments`

## Request

- The document declares no server URL.
- Auth: none declared. Required headers: `ApiKey`, `MerchantId`, `Environment`

## Headers

- `ApiKey` string, required
- `MerchantId` string, required
- `Environment` 'live' | 'sandbox', required

## Request body

- CreateBillPaymentDto
  - `billerId` string, required: Identifier of the biller
  - `reference` string, required: Customer reference for the bill
  - `amount` number, required: Amount to pay, must equal the bill totalAmount (bill + fees + margin) from the lookup response, in the biller currency minor unit

## Response `201`

- BillPaymentDto
  - `id` string, required
  - `status` 'CREATED', required
  - `billerId` string, required
  - `reference` string, required
  - `amount` number, required
  - `paymentLinkUrl` string, required: Hosted payment link URL, expires 30 minutes after creation.

## Other responses

- `400`: Bad Request
- `401`: Wrong credentials
- `403`: Forbidden
- `404`: Not Found
- `409`: Invalid request
- `422`: Unprocessable Entity
- `429`: ThrottlerException: Too Many Requests
- `500`: Internal error
- `502`: Invalid gateway
- `503`: Service unavailable

## Changes

- **2026-11-03** `f6d3f87df5e0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hub2/apis/hub2-service-api/changes/bill-payments/post.md)

---

[API](https://skmtc.dev/hub2/apis/hub2-service-api.md) - [All operations](https://skmtc.dev/hub2/apis/hub2-service-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hub2/apis/hub2-service-api/revisions/f6d3f87df5e0?raw)
