# Bulk Transfer

## Scope

This applies to scenarios where end users are making a bulk transfer to:

1. M-PESA Mobile Money
2. AIRTEL Mobile Money
3. Choice Bank Account
4. Pesalink&#x20;
5. M-PESA Paybill
6. M-PESA Pay Till/BuyGoods

{% hint style="warning" %}
A maximum of 500 transactions per request to be processed
{% endhint %}

## Steps

{% stepper %}
{% step %}

### Initiate Bulk Transfer Request

Call endpoint `/trans/v2/generalBulkTransfer` to initiate a transfer request
{% endstep %}

{% step %}

### Confirm OTP

Call endpoint `/common/sendOtp` (which can also be used to resend if first delivery fails) to request for OTP, filling the value of `bulkPaymentOrderId` to `businessId` parameter. Call endpoint `/common/confirmOperation` to confirm the OTP code received.

{% hint style="info" %}
NOTE: Once a bulk transfer has been initiated, it must be verified via OTP within 30 minutes otherwise it will time-out and fail.&#x20;
{% endhint %}
{% endstep %}

{% step %}

### Transaction Processing

{% endstep %}

{% step %}

### Get Onboarding Result

* Get it from `0008 - Bulk Transfer Result Notification`
* Query transaction status by calling the endpoint `/trans/queryBatchTransactionResult`
  {% endstep %}
  {% endstepper %}
