Creators Digest guide
How to Use M-Pesa as Kenyan Creator: Step by Step Guide
Learn how to use M-Pesa as Kenyan creator to generate pay links, choose Paybill or Till, and convert earnings to USD with Wise.
A Nairobi vlogger just finished a livestream and saw the chat explode with requests to buy exclusive merch. He has a M-Pesa account, but his fans keep asking for a simple way to pay. In the next few minutes you will learn exactly how to use M-Pesa as Kenyan creator, from generating pay links to choosing Paybill versus Till numbers and finally moving money to a USD Wise account. Most guides stop at basic registration; this guide adds the missing bridge to Wise and shows three platforms that already support M-Pesa, giving you a complete revenue pipeline.
1. Registering a M-Pesa Paybill or Till Number for Creator Payments
Register a Paybill or Till number through Safaricom’s Business portal, then link it to your creator accounts. The process takes roughly one hour if you have all documents ready.
### 1. Gather required paperwork
- National ID (front and back scanned as PDF)
- Proof of address (utility bill, tenancy agreement, or bank statement dated within the last three months)
- Business registration (if you operate under a registered name, upload the Certificate of Incorporation; otherwise, a simple “Sole Proprietor” declaration signed and notarised will suffice)
- Bank statement showing the account you want M‑Pay to credit (must be a Safaricom‑linked bank, e.g., Equity, KCB, or Co‑op)
Store these files in a folder named M‑Pay_Application on your computer for quick upload.
### 2. Choose Paybill or Till
| Feature | Paybill | Till |
|---------|---------|------|
| Customer entry | 6‑digit business code, then reference number | 6‑digit till number, no reference needed |
| Ideal for | Subscription services, multiple product lines, detailed tracking | One‑off tips, merch sales, simple donations |
| Fees | Fixed transaction fee per payment, plus optional commission | Fixed fee per transaction, no extra commission |
| Integration | Works with YouTube Studio’s “Super Chat” payouts, Riverside.fm invoicing, and Beehiiv subscription checkout | Works with TikTok Creator Marketplace tip button, Substack donation widget, and direct QR code on Instagram bio |
If you plan to sell merch and accept varied amounts, Paybill gives you a reference field to capture order IDs. If you mainly want fans to tip you quickly, a Till number reduces friction.
### 3. Submit the application
1. Go to Safaricom Business Portal → Products → M‑Pay → Apply for Paybill/Till.
2. Select “Paybill” or “Till” based on the decision matrix above.
3. Fill the online form: business name, contact email, phone number, and upload the documents from step 1.
4. In the “Preferred Settlement Account” field, enter your bank account number and select the bank from the dropdown.
5. Review the terms, tick the consent boxes, and click Submit.
Safaricom typically responds within 24‑48 hours. You will receive an SMS with your new Paybill or Till number and a link to the M‑Pay Dashboard.
### 4. Activate and test
- Log into the M‑Pay Dashboard using your Safaricom credentials.
- Navigate to Settings → Payment Methods → Enable Online Payments.
- Click Generate Test Link; send it to a trusted friend’s M‑Pay number.
- Confirm the transaction appears in the dashboard and that the funds land in your bank account within the expected settlement window (usually same‑day for Paybill, next‑day for Till).
### 5. Connect to creator platforms
- YouTube Studio: Settings → Monetisation → “Add Payment Method”, paste your Paybill number and reference format.
- Riverside.fm: In the “Payments” tab, select “M‑Pay” and enter your Till number.
- Beehiiv: Go to Revenue → Payment Settings, choose “M‑Pay”, and input the Paybill code.
Next hour action: Open the Safaricom Business Portal, click Apply for Paybill/Till, and upload the ID and proof‑of‑address PDFs. This single step moves you from planning to having a live payment channel ready for fans.
2. Generating Instant Pay Links with M-Pesa API and CapCut Integration
Create a short, shareable URL that sends a payment straight to your M‑Pay bill or Till number, then embed that link in the description of every CapCut video you publish. The result is a one‑click checkout experience for fans who already have the Safaricom app on their phone.
### 1. Get your API credentials from Safaricom
1. Log in to Safaricom Developer Portal (developer.safaricom.co.ke).
2. Click My Apps → Create New App.
3. Fill in the form:
- App name: MyCreatorPayments
- Redirect URL: https://yourdomain.com/callback (you can use a placeholder if you only need the link generator)
4. After saving, note the Consumer Key and Consumer Secret. You will need these for every API call.
### 2. Generate an access token (one‑time step)
Open a terminal or Postman and run:
`bash
curl -X GET \
'https://sandbox.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials' \
-u YOUR_CONSUMER_KEY:YOUR_CONSUMER_SECRET`
Copy the access_token value from the JSON response. It expires after one hour, so keep it handy for the next steps.
### 3. Build the payment URL
Safaricom provides a simple “PayBill” URL format:
`
https://pay.safaricom.co.ke/paybill?bill=YOUR_PAYBILL&amount=AMOUNT&account=REF`
Replace the placeholders:
- YOUR_PAYBILL , your registered PayBill or Till number.
- AMOUNT , the amount you want to request (e.g.,
500). - REF , a unique reference your fan can see, such as
VID1234.
Example for a 500 KES tip on a CapCut tutorial:
`
https://pay.safaricom.co.ke/paybill?bill=123456&amount=500&account=VID1234`
### 4. Shorten the link for a clean look
Long URLs look messy in video captions. Use Bitly or TinyURL:
- Go to
bitly.com. - Paste the full M‑Pay URL, click Shorten.
- Copy the resulting short link, e.g.,
bit.ly/CapCutTip.
### 5. Embed the link in CapCut
1. Open CapCut on your phone.
2. Finish editing your video, then tap Export.
3. In the Export Settings screen, tap Add Description.
4. Type a call‑to‑action, then paste the shortened link:
`
Love this tutorial? Tip me 500 KES 👉 bit.ly/CapCutTip
`
- Publish the video.
### 6. Test the flow (do this now)
- Open a new browser tab on your phone.
- Paste the short link you just created.
- You should be redirected to the Safaricom payment screen with the amount and reference pre‑filled.
- Cancel the transaction; you’ve verified the link works without spending money.
### 7. Automate link creation for future videos
If you produce many videos, set up a simple Google Sheet with columns Video ID, Amount, Reference. Use the =HYPERLINK function to concatenate the URL automatically:
`excel
=HYPERLINK("https://pay.safaricom.co.ke/paybill?bill=123456&amount="&B2&"&account="&C2, "Pay")`
Export the generated short links from Bitly’s bulk API (bitly.com/api) and paste them back into the sheet. Now each new video has a ready‑to‑copy payment link.
Next hour action: Open the Safaricom Developer Portal, generate an access token, and create a test payment URL for a 100 KES tip. Shorten it with Bitly, paste it into a draft CapCut description, and verify the flow on your phone. This single test proves the entire pipeline works before you scale to all your uploads.
3. Embedding M-Pesa Pay Links on YouTube Studio and TikTok Creator Marketplace
Place the M‑Pay link where fans can see it without scrolling away from the content. On YouTube the safest spot is the video description, while TikTok offers the “Shop” section and community posts for direct calls‑to‑action.
### YouTube Studio: add the link to the description
- Open YouTube Studio , log in, click the Content tab on the left menu.
- Select the video you want to monetize, then click Details.
- Scroll to Description. Paste the M‑Pay URL you generated from the M‑Pay API, for example:
https://pay.m-pesa.com/pay?bill=123456&amount=500
- Add a short, compelling line above the link, such as:
💸 Support my next vlog , tap the link to send KES 500 via M‑Pay!
- Click Save at the top right.
Next‑hour action: Open YouTube Studio, navigate to a recent video, and paste a test M‑Pay link into the description. Verify the link is clickable in preview mode.
### TikTok Creator Marketplace: embed in shop listings
- Log in to TikTok Creator Marketplace and go to Products → Add New Product.
- Fill in product name, price in KES, and under External Link paste the same M‑Pay URL.
- In the Product Description field, write a clear CTA:
Send KES 300 via M‑Pay to unlock this exclusive behind‑the‑scenes clip.
- Set the product to Visible and click Publish. The link now appears under the “Shop” button on every video that uses this product.
### Community posts on TikTok
- From the TikTok app, tap +, choose Post, then Community.
- Write a brief post, e.g., “Your support fuels my next series , click to pay via M‑Pay.”
- Tap the Link icon (chain symbol) and paste the M‑Pay URL.
- Publish the post; followers can tap the link directly from the feed.
### Best practices for both platforms
- Keep the link short: Use a URL shortener like Bitly to turn the long API string into a clean
bit.ly/SupportMyVlog. - Add tracking parameters: Append
?source=youtube_descor?source=tiktok_shopto see which placement drives the most payments in your M‑Pay dashboard. - Test on mobile: Open the published video or post on a separate device, tap the link, and confirm the M‑Pay checkout page loads without errors.
- Update regularly: If you change your Paybill or Till number, replace the old link in every description and product listing within 24 hours to avoid broken payments.
By following these steps, creators can turn a simple video description or shop listing into a direct revenue stream, letting fans support content instantly through M‑Pay.
4. Using Beehiiv Newsletter to Collect Subscriptions via M-Pesa
Configure Beehiiv to accept M‑Pay as a payment method, then turn those payments into recurring newsletter subscriptions. The process takes about 30 minutes and requires only a Beehiiv account, a M‑Pay Paybill (or Till) you already own, and access to the Beehiiv dashboard.
1. Link your Paybill to Beehiiv
1. Log in to Beehiiv and navigate to Settings → Payments.
2. Click Add new payment method and select M‑Pay from the dropdown.
3. In the pop‑up, enter your Paybill number (e.g., 123456) and the M‑Pay short code you created for the newsletter (e.g., “NEWS”).
4. Save. Beehiiv will now display a “Pay with M‑Pay” button on your checkout page.
2. Create recurring subscription tiers
1. Still in Settings → Payments, go to Subscription tiers and click New tier.
2. Name the tier (e.g., “Premium Reader”), set the price in Kenyan Shillings (e.g., 500 KES), and choose Recurring , Monthly.
3. Under Payment gateway, ensure M‑Pay is selected.
4. Add a brief description that explains the benefits (early access, exclusive content).
5. Click Create tier. Repeat for any additional levels such as “VIP Reader” at 1,200 KES.
3. Test the checkout flow
1. Open an incognito window, go to your Beehiiv subscription page, and select the newly created tier.
2. Click Pay with M‑Pay. You should see a prompt to enter your phone number.
3. Use a personal M‑Pay number to complete the transaction.
4. Verify that the payment appears in your M‑Pay business inbox and that Beehiiv marks the subscriber as “Active”.
4. Automate thank‑you emails
1. In Beehiiv, go to Automation → Email flows.
2. Click New flow, name it “M‑Pay Welcome”.
3. Choose the trigger When a subscriber joins a tier and select the tiers you just created.
4. Draft the email: thank the reader, include a link to the latest issue, and remind them of the next billing date.
5. Set the email to send Immediately after payment confirmation. Save and activate the flow.
5. Bridge to USD payouts via Wise (optional)
If you need to convert KES earnings to USD, set up a Wise business account, then in Beehiiv → Settings → Payouts add your Wise bank details. Beehiiv will batch your monthly earnings and push them to Wise, where you can withdraw in USD.
Next hour action: Open Beehiiv, go to Settings → Payments, and paste your Paybill number. This single step unlocks M‑Pay for all future subscribers.
5. Converting KES to USD with Wise for International Payouts
Link your M‑Pay account to Wise, create a borderless USD profile, and set up an automated conversion that moves funds from Kenya to any international bank or PayPal address.
### 1. Prepare your M‑Pay and Wise accounts
1. Log into M‑Pay on the Safaricom app, tap ‘My Account’ → ‘Linked Services’ → ‘Add a Bank’. Choose Wise from the list (it appears as “Wise , Borderless Account”).
2. In the Wise app, go to ‘Accounts’ → ‘Add a new currency’ and select USD. Wise will generate a unique local Kenyan account number (a virtual IBAN) that can receive KES.
### 2. Verify the connection
- Transfer KES 100 from your M‑Pay balance to the newly created Wise USD account number.
- In Wise, the transaction appears under ‘Incoming’ → ‘Pending’. Approve it, and Wise will automatically convert the KES to USD at the real‑time mid‑market rate, minus a small conversion fee.
### 3. Set up automatic conversion rules
1. Open Wise, navigate to ‘Balances’ → ‘USD’ → ‘Convert & Transfer’.
2. Click ‘Create a conversion rule’.
- Source currency: KES
- Target currency: USD
- Trigger amount: 5,000 KES (or any threshold you prefer)
- Frequency: Daily at 02:00 AM EAT
- Rate source: “Mid‑market” (default)
- Save the rule. Wise will now pull any KES that hits the threshold, convert it, and credit your USD balance automatically.
### 4. Schedule payouts to international platforms
- For a YouTube Creator, go to YouTube Studio → Settings → Channel → Advanced → Monetisation → Payment profile. Add your Wise USD account details (IBAN, SWIFT/BIC).
- For a TikTok Creator Marketplace payout, open TikTok Creator Marketplace → Payments → Add Bank Account, paste the same Wise USD details.
### 5. Test the full flow (next hour action)
1. Open the Safaricom M‑Pay app, tap ‘Send Money’ → ‘To Bank Account’, paste the Wise USD account number, and send KES 1,000.
2. Switch to Wise, confirm the conversion, and verify that the USD balance increased.
### 6. Monitor and optimise
- Check Wise’s ‘Activity’ tab daily for conversion fees; they are typically a few cents per transaction.
- If you notice large spikes in earnings, raise the trigger amount to reduce the number of conversions and keep fees low.
By linking M‑Pay directly to Wise, you keep the entire revenue stream in a single digital hub, avoid multiple local bank transfers, and can withdraw to any global platform with a single set of USD details. This workflow eliminates the need for a third‑party aggregator and gives you full control over timing, rates, and reporting.
6. Tracking Revenue, Taxes, and Receipts with Simple Spreadsheets
Create a Google Sheet that automatically pulls every M‑Pay transaction, tags it for tax, and spits out a clean receipt you can email to sponsors. The whole setup takes under an hour and costs nothing beyond your existing Google account.
Step 1 , Build the raw data tab
1. Open Google Sheets, click File > New > Spreadsheet and name it M‑Pay Revenue Tracker.
2. In cell A1 type Date, B1 Transaction ID, C1 Amount (KES), D1 Type (Sale, Sponsorship, Gift), E1 Client, F1 Notes.
3. Go to Extensions > Apps Script. Replace the default code with the script below, which calls the M‑Pay “Transaction Search” endpoint (you’ll need your API key from the Safaricom developer portal).
`javascript
function importMpesatx() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Raw');
var apiKey = 'YOUR_API_KEY';
var url = 'https://api.safaricom.co.ke/mpesa/transactionsearch/v1/query';
var payload = {
"startDate": Utilities.formatDate(new Date(Date.now()-72460601000), "GMT", "yyyyMMdd"),
"endDate": Utilities.formatDate(new Date(), "GMT", "yyyyMMdd")
};
var options = {
"method": "post",
"contentType": "application/json",
"headers": {"Authorization":"Bearer " + apiKey},
"payload": JSON.stringify(payload)
};
var response = UrlFetchApp.fetch(url, options);
var data = JSON.parse(response.getContentText()).transactions;
data.forEach(function(tx, i){
sheet.appendRow([tx.transactionDate, tx.transactionId, tx.amount, tx.transactionType, tx.customerName, tx.description]);
});
}`
- Save, then run importMpesatx. Grant the permission prompts. The sheet now fills with every payment received in the past week.
Step 2 , Add a tax calculation layer
1. Create a new tab called Tax. In A1 type Amount (KES), B1 Tax Rate, C1 Tax Owed (KES).
2. In A2 enter =Raw!C2 and drag down to mirror the raw amounts.
3. In B2 put the rate that applies to your content: =IF(Raw!D2="Sponsorship",0.15,0.10). This assumes a 15 % rate for sponsorships and 10 % for regular sales.
4. In C2 calculate =A2*B2 and copy down. The column now shows the exact KES you owe the Kenya Revenue Authority.
Step 3 , Generate printable receipts
1. Add a tab Receipt with placeholders: Date, Client, Amount, Tax, Total.
2. In the first row use formulas that reference the latest entry in Raw:
- Date: =INDEX(Raw!A:A, COUNTA(Raw!A:A))
- Client: =INDEX(Raw!E:E, COUNTA(Raw!E:E))
- Amount: =INDEX(Raw!C:C, COUNTA(Raw!C:C))
- Tax: =INDEX(Tax!C:C, COUNTA(Tax!C:C))
- Total: =B2+C2
3. Highlight the row, choose File > Download > PDF, and you have a ready‑to‑send receipt.
Step 4 , Automate the workflow
1. In Apps Script, add a time‑trigger: Edit > Current project's triggers → Add Trigger → select importMpesatx, event source Time‑driven, type Day timer, hour 6 am.
2. Create a second function sendReceipt() that grabs the latest receipt PDF and emails it via Gmail to the client address stored in column E.
Your first hour: Open Google Sheets, create the M‑Pay Revenue Tracker file, copy the script, run it once, and you’ll see the last seven days of payments appear instantly. From there, the tax column and receipt template are ready to use, giving you a transparent record for both sponsors and tax officials.
7. Best Practices and Security Tips for Kenyan Creators
Set up two‑factor authentication (2FA) on every account that touches your M‑Pay ecosystem, then layer fraud monitoring and a clear chargeback response plan.
### 1. Enable 2FA on Safaricom and M‑Pay tools
| Platform | Menu path | Action |
|----------|-----------|--------|
| Safaricom M‑Pesa app | Profile → Security → Two‑step verification | Tap Enable, enter your PIN, then confirm with the OTP sent to your registered phone. |
| Safaricom Business portal (for Paybill/Till) | Settings → Security → Two‑factor authentication | Choose SMS OTP or Authenticator app, save changes. |
| Wise account (for USD conversion) | Account → Security → Two‑factor authentication | Select Google Authenticator, scan QR code, enter the 6‑digit code. |
Immediate step: Open the Safaricom M‑Pesa app, navigate to Profile → Security, and turn on two‑step verification within the next 15 minutes.
### 2. Build a fraud‑monitoring routine
- Daily transaction snapshot , Log into the Safaricom Business portal, go to Transactions → Export, download the CSV, and filter for amounts above KES 5,000.
- Set up alerts , In the M‑Pesa app, enable Push notifications for every incoming payment. Pair this with a WhatsApp Business API webhook (via Twilio) that forwards alerts to a private channel.
- Identify patterns , Look for repeated payments from the same phone number with different creator IDs. Flag any number that appears more than three times in a 24‑hour window.
Tool tip: Use Google Sheets’ Conditional formatting to highlight rows where the “Sender Phone” column repeats. This visual cue catches suspicious activity instantly.
### 3. Responding to chargebacks
| Scenario | Action | Timeline |
|----------|--------|----------|
| Customer claims unauthorized payment | Open M‑Pesa → Dispute → Create case, attach the transaction receipt and any chat proof. | Within 24 hours of the claim |
| Paybill/Till number receives a reversal | Log into Safaricom Business portal, navigate to Reversals, note the reference code, and inform the creator via email. | Immediately after reversal appears |
| Wise conversion is disputed | Contact Wise Support through the in‑app chat, provide the M‑Pesa transaction ID and the Wise transfer reference. | Within 48 hours of the dispute |
Maintain a master spreadsheet titled “Chargeback Log” with columns: Date, Transaction ID, Reason, Action Taken, Resolution Status. Update it each time a case is opened; this audit trail protects you during any Safaricom compliance review.
### 4. Harden your digital footprint
- Use a dedicated phone number for creator payments; never share your personal SIM.
- Rotate your Safaricom PIN every 90 days; record the new PIN in a password manager like Bitwarden, not in plain text.
- Keep your Wise and Paybill/Till credentials on a separate device or browser profile to limit cross‑site exposure.
By locking down access with 2FA, monitoring transactions daily, and having a documented chargeback workflow, you reduce fraud risk and keep your creator revenue flowing smoothly.
8. Frequently asked questions
How do I apply for a M-Pesa Paybill as a creator?
What is the difference between a Paybill and a Till number?
Can I create a payment link without coding?
How do I add a M-Pesa payment button to a YouTube video description?
Is M-Pesa supported directly on TikTok Creator Marketplace?
How can I move my KES earnings to a USD Wise account?
Do I need to charge tax on M-Pesa payments from fans?
What security steps should I take to protect my M-Pesa account?
Can I offer subscription tiers using M-Pesa?
How do I handle refunds for fans who paid via M-Pesa?
By now you have a clear roadmap to turn M-Pesa into a reliable revenue engine: register the right number, embed pay links on YouTube, TikTok, and Beehiiv, and move your earnings to Wise for global spending. Implement the spreadsheet template tonight to start tracking every transaction and stay tax compliant. Take the first step tonight by logging into Safaricom Business portal and starting your Paybill application.