> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# GET /reports/{report_id}

**Get a report**

Returns a report using its ID.

**Required permissions:** `report.read`

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `report_id` | string | required | Paddle ID of the report entity. |

## Response (200)

- `data` (required) — Represents a report entity.
  - Adjustments reports — Entity when working with reports for adjustments or adjustment line items.
    - `id`: string (required) — Unique Paddle ID for this report, prefixed with `rep_` (pattern: `^[a-z]{3,10}_[a-z\d]{26}$`)
    - `status`: string (required) — Status of this report. Set automatically by Paddle.

Reports are created as `pending` initially, then move to `ready` when they're available to download. (default: `"pending"`)
      - `pending` — Report created, but Paddle is processing it. It's not yet ready for download.
      - `ready` — Report fully processed by Paddle and ready for download.
      - `failed` — There was a problem processing this report.
      - `expired` — Report has expired and is no longer accessible.
    - `rows`: integer | null (required) — Number of records in this report. `null` if the report is `pending`.
    - `expires_at`: string (date-time) | null (required) — RFC 3339 datetime string of when this report expires. The report is no longer available to download after this date.
    - `updated_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was last updated.
    - `created_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was created.
    - `type`: string (required) — Type of report to create.
      - `adjustments` — Adjustments reports contain information about refunds, credits, and chargebacks.
      - `adjustment_line_items` — Adjustments reports contain information about refunds, credits, and chargebacks. The report is broken down by line item level.
    - `filters`: array (required) — Filter criteria for this report. If no `gte` filter for `updated_at` is passed, reports are filtered to include data updated in the last month. This means `updated_at` is greater than or equal to (`gte`) the same date and time one calendar month before the report was generated, so the window is between 28 and 31 days depending on the month. (Items: max 10)
      - `name`: string (required) — Field name to filter by.
        - `action` — Filter by adjustment action. Pass an array of strings containing any valid value for the `action` field against an adjustment.
        - `currency_code` — Filter by transaction or adjustment currency. Pass an array of strings containing any valid supported three-letter ISO 4217 currency code.
        - `status` — Filter by transaction or adjustment status. Pass an array of strings containing any valid value for the `status` field against a transaction or an adjustment.
        - `updated_at` — Filter by transaction or adjustment updated date. Pass an RFC 3339 datetime string.
      - `operator`: string | null (required) — Operator to use when filtering. Valid when filtering by `updated_at`, `null` otherwise.
        - `lt` — Less than.
        - `gte` — Greater than or equal to.
      - `value` (required) — Value to filter by. Check the allowed values descriptions for the `name` field to see valid values for a field.
        - Array of string
          - `pending_approval` — Adjustment is pending approval by Paddle. Most refunds for live accounts must be approved by Paddle.
          - `approved` — Adjustment is approved. Default for credits. Set when Paddle approves a refund that was `pending_approval`.
          - `rejected` — Adjustment has been rejected. Set when Paddle rejects a refund that was `pending_approval`.
          - `reversed` — Adjustment has been reversed. Set by Paddle when a `chargeback_reversal` or `credit_reversal` adjustment is created for this adjustment.
        - Array of AdjustmentAction
          - `credit` — Credits some or all the related transaction.
          - `refund` — Refunds some or all the related transaction. Must be approved by Paddle in most cases.
          - `chargeback` — Chargeback for the related transaction. Automatically created by Paddle when a customer successfully disputes a charge.
          - `chargeback_reverse` — Reversal of a chargeback for the related transaction. Automatically created by Paddle when Paddle contests a chargeback successfully.
          - `chargeback_warning` — Warning of an upcoming chargeback for the related transaction. Automatically created by Paddle.
          - `chargeback_warning_reverse` — Reversal of a chargeback warning for the related transaction. Automatically created by Paddle.
          - `credit_reverse` — Reversal of a credit for the related transaction. Automatically created by Paddle.
        - Timestamp — RFC 3339 datetime string.
        - string (date)
        - Array of string
        - string
  - Transactions reports — Entity when working with reports for transaction or transaction line items.
    - `id`: string (required) — Unique Paddle ID for this report, prefixed with `rep_` (pattern: `^[a-z]{3,10}_[a-z\d]{26}$`)
    - `status`: string (required) — Status of this report. Set automatically by Paddle.

Reports are created as `pending` initially, then move to `ready` when they're available to download. (default: `"pending"`)
      - `pending` — Report created, but Paddle is processing it. It's not yet ready for download.
      - `ready` — Report fully processed by Paddle and ready for download.
      - `failed` — There was a problem processing this report.
      - `expired` — Report has expired and is no longer accessible.
    - `rows`: integer | null (required) — Number of records in this report. `null` if the report is `pending`.
    - `expires_at`: string (date-time) | null (required) — RFC 3339 datetime string of when this report expires. The report is no longer available to download after this date.
    - `updated_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was last updated.
    - `created_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was created.
    - `type`: string (required) — Type of report to create.
      - `transactions` — Transactions reports contain information about revenue received, past due invoices, draft and issued invoices, and canceled transactions.
      - `transaction_line_items` — Transactions reports contain information about revenue received, past due invoices, draft and issued invoices, and canceled transactions. The report is broken down by line item level.
    - `filters`: array (required) — Filter criteria for this report. If no `gte` filter for `updated_at` is passed, reports are filtered to include data updated in the last month. This means `updated_at` is greater than or equal to (`gte`) the same date and time one calendar month before the report was generated, so the window is between 28 and 31 days depending on the month. (Items: max 10)
      - `name`: string (required) — Field name to filter by.
        - `collection_mode` — Filter by collection mode. Pass an array of strings containing any valid value for the `collection_mode` field against a transaction.
        - `currency_code` — Filter by transaction or adjustment currency. Pass an array of strings containing any valid supported three-letter ISO 4217 currency code.
        - `origin` — Filter by transaction origin. Pass an array of strings containing any valid value for the origin field against a transaction.
        - `status` — Filter by transaction or adjustment status. Pass an array of strings containing any valid value for the `status` field against a transaction or an adjustment.
        - `updated_at` — Filter by transaction or adjustment updated date. Pass an RFC 3339 datetime string.
      - `operator`: string | null (required) — Operator to use when filtering. Valid when filtering by `updated_at`, `null` otherwise.
        - `lt` — Less than.
        - `gte` — Greater than or equal to.
      - `value` (required) — Value to filter by. Check the allowed values descriptions for the `name` field to see valid values for a field.
        - Array of string
        - string
  - Products and prices report — Entity when working with a products and prices report.
    - `id`: string (required) — Unique Paddle ID for this report, prefixed with `rep_` (pattern: `^[a-z]{3,10}_[a-z\d]{26}$`)
    - `status`: string (required) — Status of this report. Set automatically by Paddle.

Reports are created as `pending` initially, then move to `ready` when they're available to download. (default: `"pending"`)
      - `pending` — Report created, but Paddle is processing it. It's not yet ready for download.
      - `ready` — Report fully processed by Paddle and ready for download.
      - `failed` — There was a problem processing this report.
      - `expired` — Report has expired and is no longer accessible.
    - `rows`: integer | null (required) — Number of records in this report. `null` if the report is `pending`.
    - `expires_at`: string (date-time) | null (required) — RFC 3339 datetime string of when this report expires. The report is no longer available to download after this date.
    - `updated_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was last updated.
    - `created_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was created.
    - `type`: string (required) — Type of report to create.
      - `products_prices` — Products and prices reports contain information about your products and prices. May include non-catalog products and prices.
    - `filters`: array (required) — Filter criteria for this report. `product_updated_at` and `price_updated_at` are defaulted independently: a field with no `gte` filter is filtered to include data updated in the last month, even when the other field has one. This means the field is set to greater than or equal to (`gte`) the same date and time one calendar month before the report was generated, so the window is between 28 and 31 days depending on the month. (Items: max 10)
      - `name`: string (required) — Field name to filter by.
        - `product_status` — Filter by product status. Pass an array of strings containing any valid value for the `status` field against a product.
        - `price_status` — Filter by price status. Pass an array of strings containing any valid value for the `status` field against a price.
        - `product_type` — Filter by product type. Pass an array of strings containing any valid value for the `type` field against a product.
        - `price_type` — Filter by price type. Pass an array of strings containing any valid value for the `type` field against a price.
        - `product_updated_at` — Filter by product `updated_at` date. Pass an RFC 3339 datetime string.
        - `price_updated_at` — Filter by price `updated_at` date. Pass an RFC 3339 datetime string.
      - `operator`: string | null (required) — Operator to use when filtering. Valid when filtering by `updated_at`, `null` otherwise.
        - `lt` — Less than.
        - `gte` — Greater than or equal to.
      - `value` (required) — Value to filter by.
        - Array of string
        - string
  - Discounts report — Entity when working with a discounts report.
    - `id`: string (required) — Unique Paddle ID for this report, prefixed with `rep_` (pattern: `^[a-z]{3,10}_[a-z\d]{26}$`)
    - `status`: string (required) — Status of this report. Set automatically by Paddle.

Reports are created as `pending` initially, then move to `ready` when they're available to download. (default: `"pending"`)
      - `pending` — Report created, but Paddle is processing it. It's not yet ready for download.
      - `ready` — Report fully processed by Paddle and ready for download.
      - `failed` — There was a problem processing this report.
      - `expired` — Report has expired and is no longer accessible.
    - `rows`: integer | null (required) — Number of records in this report. `null` if the report is `pending`.
    - `expires_at`: string (date-time) | null (required) — RFC 3339 datetime string of when this report expires. The report is no longer available to download after this date.
    - `updated_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was last updated.
    - `created_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was created.
    - `type`: string (required) — Type of report to create.
      - `discounts` — Discounts reports contain information about your product and checkout discounts.
    - `filters`: array (required) — Filter criteria for this report. If no `gte` filter for `updated_at` is passed, reports are filtered to include data updated in the last month. This means `updated_at` is greater than or equal to (`gte`) the same date and time one calendar month before the report was generated, so the window is between 28 and 31 days depending on the month. (Items: max 10)
      - `name`: string (required) — Field name to filter by.
        - `type` — Filter by discount type. Pass an array of strings containing any valid value for the `type` field against a discount.
        - `status` — Filter by discount status. Pass an array of strings containing any valid value for the `status` field against a discount.
        - `updated_at` — Filter by discount updated date. Pass an RFC 3339 datetime string.
      - `operator`: string | null (required) — Operator to use when filtering. Valid when filtering by `updated_at`, `null` otherwise.
        - `lt` — Less than.
        - `gte` — Greater than or equal to.
      - `value` (required) — Value to filter by. Check the allowed values descriptions for the `name` field to see valid values for a field.
        - Array of string
        - string
  - Balance report — Entity when working with a balance report. Deprecated.
    - `id`: string (required) — Unique Paddle ID for this report, prefixed with `rep_` (pattern: `^[a-z]{3,10}_[a-z\d]{26}$`)
    - `status`: string (required) — Status of this report. Set automatically by Paddle.

Reports are created as `pending` initially, then move to `ready` when they're available to download. (default: `"pending"`)
      - `pending` — Report created, but Paddle is processing it. It's not yet ready for download.
      - `ready` — Report fully processed by Paddle and ready for download.
      - `failed` — There was a problem processing this report.
      - `expired` — Report has expired and is no longer accessible.
    - `rows`: integer | null (required) — Number of records in this report. `null` if the report is `pending`.
    - `expires_at`: string (date-time) | null (required) — RFC 3339 datetime string of when this report expires. The report is no longer available to download after this date.
    - `updated_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was last updated.
    - `created_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was created.
    - `type`: string (required) — Type of report to create.
      - `balance` — Balance reports contain information about your account balance activity, including all movements of funds in and out of your balance. Deprecated.
    - `filters`: array (required) — Filter criteria for this report. If no `gte` filter for `updated_at` is passed, reports are filtered to include data updated in the last month. This means `updated_at` is greater than or equal to (`gte`) the same date and time one calendar month before the report was generated, so the window is between 28 and 31 days depending on the month. (Items: max 10)
      - `name`: string (required) — Field name to filter by.
        - `updated_at` — Filter by balance change updated date. Pass an RFC 3339 datetime string.
      - `operator`: string | null (required) — Operator to use when filtering. Valid when filtering by `updated_at`, `null` otherwise.
        - `lt` — Less than.
        - `gte` — Greater than or equal to.
      - `value` (required) — Value to filter by. Check the allowed values descriptions for the `name` field to see valid values for a field.
        - Array of string
        - string
  - Payout reconciliation report — Entity when working with a reconciliation report.
    - `id`: string (required) — Unique Paddle ID for this report, prefixed with `rep_` (pattern: `^[a-z]{3,10}_[a-z\d]{26}$`)
    - `status`: string (required) — Status of this report. Set automatically by Paddle.

Reports are created as `pending` initially, then move to `ready` when they're available to download. (default: `"pending"`)
      - `pending` — Report created, but Paddle is processing it. It's not yet ready for download.
      - `ready` — Report fully processed by Paddle and ready for download.
      - `failed` — There was a problem processing this report.
      - `expired` — Report has expired and is no longer accessible.
    - `rows`: integer | null (required) — Number of records in this report. `null` if the report is `pending`.
    - `expires_at`: string (date-time) | null (required) — RFC 3339 datetime string of when this report expires. The report is no longer available to download after this date.
    - `updated_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was last updated.
    - `created_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was created.
    - `type`: string (required) — Type of report to create.
      - `payout_reconciliation` — Payout reconciliation reports contain information about your payout activity, including all transactions and adjustments that make up specific payouts.
    - `filters`: array (required) — Filter criteria for this report. If none of a `gte` filter for `transaction_updated_at`, a `remittance_reference` filter, or a `balance_movement_date` filter is passed, reports are filtered to include data updated in the last month. This means `transaction_updated_at` is greater than or equal to (`gte`) the same date and time one calendar month before the report was generated, so the window is between 28 and 31 days depending on the month. (Items: max 10)
      - `name`: string (required) — Field name to filter by.
        - `remittance_reference` — Filter by remittance reference. Pass an array with one string containing a remittance reference.
        - `transaction_updated_at` — Filter by transaction updated date. Pass an RFC 3339 datetime string.
        - `balance_movement_date` — Filter by the date the balance movement occurred. Pass an RFC 3339 datetime string.
        - `balance_movement_type` — Filter by balance movement type. Pass one or more values from the `BalanceMovementType` enum.
      - `operator`: string | null (required) — Operator to use when filtering. Valid when filtering by `transaction_updated_at` or `balance_movement_date`, must be `null` otherwise.
        - `lt` — Less than.
        - `gte` — Greater than or equal to.
      - `value` (required) — Value to filter by. Check the allowed values descriptions for the `name` field to see valid values for a field.
        - Array of string
        - string
        - Array of BalanceMovementType
          - `rebate` — A manual adjustment to your balance that isn't tied to a specific transaction.
          - `swift_fee` — A SWIFT or wire-transfer fee deducted when your payout is made. It isn't tied to a specific transaction.
          - `sale` — Your earnings from a paid transaction. This is the most common balance movement.
          - `refund` — Refunds some or all the related transaction. Must be approved by Paddle in most cases.
          - `chargeback_warning` — Warning of an upcoming chargeback for the related transaction. Automatically created by Paddle.
          - `chargeback_warning_reverse` — Reversal of a chargeback warning for the related transaction. Automatically created by Paddle.
          - `chargeback` — Chargeback for the related transaction. Automatically created by Paddle when a customer successfully disputes a charge.
          - `chargeback_reverse` — Reversal of a chargeback for the related transaction. Automatically created by Paddle when Paddle contests a chargeback successfully.
          - `credit` — Credits some or all the related transaction.
  - Checkouts report — Entity when working with a checkouts report.
    - `id`: string (required) — Unique Paddle ID for this report, prefixed with `rep_` (pattern: `^[a-z]{3,10}_[a-z\d]{26}$`)
    - `status`: string (required) — Status of this report. Set automatically by Paddle.

Reports are created as `pending` initially, then move to `ready` when they're available to download. (default: `"pending"`)
      - `pending` — Report created, but Paddle is processing it. It's not yet ready for download.
      - `ready` — Report fully processed by Paddle and ready for download.
      - `failed` — There was a problem processing this report.
      - `expired` — Report has expired and is no longer accessible.
    - `rows`: integer | null (required) — Number of records in this report. `null` if the report is `pending`.
    - `expires_at`: string (date-time) | null (required) — RFC 3339 datetime string of when this report expires. The report is no longer available to download after this date.
    - `updated_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was last updated.
    - `created_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was created.
    - `type`: string (required) — Type of report to create.
      - `checkouts` — Checkouts reports contain information about your checkouts, including conversion and recovery data for each checkout session.
    - `filters`: array (required) — Filter criteria for this report. If no `gte` filter for `checkout_created_at` is passed, reports are filtered to include checkouts created in the last month. This means `checkout_created_at` is greater than or equal to (`gte`) the same date and time one calendar month before the report was generated, so the window is between 28 and 31 days depending on the month. To filter by a specific date range, pass two `checkout_created_at` filters with `gte` and `lt` operators. (Items: max 10)
      - `name`: string (required) — Field name to filter by.
        - `checkout_created_at` — Filter by checkout creation date. Pass an RFC 3339 datetime string. Combine two `checkout_created_at` filters with `gte` and `lt` operators to scope reports to a specific date range.
        - `customer_country_code` — Filter by customer country. Pass an array of strings containing any valid two-letter ISO 3166-1 alpha-2 country code.
      - `operator`: string | null (required) — Operator to use when filtering. Valid when filtering by `checkout_created_at` (must be `gte` or `lt`), `null` otherwise.
        - `lt` — Less than.
        - `gte` — Greater than or equal to.
      - `value` (required) — Value to filter by. Check the allowed values descriptions for the `name` field to see valid values for a field.
        - Array of string
        - string
  - Subscriptions report — Entity when working with a subscriptions report.
    - `id`: string (required) — Unique Paddle ID for this report, prefixed with `rep_` (pattern: `^[a-z]{3,10}_[a-z\d]{26}$`)
    - `status`: string (required) — Status of this report. Set automatically by Paddle.

Reports are created as `pending` initially, then move to `ready` when they're available to download. (default: `"pending"`)
      - `pending` — Report created, but Paddle is processing it. It's not yet ready for download.
      - `ready` — Report fully processed by Paddle and ready for download.
      - `failed` — There was a problem processing this report.
      - `expired` — Report has expired and is no longer accessible.
    - `rows`: integer | null (required) — Number of records in this report. `null` if the report is `pending`.
    - `expires_at`: string (date-time) | null (required) — RFC 3339 datetime string of when this report expires. The report is no longer available to download after this date.
    - `updated_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was last updated.
    - `created_at`: string (date-time) (required) — RFC 3339 datetime string of when this report was created.
    - `type`: string (required) — Type of report to create.
      - `subscriptions` — Subscriptions reports contain information about your subscriptions, including status, items, billing cycle, billing dates, and customer location. Reports contain the current state of each subscription.
    - `filters`: array (required) — Filter criteria for this report. Subscriptions reports have no default date range. If you don't pass a `subscription_created_at` filter, reports include all your subscriptions. To filter by a specific date range, pass two `subscription_created_at` filters with `gte` and `lt` operators. (Items: max 10)
      - `name`: string (required) — Field name to filter by.
        - `subscription_status` — Filter by subscription status. Pass one or more values from the `SubscriptionStatusFilter` enum.
        - `subscription_created_at` — Filter by subscription creation date. Pass an RFC 3339 datetime string. Combine two `subscription_created_at` filters with `gte` and `lt` operators to scope reports to a specific date range.
        - `customer_country_code` — Filter by customer country. Pass an array of strings containing any valid two-letter ISO 3166-1 alpha-2 country code.
        - `subscription_scheduled_change_action` — Filter by the change scheduled on a subscription. Pass one or more values from the `SubscriptionScheduledChangeActionFilter` enum.
      - `operator`: string | null (required) — Operator to use when filtering. Valid when filtering by `subscription_created_at` (must be `gte` or `lt`), `null` otherwise.
        - `lt` — Less than.
        - `gte` — Greater than or equal to.
      - `value` (required) — Value to filter by. Check the allowed values descriptions for the `name` field to see valid values for a field.
        - Array of string
        - string
        - Array of SubscriptionStatusFilter
          - `active` — Include subscriptions that Paddle is billing for and that aren't past due.
          - `canceled` — Include subscriptions that are canceled.
          - `past_due` — Include subscriptions that have an overdue payment.
          - `paused` — Include subscriptions that are paused.
          - `trialing` — Include subscriptions that are in trial.
        - Array of SubscriptionScheduledChangeActionFilter
          - `cancel` — Include subscriptions with a scheduled change to cancel.
          - `pause` — Include subscriptions with a scheduled change to pause.
          - `resume` — Include subscriptions with a scheduled change to resume. Only applies to paused subscriptions.
          - `none` — Include subscriptions that don't have a scheduled change.
- `meta`: object (required) — Information about this response.
  - `request_id`: string (required) — Unique ID for the request relating to this response. Provide this when contacting Paddle support about a specific request.

### Response example

```json
{
  "data": {
    "id": "rep_01hvgdhtthn1q35n79dgeqm3pv",
    "type": "transactions",
    "rows": 27,
    "status": "ready",
    "filters": [
      {
        "name": "collection_mode",
        "value": [
          "manual"
        ],
        "operator": null
      },
      {
        "name": "updated_at",
        "value": "2024-04-15",
        "operator": "lt"
      },
      {
        "name": "updated_at",
        "value": "2024-01-01",
        "operator": "gte"
      }
    ],
    "expires_at": "2024-04-29T08:21:44.970769Z",
    "created_at": "2024-04-15T08:21:36.209Z",
    "updated_at": "2024-04-15T08:21:44.970774Z"
  },
  "meta": {
    "request_id": "2a174f15-0ae6-4330-bf19-aae16a04d838"
  }
}
```
