Record AP payments

Use POST /v3/bills/record-payment to record an offline AP payment made to a vendor. See the POST /v3/bills/record-payment API for more information.

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.

To record an AP payment, set the required fields in your request.

Field

Description

vendorId

BILL-generated ID of the vendor. The value begins with 009.

processDate

Payment processing date. The value is in the yyyy-MM-dd format. Funds are withdrawn from the sender's funding account on this date.

toPrintCheck

Set as true to set the payment check as printable in your accounting system. Use this field only for check payments.

payments

List of bill payments. In the payments array, set the required information.

  • billId
  • amount

See the POST /v3/bills/record-payment API for more information about the other fields you can set.

Sample request

In this cURL example, an AP payment of $100 is recorded. The payments array lists two bills ($70 and $30).

curl --request POST \
--url 'https://gateway.stage.bill.com/connect/v3/bills/record-payment' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'devKey: {developer_key}' \
--header 'sessionId: {session_id}' \
--data '{
  "vendorId": "{vendor_id}",
  "processDate": "2026-12-20",
  "toPrintCheck": false,
  "payments": [
    {
      "billId": "{bill_id01}",
      "amount": 70
    },
    {
      "billId": "{bill_id02}",
      "amount": 30
    }
  ]
}'

Response

In the response, a BILL-generated payment id is available. The value begins with stp. In addition, disbursementType is set as OFFLINE.

{
    "id": "{payment_id}",
    "vendorId": "{vendor_id}",
    "billPayments": [
        {
            "id": "{bill_payment_id01}",
            "billId": "{bill_id02}",
            "amount": 70.00
        },
        {
            "id": "{bill_payment_id01}",
            "billId": "{bill_id02}",
            "amount": 30.00
        }
    ],
    "processDate": "2026-12-20",
    "amount": 100.00,
    "transactionNumber": "{transaction_number}",
    "confirmationNumber": "{confirmation_number}",
    "status": "PAID",
    "onlinePayment": false,
    "disbursementType": "OFFLINE",
    "createdTime": "2026-12-10T00:04:52.612+00:00",
    "updatedTime": "2026-12-10T00:04:52.854+00:00",
    "createdBy": "{user_id}",
    "disbursementStatus": "DONE",
    "singleStatus": "PAID_OFFLINE",
    "toPrintCheck": false,
    "allowExport": true
}

See the POST /v3/bills/record-payment API for more information.