Changelog
The API is versioned by date. Your integration is pinned to the version current when your account was created, so nothing changes underneath you.
Versioning policy
These are not breaking, and can ship at any time:
- Adding a new field to a response.
- Adding a new optional request parameter.
- Adding a new event type, endpoint, or error
code. - Changing the wording of a
message.
Write your integration to tolerate all of the above: ignore unknown fields, and never branch on message text.
These are breaking, and only ever arrive under a new dated version:
- Removing or renaming a field.
- Changing the type or meaning of an existing field.
- Adding a required parameter.
- Removing an endpoint, event type, or error code.
2026-09-06 — current
First public release.
POST /v1/payments— create a payment and mint a Fonepay dynamic QR.GET /v1/payments,GET /v1/payments/{id},GET /v1/payments/{id}/qr.POST /v1/payments/{id}/cancel.GET /v1/events,GET /v1/events/{id}.GET /v1/balance— prepaid Qora credit, not sales revenue.- Signed webhooks:
payment.created,payment.succeeded,payment.expired,payment.canceled. Idempotency-Keyon all POST endpoints.- Cursor pagination via
starting_after.
Deprecation policy
When a version is superseded we will email every account using it and keep it working for at least twelve months. Nothing is removed without notice.