Developers
Build on Cyrenes
Create invoices, share pay links and follow payments from your own systems. One versioned REST API over the same ledger your finance team already trusts.
- REST
- JSON over HTTPS
- JWT
- Bearer + refresh
- v1
- Versioned paths
1# Get the shareable pay link for invoice 20412curl https://erp.cyrenes.io/api/v1/invoices/2041/pay-link \3 -H "Authorization: Bearer $CYRENES_TOKEN"1{2 "url": "https://erp.cyrenes.io/pay/k7Hq2d"3}REST API
One API at /api/v1
The same endpoints power the Cyrenes web and mobile apps, so everything you can do in the product is built on what you integrate with.
JSON over HTTPS
Predictable, resource-oriented URLs under /api/v1. Requests and responses are JSON, with standard HTTP status codes.
JWT bearer auth
Exchange credentials for a short-lived access token and a refresh token. Send the token as a Bearer header on every call.
Versioned
The version lives in the path. New fields are added without breaking v1, so your integration keeps working as we ship.
Authenticate once, stay signed in
Sign in to receive a short-lived access token and a refresh token. Use the access token as a bearer credential, and swap the refresh token for a new one before it expires. Every request is scoped to the business the token belongs to.
- 1POST
/api/v1/auth/loginaccess + refresh token - 2GET
/api/v1/invoicesAuthorization: Bearer <token> - 3POST
/api/v1/auth/refreshnew access token
Reference
Browse every endpoint in OpenAPI
A full OpenAPI (Swagger) reference documents each endpoint, parameter and response shape. Generate a client in your language of choice, or try requests right from the reference.
- GET
/api/v1/invoices - POST
/api/v1/invoices - GET
/api/v1/invoices/{id}/pay-link - GET
/api/v1/payments/{id}/status
Resources
The objects your business runs on
Start with the core of getting paid and keeping the books, all from one token.
Invoices
Create, list and finalise invoices, download the PDF and start a collection.
Pay links
Fetch the public pay link for an invoice — the customer pays by MoMo or card.
Customers
Read and manage the customers you bill, in sync with your other systems.
Payments
Follow a collection from request to settled with its current status.
Expenses
Record expenses and pay them from the wallet or externally.
Approvals
List what is waiting for sign-off, then approve or reject it.
Payment status
Know the moment a payment lands
Mobile money and card payments settle asynchronously. Each collection moves from pending to paid or failed, the books update as it does, and your system can read the status from the API.
Read status from the API
Look up any payment by id to see whether it is pending, paid or failed before you act on it.
Make your side safe to retry
Record which payments you have already handled, so checking twice never fulfils an order twice.
Confirm before you fulfil
Release goods only once a payment reads as paid. The books are already updated when it does.
- INV-2041 · pending09:41:02
- INV-2041 · paid09:41:19
- INV-2044 · failed10:02:47
Illustrative status timeline. Need push notifications to your own endpoint? Talk to our team about your integration.
Get API access
Tell us what you're building. We'll set up credentials, share the OpenAPI reference and help you test against your business.
Ship your integration with a team behind it
Start free, then talk to us about API access for your business.
Start in minutes
Open an account, add your business and send your first pay link the same day.
One ledger
Every payment, invoice, purchase and expense posts to the books automatically.
Talk to a person
Our team in Kigali helps you set up rails, approvals and your chart of accounts.