latestOpenAPI 3.0.32026-08-20146131.7 MB

672b1916ba61

Payments

Estimate transfer batch

Validates a transfer batch request and estimates transaction chunking and fees. This route is scaffolded; estimation is not implemented yet.

post/v1/payments/transfer-batches/estimate

Headers

x-project-idstring

Selects the active project for this request. Required for session/dashboard callers. Ignored when authenticating with an API key, whose scope is fixed to the key's project.

Example:prj_example

Selects the active project for this request. Required for session/dashboard callers. Ignored when authenticating with an API key, whose scope is fixed to the key's project.

Request body

projectIdstring

Project identifier for the transfer batch context.

externalIdstring

Caller-provided batch correlation ID. Not used as an idempotency key.

sourcestring required

Source wallet — the walletId field returned by GET /v1/wallets. The wallet record id and the public key are not accepted.

tokenstring required

Token to transfer. Pass SOL for the native token, a well-known token symbol (e.g. USDC) resolved to the configured cluster's mint, or a base58 SPL mint address. Custom tokens must be specified by their on-chain mint.

Example request

{
  "projectId": "prj_example",
  "externalId": "payroll_2026_06_30",
  "source": "privy_wallet_123",
  "token": "SOL",
  "recipients": [
    {
      "externalId": "payroll_row_001",
      "counterpartyId": "cp_example",
      "counterpartyAccountId": "cpa_example",
      "amount": "25.00"
    }
  ],
  "options": {
    "maxRecipientsPerTransaction": 20,
    "priorityFee": "auto",
    "preflight": true
  }
}

Response

Transfer batch estimate

Example response

{
  "data": {
    "estimate": {
      "estimatedFees": {
        "networkFeeLamports": "5000",
        "priorityFeeLamports": "0",
        "tokenAccountRentLamports": "0",
        "sponsored": true
      }
    }
  },
  "meta": {
    "requestId": "req_example",
    "timestamp": "2025-01-01T00:00:00.000Z"
  }
}