Skip to content
Government

How to check whether your SHA payment went through (Kenya 2026)

Three ways to confirm your SHA contribution landed: the M-PESA SMS, *147# USSD, and afyayangu.go.ke payment history. What to look for and what to do when they disagree.

AO
by Reviewed by Michael Mwangi
8 min read Updated 12 September 2026Verified 12 Sept 2026

Check 1: the M-PESA SMS

The moment your SHA payment leaves your M-PESA wallet, Safaricom sends a Paybill confirmation SMS. It confirms Safaricom's side: they debited you and paid SHA. It does not, on its own, confirm SHA credited your member record.

What to look for:

  • Recipient shows SHA or SOCIAL HEALTH AUTHORITY. Not a person, not a random till, not a random paybill.
  • Business number is 200222.
  • Account number matches the National ID you entered.
  • Amount matches what you owed. Minimum KES 300 [Source 1].
  • Transaction cost is KES 0. SHA payments are free on the paybill side because SHA absorbs the transaction cost.
  • Ref code is a 10-character alphanumeric string (e.g. TFR7AB8CD). Save it. This is your recovery paper trail if anything goes wrong.

If the SMS is missing or delayed by more than 10 minutes, contact Safaricom on 100 first, not SHA. The payment may not have left your wallet.

Check 2: *147# USSD contribution status

SHA runs a free USSD shortcut on *147#. It works on Safaricom, Airtel, and Telkom. Dial it, follow the menu, and choose the contribution or payment status option. Your most recent payment should appear.

Timing: usually within an hour of M-PESA confirmation, sometimes near-instant. This is faster than the web portal because the USSD gateway reads from the same reconciliation queue but bypasses the batch update.

Full menu walkthrough: SHA USSD guide (*147#).

Check 3: afyayangu.go.ke payment history

The formal source of truth. SHA's member portal at afyayangu.go.ke shows the reconciled payment ledger for your member record.

  1. Open afyayangu.go.ke.
  2. Log in with your National ID and OTP (delivered to your registered phone).
  3. Navigate to the payment history section.
  4. Your most recent contribution should appear with date, amount, and reference.

Timing: 24 to 72 hours after the M-PESA SMS. SHA runs overnight reconciliation batches, so if you paid on Monday morning, expect it to appear by Wednesday morning at the latest.

Also useful: eligibility.sha.go.ke shows your current coverage status. If a payment is reconciled, coverage reflects the paid-up month.

What to do if the three disagree

M-PESA SMS says paid, USSD says no

Almost always reconciliation lag or a wrong ID in the account field. Wait one hour, retry USSD. If still no, check the account number on your original M-PESA SMS. If the ID is wrong, the payment is stuck in SHA suspense.

USSD says paid, afyayangu says no

Portal cache or batch delay. Log out, log back in, force refresh. Give it 24 more hours. If still absent, escalate to 0800 720 601.

afyayangu shows the payment but coverage is still inactive

Payment credited but not applied to current coverage month. Usually because the amount is below the assessed premium (Tier 2 with a means-tested figure above KES 300) or because you are in arrears and the payment cleared only part of the balance. See SHA arrears and 2% penalty.

All three silent after 72 hours

Follow the full recovery flow in SHA payment not reflecting. Call 0800 720 601 with your M-PESA code, National ID, phone number, and date of payment.

Checking a payment you made for someone else

Your M-PESA SMS confirms the money left your wallet, but reconciliation lands on the beneficiary's record, not yours. So USSD and afyayangu checks must be done on the beneficiary's phone and ID, not yours. Full guide: How to pay SHA for someone else.

Save your records

Two habits that save time if SHA ever loses a payment or if you need to prove your contribution history to a facility, an employer, or a regulator:

  • Screenshot every M-PESA confirmation SMS the moment it arrives. The 10-character reference code is your recovery paper trail; without it, SHA support staff cannot look up a payment in the suspense ledger.
  • Once a quarter, log into afyayangu.go.ke and take a screenshot of the payment history. If SHA ever loses a batch, or if the portal is briefly wiped during maintenance, you have proof of what was reconciled and when.
  • Keep your M-PESA statement (downloadable via *334# or the M-PESA app) for at least 6 months. It gives you a second, Safaricom-controlled record of every SHA payment separate from anything SHA holds.

How often to check

For most Tier 2 members, once a month is enough: check within a week of paying, confirm the payment landed, then move on. For Tier 1 salaried employees, check once a quarter, because the employer remittance chain has more moving parts and a missed batch can silently accumulate for a full quarter before you notice.

Additionally, check before any planned hospital visit. Facility eligibility systems query eligibility.sha.go.ke in real time. If your ledger shows a gap when you arrive, the front desk cannot bill SHA on your behalf and you may be asked to pay out of pocket while the gap is chased down.

Salaried? Check payroll before SHA

If you are Tier 1 salaried, do not check SHA first. Check your payslip. If the SHA deduction is on the payslip, payroll has done its part. From there, employers.sha.go.ke has to reconcile the remittance batch (deadline: 9th of the following month). Then afyayangu.go.ke reflects. So a September deduction may show as October activity on afyayangu. See SHA for employers.

Sources

  1. SHA premium rates and KES 300 floor: sha.go.ke/premium-rates, accessed 26 August 2026.
  2. SHA member portal afyayangu.go.ke, eligibility check eligibility.sha.go.ke, per sha.go.ke navigation, accessed 26 August 2026.
  3. SHA USSD shortcode *147#, per sha.go.ke registration page, accessed 26 August 2026.
  4. SHA toll-free helpline 0800 720 601, per sha.go.ke contact page, accessed 26 August 2026.
  5. M-PESA Paybill 200222 for SHA, verified against sha.go.ke and the paybillke SHA directory entry on 26 August 2026.