Cleo Pay gives you three ways to send a payment: standard payable payment, Quick Pay for ad-hoc amounts, and bulk initiation for paying multiple invoices at once.
You need a verified business and at least one verified bank account before you can initiate payments. See Business Setup and Bank Accounts.
Standard payment flow
Find the payable to pay
Payments are tied to payables — invoice records in Cleo Pay. List payables for your business to find the one you want to pay:curl "https://api.cleo-pay.com/api/businesses/biz_abc123/payables" \
-H "Authorization: Bearer YOUR_TOKEN"
Each payable in the response has a payableId. Copy the ID of the invoice you want to pay.To get the details of a specific payable:curl https://api.cleo-pay.com/api/businesses/biz_abc123/payables/pay_xyz789 \
-H "Authorization: Bearer YOUR_TOKEN"
Create a payable (if it doesn't exist)
If the invoice is not yet in Cleo Pay, create it first:curl -X POST https://api.cleo-pay.com/api/businesses/biz_abc123/payables \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"connectionId": "conn_vendor123",
"amount": 250000,
"dueDate": "2026-04-30",
"invoiceNumber": "INV-2026-042",
"description": "April consulting services"
}'
Amounts are in cents. 250000 represents $2,500.00.
Initiate the payment
Once you have a payableId, initiate the payment:curl -X POST https://api.cleo-pay.com/api/payments/initiate \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"payableId": "pay_xyz789",
"fundingSourceId": "fs_abc123"
}'
The response includes a paymentId and the payment status. ACH transfers typically settle within 1-3 business days.
Schedule a payment for a future date
To send a payment on a specific future date, include a scheduledDate in your initiation request:
curl -X POST https://api.cleo-pay.com/api/payments/initiate \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"payableId": "pay_xyz789",
"fundingSourceId": "fs_abc123",
"scheduledDate": "2026-04-15"
}'
The payment stays in a scheduled state until the specified date, then processes automatically.
To cancel a scheduled payment before it processes:
curl -X POST https://api.cleo-pay.com/api/businesses/biz_abc123/payables/pay_xyz789/cancel-scheduled-payment \
-H "Authorization: Bearer YOUR_TOKEN"
Quick Pay
Use Quick Pay to send an ad-hoc payment to a connected vendor without creating a formal payable first:
curl -X POST https://api.cleo-pay.com/api/payments/quick-pay \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"connectionId": "conn_vendor123",
"fundingSourceId": "fs_abc123",
"amount": 50000,
"memo": "Equipment deposit"
}'
Quick Pay is useful for one-off payments or situations where you don’t need invoice-level tracking. For recurring vendors, using payables gives you better audit history.
Bulk payment initiation
Pay multiple payables in a single API call using bulk initiation:
curl -X POST https://api.cleo-pay.com/api/payments/bulk-initiate \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"fundingSourceId": "fs_abc123",
"payableIds": [
"pay_xyz789",
"pay_abc456",
"pay_def012"
]
}'
The response includes a result for each payable — check each item’s status field to confirm whether the payment was initiated successfully or failed.
Each payment in a bulk initiation is processed independently. A failure on one payable does not affect the others.
Cancel a held payment
If a payment is in a held state (for example, pending approval), you can cancel it:
curl -X POST https://api.cleo-pay.com/api/payments/pmt_held123/cancel \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"reason": "Payment submitted in error"
}'
Payments in processing or completed state cannot be cancelled. Contact support if you need to reverse a completed ACH transfer.