Contact types
Cleo Pay has two contact types that determine how the contact record is managed:When creating a contact via the API, you will typically create
payee contacts. The business type is established through the Cleo Pay platform when two businesses connect with each other.Contact status
Payment direction
ThepaymentDirection field controls which direction funds can flow between your business and this contact.
paymentReady
ThepaymentReady boolean is a convenience flag that tells you at a glance whether a contact can currently receive a payment. It is true only when all required conditions are met — the contact is active, has a valid bank account on file, and payment direction allows outbound transfers.
Always check paymentReady: true before initiating a payment to a contact. If it is false, the payment will enter held status and wait until the contact’s details are complete.
Bank account details
When a contact has a bank account on file, thebankAccount object exposes the last 4 digits for identification purposes. Full account numbers are never returned in any API response.
bankAccount is null.
Tax information
ThetaxInfo object stores the contact’s tax identity for 1099 and compliance purposes.
Emails
Theemails field is an array of email addresses associated with the contact. This field is populated for payee contacts; for business-type contacts the array is always empty, as their contact details are managed on their own account. Emails are used for notifications and remittance communications.
Phone
Thephone field is a string containing the contact’s phone number. For business-type contacts this field is always null, as their details are self-managed.
Net terms
ThenetTerms field is an integer representing the number of days after invoice issuance that payment is due. For example, netTerms: 30 corresponds to Net 30 payment terms. This value is informational and used when generating payables for this contact.
Duplicate guard
When creating a contact, Cleo Pay checks for existing contacts with the same name or details. If a potential duplicate is detected, the request will fail with an error. To proceed with creating the contact anyway, include"allowDuplicates": true in your request body.
Example contact object
Next steps
- Bank Accounts — understand how your own bank accounts are linked and verified.
- Payments — send an ACH payment to a contact.
- Payables — create an invoice associated with a contact.