Skip to main content
This guide walks you through the minimal steps to send a payment using the Cleo Pay API. By the end, you’ll have created an invoice and initiated an ACH transfer.
You need a verified Cleo Pay account and a Bearer token before starting. See Authentication for how to obtain your token.
1

Get your auth token

All API requests require a Bearer token. Include it in the Authorization header of every request.
Authorization: Bearer <your-token>
Replace <your-token> with your session token. See Authentication for details on obtaining and refreshing tokens.
2

Retrieve your business ID

Fetch the list of businesses associated with your account. Your businessId is required for most API calls.
curl https://api.cleo-pay.com/api/businesses \
  -H "Authorization: Bearer <your-token>"
The response returns an array of businesses. Copy the id of the business you want to act on:
[
  {
    "id": "biz_01abc123",
    "name": "Acme Corp",
    "status": "verified"
  }
]
Your business must have a verified status before you can initiate payments. Complete KYB verification in the Cleo Pay dashboard if your status is pending or unverified.
3

Connect a bank account

You need a linked bank account to fund outgoing payments. Connect one via Plaid or manual entry.Option A — Plaid (recommended)First, get a Plaid Link token:
curl https://api.cleo-pay.com/api/bank-accounts/plaid-link-token \
  -H "Authorization: Bearer <your-token>"
Then complete the Plaid Link flow in your UI and exchange the public token:
curl -X POST https://api.cleo-pay.com/api/bank-accounts/connect-plaid \
  -H "Authorization: Bearer <your-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "publicToken": "<plaid-public-token>",
    "accountId": "<plaid-account-id>"
  }'
Option B — Manual entry
curl -X POST https://api.cleo-pay.com/api/bank-accounts/connect-manually \
  -H "Authorization: Bearer <your-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "routingNumber": "021000021",
    "accountNumber": "123456789",
    "accountType": "checking",
    "name": "Business Checking"
  }'
Manual bank accounts require micro-deposit verification before use. Plaid-connected accounts are verified immediately.
Save the fundingSourceId from the response — you’ll use it when initiating payments.
4

Create a payable (invoice)

A payable represents an invoice you want to pay. Create one under your business, referencing the vendor connection you want to pay.
curl -X POST https://api.cleo-pay.com/api/businesses/<businessId>/payables \
  -H "Authorization: Bearer <your-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "connectionId": "<vendor-connection-id>",
    "invoiceNumber": "INV-001",
    "amount": 250000,
    "dueDate": "2026-05-01",
    "description": "Design services - April 2026"
  }'
Replace <businessId> with your business ID from step 2, and <vendor-connection-id> with the ID of the connection to the vendor you’re paying.
Amounts are in cents. For example, 250000 represents $2,500.00.
The response includes the new payable’s id. Save it for the next step:
{
  "id": "pay_01xyz789",
  "status": "pending",
  "amount": 250000,
  "invoiceNumber": "INV-001"
}
5

Initiate payment

With a verified business, a linked bank account, and a payable created, you can now initiate the ACH payment.
curl -X POST https://api.cleo-pay.com/api/payments/initiate \
  -H "Authorization: Bearer <your-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "payableId": "<payable-id>",
    "fundingSourceId": "<funding-source-id>"
  }'
A successful response confirms the payment is queued for processing:
{
  "paymentId": "pmt_01def456",
  "status": "pending",
  "amount": 250000,
  "estimatedArrival": "2026-04-05"
}
ACH transfers typically settle in 1–3 business days. You can track payment status by polling the payable endpoint or listening for webhook events.

Next steps

  • Bank accounts guide — Learn more about connecting and managing funding sources.
  • Approval workflows — Require approvals before payments leave your account.
  • Connections — Understand how payer-vendor relationships work before transacting.