Tanzania 🇹🇿

Transfer funds to Tanzania Mobile Money wallets.

Prerequisites

  1. Complete your KYC and ensure that your account is approved for transactions.
  2. Request this feature on your account via email or our support form.
  3. Whitelist your server IP address to prevent security errors.
  4. Fund your TZS balance. You can do this by:
    • Directly funding via collections, this funding method is limited to a max value equivalent to $1,000.
    • Indirect funding via FX conversion from a different currency balance (i.e. wallet-to-wallet transfers).

Basic terminology

  • Sender: This is the merchant or individual initiating the transfer. Some of their details are required to complete the payouts.
  • Beneficiary: This is the individual receiving the transfer.

Payout Flow

Follow these steps to send money into Tanzanian mobile money wallets:

  1. Collect the sender and beneficiary's information. Some important information to collect includes the account information, sender's name, and address.
ParameterDescriptionFormatExampleisRequired
account_bankThe recipient's bank code.string011Yes
account_numberThe recipient's account number.string2332128829Yes
amountAmount to be transferred.string100Yes
beneficiary_nameThe transfer recipient's name.stringKing JamesNo
meta.beneficiary_addressThe recipient's address.string221B Baker StreetNo
meta.beneficiary_mobile_numberThe recipient's mobile number.string020828661Yes
meta.emailThe recipient's email address.string[email protected]No
sender_id_typeThe sender's ID document typestring04Yes
sender_id_numberThis is the number found on the sender's identification document.string928929832Yes

  1. Send your payment request with all the needed transfer information to the transfers endpoint to create the payout.
{
  "account_bank": "halopesa",
  "account_number": "020828661",
  "amount": 400,
  "narration": "Example TZ MoMo Transfer",
  "currency": "TZS",
  "reference": "EX003",
  "beneficiary_name": "Flutterwave Developers",
  "meta":[{
    "beneficiary_address": "221B Baker Street",
    "beneficiary_mobile_number":"020828661",
    "email":"[email protected]",
    "sender_id_number":"928929832",
    "sender_id_type":"04"
  }]
}

A key parameter to note is sender_id_type, which specifies the type of identification required to verify the sender. Below are the supported identification types and their corresponding codes:

Identification TypeCode
International Passport01
Driving License02
ID Card03
Voter Carc04
Labour Card05
Bar Association Card06
Defence Personnel Identity07
Govt. Id08
Other09
Pan Card10
Ration Card (with photo)11
IBL Customer12
Iqama13
Citizenship card14
Federal ID15
Military identification card16
Commercial Registration17
CNIC18
Work Permit19
Birth Certificate20
Business registration/license21
Social security22
Student ID23
Border Paper24
Royal decree25
License Permit26
GCC identity document27
Saudi Family Book28
Entry permit29
National ID30

You'll get a response like this:

{
    "status": "success",
    "message": "Transfer Queued Successfully",
    "data": {
        "id": 1231872,
        "account_number": "020828661",
        "bank_code": "halopesa",
        "full_name": "King James",
        "created_at": "2025-02-12T11:46:17.000Z",
        "currency": "TZS",
        "debit_currency": "NGN",
        "amount": 400,
        "fee": 45,
        "status": "NEW",
        "reference": "EX003",
        "meta": [
            {
                "BeneficiaryAddress": "221B Baker Street",
                "BeneficiaryMobileNumber": "020828661",
                "EmailAddress": "[email protected]",
                "SenderIdNumber": "928929832",
                "SenderIdType": "04",
                "MobileNumber": "020828661"
            }
        ],
        "narration": "Example TZ MoMo Transfer",
        "complete_message": "",
        "requires_approval": 0,
        "is_approved": 1,
        "bank_name": "Halopesa"
    }
}
  1. Verify your transfer status; there are many ways to do this:
  • You can get the transfer status using the transfer status endpoint.
  • If you have webhooks enabled on your dashboard, check the transfer webhooks to confirm it's status.
  • For transfers with callback_id, we'll send the transfer details with their status using the specified URL.
{
   "event": "transfer.completed",
   "event.type": "Transfer",
   "data": {
    "id": 1231872,
    "account_number": "233500000000",
    "bank_name": "Halopesa",
    "bank_code": "halopesa",
    "fullname": "King James",
    "created_at": "2024-07-29T11:36:14.000Z",
    "currency": "TZS",
    "debit_currency": "NGN",
    "amount": 400,
    "fee": 45,
    "status": "SUCCESSFUL",
    "reference": "EX003",
    "meta": [
      {
        "Sender": "Flutterwave Developers",
        "SenderCountry": "NG",
        "SenderAddress": "Gotham III"
      }
    ],
    "narration": "Example TZ MoMo Transfer",
    "approver": null,
    "complete_message": "Successful",
    "requires_approval": 0,
    "is_approved": 1
   }
 }
{
	"status": "success",
	"message": "Transfer fetched",
	"data": {
		"id": 1231872,
		"account_number": "233500000000",
		"bank_code": "halopesa",
		"full_name": "King James",
		"created_at": "2024-07-29T11:36:14.000Z",
		"currency": "TZS",
		"debit_currency": "NGN",
		"amount": 400,
		"fee": 45,
		"status": "SUCCESSFUL",
		"reference": "EX003",
		"meta": [
			{
				"sender": "Flutterwave Developers"
			}
		],
		"narration": "Example TZ MoMo Transfer",
		"approver": null,
		"complete_message": "Successful",
		"requires_approval": 0,
		"is_approved": 1,
		"bank_name": "Halopesa"
	}
}

Be sure to visit our helper's documentation on testing for information on how to test your transfers.