External Transfers

How to disburse from the (working) wallet

Using the IntaSend Send Money , you are able to disburse payment from wallet by specifying its wallet_id.


Can Disburse Check

This API works only for wallets created with can_disbuse option set to true

Example: How to initiate Withdrawal from Wallet to M-Pesa

The following is an example (in Python) of withdrawing funds from a specific wallet by specifying a wallet_id as one of the fields when initiating the M-Pesa B2C API.

The same can be implemented in other language by simply parsing a wallet_id field in the request payload. See the M-Pesa B2C for more details.

from intasend import APIService

service = APIService(token="token" private_key=private_key, test=True)

transactions = [{'name': 'Awesome Customer 1', 'account': 25472.., 'amount': 10},
                {'name': 'Awesome Customer 2', 'account': 25472.., 'amount': 10000}]

response = service.transfer.mpesa(wallet_id='<PAYING-OUT-WALLET-ID>', device_id='<DEVICE-ID>', currency='KES', transactions=transactions)
use IntaSend\IntaSendPHP\Transfer;

$transactions = [

$response=$transfer->mpesa("KES", $transactions=$transactions, $callback_url=null,  $wallet_id='<wallet_id>');
const IntaSend = require('intasend-node');

const intasend = new IntaSend(/*...Authenticate*/)

let payouts = intasend.payouts();

      currency: 'KES',
      transactions: [{
        name: 'Joe Doe',
        account: '254708374149',
        amount: '1000',
        narrative: 'Reason for payment'
    .then((resp) => {
      console.log(`Payouts response:`, resp);
      // Approve payouts method can be called here if you would
      // like to auto-approve immediately
    .catch((err) => {
      console.error(`Payouts error:`, err);

Like all other Send Money APIs , the above request is also a two step. Please go through the send money examples on full implementation for M-Pesa B2C, M-Pesa B2B, Bank Payouts and IntaSend P2P.

Check the Transaction Status status API for details on transaction codes and meaning.