Tanzania Mobile Money

Configure and manage mobile money payments in Tanzania

Tanzania Mobile Money

Tanzania Mobile Money enables businesses to accept payments from customers using mobile money wallets. With CrissCross, you can integrate Tanzania’s leading mobile money operators for collections and payouts.

Introduction

Mobile money is the dominant digital payment method in Tanzania, with operators like Airtel, Tigo, Halotel, and Vodacom serving millions of users. Integrating Tanzania Mobile Money with CrissCross allows you to collect payments, initiate transfers, and manage transactions across these operators. This guide covers how to integrate Tanzania Mobile Money into your application using CrissCross.

Supported Currency & Country

RegionCountryCurrency
East AfricaTanzaniaTZS

Supported Mobile Money Operators

OperatorCollection (Payin)Transfer (Payout)
AirtelYesYes
TigoYesYes
HalotelYesYes
VodacomYesNo

Pre-requisites

Before accepting Tanzania Mobile Money payments through CrissCross, ensure you meet the following requirements:

  • CrissCross Integration: You have integrated with CrissCross, either using our hosted checkout, SDK, or server-to-server API.

  • Payment Processor Configuration: Your merchant account has a payment processor configured for Tanzania.

  • Payment Method Enabled: Tanzania Mobile Money is enabled in your CrissCross dashboard.

  • Meta Fields Setup: Ensure mobile number and operator meta fields are correctly configured under Merchant configurations -> Meta fields on your CrissCross dashboard and included in your requests.

Ways to Integrate Tanzania Mobile Money with CrissCross

CrissCross supports multiple integration methods for offering Tanzania Mobile Money at checkout:

  1. CrissCross Hosted Checkout Using CrissCross’s hosted checkout is the simplest way to accept Tanzania Mobile Money payments. With this option:

    • Minimal development is required on your end.
    • CrissCross automatically displays the Tanzania Mobile Money payment method during checkout.
    • You can control the payment methods offered through the session creation API call.
  2. CrissCross SDK (BETA) If you prefer more control over your checkout experience, you can integrate with the CrissCross SDK:

    • The SDK provides UI components to include mobile money as a payment method.
    • It simplifies capturing any required inputs (like mobile number and operator) and initiating transactions.
    • Consult the CrissCross SDK documentation for detailed steps.
  3. Server-to-Server Integration For complete control over your payment process and checkout flow, you can integrate using CrissCross’s server-to-server APIs:

    • This approach offers greater flexibility in implementing the payment flow and handling customer data.
    • You will be responsible for capturing necessary inputs (e.g., mobile number, operator) and forwarding them to CrissCross securely.

Let’s explore the server-to-server approach in more detail.

Retrieving Available Payment Methods

Using the CrissCross API, you can retrieve a list of available payment methods for a given checkout session by calling the GET /v1/payment/available-methods endpoint with a sessionId. Use the returned availableMethods[].type as your paymentMethodId when initiating the transaction.

Request:

$curl -G https://api.crisscross.money/v1/payment/available-methods \
> -d sessionId={sessionId}

Response:

1{
2 "success": true,
3 "availableMethods": [
4 {
5 "type": "mobileMoney",
6 "name": "Mobile Money",
7 "requiredInput": [
8 {
9 "name": "mobileNumber",
10 "type": "text",
11 "label": "Mobile Number"
12 },
13 {
14 "name": "provider",
15 "type": "select",
16 "label": "Mobile Money Provider",
17 "options": ["Airtel", "Tigo", "Halotel", "Vodacom"]
18 }
19 ]
20 }
21 ]
22}

In this response:

  • The mobile money payment method is listed with "type": "mobileMoney".
  • The requiredInput field indicates that the customer must provide their mobile number and select their mobile money provider.

Creating a Checkout Session

To create a checkout session, make a POST request to the /v1/checkout/session endpoint.

$curl -X POST https://api.crisscross.money/v1/checkout/session \
> -H "Content-Type: application/json" \
> -d '{
> "merchantId": "YOUR_MERCHANT_ID",
> "merchantReference": "ORDER12345",
> "amount": 50000,
> "currency": "TZS",
> "integrationType": "hosted",
> "redirectUrl": "https://merchant.com/redirect",
> "payerDetails": {
> "emailAddress": "[email protected]",
> "location": "TZA",
> "fullName": "Jane Doe",
> "phoneNumber": "0712345678"
> }
>}'

Response:

1{
2 "sessionId": "SESSION_abcdef123456",
3 "paymentLink": "https://crisscross.money/checkout/SESSION_abcdef123456"
4}

Supported Workflows and Services

Workflow / ServiceSupported
Available via CrissCross hosted checkoutYes
Available via CrissCross SDKYes
Available via CrissCross server-to-server APIYes
Request to Pay (Mobile Money Collection)Yes
Mobile Money Transfer (Payout)Yes
Bank Transfer (Payout)Yes
Get BalanceYes
Instant CaptureYes
Cancel / VoidNo
Refund / ReverseNo
Delayed / Manual CaptureNo
Save InstrumentsNo
Merchant Initiated Transaction (MIT)No

Additional Resources