# List all payments

```
GET 
https://api.freemius.com/v1/products/{product_id}/payments.json
```

#### Auth:Bearer TokenSCOPE: <!-- -->PRODUCT

Product-scoped API tokens allow you to operate on the product itself. This token usually allows read-only access to the product configuration and write access to several operations on subscriptions, customers, payments, and more. For most SaaS or app integrations, this is the token you will need.

1. Go to the [Freemius Developer Dashboard](https://dashboard.freemius.com/).
2. Open the Settings page of the relevant product.
3. Click the API & Keys tab.
4. Copy the API Bearer Authorization Token from the UI.

***

Retrieve the payment collection associated with the product.

### Filtering and searching[​](#filtering-and-searching "Direct link to Filtering and searching")

You search and/or filter payments with these parameters:

* `search` - You can search by `payment_id`, `external_payment_id`, or `user_email`. It can be a number or string.
* `user_id` - If you are looking to list all payments for a specific user use this.
* `billing_cycle` - Filter payments by billing cycle. `0` means lifetime payments.
* `currency` - Filter payments by currency.
* `coupon_id` - Filter payments by coupon ID.
* `filter` - Filter payments by different types: `all`, `refunds`, `not_refunded`, `disputed`, `won_disputes`, `chargebacks`.

Please see the parameters in the responses body for more information.

## Request[​](#request "Direct link to request")

### Path Parameters

* **product\_id**
  <!-- -->
  integer\<int64>[](#param-property-payments-list-param-path-product-id "Direct link to product_id")required

  The ID of the product.

  **Possible values:** `>= 1`

  **Example:<!-- -->&#x20;**`1234`

### Query Parameters

* **search**
  <!-- -->
  string[](#param-property-payments-list-param-query-search "Direct link to search")

  Search by `payment_id`, `external_payment_id`, or `user_email`.

  **search\_user\_id**
  <!-- -->
  string\<int64>[](#param-property-payments-list-param-query-search-user-id "Direct link to search_user_id")

  User ID to filter with.

  **Possible values:** `>= 1`

  **Example:<!-- -->&#x20;**`123456`

  **billing\_cycle**
  <!-- -->
  number[](#param-property-payments-list-param-query-billing-cycle "Direct link to billing_cycle")

  Filter by billing cycle.

  **Possible values:** \[`1`, `12`, `0`]

  **currency**
  <!-- -->
  string[](#param-property-payments-list-param-query-currency "Direct link to currency")

  **Possible values:** `>= 3 characters` and `<= 3 characters`, \[`usd`, `eur`, `gbp`]

  **coupon\_id**
  <!-- -->
  string\<int64>[](#param-property-payments-list-param-query-coupon-id "Direct link to coupon_id")

  Filter payments by coupon ID.

  **Possible values:** `>= 1`

  **Example:<!-- -->&#x20;**`123456`

  **filter**
  <!-- -->
  string[](#param-property-payments-list-param-query-filter "Direct link to filter")

  **Default value:<!-- -->&#x20;**`all`

  Filter payments by different types

  **Possible values:** \[`all`, `refunds`, `not_refunded`, `disputed`, `won_disputes`, `chargebacks`]

  **extended**
  <!-- -->
  boolean[](#param-property-payments-list-param-query-extended "Direct link to extended")

  **Default value:<!-- -->&#x20;**`false`

  If true, loads linked user, plan and subscription.

  **to**
  <!-- -->
  string\<date-time>[](#param-property-payments-list-param-query-to "Direct link to to")

  The end of the date range in YYYY-MM-DD HH:MM:SS format

  **Example:<!-- -->&#x20;**`2025-08-01 00:00:00`

  **from**
  <!-- -->
  string\<date-time>[](#param-property-payments-list-param-query-from "Direct link to from")

  The start of the date range in YYYY-MM-DD HH:MM:SS format

  **Example:<!-- -->&#x20;**`2025-08-01 00:00:00`

  **count**
  <!-- -->
  integer[](#param-property-payments-list-param-query-count "Direct link to count")

  **Default value:<!-- -->&#x20;**`25`

  The number of records to return.

  **Possible values:** `>= 1` and `<= 50`

  **Example:<!-- -->&#x20;**`10`

  **offset**
  <!-- -->
  integer[](#param-property-payments-list-param-query-offset "Direct link to offset")

  **Default value:<!-- -->&#x20;**`0`

  The number of records to skip before starting to return records. Default is 0.

  **Possible values:** `>= 0`

  **Example:<!-- -->&#x20;**`10`

  **fields**
  <!-- -->
  string[](#param-property-payments-list-param-query-fields "Direct link to fields")

  Comma separated list of fields to return in the response. If not specified, all fields are returned.

  **Example:<!-- -->&#x20;**`id,name,slug`

<!-- -->

## Responses[​](#responses "Direct link to Responses")

* 200
* 400
* 401
* 402
* 404

The payment collection.

application/json

**Schema**

**payments** <!-- -->object\[]

* Array \[

**user\_id**string\<int64>[](#schema-property-payments-list-response-schema-user-id-string-int64 "Direct link to user_id")

The ID of the user the entity belongs to.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**install\_id**string\<int64>[](#schema-property-payments-list-response-schema-install-id-string-int64 "Direct link to install_id")nullable

The ID of the installation or site the entity is associated with, a `null` value means it has not been associated with an installation yet.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**plan\_id**string\<int64>[](#schema-property-payments-list-response-schema-plan-id-string-int64 "Direct link to plan_id")

The ID of the plan associated with the entity.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**pricing\_id**string\<int64>[](#schema-property-payments-list-response-schema-pricing-id-string-int64 "Direct link to pricing_id")

The ID of the pricing associated with the entity.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**license\_id**string\<int64>[](#schema-property-payments-list-response-schema-license-id-string-int64 "Direct link to license_id")

The ID of the license associated with the entity.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**ip**string\<ipv4|ipv6>[](#schema-property-payments-list-response-schema-ip-string-ipv4-ipv6 "Direct link to ip")nullable

The IP address associated with the entity.

**Example:<!-- -->&#x20;**`0.0.0.0`

**country\_code**string[](#schema-property-payments-list-response-schema-country-code-string "Direct link to country_code")

The [ISO 3166-1 alpha 2](http://www.wikiwand.com/en/ISO_3166-1_alpha-2) two-letter country code associated with the entity.

**Example:<!-- -->&#x20;**`us`

**zip\_postal\_code**string[](#schema-property-payments-list-response-schema-zip-postal-code-string "Direct link to zip_postal_code")nullable

The postal/zip code of the location.

**Example:<!-- -->&#x20;**`92710`

**vat\_id**string[](#schema-property-payments-list-response-schema-vat-id-string "Direct link to vat_id")nullable

The business VAT number (EU or UK territories) or other tax ID (for example Sales Tax ID for the US).

**Example:<!-- -->&#x20;**`GB12345678`

**coupon\_id**string\<int64>[](#schema-property-payments-list-response-schema-coupon-id-string-int64 "Direct link to coupon_id")nullable

The ID of the coupon associated with the entity.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**user\_card\_id**string\<int64>[](#schema-property-payments-list-response-schema-user-card-id-string-int64 "Direct link to user_card_id")

The ID of the user card that was used for this payment.

**Example:<!-- -->&#x20;**`12345`

**source**number[](#schema-property-payments-list-response-schema-source-number "Direct link to source")

The source of the migration data. To get support migrating from other platform please see our [documentation](https://freemius.com/help/documentation/migration/).

* `0` - Freemius
* `1` - Other
* `2` - Easy Digital Downloads (EDD)
* `3` - WooCommerce (WC)
* `4` - Rating Widget
* `5` - Gumroad
* `6` - CodeCanyon
* `7` - ThemeForest
* `8` - AppSumo
* `9` - SendOwl
* `10` - WHMCS
* `11` - Lemon Squeezy

**Possible values:** \[`0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`]

**plugin\_id**string\<int64>[](#schema-property-payments-list-response-schema-plugin-id-string-int64 "Direct link to plugin_id")

The ID of the product the entity belongs to.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**external\_id**string[](#schema-property-payments-list-response-schema-external-id-string "Direct link to external_id")

The external ID of the gateway entity.

**Example:<!-- -->&#x20;**`abcde12345`

**gateway**string[](#schema-property-payments-list-response-schema-gateway-string "Direct link to gateway")nullable

The gateway used for the purchase. The gateway will be set to `null` when purchasing a product with a 100% discount.

**environment**number[](#schema-property-payments-list-response-schema-environment-number "Direct link to environment")

The environment the entity belongs to. 0 means it belongs to the production environment, 1 means it belongs to the sandbox environment.

**Possible values:** \[`1`, `0`]

**Example:<!-- -->&#x20;**`0`

**id**string\<int64>[](#schema-property-payments-list-response-schema-id-string-int64 "Direct link to id")

The unique identifier of the entity.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**created**string\<date-time>[](#schema-property-payments-list-response-schema-created-string-date-time "Direct link to created")

The date and time the entity was created, under UTC timezone.

**Example:<!-- -->&#x20;**`2025-01-01 00:00:00`

**updated**string\<date-time>[](#schema-property-payments-list-response-schema-updated-string-date-time "Direct link to updated")nullable

The date and time the entity was updated, under UTC timezone. If `null` then the entity was never updated since its creation.

**Example:<!-- -->&#x20;**`2025-01-01 00:00:00`

**currency**string[](#schema-property-payments-list-response-schema-currency-string "Direct link to currency")

3-char currency code.

**Possible values:** `>= 3 characters` and `<= 3 characters`, \[`usd`, `eur`, `gbp`]

**refund\_reason**string[](#schema-property-payments-list-response-schema-refund-reason-string "Direct link to refund_reason")nullable

If the payment is refunded, this will contain the reason.

**Example:<!-- -->&#x20;**`Refunded due to a bug in the plugin.`

**subscription\_id**string\<int64>[](#schema-property-payments-list-response-schema-subscription-id-string-int64 "Direct link to subscription_id")nullable

The ID of the subscription associated with the entity.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**payment\_presentment\_id**string\<int64>[](#schema-property-payments-list-response-schema-payment-presentment-id-string-int64 "Direct link to payment_presentment_id")

The ID of the presentment payment.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**gross**number\<float>[](#schema-property-payments-list-response-schema-gross-number-float "Direct link to gross")

The payment amount (not including taxes).

**Example:<!-- -->&#x20;**`2075.45`

**bound\_payment\_id**string\<int64>[](#schema-property-payments-list-response-schema-bound-payment-id-string-int64 "Direct link to bound_payment_id")

The ID of the payment that this payment is bound to, in case of a refund or chargeback/dispute.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**gateway\_fee**number\<float>[](#schema-property-payments-list-response-schema-gateway-fee-number-float "Direct link to gateway_fee")

**Default value:<!-- -->&#x20;**`0`

The fee that the gateway took for processing this payment.

**Example:<!-- -->&#x20;**`2.99`

**vat**number[](#schema-property-payments-list-response-schema-vat-number "Direct link to vat")

**Default value:<!-- -->&#x20;**`0`

The actual tax amount. It could be any kind of tax, not necessarily VAT. For example we support US Sales Tax.

**Example:<!-- -->&#x20;**`1.24`

**is\_renewal**boolean[](#schema-property-payments-list-response-schema-is-renewal-boolean "Direct link to is_renewal")

**Default value:<!-- -->&#x20;**`false`

If the payment is a renewal.

**type**string[](#schema-property-payments-list-response-schema-type-string "Direct link to type")

**Default value:<!-- -->&#x20;**`payment`

The type of the payment.

**Possible values:** \[`payment`, `refund`, `disputed`, `won_dispute`, `lost_dispute`, `chargeback`]

**email**string[](#schema-property-payments-list-response-schema-email-string "Direct link to email")

Email address of the person.

**Example:<!-- -->&#x20;**`jane@example.com`

**url**string[](#schema-property-payments-list-response-schema-url-string "Direct link to url")nullable

The site URL.

**Example:<!-- -->&#x20;**`https://example.com`

**billing\_cycle**number[](#schema-property-payments-list-response-schema-billing-cycle-number "Direct link to billing_cycle")

The billing cycle of the subscription in number of months. 1 means monthly, 12 means annually, 0 means lifetime usually when subscriptions are created for lifetime trials.

**Possible values:** \[`1`, `12`, `0`]

**plan\_name**string[](#schema-property-payments-list-response-schema-plan-name-string "Direct link to plan_name")

Name of the plan the payment is associated with.

* ]

**discounts** <!-- -->object\[]

* Array \[

**id**string\<int64>[](#schema-property-payments-list-response-schema-id-string-int64 "Direct link to id")

The unique identifier of the entity.

**Possible values:** `>= 1`

**Example:<!-- -->&#x20;**`123456`

**created**string\<date-time>[](#schema-property-payments-list-response-schema-created-string-date-time "Direct link to created")

The date and time the entity was created, under UTC timezone.

**Example:<!-- -->&#x20;**`2025-01-01 00:00:00`

**updated**string\<date-time>[](#schema-property-payments-list-response-schema-updated-string-date-time "Direct link to updated")nullable

The date and time the entity was updated, under UTC timezone. If `null` then the entity was never updated since its creation.

**Example:<!-- -->&#x20;**`2025-01-01 00:00:00`

**entity\_id**string\<int64>[](#schema-property-payments-list-response-schema-entity-id-string-int64 "Direct link to entity_id")

The ID of the related entity.

**Possible values:** `>= 1`

**entity\_type**string[](#schema-property-payments-list-response-schema-entity-type-string "Direct link to entity_type")

**Default value:<!-- -->&#x20;**`payment`

The type of the related entity. Defaults to `payment`.

**Possible values:** \[`payment`, `subscription`]

**type**string[](#schema-property-payments-list-response-schema-type-string "Direct link to type")

**Default value:<!-- -->&#x20;**`prorate`

The type of discount. Possible values are `prorate` and `subscription_cancellation`. Defaults to `prorate`.

**Possible values:** \[`prorate`, `subscription_cancellation`]

**discount**number\<float>[](#schema-property-payments-list-response-schema-discount-number-float "Direct link to discount")

Discount amount in USD.

**Example:<!-- -->&#x20;**`10.0`

**coupon\_id**string\<int64>[](#schema-property-payments-list-response-schema-coupon-id-string-int64 "Direct link to coupon_id")

The ID of the related coupon.

**Possible values:** `>= 1`

* ]

Bad request. The request could not be understood by the server due to malformed syntax or arguments.

application/json

**Schema**

**path**string[](#schema-property-payments-list-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-payments-list-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-payments-list-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-payments-list-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-payments-list-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-payments-list-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-payments-list-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`

Unauthorized access error. The request requires [authentication](https://freemius.com/help/api/#bearer-token-authentication) but was not provided or the provided authentication does not satisfy the required permissions.

application/json

**Schema**

**path**string[](#schema-property-payments-list-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-payments-list-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-payments-list-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-payments-list-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-payments-list-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-payments-list-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-payments-list-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`

The request is missing the specified argument.

application/json

**Schema**

**path**string[](#schema-property-payments-list-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-payments-list-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-payments-list-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-payments-list-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-payments-list-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-payments-list-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-payments-list-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`

The requested resource was not found.

application/json

**Schema**

**path**string[](#schema-property-payments-list-response-schema-path-string "Direct link to path")

The API request path.

**Example:<!-- -->&#x20;**`:/products/product_id/users.json`

**error** <!-- -->object

This object contains the error details.

**type**string[](#schema-property-payments-list-response-schema-type-string "Direct link to type")

The type of the error encountered by the server.

**Example:<!-- -->&#x20;**`UnauthorizedAccess`

**message**string[](#schema-property-payments-list-response-schema-message-string "Direct link to message")

The descriptive error message.

**Example:<!-- -->&#x20;**`Some error has occured.`

**code**string[](#schema-property-payments-list-response-schema-code-string "Direct link to code")

The error code.

**Example:<!-- -->&#x20;**`unauthorized_access`

**http**integer[](#schema-property-payments-list-response-schema-http-integer "Direct link to http")

The HTTP status code returned by the server.

**Example:<!-- -->&#x20;**`401`

**timestamp**string[](#schema-property-payments-list-response-schema-timestamp-string "Direct link to timestamp")

Current timestamp.

**Example:<!-- -->&#x20;**`Thu, 11 May 2023 11:45:30 +0000`

**request** <!-- -->object

This object sends back the request payload as received by the server (both from path and from body or query).

**property name\***&#x61;ny[](#schema-property-payments-list-response-schema-property-name-any "Direct link to property name*")

This object sends back the request payload as received by the server (both from path and from body or query).

**Example:<!-- -->&#x20;**`{"beautify":true,"format":"json"}`
