Changelog
What shipped, what changed, and what to do about it. Newest first.
Every notable change to api.acute.network/v1 lands here, newest first. We
version conservatively: the response envelope is a
stable contract, and we add fields rather than break them. When something genuinely
breaks, it gets a loud entry and a migration note, not a silent surprise.
How we version
The API surface is v1. Additive changes (new fields, new endpoints, new
webhook event types) ship without a version bump. Write your clients to ignore
unknown fields and unknown types. Breaking changes would arrive under a new
major path, never in place.
The first public release of the Acute Infra API. Wallets, the double-entry ledger, every money rail, and the webhooks to watch them, behind one typed contract. Renting a bank has never been this boring to integrate, which is exactly the point.
Wallets & ledger
settlementandend_userwallets, withnone/tier1KYC andactive/frozen/closedstatus.- A balance that is the ledger: no separate "available", no opaque holds.
One number, always reconcilable. Money is kobo (
bigint), never a float. - Create, read, KYC, and read-balance operations under the
walletscope.
Money movement
- Collect via bank transfer (dynamic virtual NUBAN) or in-app virtual wallet.
- Transfer wallet→wallet (
transferscope), withdraw wallet→bank (non-lossy, async resolver), refund to bank or wallet, and batch payout (payoutscope,202 Accepted). - Transparent fees on every move:
{ baseAmount, fee, payableAmount }.
Conventions
- One typed envelope for success, paginated, and error responses: the exact TypeScript types are published in the docs to copy into your project.
- Cursor (keyset) pagination on every list:
hasMore+nextCursor, no total. - A
req_<24 hex>correlation id on every response, in bothmeta.requestIdand theX-Request-Idheader. - Idempotency required on the six money POSTs; replays return the original
datawith a freshrequestId; key reuse →409. - Rate limit of 600 requests/min per key, with
Retry-Afteron the429.
Webhooks
- One signed endpoint per environment. HMAC-SHA256 over
`${timestamp}.${body}`, delivered withX-Acute-Signature+X-Acute-Timestamp. - The delivered event catalog:
payment.settled·payment.expired·payment.refunded·transfer.completed·withdrawal.completed·withdrawal.failed·payout.completed·payout.partially_completed·refund.completed·refund.failed. - At-least-once delivery, 6-attempt exponential backoff (capped at 1h), dead-letter, and manual redelivery.
Environments
- Separate
test(sandbox) andlivekeys (acuinf_test_…/acuinf_live_…), separate wallets, separate webhook endpoints. Go live after KYB approval.
Nothing earlier. v1.0 is the beginning. Welcome aboard.