Skip to main content
Contacts in Cleo Pay represent the vendors, suppliers, and payees you send money to. Each contact stores identity information, bank account details for ACH delivery, and optional tax information for 1099 reporting. Before you can send a payment to a contact, the contact must be payment-ready.

Contact types

Cleo Pay supports two contact types: When creating contacts via the API, you will most commonly work with the payee type.

Create a contact

1

POST /v1/contacts — provide contact details

Submit a POST /v1/contacts request with at minimum a displayName. Provide as much additional detail as possible — particularly bankAccount and taxInfo — so the contact is payment-ready right away.The address object supports the following fields:The bankAccount object accepts accountNumber (write-only), routingNumber (write-only), and accountType (checking or savings).The taxInfo object accepts legalName, taxIdType (ein or ssn), and taxId (write-only).
Create a fully populated contact
By default, Cleo Pay blocks duplicate contacts — if a contact with the same name or email already exists, the request returns a 409 Conflict. To intentionally create a duplicate, include "allowDuplicates": true in your request body.
A successful response returns the full Contact object:
Contact created
2

Check paymentReady

After creation, verify that paymentReady: true in the response. A contact is payment-ready when it has both a bank account and tax information on file.If paymentReady is false, any payment to this contact will be created in held status and will not process until the missing information is added.
3

Update a contact with PATCH

Use PATCH /v1/contacts/{id} to update mutable fields. Only the fields you include in the request body are changed — all other fields remain unchanged.The following fields are updatable for all contact types:The following fields are updatable for payee contacts only:
Update a contact's net terms

Archive and unarchive contacts

Archiving removes a contact from default list queries without permanently deleting them. This is useful for vendors you no longer work with but want to retain for historical records. Archive a contact:
Archive a contact
Unarchive a contact:
Unarchive a contact
Both endpoints require no request body and return the updated Contact object with the new status value.
A contact with status: revoked has been suspended at the platform level. You cannot unarchive or send payments to a revoked contact. Reach out to Cleo Pay support for more information.

Filter the contacts list

When listing contacts with GET /v1/contacts, use query parameters to narrow your results. By default, the endpoint returns both active and archived contacts; revoked contacts are excluded unless explicitly requested.
List active payee contacts matching 'acme'
See the Pagination reference for details on page and pageSize parameters.