Skip to content

Regini Partner API

Base URL: https://api.regini.finance/partner/v1

Note: This documentation is subject to change. Endpoints, request/response fields, and behaviours may be updated as the platform evolves. We will communicate breaking changes to partners in advance.


What Regini is

Regini is a stablecoin savings platform. We give people in Kenya a way to move KES into USDC (a dollar-pegged digital asset) via M-Pesa, hold it in a segregated on-chain account, and withdraw back to M-Pesa at any time. Users benefit from USD stability and, in Phase 2, dollar-denominated yield.

The Partner API is how you embed this into your own product. Your users interact with your frontend. Your backend calls Regini. We handle everything below the surface.


Who does what

Your responsibility Regini's responsibility
User identity and KYC verification Opening and custodying the USDC account
Your frontend and UX KES ↔ USDC conversion at the live FX rate
Calling the Partner API from your backend M-Pesa STK push (deposits) and M-Pesa payout (withdrawals)
Storing the account_id we return Sending signed webhooks to notify your system
Reconciliation against your own records Maintaining the immutable transaction ledger

Fund segregation

Each partner has a dedicated, segregated treasury: a separate on-chain wallet that holds only your users' funds. There is no commingling with Regini's own pool or with any other partner's funds.

You can query your treasury balance, AUM, and float surplus at any time via GET /summary. These are informational, Regini monitors and manages float cover operationally.


How the integration works

Your backend is the only system that ever talks to Regini. Your users never call our API directly, and they never need to know Regini is involved.

Your user   →   Your backend   →   Regini API   →   M-Pesa / On-chain

A typical deposit flow:

1. POST /accounts                     → provision a Regini account for your user
2. GET  /accounts/{id}/deposit-quote  → show the user the rate and fee
3. POST /accounts/{id}/deposits       → trigger the M-Pesa STK push to their phone
4. Receive deposit.completed webhook  → funds are credited, update your own records

Phase 1 / Phase 2

Phase What's live
Phase 1 (now) Account creation, KES deposits via M-Pesa, KES withdrawals via M-Pesa, webhooks
Phase 2 (upcoming) Dollar-denominated yield on held balances

Yield is not active in Phase 1. Accounts provisioned today will automatically participate in Phase 2 once it goes live for your program, with no re-integration required.


Fees

Fee Rate Applies to
FX spread 0.75% (75 bps) on the mid-market rate Every deposit and withdrawal
Performance fee 15% of yield generated Phase 2 only, applied to gross yield before crediting user accounts

The FX spread is built into the quoted rate, users see the all-in rate in every quote response, not a separate line item. Your program can add an optional additional spread on top (see Rate Quotes & Spread).


Sections

Section Description
Partner Onboarding Steps from first contact to going live
Partner Portal Web portal, monitoring, configuration, and admin
Platform Overview Architecture, tech stack, and system design for technical evaluation
Security & Compliance Security posture, data handling, and audit trail
Authentication API key setup and scopes
Accounts Provisioning and retrieving accounts
Deposits KES → USDC via M-Pesa
Withdrawals USDC → KES via M-Pesa
Balance & Transactions Per-account balances and bulk transaction history
Rates, Summary & Programs FX rates, financial summary, and program listing
Webhooks Event notifications and signature verification
Rate Quotes & Spread How FX rates and spreads work
Sandbox Testing without real money or M-Pesa flows
Error Reference All error codes
API Reference Interactive OpenAPI explorer