---
title: "Record AR payment"
method: POST
path: "/v3/invoices/record-payment"
tags: ["invoices"]
---

# Record AR payment

`POST /v3/invoices/record-payment`

Record an offline AR payment received from a customer.

An offline payment is a payment that you receive outside the BILL system. BILL simply applies the recorded payment amount to one or more invoices for the customer. Any recorded unapplied amount is an overpayment and is available as a customer credit in the BILL system.

See [Recording an AR payment](https://developer.bill.com/docs/recording-an-ar-payment) in the Guides section for more information, sample requests, and responses.

## Headers

- `sessionId` string, nullable — API session ID generated with `/v3/login`
- `devKey` string, nullable — Developer key generated with your BILL developer account

## Request body

- RecordInvoiceRequestDto — Record AR payment
  - `customerId` string — BILL-generated ID of the customer. The value begins with `0cu`.
  - `paymentDate` string, date, required — Invoice payment date. The value is in the `yyyy-MM-dd` format.
  - `paymentType` 'CASH' | 'CHECK' | 'CREDIT_CARD' | 'ACH' | 'PAYPAL' | 'OTHER' | 'WALLET' | 'VIRTUAL_CARD', required — Payment type
  - `amount` number, required — Payment amount
  - `description` string — Payment description
  - `invoices` RecordInvoiceItemRequestDto[], required — List of invoice payments
    - `id` string, required — BILL-generated ID of the invoice. The value begins with `00e`.
    - `amount` number, required — Payment amount. For a payment in an international currency (not USD), this value is in the local currency. **Note**: You cannot overpay an invoice.

## Response `200`

Record AR payment response

- RecordInvoiceResponseDto — Record AR payment response.
  - `id` string — BILL-generated ID of the received payment. The value begins with `0rp`.
  - `customerId` string — BILL-generated ID of the customer. The value begins with `0cu`.
  - `paymentType` 'CASH' | 'CHECK' | 'CREDIT_CARD' | 'ACH' | 'PAYPAL' | 'OTHER' | 'WALLET' | 'VIRTUAL_CARD' | 'UNDEFINED' — Record AR payment type.
  - `paymentDate` string, date — Invoice payment date. The value is in the `yyyy-MM-dd` format.
  - `amount` number — Payment amount
  - `unappliedAmount` number — Unapplied payment amount
  - `status` 'PAID' | 'VOID' | 'SCHEDULED' | 'CANCELED' | 'ESCHEATED' | 'UNDEFINED' — Payment status.
  - `description` string — Payment description
  - `invoices` RecordInvoiceItemResponseDto[] — List of invoice payments
    - `id` string — BILL-generated ID of the invoice. The value begins with `00e`.
    - `payments` InvoicePayment[] — Invoice payments
      - `id` string — BILL-generated ID of the invoice payment. The value begins with `0ip`. This ID is generated when a payment is applied to the listed invoice.
      - `amount` number — Invoice amount paid
      - `status` 'PAID' | 'VOID' | 'SCHEDULED' | 'CANCELED' | 'INITIATED' | 'UNDEFINED' — Invoice payment status.
      - `date` string, date — Invoice payment date. The value is in the `yyyy-MM-dd` format.

## Other responses

- `4XX` — List of errors.
- `5XX` — List of errors.

---

[API](https://skmtc.net/bill/apis/bill-v3-api.md) · [All operations](https://skmtc.net/bill/apis/bill-v3-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bill/bill-v3-api/revisions/0483350c434e/schema)
