Credits and billing
Actions are paid for in credits. Your plan grants a number of credits every month, and you can buy more at any time. A credit is a unit, not a sum of money: the price list says what each action costs, and the plans say how many credits you get.
The tables on this page are read from the billing API and refreshed every few minutes, so they say what the API charges today. Your software can read the same lists: GET /b/v1/plans/subscriptions and GET /b/v1/plans/credit-costs need no authentication.
Plans
| Plan | Per month | Credits per month |
|---|---|---|
| Free | ₦0 | 500 |
| Starter | ₦50,000 | 5,000 |
| Professional | ₦200,000 | 30,000 |
| Business | ₦500,000 | 100,000 |
Prices are per month. A year costs ten months and grants twelve months of credits.
What each action costs
| Action | Credits |
|---|---|
| Buyers and items | |
| Add a buyer | 10 |
| Check buyer on NRS | 10 |
| Edit a buyer | 10 |
| Add a saved item | 10 |
| Edit a saved item | 10 |
| Taxpayer lookup | 100 |
| Verify tax number | 100 |
| Reporting to the authority | |
| Issue debit note | 100 |
| Cancel invoice | 100 |
| Resubmit invoice | 50 |
| Submit invoice | 100 |
| Report payment status | 20 |
| Received invoices | |
| Sync received invoice | 10 |
| Load older received invoices | 50 |
| Invoices | |
| Create invoice | 50 |
| Download invoice PDF | 20 |
| Issue invoice | 50 |
| Query invoice status | 10 |
| Revise invoice | 50 |
| Validate invoice | 10 |
| Sharing and delivery | |
| Email invoice | 20 |
| Create share link | 20 |
| API and webhooks | |
| Outbound webhook delivery | 2 |
Reading, editing drafts, settings, team management, the automatic status checks and the automatic buyer checks are free.
How charging works
- An action is charged when it happens, against the balance of the organisation, whether a person or an API key did it. The billing history records which key.
- Reporting an invoice and verifying a tax number place a hold first. If the authority refuses the document before registering it, the hold is released and nothing is charged. Once the invoice is registered, the hold is captured.
- A retry of the same action on the same document is never charged twice.
- When the balance is too low, the action is refused with
402andBIZ001, and nothing is done. Background work that must not wait, such as emailing an invoice to a buyer who is off the network, still goes ahead and the shortfall is recorded.
Your balance
| Operation | Path |
|---|---|
| Balance and plan | GET /b/v1/billing-accounts/me |
| Will this action fit? | GET /b/v1/billing-accounts/{id}/check-balance?credits=100 |
| Every charge, hold and refund | GET /b/v1/transactions |
| Usage over time | GET /b/v1/transactions/analytics/usage |
| Monthly statement | GET /b/v1/statements/{period} |
Set a low-balance threshold in the Yona app; the app shows a banner when the balance drops below it, and billing.balance.low is available as a webhook event.
Buying credits
Top-ups are bought in the Yona app, which hands you to the payment provider’s checkout. POST /b/v1/payments/purchase does the same from a signed-in session; it is not available to API keys.
The sandbox
Sandbox actions are charged at the same prices against a separate sandbox balance, so sandbox usage is a true rehearsal of live costs. The sandbox balance refills itself monthly and can be topped up for free in the Yona app. GET /b/v1/sandbox/usage shows what you have used.