Collect payments with Selcom
SELCOM collects by wallet push. The payer enters their number on the
portal, a PIN prompt appears on their phone, and they approve it there. They
never leave the portal page.
Offered in the country catalog for Tanzania (TZ).
Centipid Billing uses three calls from Selcom’s
Checkout API:
create-order-minimalopens an order for the amount.wallet-paymentsends the PIN prompt for that order to the payer’s number.order-statusreports whether the order was paid.
order-status reports the order COMPLETED.
Before you start
Ask Selcom’s business team for Checkout API access on an account owned by the ISP. They issue three values: a Vendor ID (the till, often starting withTILL), an API key, and an API secret. Selcom’s public docs list no
test environment. If you want to test before going live, ask Selcom for test
keys and the test host that goes with them.
Configure the gateway
1
Open Settings → Payments → Selcom
Select Selcom from the payment marketplace.
2
Enter the Vendor ID, API key, and API secret
All three are required. The key and secret are stored as secrets.
3
Enter the API host, only if Selcom gave you one
Leave API host blank for Selcom’s live gateway
(
https://apigw.selcommobile.com). Enter the test host here while testing,
then clear it when you switch to live keys.4
Run a controlled test payment
Pay a small amount from the captive portal, approve the prompt on the
phone, and confirm the payment reaches the ledger.
Credentials
Callback URL
There is nothing to paste into Selcom. Every order carries its own webhook (/api/selcom/callback) on the ISP’s domain.
Selcom calls the webhook only when a payment succeeds. So Centipid also asks
Selcom for the order’s status every 5 seconds for about 3 minutes after the
prompt is sent. That check is what connects the payer, and what tells the
portal when a payer declined the prompt. A webhook whose signature does not
match the API secret is rejected.
Troubleshooting
- “Unable to send the Selcom payment prompt”: the Vendor ID, API key, or API secret is wrong, or the account has no Checkout API access. Selcom’s exact response is in the application log.
- No prompt arrives: check the number is a Tanzanian mobile-money number.
Selcom only accepts it as
255…, and Centipid converts07…numbers automatically. - The payer paid but did not connect: search the payment by the transaction ID on their receipt. Payments are stored under Selcom’s transaction ID.
