Record AP payments

Use POST /v3/bills/record-payment to record bill payments made outside your BILL system. Apply the recorded payment amount to one or more bills for a vendor. See the /v3/bills/record-payment API for more information.

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

FieldDescription
vendorIdBILL-generated ID of the vendor. The value begins with 009.
processDatePayment processing date. The value is in the yyyy-MM-dd format. Funds are withdrawn from the sender's funding account on this date.
toPrintCheckSet as true to set the payment check as printable in your accounting system. Use this field only for check payments.
paymentsList of bill payments. In the payments array, set the required information.

- billId
- amount

See the /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": "2025-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": "2025-12-20",
    "amount": 100.00,
    "transactionNumber": "{transaction_number}",
    "confirmationNumber": "{confirmation_number}",
    "status": "PAID",
    "onlinePayment": false,
    "disbursementType": "OFFLINE",
    "createdTime": "2025-12-10T00:04:52.612+00:00",
    "updatedTime": "2025-12-10T00:04:52.854+00:00",
    "createdBy": "{user_id}",
    "disbursementStatus": "DONE",
    "singleStatus": "PAID_OFFLINE",
    "toPrintCheck": false,
    "allowExport": true
}

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