Savings
Savings (branded "Auto-Savings" in the dashboard) turns part of your incoming Mobile Money payments into a savings pot. You pick a savings period that defines a lock duration, an interest rate, and an early-exit fee, switch auto-savings on, and a configured percentage of every successful collection is set aside automatically into a maturing, interest-bearing deposit. You can also transfer money in by hand, withdraw at any time, and preview the net proceeds of a withdrawal before you commit.
Savings is managed in the dashboard today. It is not part of the public developer API (/v1, X-API-Key), which only exposes core Payments (create, list, status). There is no savings endpoint, field, or webhook available to API-key holders. The only indirect touchpoint is that a public collection via POST /v1/payments can trigger an auto-savings deposit server-side. Exposing Savings on the public API is planned. The underlying collection is the same primitive documented in Payments & Collections.
How it works
Savings is built from three things.
- Account. Your business has one savings account (
BusinessSavings). It tracks your total saved balance, what is available to withdraw, and accumulated interest. - Period. A savings period defines the terms of every deposit made while it is active: a lock duration in months, an interest rate paid at maturity, and an early-withdrawal fee rate.
- Record. Each deposit is a dated
BusinessSavingsRecord. A record is stamped at creation with the interest rate, fee rate, and a maturity date computed from the period in effect at the time. Records mature and earn interest independently.
Money originates as a normal collection into your business's available balance. Saving (whether automatic or manual) debits that balance and credits the savings account, creating a new record. Money only leaves savings when you withdraw, which credits the proceeds back to your business balance.
Savings periods
A period is the term sheet for the deposits you make under it. Each period defines three values.
| Field | Meaning |
|---|---|
| Duration | The lock length in months. A deposit's maturity date is the deposit date plus this many months. |
| Interest rate | The percentage paid once, at maturity, on the record's balance. |
| Early-exit fee rate | The percentage charged if you withdraw a record before it has matured. |
You select a period when you turn savings on. A record locks in the terms of whichever period was active when it was created, so changing your account's current period later does not alter existing records.
Turning auto-savings on and off
You turn savings on by choosing a period and an auto-savings percentage. This creates your BusinessSavings account, sets its current period, and flips your business settings to isAutoSavingsOn = true with the percentage you chose.
Turning savings off only sets isAutoSavingsOn = false. Your saved funds and existing records stay exactly where they are and keep maturing and earning interest. Auto-deposits simply stop. The money remains until you withdraw it.
Turning off auto-savings is not a withdrawal. To get money back into your spendable business balance, withdraw it explicitly.
Auto-save on collections
When auto-savings is on, every collection that settles to SUCCESS triggers a deposit. The amount set aside is a straight percentage of the collected amount:
Code
There is a guard: if savingsAmount falls below the platform's minimum savings threshold (minSavingsAmount), the deposit is skipped for that collection. Small collections do not generate dust deposits.
When a deposit does run, two things happen:
- Your business balance is debited by
savingsAmount(reasonINTERNAL_TRANSFER_TO_SAVINGS). - A
DEPOSITtransaction of typeAUTO_SAVINGSis recorded and a new savings record is created, stamped with the current period's interest rate, fee rate, and a maturity date.
Auto-save is best-effort. If the deposit step fails after a collection succeeds, the failure is logged and swallowed, not retried. The collection itself is unaffected and your funds remain in your business balance.
Manual transfers into savings
You can push money into savings at any time, independent of collections. A manual transfer debits your business balance (reason MANUAL_SAVINGS_TRANSFER) and creates a deposit record of type MANUAL, using the same period terms as an auto-deposit.
This is useful for topping up your savings pot directly rather than waiting for the auto-save percentage to accumulate it.
Maturity and interest accrual
Interest is virtual until a record matures. A scheduled maturity job runs in the background, finds records whose maturity date has passed, and processes them.
For each matured record, interest is accrued once:
Code
The accrued interest is rolled into your account's accumulated and available balances. There is no compounding: interest is a one-time accrual at maturity, computed on the record's remaining balance using the rate stamped on that record.
Balances explained
Your savings account exposes several balances that mean different things.
| Balance | Meaning |
|---|---|
balance / totalBalance | The total principal saved across all records. |
availableBalance | What you can withdraw, including matured interest already rolled in. |
| Accumulated interest | Interest earned from records that have reached maturity. |
The distinction matters at withdrawal time: matured records have earned their interest, while records still inside their lock period have not, and withdrawing them early costs a fee and forfeits their pending interest.
Withdrawals
Withdrawals consume records oldest-first (FIFO). Starting from your earliest deposit, records are drawn down until the requested amount is covered. How each record pays out depends on whether it has matured.
- Matured record. Pays out its principal plus the interest it earned at maturity.
- Un-matured record. Pays out its principal minus the early-exit fee, and forfeits the interest it would have earned. The fee uses the fee rate stamped on that record.
The net of the whole withdrawal (principal, minus early-exit fees, plus matured interest) is credited back to your business balance with reason SAVINGS_WITHDRAWAL, and your account aggregates are recalculated.
Withdrawing an un-matured record is an early exit. You pay the record's early-exit fee and you forfeit the interest that record would have earned at maturity. Where possible, withdraw only what your matured records cover to avoid fees.
Previewing a withdrawal
Before committing, you can preview exactly what a withdrawal will cost. The dashboard's withdrawal preview walks your records FIFO for a given amount and returns:
- Fees charged on any un-matured records consumed.
- Interest forfeited by exiting those records early.
- Net amount that would actually land back in your business balance.
This lets you see the true proceeds, and the penalty, of pulling out a given amount before you confirm.
Money movement and history
All savings money stays on-platform. Saving moves funds from your business balance into the savings account; withdrawing moves them back. Savings never sends money off-platform on its own. Paying out to a Mobile Money line is a separate balance-withdrawal product.
Every action is recorded as a savings transaction, so deposits (auto and manual) and withdrawals show up in your savings history in the dashboard. Currency follows the platform default, XAF.
Where this lives
Savings is a dashboard product. Configure auto-savings, transfer in, preview, and withdraw at new.app.kwiknkap.com.
To collect Mobile Money payments programmatically today, use the public Payments API documented in Payments & Collections. A successful collection there, with auto-savings on, is exactly what triggers an automatic deposit.

