Skip to main content

What this fee is

When a shopper pays through an external payment provider, meaning a provider registered by an installed payment app, that provider settles the money straight to the merchant. Salesive never holds the funds, so it cannot keep its cut at the moment of sale. Instead it records what the store owes and bills it monthly. The fee applies only to an order that carries an external provider marker:
Paystack sales and wallet sales do not accrue this fee. An order paid through Salesive’s own gateways, or from a store wallet, has no external provider marker and writes no row.
This is not the 5% app charge fee described in Payments. That fee is taken when an app charges a merchant. This fee is taken by Salesive on sales a payment app captured through its own provider.

Amounts

Every amount on this page is in the major unit of its currency: NGN naira, USD dollars, never kobo or cents. The ledger, the invoice and the order all use the same unit, so the numbers compare directly. This is the same rule as the rest of the Apps API; see Money and units for the canonical statement and a worked example. The fee is computed on order GMV:
Never below zero. Tax is excluded because it is collected for a tax authority and is not merchant revenue. The rate is a fraction of GMV and comes from the store’s plan: The rate in force is written onto each accrual row and never moves afterwards. A later plan change or a rate change applies only to new accruals, and a refund on an old order uses that order’s own rate.

How an accrual is written

A recurring job looks for orders updated in the last 48 hours that are paid, completed or refunded and carry payment.externalProvider.providerId. It asks the API to accrue each one. By default the job runs once a day at 01:10 UTC, so a captured order is picked up on the next run and a missed run catches up on the 48 hour window. The write is idempotent: one order and one provider produce at most one open row. A second run inside the window returns the row already there, unchanged.

Refunds

  • An accrual that has not been invoiced is reduced in place. A full refund sets its amount to zero and its status to void.
  • An accrual that is already on an invoice is never edited. A negative void row carries the difference, and the next invoice nets it out. A credit larger than the next month’s subtotal stays unapplied and rolls forward instead of producing a negative bill.
  • Repeated refund calls with the same amount write nothing further.

The monthly invoice

One invoice covers one store, one currency and one UTC calendar month. It is issued on the first of the following month (02:10 UTC by default) from every accrued row and every unapplied credit for the period.

Dunning

A daily job (09:10 UTC by default) marks an open or partially_paid invoice whose dueAt has passed as overdue. It then reminds the store owner in the dashboard and by email. A reminder goes out at most once every seven days and never more than three times per invoice. Paying the balance stops it.

Authentication

These routes are for the store owner’s merchant session, never an app_ token:
All four require the owner. Staff members and installed apps are refused with 403, because the response carries the store’s wallet balance and the right to spend it.

Summary

Returns what the store owes in each currency, the invoice counts and the next due date. A store can owe in more than one currency, so currencies is a list rather than one total.

List invoices

Newest period first.

Get one invoice

Returns the invoice plus the accrual rows that make it up.
A void row has a negative amount and an adjusts id pointing at the accrual it corrects.

Pay an invoice

No body. The store’s wallet is used first, for as much as it covers, then a saved card for the remainder if one exists.
  • The wallet is chosen by the invoice currency first, then the store’s default wallet, then its first active wallet. A wallet in another currency is converted at the current exchange rate.
  • The card is the one the store already saved for its own Salesive subscription. If there is no saved card, the card step is skipped quietly. It is not an error.
  • Every attempt is recorded in payments with rail (wallet or card), amount, currency, reference, status (succeeded or failed), error and at.
  • An invoice that is already paid returns paid values of zero rather than charging again.
A positive remaining means the invoice is still open. Report it as settled only when it is 0. No card is required to use an external provider. A merchant can install a payment app and accept provider sales with no saved card at all. The fee still accrues, and the invoice can be settled from the wallet, or from a card once the store saves one. The card step only makes collection automatic.

Errors

Next steps

Wallet sources

Show a payment app’s own balance next to the store wallet.

Payments

The separate fee an app pays when it charges a merchant.