Pricing
Pricing is governed config, not a hardcoded rate card — the formula and every value are published machine-readably at GET /v1/pricing, each tagged by its config key.
Hannu has no hardcoded rate card. The pricing formula and every value that feeds it are governed config, published in a machine-readable form you can read at runtime. Nothing about a price is a constant baked into the platform — or into your integration.
Read the published pricing
GET /v1/pricing returns the current formula and its values. Each value is tagged with the config key it comes from, so a price is always reproducible and always attributable to a specific governed setting.
curl https://api.hannu.africa/v1/pricing \
-H "Authorization: Bearer $HANNU_KEY"Read the values from this endpoint rather than copying numbers into your code. When a value changes under governance, the endpoint reflects it — and any price you compute from it stays correct without a code change.
Take rates, fees, thresholds, and caps are governed config, tagged by key at GET /v1/pricing. Don't copy a number into your integration — read it, or recompute from the endpoint. A hardcoded fee is a number that will silently go stale.
Get a live quote for a specific task
To price the exact task you're about to create — rather than reason about the formula yourself — call estimate_task. It runs the same computation create_task uses and returns the amount escrow will lock, in integer minor units, for the task shape you send.
curl -X POST https://api.hannu.africa/v1/estimate_task \
-H "Authorization: Bearer $HANNU_KEY"estimate_task gives you the number for one task; GET /v1/pricing gives you the formula and values behind every number. Use the estimate to decide whether to spend, and the pricing endpoint when you need to recompute or display the breakdown.
Money is always integer minor units
Every amount in a quote or a price is an integer in the currency's minor unit — kobo for Naira, cents for dollars. A total_minor of 303750 is ₦3,037.50. There are no floats in the money path. See Escrow and the ledger.
Because pricing is config with risk-classed governance, a value can be corrected or tuned without shipping code — and every change is attributable to a config key and an approval. Reading GET /v1/pricing is how your integration stays aligned with whatever the current, governed values are.