Integration Flow

Learn about the API you need to integrate with to use ZWITCH's Bulk Transfer service.

The figure below shows the steps you need to follow to integrate our bulk transfer APIs in your application.

398

Bulk Transfer Integration Flow

Follow the below steps to initiate a bulk transfer:

  1. [Prerequisite] Create Virtual Account used as Transfer Wallet.
  2. Create Bulk Transfer

1. [Prerequisite] Create Virtual Account used as Transfer Wallet:

Create a virtual account used as a transfer wallet using our Create Virtual Account used as Transfer Wallet API.

Use the below endpoint to create a virtual account used as a transfer wallet.

POST: https://api.zwitch.io/v1/accounts

Shown below is the sample request and sample response for Create Virtual Account used as Transfer Wallet API.

{
  "type": "virtual",
  "used_as": "wallet",
  "name": "Anil Reddy",
  "mobile_number": "9876543210",
  "email": "[email protected]",
  "bank_name": "axis_bank",
  "kyc": {
    "city": "Bangalore",
    "postal_code": "560005",
    "state_code": "KA",
    "pan": "AAAPA0000A",
    "business_type": "partnership",
    "pan_verification_id": "pan_teJfU3K93LKeUao3alujrW6GP",
    "business_category": "garage_owners",
    "contact_person": "Rahul Reddy"
  },
  "whitelisted_remitters": [
    {
      "account_number": "012920022013",
      "ifsc_code": "ICIC0000001"
    }
  ],
  "verified_remitters": [
    {
      "account_verification_id": "accver_6CvEoAbsjTHW0WGS8zNYechGh",
      "name_match_id": "nm_A8riptxJqooAypvJoqhIRshw7"
    }
  ],
  "metadata": {
    "key_1": "DD",
    "key_2": "XOF"
  }
}
{
  "id": "va_rFrnBcyuLRApIMbgmyRiiYU33",
  "object": "account.virtual",
  "type": "virtual",
  "used_as": "wallet",
  "bank_name": "axis_bank",
  "name": "Anil Reddy",
  "mobile_number": "9876543210",
  "email": "[email protected]",
  "account_number": "9515900990572",
  "ifsc_code": "UTIB0CCH274",
  "vpa": null,
  "additional_vpa": [],
  "whitelisted_remitters": [
    {
      "account_number": "012920022013",
      "ifsc_code": "ICIC0000001"
    }
  ],
  "whitelisted_beneficiaries": [],
  "kyc": {
    "city": "Bangalore",
    "postal_code": "560010",
    "state_code": "KA",
    "pan": "XXXXXX000A",
    "business_type": "partnership",
    "business_category": "garage_owners",
    "contact_person": "Rahul Reddy",
    "pan_verification_id": "pan_teJfU3K93LKeUao3alujrW6GP"
  },
  "customer": {
    "id": "cus_OGOuL7NxzlUj27ECK6T6E0xCR",
    "mobile_number": "9876543210"
  },
  "metadata": {
    "key_1": "DD",
    "key_2": "XOF"
  },
  "status": "active",
  "created_at": 1707909865,
  "is_sandbox": true,
  "settlement_account_id": null,
  "verified_beneficiaries": [],
  "verified_remitters": [
    {
      "account_verification_id": "accver_6CvEoAbsjTHW0WGS8zNYechGh",
      "name_match_id": "nm_A8riptxJqooAypvJoqhIRshw7"
    }
  ]
}

Refer to our Create Virtual Account used as Transfer Wallet API documentation for more information.

2. Create Bulk Transfer

After creating a virtual account used as a transfer wallet and verifying the remitter's bank account. You can add funds to your transfer wallet to make transfers.

You can initiate a bulk transfer by sending us details such as the debit account ID, amount, and transfer details in the API request body.

Use the below endpoint to create a bulk transfer.

POST: https://api.zwitch.io/v2/transfers/bulk

Shown below is a sample request and response for a Bulk Transfer API.

{
  "type": "account_number",
  "debit_account_id": "va_Zpo4BFKhHIfDijxPP9vzVF6Id",
  "transfers": [
    {
      "beneficiary_details": {
        "name_of_account_holder": "Anil Reddy",
        "bank_account_number": "414001501942",
        "bank_ifsc_code": "ICIC0004140"
      },
      "amount": 1000,
      "payment_mode": "imps",
      "currency_code": "inr",
      "payment_remark": "Payment using Zwitch",
      "merchant_reference_id": "d7edb0e6-c329-44bb-8d8d-5671424e5f6808b",
      "metadata": {
        "key_1": "DD",
        "key_2": "XoF"
      }
    },
    {
      "beneficiary_details": {
        "name_of_account_holder": "Rahul Reddy",
        "bank_account_number": "414001501943",
        "bank_ifsc_code": "ICIC0004140"
      },
      "amount": 1000,
      "payment_mode": "imps",
      "currency_code": "inr",
      "payment_remark": "Payment using Zwitch",
      "merchant_reference_id": "d7edb0e6-c329-44bb-8d8d-5671424e5f6808b",
      "metadata": {
        "key_1": "DD",
        "key_2": "XoF"
      }
    }
  ],
  "bulk_reference_id": "1234522442433222243236"
}
{
  "id": "butr_tIuA2cElSs4y54Ih1biX4yFwj",
  "object": "bulk_transfer",
  "type": "account_number",
  "status": "queued",
  "debit_account_details": {
    "name": "Anil Reddy",
    "account_number": "95151838818710",
    "ifsc": "UTIB0CCH274"
  },
  "total_individual_transfers": 2,
  "total_transfer_amount": 2000,
  "bulk_reference_id": "1234522442433222243236",
  "updated_at": 1710855124,
  "is_sandbox": true,
  "created_at": 1710855124
}

Learn more about the Bulk Transfer API.