Due to a Solana-native restriction, the maximum number of payments that can be included in a batch payment is limited to 18 payments per batch (19 if your batch only includes payments in SOL token).
This limitation results from the transaction size limit of 1232 bytes that is native to Solana. Request can't influence this. The size that's required for payments in SPL* tokens and payments in SOL tokens is different, so the maximum can vary slightly:
~150 bytes is the base overhead size needed per batch payment.
~60 bytes are needed for each SPL payment โ max. of 18 payments.
~56 bytes are needed for each SOL payment โ max. of 19 payments.
Example: you have to make 20 SPL payments and 2 SOL payments. This will require two separate batch payments, as the total transaction size would otherwise exceed the limit of 1232 bytes per batch (< 1462 bytes = 150 bytes + 20*60 bytes + 2*56 bytes).
*SPL is the standard for fungible tokens similar to Ethereum's ERC-20. Most non-SOL tokens, such as USDC, are SPL tokens.