---
title: "Charge a customer"
method: POST
path: "/v3/receivable-payments"
tags: ["receivable-payments"]
---

# Charge a customer

`POST /v3/receivable-payments`

Charge a customer for one or more invoices.

Charging a customer follows a set of rules.
* **Customer authorization**: The customer `authorizedToCharge` field must be set as `true` for you to charge the customer for invoices. Set charge customer authorization with `POST /v3/customers/{customerId}/charge-authorization`.
* **Customer bank account**: A customer bank account is required for you to charge a customer. Create a customer bank account with `POST /v3/customers/{customerId}/bank-accounts`.

## Headers

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

## Request body

- ChargeCustomerRequestDto — Charge a customer
  - `customerId` string, required — BILL-generated ID of the customer. The value begins with `0cu`.
  - `fundingAccount` object, required — Customer funding account information
    - `id` string, required — BILL-generated ID of the customer funding account. For a customer bank account, the value begins with `cba`.
    - `type` 'BANK_ACCOUNT', required — Customer funding account type.
  - `description` string — Invoice payment description. This value is included in the check memo or in the bank descriptor for electronic payments.
  - `paymentDate` string, date — Received payment date. Funds are withdrawn from the customer bank account on this date.This value is in the `yyyy-MM-dd` format.
  - `invoicePayments` InvoicePayRequestDto[], required — List of invoices to be paid
    - `invoiceId` 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.

## Response `201`

Charge a customer response

- ReceivablePaymentResponseDto — Receivable 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`.
  - `invoicePayments` InvoicePay[] — List of invoice payments
    - `invoiceId` string — BILL-generated ID of the invoice to be paid. The value begins with `00e`.
    - `amount` number — Payment amount. For a payment in an international currency (not USD), this value is in the local currency.
    - `paymentDate` string, date — Invoice payment date. The value is in the `yyyy-MM-dd` format.
  - `description` string — Invoice payment description. This value is included in the check memo or in the bank descriptor for electronic payments.
  - `paymentDate` string, date — Received payment date. Funds are withdrawn from the customer bank account on this date.
  - `fundingAccount` object — Customer funding account information
    - `id` string
    - `type` string
    - `name` string
    - `accountNumber` string
    - `last4` string
  - `receivablesAccount` object — Received payment funding account information
    - `id` string — BILL-generated ID of the received payment funding account
    - `type` 'BANK_ACCOUNT' | 'CARD_ACCOUNT' — Received payment funding account type
  - `amount` number, required — Received payment amount. For a payment in an international currency (not USD), this value is in the local currency.
  - `unappliedAmount` number — Unapplied received payment amount. This value is available for an overpayment, double payment, or customer payment not currently linked to an invoice.
  - `convenienceFeeAmount` number — Convenience fee charged to the customer
  - `receivablesType` 'CASH' | 'CHECK' | 'CREDIT_CARD' | 'ACH' | 'PAYPAL' | 'OTHER' | 'WALLET' | 'VIRTUAL_CARD' | 'UNDEFINED' — Received payment disbursement type.
  - `status` 'PAID' | 'VOID' | 'SCHEDULED' | 'CANCELED' | 'ESCHEATED' | 'UNDEFINED' — Received payment status.
  - `referenceNumber` string — Received payment reference number
  - `onlinePayment` boolean — Information about how the received payment is recorded. * `true`: The payment is received with BILL * `false`: The payment is received outside BILL, and then recorded in BILL
  - `createdTime` string, date-time — Received payment created date and time
  - `updatedTime` string, date-time — Received payment updated date and time

## 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)
