Payout Settlements
Early Access
Payouts is an early access feature. We’re actively improving this API based on your feedback.
Early access features come with some caveats:
- May evolve rapidly, requiring integration updates
- Not subject to our 10 year version support policy
- Not subject to SLAs (unless specified in a contract)
Payout settlements represent amounts that merchants owe to Cash App for transactions processed through the platform. Merchants push funds to Block based on these settlement reports.
How it Works
Cash App will process payout settlements for all eligible transactions before a configurable designated cutoff time. The settlement process follows the Federal Reserve calendar for availability, meaning that settlements are not available on Saturdays, Sundays, and holidays.
Batch Processing
Cash App processes payout settlements for merchants via a batch process. We capture the transaction-level details of each payout settlement as reconciliation reports and upload them to a client-provided SFTP server.
For each daily batch of payout transactions that must be settled, Cash App generates a settlement batch. Each settlement includes a series of associated reconciliation reports that can contain up to 9,999 transactions per report.
Settlement Configuration
Reconciliation Reports
Each payout settlement has a corresponding reconciliation report showing the details of each transaction, including amounts and fees used in the calculation of the settlement amount. These reports are delivered daily using Secure File Transfer Protocol (SFTP) to the PSP.
To upload reconciliation reports to the SFTP server, we need the following information:
- SFTP hostname
- SFTP port
- Username of the PSP’s SFTP server
- SFTP user’s private RSA key
- SFTP server host’s public RSA key (optional)
- Destination folder path (filepath for uploading the reports)
As an additional security benefit, Cash App Pay can optionally PGP encrypt settlement files before they’re uploaded to the client SFTP server.
Payout Settlement Report
To avoid upload collisions, each payout settlement report has a unique filename using the following convention:
<yyyymmdd>_payout_settlement_report_client_<client-id>_batch_<batch-id>_chunk_<chunk index>.csv
For sandbox environments, the filename follows this pattern:
<yyyymmdd>_sandbox_payout_settlement_report_client_<client-id>_batch_<batch-id>_chunk_<chunk index>.csv
<yyyymmdd> is the date of settlement for the settlement batch. For manually generated payout settlement reports, <yyyymmdd> is the date the report was generated.
CSV Schema
Payout settlement report files can contain up to 9,999 records. Each file contains headers in the top row, and then each subsequent row has the following schema:
Amount Convention
The amounts in payout settlement reports follow this convention:
grossAmount: Negative (represents payout amount sent, e.g., -$500)feeAmount: Negative (merchant pays fee, e.g., -$5) or ZeronetAmount: Negative (total merchant owes, e.g., -$505)netAmount= grossAmount + feeAmount** (e.g., -500 + -5 = -505)
CSV Sample
Payout Summary Report
The payout summary report provides the total amount of payouts sent for a given day, not a running balance. It shows the total amount due for a specific settlement batch.
To avoid upload collisions, each report has a unique filename using the following convention:
<yyyymmdd>_payout_summary_report_client_<client-id>_batch_<batch-id>.csv
For sandbox environments, the filename follows this pattern:
<yyyymmdd>_sandbox_payout_summary_report_client_<client-id>_batch_<batch-id>.csv
<yyyymmdd> is the date of settlement for the settlement batch.
CSV Schema
Each file contains headers in the top row, and then a single row with the following schema: