---
title: "Creates a bill payment"
method: POST
path: "/bills/{bill_id}/payments"
tags: ["Bill Payments"]
---

# Creates a bill payment

`POST /bills/{bill_id}/payments`

## Request

- Base URL: `https://api.rillet.com`
- URL: `https://api.rillet.com/bills/{bill_id}/payments`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/rillet/apis/rillet-accounting-api/docs/bills/:bill_id/payments/post.ts> (a function with typed inputs; its response is checked against the schema)

Books a cash or scheduled disbursement that settles all or part of a bill, updating the outstanding payable and linking treasury activity.
Provide funding source details consistent with your configured payment rails so downstream bank reconciliation stays accurate.

IMPORTANT: Notice this operation has a redundancy between the `bill_id` path parameter and the `billId` attribute in the request body, which takes precedence and is used in internal logic. When executing this operation, both IDs must match, otherwise the request will be rejected. This is a legacy redundancy and will be removed in future versions of this operation.

## Path parameters

- `bill_id` string, required

## Request body

- BillPaymentRequest
  - `amount` RoundedMonetaryAmount, required: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
    - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
    - `currency` string, required: Currency code following ISO-4217
  - `date` string, date, required
  - `account_code` string, required: The account code found in the Chart of Accounts

## Response `200`

OK

- BillPayment
  - `id` string, uuid, required
  - `status` 'CLEARED' | 'UNCLEARED', required
  - `bill_id` string, uuid, required
  - `amount` RoundedMonetaryAmount, required: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
    - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
    - `currency` string, required: Currency code following ISO-4217
  - `date` string, date
  - `account_code` string: The account code found in the Chart of Accounts

## Other responses

- `default`: Error

---

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