On this page
No Headings
Last updated: July 6, 2026
The Preapproved Payments Agreements report is for merchants and payment processing partners who have integrated the Preapproved Payments product. The report provides detailed information about outstanding Preapproved Payments billing agreements.
You must have a PayPal SFTP account to access SFTP reports. To set up and access the Secure FTP Server, see Access SFTP reports.
Keep in mind the following details about this report:
When PayPal supports multiple versions of this report, PayPal will notify you of the creation of any new version and of the deprecation of older versions. When multiple versions exist, you can receive 2 versions of the same report concurrently to test and integrate a new version. You can also receive non-consecutive versions of the same report concurrently. To enable different versions or request changes in report distribution, contact your PayPal account manager or customer support.
PayPal monitors the generation and delivery of this report at all times and maintains 2 contact points for notifications:
PayPal notifies you of the following types of events:
The file naming convention depends on whether you are using Multiple Account Management (MAM).
For a single account, the filename follows this convention:
PPA-yyyymmdd.sequenceNumber.version.format
| Field | Description |
|---|---|
PPA | Abbreviation for "Downloadable Preapproved Payments Agreement report" |
yyyymmdd | The date of the data in the report. This date stamp represents the latest, or ending, date of the report data. |
sequenceNumber | The sequence number of the file. 2 characters, right-justified and zero-filled. Begins with 01 and increments until all parts are recorded. Always present even if there is only one file. |
version | The version of the report. 3 characters, right-justified and zero-filled. |
format | The report format: TAB (tab-separated values) or CSV (comma-separated values) |
When using Multiple Account Management, the filename follows this convention:
PPA-yyyymmdd.reportingWindow.sequenceNumber.totalFiles.version.format
| Field | Description |
|---|---|
PPA | Abbreviation for Downloadable Preapproved Payments Agreement Report |
yyyymmdd | The date of the data in the report. This date stamp represents the latest, or ending, date of the data. |
reportingWindow | The window of time when the report was generated: X (GMT 00:00 to GMT -0500), A (GMT -0500 to GMT -0800), H (GMT -0800 to GMT +0800), R (GMT +0800 to GMT 00:00) |
sequenceNumber | The sequence number of the file. 2 characters, right-justified, and zero-filled. Begins with 01 and increments until all parts are recorded. Always present, even if there is only 1 file. |
totalFiles | The total number of files for this date. Always 2 digits and zero-padded. For example, 02 for 2 total files. |
version | The version of the report. 3 characters, right-justified, and zero-filled. |
format | The report format: TAB (tab-separated values) or CSV (comma-separated values) |
Each row consists of a 2-letter row type that is followed by the details for that row type.
The following table describes the row types that are used in this report. The row types are the same for both single account and multiple account reports.
| Code | Description | Section |
|---|---|---|
RH | Report header | Report header data |
FH | File header | File header data |
SH | Section header | Section header data |
CH | Column header | Section body data |
SB | Row data | Section body data |
SF | Section footer | Section footer data |
SC | Section record count | Section record count data |
RF | Report footer | Report footer data |
RC | Report record count | Report record count data |
FF | File footer | File footer data |
A single-file report has 1 section and is organized as follows.
RH Report header
FH File header
SH Section header
CH Column header
SB Row data
... (additional row data)
SF Section footer
SC Section record count
RF Report footer
RC Report record count
FF File footerFor reports that split across multiple files, only the first file contains the report header, and only the last file contains the report footer and report record count. The following example shows a 2-section report that is split across 2 files.
| File 1 | File 2 |
|---|---|
RH Report header | FH File header |
FH File header | SB Row data |
SH Section header | ... |
CH Column header | SB Row data |
SB Row data | SF Section footer |
| ... | SC Section record count |
SB Row data | RF Report footer |
SF Section footer | RC Report record count |
SC Section record count | FF File footer |
SH Section header | |
CH Column header | |
SB Row data | |
| ... | |
FF File footer |
This section describes the data that is delivered in the report header, report footer, and report record count rows. If the report is split across multiple files, only the last file contains the report footer and report record count rows.
Report header data appears in 1 row with data elements separated by the file delimiter.
| Position | Column name | Data type | Description |
|---|---|---|---|
| 1 | column_type | Literal | The column type (report header, RH) |
| 2 | report_generation_date | Date/time | The date and time when the report file was generated, in this format YYYY/MM/DD HH:MM:SS Offset. offset is a 5-character signed offset from GMT, for example +0800. |
| 3 | reporting_window | Varchar | The window of time when the report was generated: X (GMT 00:00 to GMT -0500), A (GMT -0500 to GMT -0800), H (GMT -0800 to GMT +0800), R (GMT +0800 to GMT 00:00) |
| 4 | account_id | Varchar | Account number that receives the report (Payer ID is the encrypted hash of the PayPal account.) |
| 5 | report_version | Varchar | The version of the report |
Report footer data appears in 1 row with data elements separated by the file delimiter.
| Position | Column name | Data type | Description |
|---|---|---|---|
| 1 | column_type | Literal | The column type (report footer, RF) |
| 2 | row_count | Number | The number of body data rows in the report. You can use this for reconciliation. The report may span multiple files. |
Report record count data appears in 1 row with data elements separated by the file delimiter.
| Position | Column name | Data type | Description |
|---|---|---|---|
| 1 | column_type | Literal | The column type (report record count, RC) |
| 2 | row_count | Number | The number of body data rows in the report. You can use this for reconciliation. The report may span multiple files. |
This section describes the data in the file header and file footer rows. Each file in the report has a file header and file footer, even if the report contains only 1 file.
File header data appears in 1 row with data elements separated by the file delimiter.
| Position | Column name | Data type | Description |
|---|---|---|---|
| 1 | column_type | Literal | The column type (file header, FH) |
| 2 | file_count | Number | The sequence number of the file in the report. You can use this for reconciliation. |
File footer data appears in 1 row with data elements separated by the file delimiter.
| Position | Column name | Data type | Description |
|---|---|---|---|
| 1 | column_type | Literal | The column type (file footer, FF) |
| 2 | row_count | Number | The number of body data rows in the file. You can use this for reconciliation. |
This section describes the data in the section header, section footer, and section record count rows. If you are not using Multiple Account Management, the report contains only 1 section.
Section header data appears in 1 row with data elements separated by the file delimiter.
| Position | Column name | Data type | Description |
|---|---|---|---|
| 1 | column_type | Literal | The column type (section header, SH) |
| 2 | reporting_period_start_date | Date/time | The beginning of the reporting period, in this format YYYY/MM/DD HH:MM:SS Offset. offset is a 5-character signed offset from GMT, for example +0800. |
| 3 | reporting_period_end_date | Date/time | The end of the reporting period, in this format YYYY/MM/DD HH:MM:SS Offset. offset is a 5-character signed offset from GMT, for example +0800. |
| 4 | account_id | Varchar | Account number that PayPal generated |
Body data appears in 1 row for each record, with data elements separated by the file delimiter. Before the body data rows, a column header row (CH) lists the name of each field.
| Position | Field name | Data characteristics | Description |
|---|---|---|---|
| 1 | column_type | Literal | The column type (section body, SB) |
| 2 | agreement_id | Varchar; blanks allowed; max 24 characters | The billing agreement ID that PayPal returned when the billing agreement was created |
| 3 | agreement_action_type | Alphanumeric; max 5 characters | The action that is associated with the agreement: P00000 (billing agreement created: general), P0100 (billing agreement canceled: general), P0200 (billing agreement update: general), or P0110 (billing agreement canceled: due to non-activity) |
| 4 | agreement_payment_type | Alphanumeric; max 5 characters | The type of payment that the payer's account can use: X (no valid or current funding source; the payer has not verified their bank account or has not completed enrollment with PayPal), E (capable of paying with eCheck), or I (capable of paying instantaneously) |
| 5 | agreement_maximum_monthly_amount | Currency/amount; max 20 characters | The maximum monthly amount that the payer agrees that the merchant can charge against their PayPal account |
| 6 | total_billed_to_date | Currency/amount; max 25 characters | The current sum of all amounts that have been charged against the agreement ID using the BillUser API |
| 7 | agreement_currency | Three-character currency code; max 3 characters | The currency of the transaction. For a list of possible values, see the list of supported currencies. |
| 8 | agreement_modification_date | Date/time; max 25 characters | The date and time when the agreement was last modified, in this format YYYY/MM/DD HH:MM:SS Offset. offset is a 5-character signed offset from GMT, for example +0800. |
| 9 | agreement_description | Alphanumeric; blanks allowed; max 200 characters | Description of the agreement as specified by the merchant |
| 10 | agreement_payer_paypal_account_id | Varchar; blanks allowed; max 24 characters | Unique PayPal customer account number |
| 11 | agreement_payer_email_address | Varchar; max 127 characters | Email address of the payer |
| 12 | agreement_payer_name | Varchar; blanks allowed; max 64 characters | First and last name of the agreement payer, in this format firstName lastName |
| 13 | agreement_payer_business_name | Varchar; blanks allowed; max 127 characters | Payer's business name |
| 14 | agreement_custom_field | Varchar; blanks allowed; max 256 characters | Custom content specified by the originator of the agreement. Reserved for merchant use. |
Section footer data appears in 1 row with data elements separated by the file delimiter.
| Position | Column name | Data type | Description |
|---|---|---|---|
| 1 | column_type | Literal | The column type (section footer, SF) |
| 2 | row_count | Number | The number of body data rows in the section. You can use this for reconciliation. |
Section record count data appears in 1 row, with each element separated by the file delimiter.
| Position | Column name | Data type | Description |
|---|---|---|---|
| 1 | column_type | Literal | The column type (section record count, SC) |
| 2 | row_count | Number | The number of body data rows in the section. You can use this for reconciliation. |