---
title: "Record AP payment"
method: POST
path: "/v3/bills/record-payment"
tags: ["bills"]
---

# Record AP payment

`POST /v3/bills/record-payment`

Record an offline AP payment made to a vendor.

An offline payment is a payment made outside the BILL system. BILL simply applies the recorded payment amount to one or more bills for the vendor. BILL does not process the payment or transfer funds to the vendor when you record an AP payment with this endpoint.

Use `POST /v3/payments` to create a payment with the BILL system. When you pay with `POST /v3/payments`, BILL processes the payment and transfers funds from your BILL organization funding account to the vendor.

## Headers

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

## Request body

- RecordPaymentRequestDto — Record AP payment
  - `vendorId` string, required — BILL-generated ID of the vendor. The value begins with `009`.
  - `processDate` string, date, required — Payment process date. The value is in the `yyyy-MM-dd` format.
  - `toPrintCheck` boolean, required — Set as `true` to set the payment check as printable in your accounting system. Use this field only for check payments.
  - `classifications` object — General ledger classifications information for the payment
    - `chartOfAccountId` string — BILL-generated ID of the chart of accounts. The value begins with `0ca`.
  - `description` string — Payment description
  - `syncReference` string — Payment reference ID in your accounting system. Set this field with payment information, such as check number.
  - `payments` RecordBillPayRequestDto[], required — List of bill payments
    - `billId` string, required — BILL-generated ID of the bill. The value begins with `00n`.
    - `amount` number, required — Payment amount
    - `vendorCredits` PaymentVendorCreditRequestDto[] — Vendor credits applied to the bill payment
      - `id` string, required — BILL-generated ID of the vendor credit applied to the bill payment. The value begins with `vcr`.
      - `amount` number, required — Credit amount
  - `allowExport` boolean — Set as `true` to sync the bill payment with your accounting system

## Response `200`

Record AP payment response

- RecordPaymentResponseDto — Record offline payment response dto.
  - `id` string — BILL-generated ID of the payment. The value begins with `stp`.
  - `vendorId` string — BILL-generated ID of the vendor. The value begins with `009`.
  - `billId` string — BILL-generated ID of the bill. The value begins with `00n`.
  - `billPayments` RecordBillPayResponseDto[] — List of bill payments
    - `id` string — BILL-generated ID of the bill payment. The value begins with `blp`.
    - `billId` string — BILL-generated ID of the bill. The value begins with `00n`.
    - `amount` number — Payment amount
    - `vendorCredits` PaymentVendorCreditResponseDto[] — Vendor credits applied to the bill payment
      - `id` string — BILL-generated ID of the vendor credit applied to the bill payment. The value begins with `vcr`.
      - `amount` number — Credit amount
  - `description` string — Payment description
  - `processDate` string, date — Payment process date. The value is in the `yyyy-MM-dd` format.
  - `amount` number — Payment amount. For a payment in an international currency (not USD), this value is in the local currency.
  - `transactionNumber` string — BILL-generated alphanumeric payment identification value
  - `confirmationNumber` string — BILL-generated bill payment confirmation value
  - `status` 'APPROVING' | 'SCHEDULED' | 'PAID' | 'CANCELLED' | 'VOID' | 'ESCHEATED' | 'UNDEFINED' — Payment status.
  - `exchangeRate` number — Exchange rate for the payment in an international currency (not USD)
  - `fundingAmount` number — Payment amount in USD
  - `onlinePayment` boolean — Payment source. * `true`: Payment is made with BILL (online) * `false`: Payment is made outside BILL and then recorded in BILL (offline) This field is set as `false` for the Record AP payment operation.
  - `disbursementType` 'CHECK' | 'ACH' | 'RPPS' | 'PAYPAL' | 'OFFLINE' | 'INTERNATIONAL_E_PAYMENT' | 'AMEX' | 'VIRTUAL_CARD' | 'WALLET' | 'CREDIT_CARD' | 'UNDEFINED' — Disbursement type. This field is set as `OFFLINE` for the Record AP payment operation.
  - `remittanceEmail` string — Remittance email address set for the vendor
  - `createdTime` string, date-time — Payment created date and time
  - `updatedTime` string, date-time — Payment updated date and time
  - `createdBy` string — BILL-generated ID of the user that created the payment. The value begins with `006`.
  - `disbursementStatus` 'SCHEDULE' | 'DONE' | 'FAILED' | 'VOID' | 'HOLD' | 'FXHOLD' | 'ESCHEATED' | 'UNDEFINED' — Payment disbursement status. This field is set as `DONE` for the Record AP payment operation.
  - `singleStatus` 'DISBURSEMENT_FAILED_ACTION_NEEDED' | 'DISBURSEMENT_FAILED_VENDOR_BANK_REJECTED' | 'FUNDING_FAILED_ACTION_NEEDED' | 'EXPIRING' | 'FUNDS_ESCHEATED' | 'CANCELED' | 'FUNDING_FAILED_VOIDED' | 'VOIDED' | 'CLEARED' | 'DELIVERED' | 'DISBURSEMENT_ON_HOLD' | 'VOID_PENDING' | 'SENT' | 'DISBURSEMENT_ON_HOLD_PAYER_IN_REVIEW' | 'PROCESSED' | 'FUNDING_STARTED' | 'FUNDING_ON_HOLD' | 'WAITING_ON_APPROVAL' | 'SCHEDULED' | 'READY_TO_FUND' | 'CANCELLATION_IN_PROGRESS' | 'UNDEFINED' | 'PARTIALLY_CLAIMED' | 'PAID_OFFLINE' — Unified payment status. This field provides BILL payment lifecycle updates based on the `status` and `disbursementStatus` values in the response. This field is set as `PAID_OFFLINE` for the Record AP payment operation.
  - `toPrintCheck` boolean — Set as `true` to set the payment check as printable in your accounting system. Use this field only for check payments.
  - `classifications` object — General ledger classifications information for the payment
    - `chartOfAccountId` string — BILL-generated ID of the chart of accounts. The value begins with `0ca`.
  - `syncReference` string — Payment reference ID in your accounting system. Set this field with payment information, such as check number.
  - `allowExport` boolean — Set as `true` to sync the bill payment with your accounting system

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