
Selcom
Supports in this guide: Payments, Payouts
Provider website: selcom.net
What you need to do for start processing transactions (brief summary)
- Get your credentials (from Selcom)
- Connect in Dashboard
- Send an API request
Prerequisites: get from Selcom
Contact your Selcom account manager to get your account verified and receive the following credentials. Be sure to check with the manager if you require a white list of IPs, and if so, specify IP addresses from the Corefy list.
- Account ID -> Corefy field
account_id-> Float account identifier (vendor). - Account PIN -> Corefy field
account_pin-> Float account PIN. - Public key -> Corefy field
public_key. - Secret key -> Corefy field
secret_key. - Business Number -> Corefy field
business_number. - Authentication Token -> Corefy field
token-> verifies inbound validation/callback requests from Selcom.
TZS only.
Payments processing (connect Provider account, create payment-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open Selcom in the provider directory and press Connect at Selcom Provider Overview page in the New connection section.
Step 2 - Fill in fields and select settings
- Account ID
- Account PIN
- Public key
- Secret key
- Business Number
- Authentication Token
- Flow type -> optional, choose ussd dynamic, ussd static, or ussd push - controls how the customer confirms a mobile money payment (see below)
- Test Mode -> (enable if you are using sandbox credentials)
Success
You have connected Selcom Provider account!
First request to Corefy API (MIN)
What it does: creates a payment-invoice for a Tanzanian mobile money method (Airtel Money, Vodacom/M-Pesa, Tigo Pesa, Halo Pesa, Zantel Ezypesa).
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "6be05631-8710-4b14-a369-1928a2b70eda",
"service": "airtel_money_tzs_hpp",
"currency": "TZS",
"amount": 2500,
"fields": {
"phone": "255784175292"
}
}
}
}
Important
fields.phoneis required - it identifies the mobile money wallet and is also used to validate Selcom's own inbound requests back to Corefy.- No
customerfields or Constants apply to this connector - onlyfields.phonedrives the flow.
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "199be985-c243-478a-86a8-4b8c902e5bb6",
"service": "vodacom_tzs_hpp",
"currency": "TZS",
"amount": 2500,
"fields": {
"phone": "255784175292"
}
}
}
}
Important
How the customer confirms the payment depends on the Flow type chosen when connecting the account:
- ussd push - Corefy actively pushes a USSD prompt to
fields.phonevia Selcom's API; the customer only needs to approve it on their phone. - ussd dynamic / ussd static - the customer dials a USSD code on their own phone; Selcom then sends a validation request and a callback to Corefy to confirm the payment, matched by
fields.phone.
Extended request (MAX)
Why add extra fields (typical reasons): - Include optional fields required by your specific flow
Refunds
Selcom does not support refunds.
Payouts processing (connect Provider account, create payout-invoice)
Connect Provider account in Corefy Dashboard
Uses the same Provider account connected above - no separate connection step.
First request to Corefy API (MIN)
What it does: creates a payout-invoice and sends funds to a Tanzanian mobile money wallet or bank-linked method.
Payout - MIN
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "efbf0a2b-5590-42b7-b10b-94d49452147d",
"service": "vodacom_tzs",
"currency": "TZS",
"amount": 1000,
"fields": {
"phone": "255764195271"
}
}
}
}
Important
fields.phone is required for every Payout method.
Payout - MAX
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "a1b2c3d4-5e6f-4789-8a02-5b6c7d8e9f0a",
"service": "halo_pesa_tzs",
"currency": "TZS",
"amount": 1000,
"fields": {
"phone": "255764195271"
}
}
}
}
Extended request (MAX)
Why add extra fields (typical reasons): - Include optional fields required by your specific flow
Refunds
Selcom does not support refunds.
Additional info
- No active reconciliation for Payments - Selcom confirms payments only via an inbound validate request followed by a callback; there is no active status-polling request on the Payments side.
- Active reconciliation is available for Payouts - Corefy can actively query Selcom for a payout's status.
- Payouts support more methods than Payments - alongside Airtel Money, Vodacom, Tigo Pesa, and Halo Pesa, Payouts also support Zantel Ezypesa, Selcom Card, and TTCL Pesa.
- No recurring - this connector does not support saving/charging a token through Corefy.
- No Options or Constants are configured for this connector.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify the Account ID, Account PIN, Public key, and Secret key
- Payment never confirms -> for
ussd dynamic/ussd staticflow types, the customer must dial the USSD code themselves using the same phone number asfields.phone - Invalid phone number error -> Selcom validates the incoming request's phone number against
fields.phonefrom the original request; they must match - Currency or service is not supported -> confirm allowed currencies/features in your Selcom account and in Corefy - only
TZSis available - Refund fails -> Selcom does not support refunds through Corefy
Question
Still looking for help connecting your Selcom account? Please contact our support team!