Recurring Payments Profile
Last updated: Aug 15th, 7:17am
Overview
The Recurring Payments Profile Report (RPP) is for use by any merchant or payment processing partner, who have integrated the Recurring Payments Product. The Recurring Payments Profile Report gives merchants and processing partners detailed information about outstanding subscribed monthly payments.
The Recurring Payments Profile Report is available through PayPal’s website and Secure FTP Server, which is defined and described in the Secure FTP Server Specification. Recurring Payments are created with PayPal Recurring Payments API, as documented in the NVP API Developer Guide and Reference.
Know before you begin
- The RPP is available via the Secure FTP Server (reports.paypal.com), which requires a separate user account for access to the RPP. A user account that is enabled for the RPP is also enabled to create user accounts for the Secure Drop-Box. To ensure data security, RPP users must generate their own user accounts for the Secure Drop-Box.
- The RPP is generated and delivered by PayPal on a regular (24 hour) basis. With the initial release of the RPP, the RPP is generated and distributed by 9AM daily in the leading timezone of the reporting window.
- You can receive the RPP in either comma separated value (csv) or tab delimited values format (tab). Contact your PayPal Account Manager to set the data format for this report.
- The RPP is available via the Secure FTP Server for 45 days after the date of its delivery.
- The reports character encoding is UTF-8 (8-bit UCS/Unicode Transformation Format).
-
The reports are available in these formats:
- Portable Document Format (PDF)
- Comma-Separated Values (CSV)
Distribution and access
The following steps describe how to set up and access the RPP using the Secure FTP Server:
-
Create a Secure FTP Server user account. Login to PayPal (www.paypal.com) and create a Secure PayPal Reporting FTP Server username and password. Passwords for accessing the Secure FTP Server cannot be reset by PayPal. To obtain a new password, you must create a new Secure FTP Server user account.
-
Grant access to third-party users. You must explicitly grant access to third-parties by contacting their PayPal Account Manager to supply the following information: – Third-parties’ PayPal login username – Type of permission: reporting access (read) The third-party is then notified by email that access to the business partner’s Secure FTP Server has been granted.
-
Access the Secure FTP Server programmatically using an FTP client. The hostname of the Secure FTP Server is reports.paypal.com. A user account on the Secure FTP Server has the following directory structure: /ppreports/outgoing
New or revised versions
In the future, PayPal will support multiple versions of the RPP. PayPal will notify you regarding the creation of any new version as well as any deprecation of older versions of the report.
If you wish to take advantage of a new version, you can receive two versions of the same report concurrently in order to test and integrate the new version. You can also receive nonconsecutive versions of the same report concurrently in order to test and integrate the new version. Contact your PayPal Account Manager to enable different versions and request any changes in report distribution.
Notifications
PayPal operationally monitors the generation and delivery of the RPP on a 24/7 365 basis. PayPal maintains two different user contact points for report notifications:
- A business contact point for all notifications related to data integrity, data delivery, and new reporting features
- A technical contact for all notifications related to data integrity, data delivery, system outages, system updates, and new features.
PayPal will notify you of the following events related to reporting.
- Delays in report delivery
- Errors in report generation
- New version availability
- System outage
- System update / maintenance (pre-announcement)
- New reporting feature releases
Contact your PayPal Account Manager to provide PayPal with the appropriate notification email alias. PayPal strongly recommends that you create a distribution list or email alias that allows multiple parties to receive communication about the RPP.
Section 1: Report file name
The filename naming convention depends on whether or not you are using Multiple Account Management.
The filename of the RPP for a single account follows this naming convention:
RPP-yyyymmdd.SequenceNumber.Version.Format
Field | Information |
---|---|
RPP |
An abbreviation for Recurring Payments Profile. |
yyyymmdd |
The date for the data in the report. It represents the latest, or ending date, of the data. |
SequenceNumber |
The sequence number of the report file. It is two characters,
right-justified, and zero-filled. The sequence number begins with
01 and continues until all parts of the report are recorded
in files. The sequence number is always present in the report filename
even if there is only one file.
|
Version |
The version of the report. Three characters, right-justified and zero-filled. |
Format |
One of the following:
|
When using Multiple Account Management, the filename of the report follows this naming convention:
RPP-yyyymmdd.ReportingWindow.SequenceNumber.TotalFiles.Version.Format
Field | Information |
---|---|
RPP |
An abbreviation for Recurring Payments Profile. |
yyyymmdd |
The date for the data in the report. It represents the latest, or ending date, of the data. |
'ReportingWindow' |
The window of time when the report was generated, as follows:
|
SequenceNumber |
The sequence number of the report file. It is two characters,
right-justified, and zero-filled. The sequence number begins with
01 and continues until all parts of the report are recorded
in files. The sequence number is always present in the report filename
even if there is only one file.
|
TotalFiles |
The total number of files of the report for this date. The number of files is always two digits and zero-padded. For example, for 2 total files, TotalFiles is 02. |
Version |
The version of the report. Three characters, right-justified and zero-filled. |
Format |
One of the following:
|
Section 2: File structure
The report can be delivered as either a comma-separated values or tab-delimited file. This section describes the structure of the data file.
A report file can contain a maximum of 1 million records. If the report contains more than 1 million records, the report 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 PayPal Multiple Account Management, the report contains only a single section.
Each row of the report consists of a two letter row type, followed by the details specific to that row type. The following table lists the valid row types, along with the sections that describe the data for that row type.
Row types
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 report file with fewer than 1 million records (a single file) with only one section is organized as follows:
File |
Report Header (RH) File Header (FH) Section Header (SH) Column Header (CH) Row Data (SB) ... Row Data (SB) Section Footer (SF) Section Record Count (SC) Report Footer (RF) Report Record Count (RC) File Footer (FF) |
For report files that are split over multiple files, only the first file has a report header record and only the last file has a report footer and a report record count record. A report with two sections split over two files might be organized as follows:
File 1 | File 2 |
Report Header (RH) File Header (FH) Section Header (SH) Column Header (CH) Row Data (SB) ... Row Data (SB) Section Footer (SF) Section Record Count (SC) Section Header (SH) Column Header (CH) Row Data (SB) ... File Footer (FF) |
File Header (FH) Row Data (SB) ... Row Data (SB) Section Footer (SF) Section Record Count (SC) Report Footer (RF) Report Record Count (RC) File Footer (FF) |
Section 3: Report data
This section details the columns and related data that is delivered in the report header, report footer, and report record count records.
Report header data
Report header data exists in one row with each element being separated by the file delimiter. All report fields are non-blank unless otherwise noted.
Position | Column name | Data type | Data Description |
---|---|---|---|
1 | Column Type | Literal | RH |
2 | Report Generation Date | Date/time |
The date and time when the report file was generated, in the following
format: YYYY/MM/DD HH:MM:SS offset. Where:
|
3 | Reporting Window | Varchar |
The window of time when the report was generated, as follows:
|
4 | Account ID | Varchar | Account number receiving the report (Payer ID – encrypted hash of PayPal account). |
5 | Report Version | Varchar | The version of the report. |
Report footer data
Report footer data exists in one row with each element being separated by the file delimiter. All report fields are non-blank unless otherwise noted.
Position | Column name | Data type | Data description |
---|---|---|---|
1 | Column Type | Literal | RF |
2 | Row Count | Number | The number of body data rows in the report (used for reconciliation). Note that the report may span multiple files. |
Report record count data
Report record count data exists in one row with each element being separated by the file delimiter. All report fields are non-blank unless otherwise noted.
Position | Column name | Data type | Data description |
---|---|---|---|
1 | Column Type | Literal | RC |
2 | Row Count | Number | The number of body data rows in the report (used for reconciliation). Note that the report may span multiple files. |
Section 4: File data
This section details the columns and related data that is delivered in the file header and file footer records.
File header data
File header data exists in one row with each element being separated by the file delimiter. All report fields are non-blank unless otherwise noted.
Position | Column name | Data type | Data description |
---|---|---|---|
1 | Column Type | Literal | FH |
2 | Row Count | Number | The sequence number of the file in the report (used for reconciliation). |
File footer data
File footer data exists in one row with each element being separated by the file delimiter. All report fields are non-blank unless otherwise noted.
Position | Column name | Data type | Data description |
---|---|---|---|
1 | Column Type | Literal | FF |
2 | Row Count | Number | The number of body data rows in the file (used for reconciliation). |
Section 5: Section data
This section details the columns and related data that is delivered in the section header, section footer, and section record count records.
Section header data
All section header data exists in one row with each element being separated by the file delimiter. All report fields are non-blank unless otherwise noted.
Position | Column name | Data type | Data description |
---|---|---|---|
1 | Column Type | Literal | SH |
2 | Reporting Period Start Date | Date/time |
The date time that represents the beginning time period of the report in
the following format: YYYY/MM/DD HH:MM:SS offset. Where:
|
3 | Reporting Period End Date | Date/time |
The date time that represents the ending time period of the report in
the following format: YYYY/MM/DD HH:MM:SS offset. Where:
|
4 | Account ID | Varchar | Account number generated by PayPal. |
Section body
Body data exists in one row with each element being separated by the file delimiter. All report fields are non-blank unless otherwise noted.
Before any rows of body data in the report, a column header row lists the name of each of the fields in each body data row. The column header column starts with CH, followed by the Column Name for each body data field (except for the column type field). For example:
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"
Filed name | Data characteristics | Description |
---|---|---|
Column Type | Literal | CH |
Profile ID | Type: alphanumeric Max Length: 64 characters |
Profile ID of the subscriber; encrypted value given to the customer
during profile setup. Example: I-6FE511321P0478119. |
Description | Type: alphanumeric Max Length: 127 characters |
Product or service to which the customer is subscribed. |
Payer Name | Type: Varchar Blanks: Yes Max Length: 64 characters |
Name of the payer. |
Payer Email | Type: alphanumeric Max Length: 127 characters |
Email ID of the payer. |
Billing cycle | Type: numeric Max Length: 38 |
Frequency of the scheduled payment. This is a combination of two fields:
BillingPeriod + BillingFrequency). Example: 5 Days |
Currency Code | Type: currency Max Length: 3 characters |
Currency of the transaction. Example: USD |
Amount | Type: numeric Max Length: 38 characters |
Recurring payment base amount (in cents). Example: 2000 |
Tax | Amount Type: numeric Max Length: 38 characters |
Tax amount to be added to the base amount (in cents). Example: 180 |
Ship Amount | Type: numeric Max Length: 38 characters |
Shipping and handling amount to be added to the base amount. Example: 500 |
Profile | Status Type: alpha Max Length: 1 character |
Status of the profile. Values are:
|
Billing Period Type | Type: alpha Max Length: 1 character |
Type of the billing period. Values are:
|
Billing Cycles Remaining | Type: alpha Max Length: 1 character |
The number of billing cycles remaining. Example: 2 |
Date Last Paid | Type: date |
Date and time of the last successful payment, in the following format:
YYYY/MM/DD HH:MM:SS offset. Where:
|
Amount Last Paid | Type: numeric Max Length: 38 characters |
Amount (in cents) of last successful payment. Example: 2680 |
Outstanding Balance | Type: numeric Max Length: 38 characters |
Amount delinquent. |
Next Bill Date | Type: date |
Date and time of the next scheduled bill date, in the following format:
YYYY/MM/DD HH:MM:SS offset. Where:
|
Num failed Payment | Type: numeric |
Number of failed payments currently associated with the profile. Example: 2 |
Date_Last_Modified | Type: date |
Date and time the profile was last modified, in the following format:
YYYY/MM/DD HH:MM:SS offset. Where:
|
Section footer data
Section footer data exists in one row with each element being separated by the file delimiter. All report fields are non-blank unless otherwise noted.
Position | Column name | Data type | Data description |
---|---|---|---|
1 | Column Type | Literal | SF |
2 | Row Count | Number | The number of body data rows in the section (used for reconciliation). |
Section record count data
Section record count data exists in one row with each element being separated by the file delimiter. All report fields are non-blank unless otherwise noted.
Position | Column name | Data type | Data description |
---|---|---|---|
1 | Column Type | Literal | SC |
2 | Row Count | Number | The number of body data rows in the section (used for reconciliation). |
Sample CSV report
1"RH",2007/12/05 22:43:15 -0800,"A","QRQJ9CLWCBH3Q",001,<br />2 FH,01<br />3 SH,2007/12/03 00:00:00 -0800,2007/12/03 23:59:59 -0800,"QRQJ9CLWCBH3Q"<br />4 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"<br />5 SB,"I-6FE511321P0478119","Item6","PrabhaS","pshanmugam-us2-buyer@paypal.com","1Days","USD",500,100,100,"Suspended","Regular",0,"",,100,"",1,"2007/12/0302:00:35 -0800"<br />6 SF,2<br />7 SC,2<br />8 RF,2<br />9 RC,2<br />10 FF,2<br />
Version history
Publication date | Version | Changes |
---|---|---|
September 2020 | 1.3 | Converted this report specification documentation from PDF to HTML. |
April 2019 | 1.2 | Updated the file record limit from 100,000 to 1 million. |
September 2015 | 1.1 | Various content changes |
September 2012 | 1.0.3 | Changed file format to - RPP-yyyymmdd.sequenceNumber.version.format |
August 2012 | 1.0.2 | Updated data description for Payer Name. |
October 2008 | 1.0.1 | Updated information about report retention time on the Secure FTP Server and changed the Secure FTP server directory location from ppreports to ppreports/outgoing. |
March 2008 | 1.0.0 | First release of PayPal Recurring Payments Profile Report. |