On this page
No Headings
Last updated: June 25, 2026
The Recurring Payments Profile Report (RPP) is for merchants and payment processing partners who integrate the Recurring Payments product. A recurring payments profile represents a subscriber's billing agreement, including key details such as billing amount, billing cycle, and profile status. This report provides detailed information about outstanding monthly payments from subscribers.
You can use this report to monitor profile-level payment activity, identify missed or pending subscriber payments, and support daily reconciliation and operational follow-up.
Keep in mind the following details about this report:
reports.paypal.com, and reports are in the /ppreports/outgoing directory.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:
PayPal strongly recommends that you create a distribution list or email alias that allows multiple parties to receive communication about reports. To provide the appropriate notification email alias, contact your PayPal account manager or customer support.
The file naming convention depends on whether you are using Multiple Account Management (MAM).
For a single account, the file name follows this convention:
RPP-yyyymmdd.sequenceNumber.version.format
| Field | Description |
|---|---|
RPP | Abbreviation for "Recurring Payments Profile" |
yyyymmdd | The date of the data in the report. This date stamp represents the latest, or ending, date of the 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 1 file. |
version | The version of the report. 3 characters, right-justified, and zero-filled. |
format | The report format: CSV (comma-separated values) or TAB (tab-delimited) |
When using Multiple Account Management, the file name follows this convention:
RPP-yyyymmdd.reportingWindow.sequenceNumber.totalFiles.version.format
| Field | Description |
|---|---|
RPP | Abbreviation for "Recurring Payments Profile" |
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: CSV (comma-separated values) or TAB (tab-delimited) |
Regardless of the delivery format (CSV or TAB), a report file can contain a maximum of 1 million records. If the report contains more records, it is split across multiple files. The report is also organized by section, where each section represents a single PayPal account. If you are not using Multiple Account Management, the report contains only a single section.
Each row consists of a 2-letter row type code that is followed by the details for that row type.
The following table describes the row types that can appear in this report, organized by report section. The column type is the first field in each row and indicates the type of data in that row. The column type is used to identify the report header, file header, section header, column header, body data, section footer, section record count, report footer, report record count, and file footer.
| 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 with 1 section 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 splits 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), or 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 that is delivered 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 delivered 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 | profile_id | Alphanumeric; max 64 characters | Profile ID of the subscriber. An encrypted value that was assigned during profile setup, for example I-6FE511321P0478119. |
| 3 | description | Alphanumeric; max 127 characters | Product or service to which the customer is subscribed |
| 4 | payer_name | Varchar; blanks allowed; max 64 characters | Name of the payer |
| 5 | payer_email | Alphanumeric; max 127 characters | Email address of the payer |
| 6 | billing_cycles | Numeric; max 38 characters | Frequency of the scheduled payment, which combines billing period and billing frequency, such as 5 Days. |
| 7 | currency_code | Currency; max 3 characters | Currency of the transaction. For a list of possible values, see Supported currencies. For example, USD is the US dollar. |
| 8 | amount | Numeric; max 38 characters | Recurring payment base amount, in cents. For example, 2000 is $20.00. |
| 9 | tax_amount | Numeric; max 38 characters | Tax amount to add to the base amount, in cents. For example, 180 is $1.80. |
| 10 | ship_amount | Numeric; max 38 characters | Shipping and handling amount to add to the base amount, in cents. For example, 500 is $5.00. |
| 11 | profile_status | Alpha; max 1 character | Status of the profile: Active, Cancelled, or Cancelled Due To Non Activity |
| 12 | billing_period_type | Alpha; max 1 character | Type of billing period: Trial or Regular |
| 13 | billing_cycles_remaining | Numeric | The number of billing cycles that remain. For example, 2. |
| 14 | date_last_paid | Date/time | Date and time of the last successful payment, in this format YYYY/MM/DD HH:MM:SS offset. offset is a 5-character signed offset from GMT, for example +0800. |
| 15 | amount_last_paid | Numeric; max 38 characters | Amount of the last successful payment, in cents. For example, 2680 is $26.80. |
| 16 | outstanding_balance | Numeric; max 38 characters | Amount delinquent, in cents. For example, 100 is $1.00. |
| 17 | next_bill_date | Date/time | Date and time of the next scheduled bill, in this format YYYY/MM/DD HH:MM:SS offset. offset is a 5-character signed offset from GMT, for example +0800. |
| 18 | num_failed_payment | Numeric | Number of failed payments currently associated with the profile. For example, 2. |
| 19 | date_last_modified | Date/time | Date and time the profile 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. |
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 purposes. |
Section 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 (section record count, SC) |
| 2 | row_count | Number | The number of body data rows in the section. You can use this for reconciliation purposes. |
The following example shows a representative excerpt of a Recurring Payments Profile report file. It illustrates how header, body, and footer row types appear together in a delivered file. You can use this information for validation and reconciliation purposes.
"RH",2007/12/05 22:43:15 -0800,"A","QRQJ9CLWCBH3Q",001,
FH,01
SH,2007/12/03 00:00:00 -0800,2007/12/03 23:59:59 -0800,"QRQJ9CLWCBH3Q"
CH,"Profile ID","Description","Payer Name","Payer Email","Billing Cycles","Currency Code","Amount","Tax Amount","Ship Amount","Profile Status","Billing Period Type","Billing Cycles Remaining","Date Last Paid","Amount Last Paid","Outstanding Balance","Next Bill Date","Num Failed Payment","Date Last Modified"
SB,"I-6FE511321P0478119","Item6","PrabhaS","[email protected]","1Days","USD",500,100,100,"Suspended","Regular",0,"",,100,"",1,"2007/12/03 02:00:35 -0800"
SF,2
SC,2
RF,2
RC,2
FF,2