1. List available tax reports
Use a valid access token and make a GET call to the/v2/taxes/reports endpoint. Include the following query parameters:
| Parameter | Action |
|---|---|
report_typeRequired, string | Set the type of tax report to retrieve. Use 1099-K. |
tax_yearinteger | Set the tax year. Example: 2024. |
excludestring | Set the comma-separated list of fields to exclude from response. Use files_info to retrieve only report metadata without file download links. |
pageinteger | Set the page number for pagination. Default is 1. |
page_sizeinteger | Set the number of reports per page. Default is 100, maximum is 100. |
200 OK response. The response includes the following parameters:
| Parameter | Description | Further action |
|---|---|---|
reports[].idstring | Unique identifier for the report. | Get specific report details or submit corrections. |
reports[].correctedboolean | Indicates if the report was corrected. | Identify corrected reports and notify merchants. |
reports[].statusstring | Current report status. Possible values: QUEUED - Request received, processing not yet startedGENERATION_IN_PROGRESS - Report generation in progressGENERATION_COMPLETED - File generated and available for downloadGENERATION_FAILED - Generation encountered an errorEXPIRED - File no longer available | Download reports with GENERATION_COMPLETED status. |
reports[].files_info.files[].linksarray | HATEOAS links for file operations. The link with rel: "self" provides the PDF download URL. | Download the PDF file using the href value. |
2. Get specific report details
Use a valid access token and make a GET call to the/v2/taxes/reports/{reportId} endpoint.
Path parameter: reportId is the unique identifier for the tax report, retrieved from the List available tax reports response.
3. Download tax report PDF
Use a valid access token and make a GET call to the file download URL from thefiles_info.files[].links array.
- Merchant’s legal name and address.
- Truncated TIN showing only the last 4 digits.
- Monthly gross payment amounts for the tax year.
- Total annual gross payment amount.
- Payment card and third-party network transactions breakdown.
- PayPal’s information as the Payment Settlement Entity and filer.
The merchant copy shows only the last 4 digits of the TIN for security purposes. Forms filed with the IRS and state agencies include the full 9-digit TIN.
4. Handle webhook notifications
Configure your webhook handler to process tax reporting events and take appropriate action based on the event type. For webhook setup, see Set up webhook notifications.TAXES.REPORTS.GENERATED
When you receive aTAXES.REPORTS.GENERATED webhook event, your webhook handler should:
- Extract the
resource.idvalue from the webhook payload. - Check the
resource.is_correctedfield to identify whether this is a regular or corrected report. - Use this report ID to Get specific report details.
- Download the PDF file using the file download link from the response.
- Deliver the form to your merchant through your platform.
TAXES.REPORT_COUNT_UPDATED
When you receive aTAXES.REPORT_COUNT_UPDATED webhook event, your webhook handler should:
- Extract the
reportCountsarray from the webhook payload. - Track the
count_valuefor each counter for billing and reconciliation purposes. - Use
counter_name,counter_type, andproduct_attributesto identify the type of reports counted (electronic federal, paper state).
Tax report lifecycle and availability
- PayPal generates reports after the tax year ends and makes them available by January 1 of the year following the tax year.
- PayPal retains reports for 10 years from the creation date.
- PayPal generates a new report with
is_corrected: truewhen you process corrections. The original report remains accessible. - You can access reports for multiple tax years through a single API endpoint.