IntaSend P2P

How to send money to another IntaSend account

IntaSend supports peer to peer payments, meaning you can transfer funds to another IntaSend account. Currently IntaSend P2P payments are free. This is built on top of our wallets services.

IntaSend P2P Transaction Fields

The following fields are required when initiating the P2P payments.

nameName of the beneficiary or IntaSend account name
accountIntaSend account. Must start with the country prefix e.g 254.. for Kenya accounts
amountAmount to send. You must pay attention to the currency value. Allowed currencies are KES, USD, EUR, and GBP
narrativePurpose of payment

Step 1: Initiate IntaSend P2P transaction

To begin, please go through the Introduction to obtain the API Keys, Device ID and everything else you need to proceed.

Once setup we recommend using the SDKs provided by IntaSend to make it easy for you to sign and approve with less efforts. We have done the heavy lifting for you, so do not reinvent the wheel if the SDK of your stack is already available.

from intasend import APIService

service = APIService(token=token)

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

requires_approval = 'YES' # Set to 'NO' if you want the transaction to go through 
                          # without calling the approve method
response = service.transfer.intasend(currency='KES', transactions=transactions,
use IntaSend\IntaSendPHP\Transfer;

$transactions = [
    ['account'=>'254723890353','amount'=>'2000', 'narrative'=>'Pay Salary'],
    ['account'=>'254723890260','amount'=>'150', 'narrative'=>'Daily Wage']

$requires_approval = 'YES'; // Set to 'NO' if you want the transaction to go through 
                           // without calling the approve method

$transfer = new Transfer();

$response=$transfer->intasend("KES", $transactions, $requires_approval=$requires_approval);
const IntaSend = require('intasend-node');

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

let payouts = intasend.payouts();
var req_approval = 'YES' // Set to 'NO' if you want the transaction 
                         // to go through without calling the approve method
     currency: 'KES',
     requires_approval: req_approval,
     transactions: [{
       name: 'Joe Doe',
       account: '25472....',
       amount: 1000,
       narrative: 'Wage 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);


Currency support

Note the IntaSend P2P support all the major currency that we handle i.e KES, USD, EUR, and GBP.

Step 2: Approve and release payment

If requires_approval is set to YES, the response from Step 1 is passed to the approve function to approve the transaction.

approved_response = service.transfer.approve(response)
$response = $transfer->approve($response);
    .approve(resp, false)
    .then((resp) => {
        console.log(`Payouts approve:`, resp);
    .catch((err) => {
        console.error(`Payouts approve error:`, err);

Check the Transaction Status reference for more details on transaction codes and meaning.