Subscription Agreement Report Specification
Last updated: Sept 24th, 4:24pm
The Subscription Agreement Report (SUB) is for use by merchants or payment processing partner, who have integrated the Subscription and Recurring Billing Product. The Subscription Agreement Report gives merchants and processing partners detailed information about outstanding subscribed monthly payments.
Associated specification and documentation
The Subscription Agreement Report is available through PayPal’s website and the Secure FTP Server, which is defined and described in the Secure FTP Server Specification. Subscriptions are created with PayPal Subscriptions and Recurring Billing, as documented in the Subscriptions and Recurring Billing Integration Guide.
Distribution and access
The SUB is available via PayPal's website and the Secure FTP Server (reports.paypal.com), which requires a separate user account for access to the SUB. A user account that is enabled for the SUB is also enabled to create user accounts for the Secure Drop-Box. To ensure data security, SUB users must generate their own user accounts for the Secure Drop-Box.
The following steps describe how to set up and access the SUB 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 programatically 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
Schedule
The SUB is generated and delivered by PayPal on a regular (24 hour) basis. With the initial release of the SUB, the SUB is generated and distributed by 9AM daily in the leading timezone of the reporting window.
Data format
You can receive the SUB in either comma separated value (csv) or tab delimited values format. Contact your PayPal Account Manager to set the data format for this report.
Character encoding: UTF-8
The report’s character encoding is UTF-8 (8-bit UCS/Unicode Transformation Format).
Report filename
The filename naming convention depends on whether or not you are using Multiple Account Management.
Single account report
The filename of the SUB for a single account follows this naming convention: SUB-yyyymmdd.reportingWindow.sequenceNumber.totalFiles.version.format
Table 1.1 Subscription Agreement Report File Naming Conventions
SUB |
An abbreviation for "Downloadable Subscription Agreement Report." |
yyyymmdd | The date on the data in the report. This date stamp represents the latest, or ending date, of the data. |
sequenceNumber | The sequence number of this file. Two characters, right-justified and zerofilled. The sequence number begins with 01 and continues until all parts are recorded in files. The sequence number is always present in the report file name 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: |
Multiple account report
When using Multiple Account Management, the filename of the report follows this naming convention: SUB-yyyymmdd.reportingWindow.sequenceNumber.totalFiles.version.format
TABLE 1.2 Subscription Agreement Report File Naming Conventions
SUB |
An abbreviation for "Downloadable Subscription Agreement Report." |
yyyymmdd | The date on 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, as follows:
|
sequenceNumber |
|
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:CSV: a comma-separated value fileTAB: a tab-delimited-field file |
Data retention
The SUB is available via the Secure FTP Server for 45 days after the date of its delivery.
New or revised versions
In the future, PayPal will support multiple versions of the SUB. 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 SUB 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 SUB.
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. Table 1.3, "Report Row Types," lists the valid row types, along with the sections that describe the data for that row type.
TABLE 1.3 Report tow 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 | |
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:
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) |
File Header (FH) | Row Data (SB) |
Section Header (SH) | ... |
Column Header (CH) | Row Data (SB) |
Row Data (SB) | Section Footer (SF) |
... | Section Record Count (SC) |
Row Data (SB) | Report Footer (RF) |
Section Footer (SF) | Report Record Count (RC) |
Section Record Count (SC) | File Footer (FF) |
Section Header (SH) | |
Column Header (CH) | |
Row Data (SB) | |
... | |
File Footer (FF) |
Report data
This section details the columns and related data that is delivered in the report header, report footer, and report record count records.
NOTE: If the report is split over multiple files, only the last file contains the 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.
TABLE 1.4 Report header data
Position | Column Name | Data Type | Data Description |
---|---|---|---|
1 | Column Type | Type: Literal | "RH" |
2 | Report Generation Date | Type: 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 | Type: varchar | The window of time when the report was generated, as follows:
|
4 | Account ID | Type: varchar | Account number receiving the report (Payer ID – encrypted hash of PayPal account) |
5 | Report Version | Type: 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.
TABLE 1.5 Report footer data
Position | Column Name | Data Type | Data Description |
---|---|---|---|
1 | Column Type | Type: Literal | "RF" |
2 | Row Count | Type: 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.
TABLE 1.6 Report record count data
Position | Column Name | Data Type | Data Description |
---|---|---|---|
1 | Column Type | Type: Literal | "RC" |
2 | Row Count | Type: Number | The number of body data rows in the report (used for reconciliation). Note that the report may span multiple files. |
File data
This section details the columns and related data that is delivered in the file header and file footer records.
NOTE: Each file in the report has a file header and a file footer, even if the number of files in the report is one.
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.
TABLE 1.7 Report file header data
Position | Column Name | Data Type | Data Description |
---|---|---|---|
1 | Column Type | Type: Literal | "FH" |
2 | File Count | Type: 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.
TABLE 1.8 File footer data
Position | Column Name | Data Type | Data Description |
---|---|---|---|
1 | Column Type | Type: Literal | "FF" |
2 | Row Count | Type: Number | The number of body data rows in the file (used for reconciliation). |
Section data
This section details the columns and related data that is delivered in the section header, section footer, and section record count records.
NOTE: If you are not using Multiple Account Management, the report contains only one section.
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.
TABLE 1.9 Section header data
Position | Column Name | Data Type | Data Description |
---|---|---|---|
1 | Column Type | Type: Literal | "SH" |
2 | Reporting Period Start Date | Type: date/time | The date time that represents the beginning time period of the report in the following format:
|
3 | Reporting Period End Date | Type: date/time | The date time that represents the ending time period of the report in the following format:
|
4 | Account ID | Type: varchar | Account number generated by PayPal |
Section body data
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","Subscription ID","Subscription Action Type","Subscription Currency","Subscription Creation Date","Subscription Period 1","Period 1 Amount","Subscription Period 2","Period 2 Amount","Subscription Period 3","Period 3 Amount","Recurring","Recurrence number","Subscription Payer PayPal Account ID","Subscription Payer email address","Subscription Payer Name","Subscription Payer Business Name","Shipping Address Line1","Shipping Address City","Shipping Address State","Shipping Address Zip","Shipping Address Country","Subscription Description","Subscription Memo","Subscription Custom Field"
TABLE 1.10 Section body data
Field Name | Data Characteristics | Description | |
---|---|---|---|
1. | Column Type | Type: Literal | "SB" |
2. | Subscription ID |
|
Unique subscription agreement identification number. |
3. | Subscription Action Type |
|
One of the following values: |
4. | Subscription Currency |
|
Currency of transaction. [See PayPal supported currencies](paypal-supported-currencies) for possible values. |
5. | Subscription Creation Date |
|
Date and time the transaction was completed, in the following format:
|
6. | Subscription Period 1 |
|
Subscription period 1. This is the length of the first subscription period. Time unit values are: D (days), W (weeks), M (months), Y (years). |
7. | Period 1 Amount |
|
Subscription amount 1. This is the price of the first subscription period. A value of 0 indicates a free trial period. |
8. | Subscription Period 2 |
|
Subscription period 2. This is the length of the second subscription period. Time unit values are: D (days), W (weeks), M (months), Y (years). |
9. | Period 2 Amount |
|
Subscription amount 2. This is the price of the second subscription period. A value of 0 indicates a free trial period. |
10. | Subscription Period 3 |
|
Subscription period 3. This is the length of the third subscription period. Time unit values are: D (days), W (weeks), M (months), Y (years). |
11. | Period 3 Amount |
|
Subscription amount 3. This is the price of the third subscription period. A value of 0 indicates a free trial period. |
12. | Recurring |
|
|
13. | Recurrence Number |
|
The number of times a payment will recur. |
14. | Subscription Payer PayPal Account ID |
|
Unique PayPal customer account number. |
15. | Subscription Payer Email Address |
|
Email address of payer |
16. | Subscription Payer Name |
|
|
17. | Subscription Payer Business Name |
|
Payer’s business name. |
18. | Shipping Address Line 1 |
|
Street address of shipping address as specified by buyer |
19. | Shipping Address Line 2 |
|
Street address of shipping address as specified by buyer |
20. | Shipping Address City |
|
City of shipping address as specified by buyer |
21. | Shipping Address State |
|
State, province, or territory of shipping address as specified by payer |
22. | Shipping Address Zip |
|
Postal code of shipping address as specified by payer |
23. | Shipping Address Country |
|
Country of shipping address as specified by payer |
24. | Subscription Description |
|
Description of the agreed as specified by the merchant |
25. | Subscription Memo |
|
Text entered by payer in the Memo field during the enrollment |
26. | Subscription Custom Field |
|
Custom content specified by originator of the agreement. Reserved for use by merchant. |
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.
TABLE 1.11 Section footer data
Position | Column Name | Data Type | Data Description |
---|---|---|---|
1 | Column Type | Type: Literal | "SF" |
2 | Row Count | Type: 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.
TABLE 1.12 Section record count data
Position | Column Name | Data Type | Data Description |
---|---|---|---|
1 | Column Type | Type: Literal | "SC" |
2 | Row Count | Type: Number | The number of body data rows in the section (used for reconciliation) |
PayPal-supported currencies
For a list of currencies supported for use with payments and as currency balances, see PayPal-supported currencies.
Version history
Publication Date | Version | Description |
---|---|---|
September 2020 | 2.3 | Converted this report specification documentation from PDF to HTML. |
April 2019 | 2.2 | Updated the file record limit from 100,000 to 1 million. |
September 2015 | 2.1 |
|
October 2012 | 2.0.1 |
|
September 2012 | 2.0 |
|
August 2012 | 1.2.5 | Updated data descriptions for the following columns - |
April 2012 | 1.2.4 | Updated max length of the following columns - |
October 2008 | 1.2.3 |
|
May 2007 | 1.2.2 | Updated to reflect new file and data structure |
October 2012 | 1.0.0 | First release of PayPal Merchant Subscription Agreement Report. |