How to pay out naira to a Nigerian bank account with an API
What it costs to send naira to a Nigerian bank account through an API, with Daya, Paystack, Flutterwave and Fincra's published fees checked on 2 November 2026.

Paying naira into a Nigerian bank account through an API costs 1% of the amount, capped at ₦100, on the Daya API, with a flat ₦20 under ₦1,000. Paystack, Flutterwave and Fincra all charge flat tiers instead, at ₦10, ₦25 or ₦50 by size. Two of them add a charge on top of that.
That difference in shape is the thing to understand before you pick one. A percentage with a cap and a flat tier behave in opposite ways as your payouts get bigger, and the add-ons are where two of the four stop matching their own headline figure. The Daya API charges 1% capped at ₦100 to pay naira into a bank account, against ₦50 plus ₦50 stamp duty above ₦50,000 at Paystack.
What does it cost to pay out naira through an API?
Between ₦10 and ₦100 per payout at the four providers that publish a figure. Fincra and Flutterwave both charge ₦10 up to ₦5,000, ₦25 to ₦50,000 and ₦50 above that. Paystack charges the same three tiers. The Daya API charges 1% capped at ₦100, or a flat ₦20 below ₦1,000. All four were read on their own pages on 2 November 2026.
| Provider | What it charges to pay out naira | What it adds on top | Where the schedule is published |
|---|---|---|---|
| Fincra | ₦10 up to ₦5,000, ₦25 to ₦50,000, ₦50 above | Nothing stated | Product pricing page, undated |
| Flutterwave | ₦10 up to ₦5,000, ₦25 to ₦50,000, ₦50 above | 7.5% VAT on the fee | Nigeria pricing page, undated |
| Paystack | ₦10 up to ₦5,000, ₦25 to ₦50,000, ₦50 above | ₦50 stamp duty from ₦10,000 | Support help centre, undated |
| Daya API | 1% capped at ₦100, or ₦20 flat below ₦1,000 | Nothing stated | Developer docs, and readable by code |
One practical difference doesn't show up as a number. Three of the four publish their naira payout fee as words on a marketing or help page, so you read it once and hard-code it. Daya publishes the same schedule at GET /v1/fees, which returns the percentage, the cap, the low-value flat fee, the threshold it applies below and the minimum transfer amount as fields your code can read. The docs tell you to call it before showing a customer an estimate rather than trusting a figure you copied.
Why isn't the headline fee what you actually pay?
Because two of the four add something to it, and both say so on the same page as the fee. Paystack's transfers pricing adds ₦50 of stamp duty to any transfer of ₦10,000 or more, on top of the tier fee. Flutterwave's Nigeria pricing says transaction fees carry 7.5% VAT. Fincra's pricing page states no add-on for a naira payout, and neither do Daya's docs.
Stamp duty is a government charge on a naira bank transfer, not a provider's margin, and it is the line most likely to surprise you because of where it bites. On a ₦10,000 payout Paystack's tier fee is ₦25 and the stamp duty is ₦50, so the charge you didn't read is twice the one you did. VAT works the other way: 7.5% of ₦25 is under ₦2, so it changes a reconciliation total rather than a decision.
What it means for you: budget from the all-in figure, and store the fee your provider reports back on each payout rather than the one you read on a page. Two of these four will not match the page, and a ledger built on the headline number drifts a little further out every day.
Which costs less, a percentage with a cap or a flat tier?
A flat tier, at every payout size a Nigerian platform normally sends. The Daya API's 1% reaches its ₦100 cap at ₦10,000, so from ₦10,000 upward every payout costs ₦100 however large it is. The three flat-tier providers top out at ₦50 plus whatever they add. Worked at three sizes from each provider's published fees:
| Provider | On a ₦5,000 payout | On a ₦50,000 payout | On a ₦500,000 payout |
|---|---|---|---|
| Fincra | ₦10 | ₦25 | ₦50 |
| Flutterwave | ₦10.75 with VAT | ₦26.88 with VAT | ₦53.75 with VAT |
| Paystack | ₦10, no stamp duty below ₦10,000 | ₦75 with stamp duty | ₦100 with stamp duty |
| Daya API | ₦50 | ₦100 | ₦100 |
Scale that up, because per-payout differences of tens of naira stop being rounding at volume. Ten thousand payouts of ₦50,000 each move ₦500m and cost ₦250,000 at Fincra, about ₦269,000 at Flutterwave, ₦750,000 at Paystack and ₦1m on the Daya API. If naira-to-naira payouts are the whole of what you're building, that gap is the decision and the cheapest flat tier wins it.
The cap does buy you one thing worth knowing: predictability at the top end. A ₦10,000 payout and a ₦10m payout both cost ₦100 on the Daya API, so a product that sends occasional large amounts can price a payout without a tier lookup. Work out which of those two shapes matches the payouts you actually send, and check it against your own last month of volume rather than a worked example.
Where does the Daya API fit?
Where the naira payout is the last leg of something else rather than the whole job. The Daya API is an on-ramp and off-ramp: money can arrive as naira into a virtual account, as US dollars, or on-chain as USDC or USDT, and leave as naira in a Nigerian bank account, through one integration and one fee schedule. Paystack's, Flutterwave's and Fincra's published payout pricing covers naira you already hold with them.
So the honest split is by where your money starts:
- Naira in, naira out. You collect naira in Nigeria and pay naira out in Nigeria. A flat-tier Nigerian payment provider is cheaper per payout and that is the thing to optimise for.
- Stablecoin or dollars in, naira out. A wallet, a remittance product or a marketplace holding USDC or USDT and needing naira in somebody's account. The payout fee is one line in a longer chain, and the conversion is where the real cost sits.
- Both, through one vendor. You want the collection, the conversion and the payout priced from a single schedule you can read by code, and you are willing to pay more per naira payout for it.
The Daya API is honestly the answer to the second and third of those, and it is not the answer to the first. If you are in the first group, the numbers in the table above are the whole story and you should follow them. Price the conversion leg before you decide, because on a stablecoin off-ramp the rate you get moves far more money than any of the payout fees on this page.
What do you actually have to build to send a naira payout?
Four things, on Daya's own transfers documentation: a recipient, an amount, a retry key, and somewhere to receive the result. The amount is in naira, and you either save a recipient first and send its id or pass the bank details inline and let the recipient be created for you.
- Decide which balance pays. Leaving the debit currency unset spends the US dollar withdrawal balance; setting it to naira spends the naira balance. This is the single easiest thing to get wrong on a first integration, because the payout still succeeds and the money comes out of the wrong pocket.
- Check the recipient will clear the floor. A naira recipient has to receive at least ₦100, and anything under that is rejected rather than trimmed.
- Send an idempotency key with every payout. The create-transfer call is idempotent when you pass an Idempotency-Key header, so a request you retry after a timeout cannot send the money twice. Generate it per payout and store it next to the payout in your own database.
- Read the fee from the response, not from this article. The fee is included in the debit and does not reduce what the recipient gets, so the amount leaving your balance is the payout plus the fee. Call the fees endpoint before you quote a customer anything.
What happens when a naira payout fails?
A Daya transfer sits in one of three states: processing, settled or failed, and the last two are final. You find out which by listening for the transfer webhooks rather than polling, and the lifecycle events are created, processing, requires review, submitted, completed, failed and reversed. Build for all of them, including the reversal, because a payout that comes back days later is the one that breaks a ledger.
What it means for you: don't credit or debit your own user from a webhook alone. Daya's own guidance is that the partner owns its end-user ledger and should reconcile against Daya's record of the transfer rather than treating a webhook as the truth. In practice that means a webhook marks a payout as worth checking, and a read of the transfer itself decides what you write down.
If you're still choosing a provider rather than building against one, the naira on-ramp and off-ramp APIs compared covers the wider set on capability rather than on payout price, and how to accept naira and settle in USDC or USDT is the other half of the same integration.
Frequently asked questions
- What is the cheapest API for paying out naira to a Nigerian bank account?
Fincra, on its published figures: ₦10 up to ₦5,000, ₦25 to ₦50,000 and ₦50 above, with no add-on stated. Flutterwave charges the same tiers plus 7.5% VAT, and Paystack the same tiers plus ₦50 stamp duty from ₦10,000. The Daya API charges 1% capped at ₦100, which is dearer per payout and covers a stablecoin or dollar leg as well.
- What does the Daya API charge to pay naira into a Nigerian bank account?
1% of the recipient amount, capped at ₦100, for any payout of ₦1,000 or more, and a flat ₦20 below ₦1,000. The recipient has to receive at least ₦100. The fee is included in the debit and does not reduce what the recipient gets, and the same schedule is returned by the fees endpoint so your code can read it.
- Is stamp duty charged on a naira payout?
Paystack states ₦50 of stamp duty on transfers of ₦10,000 and above, charged on top of its tier fee. It is a government charge on a naira bank transfer rather than a provider's margin. Flutterwave's pricing page states 7.5% VAT on its fees instead, and Fincra's pricing page and Daya's docs state no add-on for a naira payout.
- At what amount does the Daya API's naira payout fee stop increasing?
₦10,000. The fee is 1% capped at ₦100, so 1% reaches the cap at ₦10,000 and every payout above that costs ₦100 whatever its size. A ₦10m payout and a ₦10,000 payout cost the same, which makes the price predictable at the top end and expensive in the middle.
- How do you stop a retried API call sending the same payout twice?
Send an idempotency key. Daya's create-transfer call is idempotent when you pass an Idempotency-Key header, so retrying the same request after a timeout returns the original payout rather than creating a second one. Generate one key per payout, store it alongside the payout in your own records, and reuse it on every retry of that payout.
- Can you trust a payout webhook to credit your own user?
No. Daya's own guidance is that the partner owns its end-user ledger and should reconcile against Daya's record of the transfer rather than crediting from a webhook alone. Treat the webhook as a signal to go and read the transfer, and write to your ledger from what that read returns. Transfers end as either settled or failed, and a reversal can arrive later.
Sources(6)
- Transfers, Daya developer documentation. Accessed .
- Get fees, Daya developer documentation. Accessed .
- Transfers pricing, Paystack. Accessed .
- Flutterwave Nigeria pricing, Flutterwave. Accessed .
- Product pricing, Fincra. Accessed .
- Transfers, statuses and webhooks, Daya developer documentation. Accessed .





