How to retire an old transaction code
Transaction codes are the backbone of how KiddyCash tracks payment patterns — from school fee collections in Nairobi to weekly allowance top-ups across your family network. But payment patterns change. A campaign ends, a subscription tier gets restructured, or a fee category is no longer relevant. When that happens, leaving stale codes active creates noise in your reporting and risks misrouting incoming payments.
This article walks you through recognising when a code needs to go, understanding why the problem occurs, and what to do about it.
Symptoms
You likely need to retire a transaction code if you’re seeing any of the following:
- Payments are still settling under a code tied to a cancelled campaign or discontinued service
- Your transaction report shows a code with zero activity over 60+ days, but it’s still listed as active
- Parents or students are triggering the wrong code because an outdated one autocompletes in the payment flow
- You’ve restructured your fee tiers (e.g., changed KES 500 term fees to KES 750) but the old code is still being referenced
- Duplicate codes exist for what is now a single payment category
Causes
Stale codes usually persist for one of three reasons:
1. Campaign codes outliving their campaigns If you created transaction codes specifically for a KiddyCash campaign — which is common given recent updates to how campaigns are structured — those codes don’t auto-archive when the campaign closes. You need to retire them manually.
2. Codes tied to deprecated subscription or service tiers Businesses that have evolved their offerings (new badge categories, changed subscription amounts, restructured school programmes) often carry legacy codes that no longer map to anything real.
3. Copied codes from onboarding Some business owners duplicated codes during setup to move quickly. Over time, the originals are used and the copies are forgotten — but they remain active and can still receive payments.
Solutions
Before retiring a code, view its full activity history to confirm there are no pending or recent transactions attached to it. Retiring a code that still has in-flight payments will not reverse those payments, but it will stop new ones — which could break active payer flows.
To retire a transaction code:
- Log in to the KiddyCash Business Portal and navigate to your transaction code detail page (replace
:business_idand:transaction_code_idwith your actual IDs). - Confirm the code’s last transaction date and current status.
- If the code is linked to an active campaign, pause or close the campaign first. For context on how campaigns interact with codes, see this deeper look at KiddyCash campaigns.
- Select Retire code from the code settings menu.
- Choose whether to redirect payments that land on this code to a replacement code, or simply block them. Redirecting is safer if you have regular payers who may not update their references immediately — common with M-Pesa standing orders.
- Confirm the action. The code status changes to Retired and it will no longer appear in active payer flows.
If you need a replacement code, create a new transaction code before retiring the old one, so you can set up the redirect cleanly in the same session.
What happens after retirement
Retired codes remain visible in your reporting history — they don’t disappear. This is intentional: you’ll still see historical transaction volumes against that code for reconciliation. They just can’t receive new payments or appear to payers during checkout.
If you retired a code in error, contact KiddyCash support to request reinstatement within 30 days.