Skip to main content

Use large-batch file transfer

You can use this method to pay more than 15,000 recipients at once with a single payment file.

Typical use-cases: Payroll payouts, rebate payouts, reward payouts, or affiliate program payouts.

Prerequisites

Send payouts

1. Create input file

  1. Add a summary line: Follow the required format and add a summary line as the first row of your input file.
  2. Add payout records as line items: Follow the required format and add each payout you want to send as a separate row.
  3. Use the naming convention pp_payouts_<epoch_time>_<reference_name><format> and save the input file. Sample file name: pp_payouts_1728883200_batch1.csv
    • pp_payouts: Static value. Ensure it is in lowercase.
    • <epoch_time> is an epoch timestamp (past or up to 7 days in the future from the upload date).
    • <reference_name>: Alphanumeric (a-z, A-Z, 0-9) value. Can contain underscore (_), or hyphen (-). Maximum: 63 characters.
    • <format>: .csv or .csv.gz.

Summary line format

Sample summary line

PAYOUT_SUMMARY,1500.75,USD,2,"You got paid","Payout for May"
FieldDescriptionExampleMax lengthNotes
Entry typeStatic valuePAYOUT_SUMMARY-Uppercase only
Total payout amountTotal of all payout items1500.75-Digits, decimal point (.)
Currency codeCurrency for the payout (one per file)USD3Uppercase letters only
Total paymentsNumber of payout items in the file5-Digits only
Email subjectSubject for recipient email (same for all recipients)"You got paid"256Use double quotes (") if needed; use two double quotes ("") to escape a double quote character inside the value
Email messageNote in the email notification (same for all recipients)"Payout for May"1000Use double quotes (") if needed; use two double quotes ("") to escape a double quote character inside the value

Payout item row format

Sample payout line items

PAYOUT,[email protected],1000.50,USD,REF_ID_1,"Thanks for your work"
PAYOUT_VENMO,5551232368,500.25,USD,REF_ID_2,"Congrats!"
PAYOUT,[email protected],1,USD,REF_ID_1,NOTE_1,,,,AWARDS

Note: If you omit any optional fields, include commas to maintain the correct column order.

FieldDescriptionExampleMax lengthNotes
Payout typePAYOUT for PayPal recipients or PAYOUT_VENMO for Venmo recipientsPAYOUT-Uppercase only
Recipient identifierRecipient's email, phone, Venmo handle, or encrypted PayPal ID[email protected]--
Payout amountAmount for each payout item (decimal format)100.50-Digits, decimal point (.)
CurrencyCurrency for the payout itemUSD3One currency per file
Reference IDUnique identifier for each payout itemREF_ID_130Use letters (a-z, A-Z), digits (0-9), underscore (_), or hyphen (-)
NoteOptional note for each payout itemThanks for your work1000Use double quotes (") if needed; use two double quotes ("") to escape a double quote character inside the value
Social feed privacy (Venmo only)Controls who can see the payment in the recipient's Venmo social feed: PUBLIC, FRIENDS_ONLY, or PRIVATEPRIVATE-Uppercase only, defaults to PRIVATE
Holler URL (deprecated) (Venmo only)Optional. Link to a Holler sticker that displays with the payout message-151Must be a valid URL (http or https)
Logo URL (Venmo only)Optional. Link to a square logo (max 1024×1024 px) to add or update your business profile image in the recipient’s Venmo feed-2000Must be a valid URL (http or https)
PurposeOptional value to denote the transaction purpose. Allowed values: AWARDS, PRIZES, DONATIONS, GOODS, SERVICES, REBATES, CASHBACK, DISCOUNTS, NON_GOODS_OR_SERVICESAWARDS-Defaults to GOODS

2. Upload the input file

  1. Connect to PayPal’s DropZone on the SFTP server with your SFTP user credentials.
  2. Go to the Incoming folder on the server and upload your input file. PayPal validates the file and generates an acknowledgement report. See File validation steps and outcomes.
  3. Check the Outgoing folder on the server for the acknowledgment report that shows your file’s validation status.

Acknowledgment reports

Each acknowledgment report file name matches your input file name and uses a suffix to indicate its type:

  • _ack.csv for ACK (accepted for processing)
  • _nack.csv for NACK (not accepted; errors found - fix errors and upload a new file with a unique name)
  • _dups.csv for DUPS (duplicate file name - change the file name and upload again)

Note: If you send a file with content that matches a file you sent within seven days, you receive a NACK file. Contact your PayPal Account Manager to override this feature.

Sample acknowledgment report file names

pp_payouts_1234567890_batch1_ack.csv
pp_payouts_1234567890_batch1_nack.csv
pp_payouts_1234567890_batch1_dups.csv

NACK report

The NACK report may include two types of error lines. For a complete list, see File validation errors.

  • Summary error line:

    • Columns: Entry type, Currency code, Error enum, Error description
    • Example:
      PAYOUT_SUMMARY,USD,INVALID_CURRENCY,Invalid currency code in line 3
  • Item-level error line:

    • Columns: Payout type, Line number, Reference ID, Error enum, Error description
    • Example:
      PAYOUT,3,REF_ID_1,INVALID_CURRENCY,Invalid currency code

ACK report

The ACK report contains the following information:

  • The UTC date and time when PayPal acknowledged your file.
  • The original input file name (without the suffix).
  • The status, which is always ACCEPTED_FOR_PROCESSING.
2018-02-26T05:48:53Z,pp_payouts_6627887729_testfile,ACCEPTED_FOR_PROCESSING

3. Review stage-wise reports

As PayPal processes payouts, stage-wise reports are placed in your Outgoing folder to help monitor and reconcile your payouts.

ReportStageDescriptionAction
Part File reportAfter a portion of the input file is processedContains transaction-level results for the processed segment. For very large batches, multiple part files may be created as PayPal processes the file in segments.Review each part file to monitor interim results and address issues as they arise.
Out or Interim reportAfter all parts of the file are processedSummarizes the results for all transactions in the batch, including payout status and any errors.Use this file to reconcile your records and confirm the completion of the payout batch.
Final report31 days after the Interim fileProvides the ultimate status of any unclaimed transactions.Check the final status of unclaimed transactions and take any necessary follow-up action.

Note: If a recipient does not claim their payout within 30 days of the payout date, PayPal automatically returns the money to your account.

Report file format

The Part, Out or Interim, and Final reports use the .csv format with the following information:

  • Reference ID
  • Payout item ID
  • Transaction ID
  • Recipient name
  • Recipient identifier
  • Currency code
  • Payout amount
  • Fee
  • Total
  • Transaction status
  • Error enum
  • Error message
  • Processed time
  • Claimed time (applicable for unilateral case)

Sample report entries

REF_ID_1,SX3QT8QVBVE4L,35P324312A142790D,,[email protected],USD,4.82,0.25,5.07,UNCLAIMED,RECEIVER_UNREGISTERED,Receiver is unregistered,2018-01-16T10:33:22Z
REF_ID_2,HP3B9BRJYMKRU,1H080416VK328525U,,[email protected],USD,4.93,0.25,5.18,SUCCESS,,,2018-01-16T10:33:20Z
REF_ID_3,BUPR735Z5CJBJ,7FB53422KY616915S,,[email protected],USD,2.77,0.25,3.02,UNCLAIMED,RECEIVER_UNREGISTERED,Receiver is unregistered,2018-01-16T10:33:19Z
REF_ID_6,AU49JFTXWUQ8Q,7RG81691FV520321P,,[email protected],USD,0.86,0.25,1.11,UNCLAIMED,RECEIVER_UNREGISTERED,Receiver is unregistered,2018-01-16T10:33:20Z
REF_ID_7,C5USHNEDMCXWL,,,[email protected],USD,1.71,0,1.71,FAILED,ACCOUNT_RESTRICTED,User is restricted,2018-01-16T10:33:16Z

Next step

Test large-batch file transfer and move to production.

Reference

File validation steps and outcomes

Validation stepDescriptionOutcome
File existenceChecks if the file exists in the source folderNACK if missing
File emptyChecks if the file is empty or corruptNACK if empty/corrupt
File encoding formatVerifies the file is in UTF-8 encodingNACK if invalid
File formatEnsures the file is in the correct format (.csv or .csv.gz) and contains only required columns and charactersNACK if invalid
File integrityValidates that the payout summary matches the payout item record detailsNACK if mismatch
Filename convention checkEnsures the file name follows required naming rulesNACK or DUPS if invalid
Duplicate file detectionDetects if a file with the same name was previously uploadedDUPS if duplicate
Sandbox items limitChecks if the number of items exceeds the sandbox file limit (sandbox only)NACK if exceeded
Summary and line item checksChecks for: character length limits, invalid/missing currency, multiple summary records, missing PAYOUT_SUMMARY, summary not in first line, total number of payments mismatch, invalid purpose valueNACK if invalid
Payout item validationValidates each payout line for required fields, data types, and uniquenessNACK if invalid
Amount and currency validationEnsures payout amounts and currency codes are valid and consistentNACK if invalid

File validation errors

The following errors may occur when PayPal validates your payout input file. After you've fixed the errors, retry the payout.

ErrorDescription
DUPLICATE_REF_IDReference IDs must be unique within an input file.
EMAIL_MESSAGE_EXCEEDED_MAX_SIZEThe email message exceeded the maximum character limit. The limit is 1000.
EMAIL_SUBJECT_EXCEEDED_MAX_SIZEThe email subject exceeded the maximum character limit. The limit is 255.
ENCODING_ERRORThe payout input file is not in UTF-8 format.
FILE_EMPTY_OR_CORRUPTThe payout input file is empty or corrupt and cannot be processed.
FILE_NOT_FOUNDThe file has been removed from the source folder. Contact our customer support.
FILE_SIZE_ERRORThe payout input file is empty.
GZ_FILE_CORRUPT_ERRORThe payout input file is corrupt or has a checksum issue.
INVALID_CURRENCYThe currency code is invalid.
INVALID_FILE_FORMATThe input file contains characters, columns, or details that are not required for processing payouts. Remove these characters, columns, or details and upload the file.
INVALID_FILE_NAMEThe format of the file name is invalid.
INVALID_FIRST_COLUMNThe first column entry in the summary must be PAYOUT_SUMMARY. For an item record, this must be PAYOUT.
INVALID_REF_ID_FORMATThe reference ID must be alphanumeric. The maximum character limit is 63.
INVALID_SUMMARY_LINE_POSITIONThe payout summary record is missing from the first line in the payout input file.
MANDATORY_COLUMN_MISSINGThe file is missing mandatory columns. Please enter the required information and retry the Payout.
MULTI_CURRENCY_NOT_SUPPORTEDThe payout input file has more than one currency.
MULTIPLE_SUMMARY_RECORDSThe payout input file should contain only one summary record.
PAYOUT_AMOUNT_INVALID_FORMATThe payout amount must use a decimal. Other special characters aren't allowed.
PAYOUT_AMOUNT_NON_POSITIVEThe payout amount must be greater than zero.
SANDBOX_LIMIT_ERRORThe number of items in the file exceeds the sandbox file limit (sandbox only).
SCHEDULED_TIME_ERRORThe payout can be scheduled a maximum of seven days in advance.
SUMMARY_AMOUNT_INVALID_FORMATThe summary amount must be a decimal. Other special characters aren't allowed.
SUMMARY_AMOUNT_NON_POSITIVEThe total payout amount in the summary line must be greater than zero.
SUMMARY_AND_PAYOUT_MATCH_CONFLICTThe payout amount in the summary line doesn’t match the total item value.
SUMMARY_LINES_NON_INTEGERThe total number of payments field in the summary line must be an integer.
SUMMARY_LINES_NON_POSITIVEThe total number of payments field in summary line must be greater than zero.
SUMMARY_MISSINGThe summary line is missing from the payout input file.
TOTAL_PAYMENTS_MISMATCHThe TOTAL_NO_OF_PAYMENTS in the PAYOUTS_SUMMARY row must match the total records in the payout input file.
INVALID_PURPOSEThe purpose specified for the transaction is invalid.