Skip to main content
POST /api/businesses/{businessId}/payables Creates a new payable and optionally submits it to the payer. A payable requires an active connection between the sender and the recipient.

Path parameters

businessId
string
required
The ID of the business sending the invoice.

Request body

connectionId
string
required
The ID of the connection representing the payer-payee relationship. Both businesses must be connected on Cleo Pay before creating a payable.
amount
number
required
Total invoice amount in dollars. Must be a positive number. This should equal the sum of all line item totals if lineItems are provided.
dueDate
string
Payment due date in ISO 8601 format (e.g., 2026-05-01).
invoiceNumber
string
Your internal invoice reference number. Must be unique within the connection.
memo
string
Optional note to include with the invoice. Visible to the payer.
lineItems
array
Individual line items that make up the invoice total.
attachments
array
File references to attach to the invoice (e.g., a PDF copy of the invoice). Each element should be a file reference string returned from the file upload endpoint.

Response

id
string
Unique payable ID. Use this for all subsequent operations on this payable.
status
string
Initial status of the payable. Typically DRAFT or SUBMITTED depending on whether it was sent immediately.
createdAt
string
ISO 8601 timestamp of when the payable was created.

Example

curl --request POST \
  --url https://api.cleo-pay.com/api/businesses/biz_abc123/payables \
  --header "Authorization: Bearer <token>" \
  --header "Content-Type: application/json" \
  --data '{
    "connectionId": "conn_def456",
    "amount": 2500.00,
    "dueDate": "2026-05-15",
    "invoiceNumber": "INV-2026-0042",
    "memo": "Q1 consulting services",
    "lineItems": [
      {
        "description": "Strategy consulting",
        "quantity": 10,
        "unitPrice": 200.00
      },
      {
        "description": "Implementation support",
        "quantity": 5,
        "unitPrice": 100.00
      }
    ]
  }'
To submit the payable immediately after creation (changing its status from DRAFT to SUBMITTED), include "submit": true in the request body.