> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pagos.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Reconciling Your PayPal Direct Data in Pagos

> This guide provides a framework for validating your PayPal data against what you see in Pagos.

Pagos ingests your PayPal Direct data via SFTP using the same reports PayPal provides merchants. Data updates daily as new reports are delivered; this is not a real-time data connection. PayPal Legacy connections support ingesting transactions, refunds, fees, and disputes for PayPal wallet transactions only.

<Note>
  We recommend validating your data on a daily or weekly basis rather than across longer periods. Shorter windows make it easier to spot patterns and discrepancies.
</Note>

## PayPal Report Mapping

Each section of Pagos is powered by a specific PayPal report. Before starting your comparison analysis in Pagos Insights, confirm you're using the right PayPal source:

| Pagos Data Type        | PayPal Source Report            | Cadence |
| ---------------------- | ------------------------------- | ------- |
| Transactions           | Transaction Detail Report (TRR) | Daily   |
| Refunds                | Transaction Detail Report (TRR) | Daily   |
| Chargebacks & Disputes | Dispute Detail Report (DDR)     | Daily   |
| Cost & Fees            | Settlement Report (STL)         | Daily   |

<Note>
  **Data Ingestion Limitations**:

  * PayPal Legacy does not support details around declined PayPal wallet transactions. As a result, PayPal wallet transactions via SFTP will always show at 100% approval rate in Pagos. This is expected behavior and not a data gap.
  * Verifications are not applicable. Unlike card payment processors, PayPal Legacy does not include zero-value verification checks. This data type is not applicable for this connection.
</Note>

## Conducting Data Comparisons

When comparing PayPal data to Pagos, we suggest the following steps:

<Steps>
  <Step title="Identify what you're comparing">
    Use the [table above](#paypal-report-mapping) to confirm you are starting from the right PayPal source report for the data you're reviewing. For example, are you looking at transaction counts, refund volume, or fee totals?
  </Step>

  <Step title="Scope your time window">
    Apply the same date range in both Pagos and your PayPal SFTP export, as mismatched date ranges are the most common reason numbers look different. We recommend starting with a single day or a 7-day window.

    Because Pagos' PayPal connection is based on SFTP report delivery, data is only updated once per day. If you're comparing intraday, your counts will not match until the daily file has been processed.
  </Step>

  <Step title="Match your merchant accounts">
    If you have multiple PayPal merchant accounts connected to Pagos, make sure your SFTP export is filtered to the same MID(s) you’re reviewing in Pagos.
  </Step>

  <Step title="Filter to the correct T-Codes">
    Pagos only ingests the following T-Codes for each data type. If you include records outside of these T-Codes in your PayPal export, you'll see count differences.

    * **Transactions** - T0003 & T0006
    * **Refunds** - T1107
  </Step>

  <Step title="Compare at the summary level first">
    Compare totals for count (e.g. Transaction Count) and amount (e.g. Transaction Value) over the period you have scoped before drilling into record-level detail.
  </Step>

  <Step title="Note the nature of any difference">
    Is it a count difference or an amount difference? Does it appear consistently across days or only on specific dates? This context will help you determine whether it is a structural difference (expected) or something worth investigating further.
  </Step>
</Steps>

### Comparing Transaction Data

Pagos creates a transaction for PayPal based on entries in the daily Transaction Detail Report (TRR). Pagos only ingests T-Codes T0003 and T0006.

When reviewing data at the **summary level**, compare the total daily count of TRR file records against Pagos records for each day in the validation period.
If you're reviewing at the **record level**, download the TRR file row details and compare them against the Pagos records.

The following fields match 100% of the downloaded TRR records:

* **Transaction ID** - PayPal transaction reference
* **Invoice ID** - PayPal order reference
* **Merchant Account Identifier** (if applicable)
* **Created Date**
* **Amount** and **Currency** (if applicable)
* **Status** (S = Successfully Completed, D = Denied, P = Pending, V = Reversed, F = Partially Refunded)

### Comparing Refund Data

Pagos creates a refund for PayPal based on entries in the daily TRR report with a status of **Partially Refunded** or **Fully Refunded**. Pagos only ingests T-Code T1107.

When reviewing data at the **summary level**, compare the total daily count of TRR records with a **Partially Refunded** or **Fully Refunded** status against your Pagos refund records for each day in the validation period. If you're reviewing at the **record level**, download the TRR file row details filtered to **Partially Refunded** or **Fully Refunded** statuses and compare them against your Pagos records.

The following fields match 100% of the downloaded TRR records:

* **Transaction ID** - PayPal transaction reference
* **Invoice ID** - PayPal order reference
* **Created Date**
* **Amount** and **Currency** (if applicable)
* **Status**

### Comparing Chargeback/Dispute Data

Pagos creates a dispute for PayPal based on entries in the daily Dispute Detail Report (DDR) with a Case Type of **Chargeback**.

When reviewing data at the **summary level**, filter the DDR to **Case Type: Chargeback** and compare the total daily count against your Pagos dispute records for each day in the validation period. If you're reviewing at the **record level**, download the DDR file row details and compare against your Pagos records.

The following fields match 100% of the downloaded DDR records:

* **Dispute ID** - PayPal case ID
* **Reference Transaction ID** (if applicable and available)
* **Invoice ID** - PayPal order reference
* **Created Date**
* **Amount** and **Currency** (if applicable)
* **Status** - Stage in the dispute lifecycle
* **Reason Code** - Network or payment method-specific reason for the dispute

### Comparing Disbursement Data

Pagos creates a settlement record for PayPal based on the daily Settlement Report (STL).

<Note>
  **Amount Sign Convention**: The following conventions apply when reconciling STL amounts in Pagos:

  * Sale amount, credit: Positive (+)
  * Sale amount, debit: Negative (-)
  * Fee amount, credit: Negative (-)
  * Fee amount, debit: Positive (+)
</Note>

When reviewing data at the **summary level**, compare the total daily settlement amount by currency from the STL report against your Pagos disbursement records for each day in the validation period. If you're reviewing at the **record level**, download the STL row details and compare them against your Pagos records based on disbursement date; each row represents a single day's settlement for a *single currency*.

When validating disbursements, make sure you are comparing amounts at the currency level rather than in aggregate across currencies.

The following fields match 100% of the downloaded STL records:

* **Merchant Account Identifier** (from STL section header)
* **Created Date**
* **Amount** and **Currency** (if applicable)
* **Disbursement Date**
* **Disbursement Status**

### Comparing Fee Data

Pagos creates fee records for PayPal based on the daily Settlement Report (STL). Fee details are captured at the transaction level in the fee details table, with the fees table representing a rollup of those records. Keep in mind, the same amount sign conventions apply to your fee data as to your [disbursements](#comparing-disbursement-data).

When reviewing data at the **summary level**, compare the total daily fee amount by currency from the STL report against your Pagos fee records for each day in the validation period. If you're reviewing at the **record level**, download the total fee amounts by currency in the STL report and compare them against the total fee records in Pagos for the same day.

The following fields match 100% of the downloaded STL records:

* **Transaction ID** - STL transaction reference
* **Invoice ID** - PayPal order reference
* **Merchant Account Identifier** (from STL section header)
* **Transaction Date** - Transaction initiation date
* **Gross Transaction Amount and Currency**
* **Fee Amount and Currency** (negative if fee debit/credit = CR)
* **Transaction Event Code** (mapped to fee type and original description in Pagos)
* **Reporting Period Start Date**

## Still Seeing a Difference?

If you've worked through the framework above and still see an unexplained gap, reach out to your Pagos Account Manager with the following context:

* Which area of the Pagos Service Panel you're reviewing
* Which PayPal report you're comparing against
* The date range and merchant account(s) in scope
* Whether the difference is in count, amount, or both
