---
title: "Pay multiple requests in one transaction"
method: POST
path: "/v2/payouts/batch"
tags: ["Pay", "V2/Payouts"]
---

# Pay multiple requests in one transaction

`POST /v2/payouts/batch`

Pays multiple payment requests in one transaction by either creating new requests or using existing request IDs. All requests must be on the same network. Supports mixed ERC20, Native, and conversion requests.

## Headers

- `x-api-key` string
- `x-client-id` string
- `Origin` string

## Request body

- object
  - `requests` object[] — A list of payment requests to be created andprocessed in batch. All requests must be on the same network and contain payment/invoice currency information. Either `requests` or `requestIds` must be provided, but not both.
    - `payee` string, required — The wallet address of the payee (Ethereum 0x... or TRON T...)
    - `amount` string, required — The payable amount of the invoice, in human readable format
    - `invoiceCurrency` string, required — Invoice Currency ID, from the [Request Network Token List](https://docs.request.network/general/request-network-token-list) e.g: USD
    - `paymentCurrency` string, required — Payment currency ID, from the [Request Network Token List](https://docs.request.network/general/request-network-token-list) e.g: ETH-sepolia-sepolia
  - `requestIds` string[] — The request IDs of the existing requests to be paid. Requests must be on the same network. Either `requests` or `requestIds` must be provided, but not both.
  - `payer` string — The wallet address of the payer, user to check if approval is needed or not.
  - `feePercentage` string — Fee percentage to apply at payment time (e.g., '2.5' for 2.5%)
  - `feeAddress` string — Address to receive the fee

## Response `201`

Batch payment calldata retrieved successfully

- object
  - `ERC20ApprovalTransactions` object[] — Array of ERC20 approval transactions needed before the batch payment. Only present when token approval is required.
    - `data` string, required — Transaction calldata for the ERC20 approval
    - `to` string, required — Target ERC20 token contract address for approval
    - `value` integer, required — Always 0 for ERC20 approvals
  - `ERC20BatchPaymentTransaction` object — The batch payment transaction for ERC20 tokens. Only present when the batch contains ERC20 payments.
    - `data` string, required — Transaction calldata for the ERC20 batch payment
    - `to` string, required — Target batch payment contract address
    - `value` object, required
      - `type` 'BigNumber', required
      - `hex` string, required — Payment amount in EVM-compatible format, encoded in hex. Usually 0 for ERC20 payments
  - `ETHBatchPaymentTransaction` object — The batch payment transaction for native ETH. Only present when the batch contains ETH payments.
    - `data` string, required — Transaction calldata for the ETH batch payment
    - `to` string, required — Target batch payment contract address
    - `value` object, required
      - `type` 'BigNumber', required
      - `hex` string, required — Payment amount in EVM-compatible format, encoded in hex. Contains the ETH value to send

## Other responses

- `400` — Requests must be on the same network
- `429` — Too Many Requests

---

[API](https://skmtc.dev/request/apis/request-network-api.md) · [All operations](https://skmtc.dev/request/apis/request-network-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/request/request-network-api/revisions/042a895ac0c6/schema)
