Skip to content
NOSTREL
Pricing

You pay when
money moves.
Not otherwise.

No platform fee, no seat licence, no annual commitment and no minimum. Which means we have to keep earning it every month rather than once, and that is the correct arrangement for both of us.

There is no rate card on this page, and the next section says exactly why rather than making you wonder.

01The missing number

Two reasons, and the second one is permanent

You are entitled to be suspicious of a pricing page without prices, so here is the whole argument.

We are pre-launch and the numbers are not settled

Publishing a figure we would revise in two months is worse than publishing none, because the revision is the part people remember. When they are settled, they go here.

A single rate would be wrong for almost everybody

A business taking a thousand small till payments a day and a business making forty large payouts a month cost very different amounts to serve. One flat card-style rate means one of them is subsidising the other, and it is reliably the smaller one doing the subsidising.

So schedules are set per merchant, per rail. That is more work for us and it is the arrangement that does not quietly punish the business with the awkward shape.

02The shape

Four numbers per rail, and you will know all of them

What varies is the values. The structure is the same for everybody and it is this.

A percentage
Of the transaction, in basis points so there is no rounding argument. Set per rail, because a till payment and a bulk payout do not cost us the same to move.
A fixed component
Added to the percentage. This is what makes a very small payment viable to process at all, and leaving it out is how a platform quietly loses money on every hundred-shilling sale.
A floor
The minimum fee on a transaction. Mostly relevant to very small amounts, and stated up front rather than discovered.
A ceiling, optionally
A cap, so a large transaction does not attract a fee proportional to a figure that has nothing to do with the work of moving it. Not every schedule has one, and whether yours does is part of the conversation.
the whole formulabash
fee = max(floor, min(ceiling, amount * percent + fixed)) # Integers throughout, in cents. No floats in a money column,# and the arithmetic is the same on your side as on ours.

03Visible

Three places the fee appears, all of them before month end

A fee you discover on a statement is a fee you cannot plan around.

  1. 01

    On the transaction

    Gross, fee and net on the record itself, at the moment it happened.

  2. 02

    In the API response and the event

    The same three figures, so your own system can reconcile without asking us what the rate was.

  3. 03

    In the statement

    As its own ledger posting rather than as a net figure you have to decompose. This is the shape a bookkeeper expects, and it is why the statement reconciles with the transaction list rather than nearly reconciling with it.

04Not charged for

Eight things that are simply included

Several of these are line items elsewhere, which is the only reason they are worth listing.

Reading the documentation

No account, no sales call, no email gate. You are reading the API reference right now if you want to.

The sandbox

Against Safaricom's own, for as long as you like.

The dashboard

No seat licence. Add your whole finance team; charging per seat would be charging you to have the controls we insist on.

Failed payments

If the payer never pays, there is nothing to take a percentage of. This should not need stating and at some providers it does.

Payment links, invoices and QR codes

They are collection surfaces, not a tier. You pay on the money that moves through them.

Webhooks, retries and replays

Including the dead-letter queue and replaying by hand. Charging for event delivery would be charging for the product working.

Statements and exports

For any date range, as often as you like. Your records are yours.

Support while you integrate

Within reason, and from somebody who has read the code. We would rather spend an hour on your integration than lose a week of yours.

05Getting it out

Settlement, and the part nobody asks about until it matters

How money reaches you is as much a commercial term as what it costs to take, and it is agreed at the same time.

On a schedule you pick

Daily or weekly, to a bank account or to your own M-Pesa shortcode. Agreed when you onboard rather than imposed.

Your float is tracked as yours

Merchant balances are liabilities against a settlement account, not one pooled number apportioned later. Available and held are separate figures and both are visible.

Withdrawals ride the same rails

Taking your own money out is a payout to a destination you own, with the same approval, the same PIN and the same ledger. Not a separate code path with separate bugs.

Bank destinations are verified

And reached through that bank's own published shortcode rather than one found on an aggregator's list, which is a distinction that matters precisely once, catastrophically.

Tell us your volume and your mix

Roughly how much, roughly how often, and which direction it mostly goes. That is enough for a number, and the conversation is short because there is nothing to negotiate about features: everybody gets all of them.