Skip to content

Selcom

Selcom

Supports in this guide: Payments, Payouts

Provider website: selcom.net


What you need to do for start processing transactions (brief summary)

  1. Get your credentials (from Selcom)
  2. Connect in Dashboard
  3. 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.phone is required - it identifies the mobile money wallet and is also used to validate Selcom's own inbound requests back to Corefy.
  • No customer fields or Constants apply to this connector - only fields.phone drives 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.phone via 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

  1. 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.
  2. Active reconciliation is available for Payouts - Corefy can actively query Selcom for a payout's status.
  3. 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.
  4. No recurring - this connector does not support saving/charging a token through Corefy.
  5. 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 static flow types, the customer must dial the USSD code themselves using the same phone number as fields.phone
  • Invalid phone number error -> Selcom validates the incoming request's phone number against fields.phone from the original request; they must match
  • Currency or service is not supported -> confirm allowed currencies/features in your Selcom account and in Corefy - only TZS is available
  • Refund fails -> Selcom does not support refunds through Corefy

Question

Still looking for help connecting your Selcom account? Please contact our support team!