Add your team to Cleo Pay to collaborate on payments, approvals, and invoice management. Use roles to control what each person can see and do.
Invite a team member
Get available roles
Before inviting, retrieve the list of roles you can assign:curl https://api.cleo-pay.com/api/roles \
-H "Authorization: Bearer YOUR_TOKEN"
Each role has a roleId and a set of permissions. Note the roleId for the role you want to assign to the new member. Send the invitation
Invite a team member by email. They receive an email with a link to accept and join your business.curl -X POST https://api.cleo-pay.com/api/members \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "teammate@acme.com",
"roleId": "role_accounts_payable",
"firstName": "Alex",
"lastName": "Rivera"
}'
The response includes an invitationId. Use this ID to resend or cancel the invitation if needed. Confirm the member joined
Once the invitee accepts, they appear in your member list. Verify with:curl https://api.cleo-pay.com/api/members \
-H "Authorization: Bearer YOUR_TOKEN"
Manage pending invitations
Resend an invitation if the original email was missed:
curl -X POST https://api.cleo-pay.com/api/members/invitations/inv_abc123/resend \
-H "Authorization: Bearer YOUR_TOKEN"
Cancel an invitation before it’s accepted:
curl -X DELETE https://api.cleo-pay.com/api/members/invitations/inv_abc123 \
-H "Authorization: Bearer YOUR_TOKEN"
Update a member’s role
Change which role a member holds at any time:
curl -X PATCH https://api.cleo-pay.com/api/members/mem_abc123/role \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"roleId": "role_finance_director"
}'
The change takes effect immediately. The member’s permissions update on their next action.
Remove a member
To revoke a member’s access to your business:
curl -X DELETE https://api.cleo-pay.com/api/members/mem_abc123 \
-H "Authorization: Bearer YOUR_TOKEN"
Removing a member revokes their access immediately. Any approval workflows that assigned them as a specific approver (by member ID rather than role) may need to be updated.
Create a custom role
Built-in roles cover common permission sets. For more granular control, create a custom role with exactly the permissions your team needs.
curl -X POST https://api.cleo-pay.com/api/roles \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Accounts Payable Clerk",
"description": "Can create and view payables but cannot initiate payments",
"permissions": [
"payables:create",
"payables:read",
"connections:read"
]
}'
The response includes the new roleId. You can assign this role to members immediately.
Update a custom role to add or remove permissions:
curl -X PATCH https://api.cleo-pay.com/api/roles/role_custom123 \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"permissions": [
"payables:create",
"payables:read",
"payables:approve",
"connections:read"
]
}'
Delete a custom role — any members currently assigned the role must be reassigned first:
curl -X DELETE https://api.cleo-pay.com/api/roles/role_custom123 \
-H "Authorization: Bearer YOUR_TOKEN"
Notification preferences
Each member can configure which email and in-app notifications they receive. Retrieve the current member’s preferences:
curl https://api.cleo-pay.com/api/members/preferences \
-H "Authorization: Bearer YOUR_TOKEN"
Update notification preferences:
curl -X PUT https://api.cleo-pay.com/api/members/preferences \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"paymentReceived": true,
"approvalRequired": true,
"paymentFailed": true,
"weeklyDigest": false
}'
Members who are assigned as approvers in workflows should keep approvalRequired notifications enabled so they don’t miss pending approvals.
Subscription and billing
Your Cleo Pay subscription tier determines the features and limits available to your business. Check your current subscription status with:
curl https://api.cleo-pay.com/api/subscription \
-H "Authorization: Bearer YOUR_TOKEN"
The response includes your current tier, status, and billing interval.
To upgrade your plan, create a Stripe Checkout session and redirect your admin user to the returned URL to complete the upgrade:
curl -X POST https://api.cleo-pay.com/api/subscription/checkout \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"tier": "pro",
"interval": "monthly"
}'
To manage an existing subscription (update payment method, cancel, or view invoices), use the billing portal endpoint:
curl -X POST https://api.cleo-pay.com/api/subscription/portal \
-H "Authorization: Bearer YOUR_TOKEN"
The response includes a url to the Stripe Customer Portal where your billing settings are managed.