Logo Lanfrica
  • Home
  • Atlas
  • Insights
  • Docs
  • Sign in

© 2026 Lanfrica. All rights reserved. All copyrights of the resources shown on the Lanfrica website belong to the original copyright holders, unless explicitly stated otherwise.

nexcomventures-blip/sipcycle-mpesa

Domain:

digital infrastructure

Record type:

software
Creator:
nex
Host:
Sip Cycle M-Pesa STK Push & Sales Logger # Sip Cycle M-Pesa Callback Server A Node.js server that handles M-Pesa STK Push payments for the Sip Cycle water vending machine. ## What it does - Receives M-Pesa payment confirmations from Safaricom - Automatically logs every payment to the Sip Cycle Google Sheet (Transactions tab) - Identifies what was purchased based on the amount (1L, 2L, 5L, 10L, 20L) - Supports both STK Push and C2B payment methods ## Endpoints | Endpoint | Method | Description | |---|---|---| | `/` | GET | Health check | | `/stk-push` | POST | Trigger STK Push payment prompt on customer's phone | | `/callback` | POST | M-Pesa STK Push result (Safaricom posts here) | | `/c2b/confirmation` | POST | C2B payment confirmation | | `/c2b/validation` | POST | C2B payment validation | ## Deploy on Render.com (Free) 1. Push this folder to a GitHub repository 2. Go to render.com → New → Web Service 3. Connect your GitHub repo 4. Set **Start Command:** `npm start` 5. Add these **Environment Variables:** | Variable | Value | |---|---| | `MPESA_CONSUMER_KEY` | Your production consumer key (from Daraja) | | `MPESA_CONSUMER_SECRET` | Your production consumer secret (from Daraja) | | `MPESA_SHORTCODE` | `3291421` | | `MPESA_PASSKEY` | Assigned by Safaricom after Go Live | | `CALLBACK_BASE_URL` | Your Render URL e.g. `sipcycle.onrender.com` | | `SHEET_ID` | `1EVDcXDdVbk8sLIYs3tJtVzP9Dml9L2nJCaOD1PDWU5I` | | `GOOGLE_SERVICE_ACCOUNT` | JSON string of your Google Service Account key | 6. Deploy — your callback URL will be: `sipcycle.onrender.com` ## Trigger STK Push (test) ```bash curl -X POST sipcycle.onrender.com \ -H "Content-Type: application/json" \ -d '{"phone": "254712345678", "amount": 10, "description": "1L Water"}' ``` ## Water Prices | Amount (KES) | Product | |---|---| | 10 | 1L Water | | 20 | 2L Water | | 40 | 5L Water | | 90 | 10L Water | | 150 | 20L Dispenser Refill |

Visit

github.com

Languages

Lusengo

Similar

iddicris-blip/Data-Visualisation-with-Python-MPESA-Transaction-Analysisdanielokolo0617-blip/igala_dictionaryitekphoneservices-blip/BladeMessengeroniolufemi-blip/YLTriyanshugupta30-blip/test_forest_firesriyanshugupta30-blip/testfireforest

iddicris-blip/Data-Visualisation-with-Python-MPESA-Transaction-Analysis

# Data-Visualisation-with-Python-MPESA-Transaction-Analysis

danielokolo0617-blip/igala_dictionary

itekphoneservices-blip/BladeMessenger

Blade Messenger is a futuristic messaging app combining offline SMS and a smart AI assistant called

oniolufemi-blip/YLT

16-HOUR Yoruba dawn-to-dawn clock

riyanshugupta30-blip/test_forest_fires

Built a Machine Learning model to predict Fire Weather Index (FWI) using the Algerian Forest Fires d

riyanshugupta30-blip/testfireforest

Built a Machine Learning model to predict Fire Weather Index (FWI) using the Algerian Forest Fires d