Ads

How to pay for Facebook and Instagram ads in Kenya (M-Pesa, cards, VAT)

M-Pesa or card, shillings or dollars, and why your balance is smaller than what you paid. The one choice you only get to make once, and how to fix “payment declined” for good.

Person checking charges on a phone beside a laptop showing charts

Key takeaways

  • Meta accepts M-Pesa in Kenya, but only on an ad account set to Kenya and Kenyan shillings, and only if you choose M-Pesa when the account is first set up.
  • Cards (Visa, Mastercard, Amex) and PayPal also work. A card must be enabled by your bank for online payments and have a CVV.
  • Meta adds 16% VAT for every advertiser in Kenya. With M-Pesa it is taken when you top up: add KSh 10,000 and about KSh 8,621 is left to spend.
  • A failed payment pauses your ads and disables the account until you pay. A backup payment method prevents it.

You have the ad ready. The photo is good, the offer is good, and then Facebook asks how you want to pay, and suddenly there are questions nobody answered for you. M-Pesa or card? Shillings or dollars? Why did you add KSh 10,000 and see less in your balance? Why was your card declined when it works everywhere else? This guide answers all of it, using Meta’s own rules for Kenya as they stand in October 2026.

The ways you can pay for Meta ads in Kenya

Meta’s payment page for Kenya lists three kinds of payment. Which one you use decides how you are billed, and one of them can only be chosen at the very start.

1 · M-Pesa

A “manual” payment: you top up a balance first, Meta takes from it as ads run. Only for ad accounts set to Kenya and Kenyan shillings, chosen when the account is created.

2 · Card

Visa, Mastercard or American Express. Meta charges the card automatically as you spend, when you reach a set amount, and on a monthly date.

3 · PayPal

Accepted in PayPal’s supported currencies. It works like a card: automatic charges as you spend.

You will also hear about virtual cards funded from M-Pesa. Safaricom’s own is M-Pesa GlobalPay, which it describes as a Visa virtual card linked to your M-Pesa wallet for paying international websites. To Meta it is simply a Visa card, which it accepts, but Meta does not list GlobalPay by name, so test it with a small amount before a campaign depends on it.

The choice you only get once: shillings with M-Pesa, or a card

This is the part that catches most Kenyan businesses. When you create your first ad, the payment method you pick sets how the whole ad account works. Meta’s wording for Kenya is plain: M-Pesa is only available if the account’s country is Kenya and its currency is the Kenyan shilling, and you can only add it if you choose it when you first set up the ad account.

So if someone set your account up in US dollars with a card (a developer, a former employee, or you in a hurry), M-Pesa will simply never appear as an option.

Shillings + M-PesaCard (shillings or dollars)
How you payTop up first, ads spend the balanceCharged automatically as you spend
Risk of surprise chargesNone — you cannot spend more than you addedCharged at your threshold and on your monthly bill date
If the money runs outAds stop until you top up (auto-reload can prevent it)Charge fails, ads pause, account disabled until paid
Where VAT is takenWhen you top up — your balance is smaller than the amount you paidAdded on top of each charge
Good forSmall, controlled budgets; no bank cardSteady campaigns; ads that must never stop

If your account is in dollars and you want M-Pesa

Meta lets you change an ad account’s currency once every 60 days, and only when there is no balance owed. But read the small print: changing the currency and time zone creates a new ad account. The old one closes and its ads stop. Do it between campaigns, and reconnect your tracking to the new account before its first ad runs.

VAT: why your balance is smaller than what you paid

Since November 2022, Meta has charged VAT on ads to every advertiser whose “Sold to” country is Kenya, for business or personal use alike. Kenya’s standard VAT rate, according to KRA, is 16%. How it shows up depends on how you pay:

Paying by M-Pesa

VAT is taken when you add funds. Add KSh 10,000 and your ad balance is about KSh 8,621. The rest is the VAT.

Paying by card

VAT is added on top. KSh 10,000 of ads is charged as KSh 11,600, which is why a charge can be bigger than your threshold.

Planning a budget

Decide what you want the ads to spend, then multiply by 1.16. That is what leaves your M-Pesa or your card.

If your business is VAT-registered, add your VAT number (your KRA PIN) in Billing & payments → Payment settings → Business info. It then appears on your ad receipts, which Meta says may help you recover the VAT. Whether you can recover it is a question for your accountant. Meta says clearly that it does not give tax advice, and neither do we.

Paying with M-Pesa, step by step

  1. Start the ad account right. When you create your first ad, set the country to Kenya and the currency to Kenyan shillings.
  2. Choose M-Pesa as the payment method at that first purchase. This sets the account to “available funds”, a prepaid balance.
  3. Add funds. In Billing & payments, choose Add funds, enter the amount and follow the M-Pesa instructions Meta shows.
  4. Check the balance: remember it will be the amount you paid less VAT.
  5. Keep ads from stopping. Meta deducts up to once a day as ads run. Top up before it runs low, or set up auto-reload where your payment method allows it.

“Payment declined”: the fixes, in the order to try them

When a payment fails, Meta pauses your ads and disables the ad account until the amount due is paid. These are the causes Meta lists, in plain words, with what to do about each:

  • Your card is not enabled for online payments. Some bank cards have online or international payments switched off until you turn them on. Check your bank app or call the bank. Meta lists this first, and it is the first thing to check.
  • Not enough money when the charge came. Card accounts are charged when spending reaches your threshold and again on the monthly bill date. Keep a buffer on the card, and remember the 16% VAT on top.
  • A per-transaction limit on the card. If your card cannot take one large charge, lower your payment threshold so each charge stays under the limit.
  • No CVV, or the wrong details. Meta only accepts cards with a security code. Check the number, expiry date and CVV.
  • The one-time code went to a phone you do not have. The card must be linked to a number you can receive the code on.
  • The same card is on too many ad accounts. Meta typically allows one payment method on up to ten ad accounts.

To get running again, go to Billing & payments → Payment methods → Pay now and settle the balance, or on a prepaid account use Add funds. Meta resumes active and scheduled ads once it is paid. Then add a backup payment method, so a single failed charge never stops your ads again.

Before you pay for a single click: make sure you will be able to see what the ads bring. Ads that are not told which clicks became enquiries keep finding clickers, not customers. In Kenya that means counting WhatsApp taps and M-Pesa payments, not only form fills: the set-up we describe on our Meta Pixel and Conversions API page.

What to do next

If you are deciding how much to spend at all, start with what Facebook and Google ads really cost in Kenya. If you would rather hand over the set-up (payment, tracking, campaigns and plain-words reports, with your ad money paid straight to Meta from your own account), that is what our Google and Meta ads service does.

Questions people ask

Can I pay for Facebook ads with M-Pesa?

Yes. Meta lists M-Pesa as a payment method in Kenya, but only for an ad account whose country is Kenya and whose currency is Kenyan shillings, and only if you choose it when you first set up the ad account. You then top up your balance before ads run, and Meta deducts from it as they run.

My ad account is in dollars. Can I switch it to shillings to use M-Pesa?

Meta lets you change currency once every 60 days, when there is no balance on the account, but doing so creates a new ad account and closes the old one. Ads on the old account stop. Plan it between campaigns, not in the middle of one.

Why does Facebook charge me more than my budget?

Because 16% VAT is added on top of what your ads cost. Meta applies VAT to every advertiser whose billing country is Kenya, for business or personal use. A KSh 10,000 ad spend on a card is charged as KSh 11,600.

Why does Facebook keep declining my card?

The common causes are a card not enabled for online or international payments, not enough funds when the threshold charge comes, a missing CVV, no access to the phone that receives the one-time code, or the card already used on too many ad accounts. Call your bank first; it is usually the online-payments setting.

Can I use M-Pesa GlobalPay for Facebook ads?

Safaricom describes GlobalPay as a Visa virtual card linked to your M-Pesa wallet for paying international online sites. Meta accepts Visa cards but does not list GlobalPay by name, so test it with a small amount before relying on it for a campaign.

Can I claim back the VAT on Facebook ads?

If your business is VAT-registered, add your VAT number in Meta’s Payment settings so it shows on your ad receipts. Meta says this may help you recover the VAT; whether you can is a question for your accountant or KRA, not Meta.

Was this guide useful?

Your answer tells us what to write next.

Written by

Austin Azenga

Founder and lead developer at Omokah Brands in Woodley, Nairobi. Builds websites, online shops, apps and SEO programmes for Kenyan businesses, including SignSoTech, Sherehe Events and Colorshade Graphics, and writes up what clients usually only hear in a paid consultation.

See the work
A strategy call between Omokah and a Nairobi business owner

Free strategy call

Let’s find out what your website could bring in.

We look at your business, your competitors and what you need, and you leave with a clear plan, even if you don’t work with us.

Request your call

What do you want your website to do?

Pick all that apply

Your message opens in WhatsApp or your email app so you can check it before sending. We never share your details.

Chat with us