Skip to main content
POST
/
pms
/
api
/
external
/
request
/
wallet
/
bulk-transfer
Bulk Transfer
curl --request POST \
  --url https://api.payvessel.com/pms/api/external/request/wallet/bulk-transfer/ \
  --header 'Content-Type: <content-type>' \
  --header 'api-key: <api-key>' \
  --header 'api-secret: <api-secret>' \
  --data '
{
  "batch_reference": "PAYROLL_2026_03",
  "transfers": [
    {
      "amount": "15000.00",
      "account_number": "0123456789",
      "bank_code": "999991",
      "account_name": "John Doe",
      "narration": "March salary",
      "reference": "PAYROLL_2026_03_EMP001"
    }
  ]
}
'
{
  "status": true,
  "message": "<string>",
  "data": {}
}

Documentation Index

Fetch the complete documentation index at: https://docs.payvessel.com/llms.txt

Use this file to discover all available pages before exploring further.

Use this endpoint to send multiple payouts from your business wallet in one request. Each transfer in the batch debits your wallet and credits a different beneficiary account.
Bulk transfers are powerful: always validate input (bank codes, account numbers, amounts) before sending a batch, and use unique references for each row.

Sandbox

curl -X POST "https://sandbox.payvessel.com/pms/api/external/request/wallet/bulk-transfer/" \
  -H "api-key: YOUR_SANDBOX_API_KEY" \
  -H "api-secret: YOUR_SANDBOX_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"batch_reference":"PAYROLL_2026_03","transfers":[{"amount":"15000.00","account_number":"0123456789","bank_code":"999991","account_name":"John Doe","narration":"Salary March","reference":"PAYROLL_001"}]}'

Endpoint

POST /pms/api/external/request/wallet/bulk-transfer/

Headers

NameTypeRequiredDescription
api-keystringRequiredYour API key
api-secretstringRequiredYour API secret
Content-TypestringRequiredMust be application/json

Request Body

batch_reference
string
required
Unique reference for this bulk batch (for reconciliation)
Must be unique across all your bulk transfers
transfers
array
required
List of individual transfers in the batch

Example request

{
  "batch_reference": "PAYROLL_2026_03",
  "transfers": [
    {
      "amount": "15000.00",
      "account_number": "0123456789",
      "bank_code": "999991",
      "account_name": "John Doe",
      "narration": "March salary",
      "reference": "PAYROLL_2026_03_EMP001"
    },
    {
      "amount": "20000.00",
      "account_number": "0987654321",
      "bank_code": "120001",
      "account_name": "Jane Smith",
      "narration": "March salary",
      "reference": "PAYROLL_2026_03_EMP002"
    }
  ]
}

Example cURL

curl -X POST "https://api.payvessel.com/pms/api/external/request/wallet/bulk-transfer/" \
  -H "api-key: YOUR_API_KEY" \
  -H "api-secret: YOUR_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "batch_reference": "PAYROLL_2026_03",
    "transfers": [
      {
        "amount": "15000.00",
        "account_number": "0123456789",
        "bank_code": "999991",
        "account_name": "John Doe",
        "narration": "March salary",
        "reference": "PAYROLL_2026_03_EMP001"
      },
      {
        "amount": "20000.00",
        "account_number": "0987654321",
        "bank_code": "120001",
        "account_name": "Jane Smith",
        "narration": "March salary",
        "reference": "PAYROLL_2026_03_EMP002"
      }
    ]
  }'

Response

On success you receive high‑level information about the batch:
{
  "status": true,
  "message": "Bulk transfer initiated",
  "data": {
    "batch_reference": "PAYROLL_2026_03",
    "total_count": 2,
    "successful_count": 2,
    "failed_count": 0,
    "total_amount": "35000.00"
  }
}
For detailed per‑transfer status, use the transfer status and wallet transactions endpoints.

Headers

api-key
string
required

Your Payvessel public API key

api-secret
string
required

Your Payvessel secret

Content-Type
enum<string>
required

Request content type

Available options:
application/json

Body

application/json
batch_reference
string
required

Unique reference for the bulk batch

transfers
object[]
required

Response

200 - application/json

Bulk transfer initiated successfully

status
boolean

Request status

message
string

Response message

data
object

Bulk transfer result data