---
title: "Subscription Transactions"
permalink: "/docs/api-v2/subscription-transactions"
description: "Open API Reference Docs for the API"
original_source: "openapi-spec/api-v2.yaml"
---

> **AI agents:** This is the Markdown version of a RevenueCat documentation page. For the complete documentation index, see [llms.txt](https://www.revenuecat.com/docs/llms.txt).


# Developer API (2.0.0)

Download OpenAPI specification:[Download](https://www.revenuecat.com/docs/redocusaurus/openapi-v2-subscription-transactions.yaml)

## <a id="tag/Subscription-Transactions"></a>Subscription Transactions

Part of the [REST API v2 Reference](/docs/api-v2).

Operations about subscription transactions.

#### Endpoints

-   [Get a Play Store or App Store subscription's transactions](#tag/Subscription-Transactions/operation/get-play-store-or-app-store-subscription-transactions) — `GET /projects/{project_id}/subscriptions/{subscription_id}/transactions`
-   [Refund a Play Store or Galaxy subscription's transaction](#tag/Subscription-Transactions/operation/refund-play-store-or-galaxy-subscription-transaction) — `POST /projects/{project_id}/subscriptions/{subscription_id}/transactions/{transaction_id}/actions/refund`

## <a id="tag/Subscription-Transactions/operation/get-play-store-or-app-store-subscription-transactions"></a>Get a Play Store or App Store subscription's transactions

get/projects/{project_id}/subscriptions/{subscription_id}/transactions

https://api.revenuecat.com/v2/projects/{project_id}/subscriptions/{subscription_id}/transactions

This endpoint requires the following permission(s): `customer_information:subscriptions:read`. This endpoint belongs to the **Customer Information** domain, which has a default rate limit of **480 requests per minute**.

##### Authorizations:

_BearerAuth_

##### path Parameters

- `project_id` (required): string <= 255 characters Example: proj1ab2c3d4 — ID of the project
- `subscription_id` (required): string [ 1 .. 255 ] characters Example: sub1a2b3c4d5e — ID of the subscription

##### query Parameters

- `starting_after`: string Example: starting_after=ent12354 — Pagination cursor. Pass the id of the last item from the previous page to fetch the next page; omit for the first page.
- `limit`: integer Default: 20 Example: limit=10 — Maximum number of items to return per page. Values below 1 or above 100 are clamped to that range rather than rejected.
- `sort`: string Default: "id" Enum: "id" "purchased_at" Example: sort=purchased_at — Column to sort the result list by.
- `direction`: string Default: "asc" Enum: "asc" "desc" Example: direction=desc — Sort direction for the result list.

### Responses

**200**

Success

**400**

Bad request

**401**

Unauthorized

**403**

Access denied

**404**

Not found

**423**

Locked

**429**

The request could not be completed because the rate limiting domain for this endpoint is currently at its limit for this project.

**500**

Internal server error

**503**

Internal server error

### Response samples

Content type

application/json

 

```json
{
  "object": "list",
  "items": [
    {
      "object": "subscription_transaction",
      "id": "GPA.0000-0000-0000-00000",
      "purchased_at": 1658399423658,
      "product_store_identifier": "com.example.product",
      "revenue_in_local_currency": {
        "currency": "USD",
        "gross": 9.99,
        "commission": 2.99,
        "tax": 0.75,
        "proceeds": 6.25
      },
      "revenue_in_usd": {
        "currency": "USD",
        "gross": 9.99,
        "commission": 2.99,
        "tax": 0.75,
        "proceeds": 6.25
      },
      "expiration_date": 1658399423658,
      "effective_expiration_date": 1658399423658
    }
  ],
  "next_page": "/v2/projects/proj123/subscriptions/sub123/transactions?starting_after=GPA.0000-0000-0000-00000",
  "url": "/v2/projects/proj123/subscriptions/sub123/transactions"
}
```

## <a id="tag/Subscription-Transactions/operation/refund-play-store-or-galaxy-subscription-transaction"></a>Refund a Play Store or Galaxy subscription's transaction

post/projects/{project_id}/subscriptions/{subscription_id}/transactions/{transaction_id}/actions/refund

https://api.revenuecat.com/v2/projects/{project_id}/subscriptions/{subscription_id}/transactions/{transaction_id}/actions/refund

Refund and cancel a Play Store or Galaxy subscription's transaction. Access to the subscription will be revoked. This endpoint requires the following permission(s): `customer_information:subscriptions:read_write`. This endpoint belongs to the **Subscription Transactions Refunds** domain, which has a default rate limit of **480 requests per minute**.

##### Authorizations:

_BearerAuth_

##### path Parameters

- `project_id` (required): string <= 255 characters Example: proj1ab2c3d4 — ID of the project
- `subscription_id` (required): string [ 1 .. 255 ] characters Example: sub1a2b3c4d5e — ID of the subscription
- `transaction_id` (required): string [ 1 .. 255 ] characters Example: GPA.000-000-000-000 — Identifier of the transaction in the store

### Responses

**200**

Success

**400**

Bad request

**401**

Unauthorized

**403**

Access denied

**404**

Not found

**409**

Conflict

**422**

Unprocessable entity

**423**

Locked

**429**

The request could not be completed because the rate limiting domain for this endpoint is currently at its limit for this project.

**500**

Internal server error

**503**

Internal server error

### Response samples

Content type

application/json

 

```json
{
  "object": "subscription_transaction",
  "id": "GPA.0000-0000-0000-00000",
  "purchased_at": 1658399423658,
  "product_store_identifier": "com.example.product",
  "revenue_in_local_currency": {
    "currency": "USD",
    "gross": 9.99,
    "commission": 2.99,
    "tax": 0.75,
    "proceeds": 6.25
  },
  "revenue_in_usd": {
    "currency": "USD",
    "gross": 9.99,
    "commission": 2.99,
    "tax": 0.75,
    "proceeds": 6.25
  },
  "expiration_date": 1658399423658,
  "effective_expiration_date": 1658399423658
}
```

## <a id="tag/Endpoint-Reference"></a>Endpoint Reference

All API v2 resources, one page each. General concepts (authentication, pagination, rate limits, error handling) live on the [API v2 overview](/docs/api-v2).

-   [App](/docs/api-v2/app) — 7 endpoints
-   [Audience](/docs/api-v2/audience) — 6 endpoints
-   [Audit Log](/docs/api-v2/audit-log) — 1 endpoint
-   [Charts & Metrics](/docs/api-v2/charts-and-metrics) — 4 endpoints
-   [Collaborator](/docs/api-v2/collaborator) — 1 endpoint
-   [Customer](/docs/api-v2/customer) — 12 endpoints
-   [Customer Resources](/docs/api-v2/customer/resources) — 8 endpoints
-   [Discount](/docs/api-v2/discount) — 10 endpoints
-   [Entitlement](/docs/api-v2/entitlement) — 10 endpoints
-   [Integration](/docs/api-v2/integration) — 5 endpoints
-   [Invoice](/docs/api-v2/invoice) — 2 endpoints
-   [Offering](/docs/api-v2/offering) — 7 endpoints
-   [Package](/docs/api-v2/package) — 8 endpoints
-   [Paywall](/docs/api-v2/paywall) — 5 endpoints
-   [Paywall Fonts & Media](/docs/api-v2/paywall/assets) — 4 endpoints
-   [Paywall Publishing](/docs/api-v2/paywall/publishing) — 7 endpoints
-   [Product](/docs/api-v2/product) — 8 endpoints
-   [Project](/docs/api-v2/project) — 2 endpoints
-   [Purchase](/docs/api-v2/purchase) — 4 endpoints
-   [Subscription](/docs/api-v2/subscription) — 7 endpoints
-   [Subscription Data Model](/docs/api-v2/subscription-data-model) — full schema reference
-   [Subscription Transactions](/docs/api-v2/subscription-transactions) — 2 endpoints
-   [Virtual Currency](/docs/api-v2/virtual-currency) — 7 endpoints

## Response schema reference

Response examples above mirror the rendered API reference. These field definitions come from the same OpenAPI specification.

### ListSubscriptionTransaction

- Used by `GET /projects/{project_id}/subscriptions/{subscription_id}/transactions (200) — Get a Play Store or App Store subscription's transactions`

- `object` (required): string — one of `list`; String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
- `items` (required): array of SubscriptionTransaction — Details about each object.
  - `object` (required): string — one of `subscription_transaction`; String representing the object's type. Objects of the same type share the same value.
  - `id` (required): string — length 1–255; The ID of the subscription transaction in the store
  - `purchased_at` (required): integer (format: `int64`) — The date of the transaction in ms since epoch
  - `product_store_identifier` (required): string — length 1–511; The store identifier of the purchased product
  - `revenue_in_local_currency`: MonetaryAmount or null — The revenue generated by the transaction in the customer's purchased currency
    - `currency` (required): Currency — one of `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BRL`, `BSD`, `BTC`, `BTN`, `BWP`, `BYN`, `BZD`, `CAD`, `CDF`, `CHF`, `CLF`, `CLP`, `CNH`, `CNY`, `COP`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GGP`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `IMP`, `INR`, `IQD`, `IRR`, `ISK`, `JEP`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRU`, `MUR`, `MVR`, `MWK`, `MXN`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLL`, `SOS`, `SRD`, `SSP`, `STD`, `STN`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `UYU`, `UZS`, `VEF`, `VES`, `VND`, `VUV`, `WST`, `XAF`, `XAG`, `XAU`, `XCD`, `XDR`, `XOF`, `XPD`, `XPF`, `XPT`, `YER`, `ZAR`, `ZMW`, `ZWL`; ISO 4217 currency code
    - `gross` (required): number — Total revenue generated (excluding taxes and commission)
    - `commission`: number — Store commission or payment processor fees deducted from gross revenue (if any)
    - `tax` (required): number — Estimated taxes deducted from gross revenue
    - `proceeds` (required): number — Net revenue after store commission / fees and taxes
  - `revenue_in_usd`: MonetaryAmount or null — The revenue generated by the transaction in USD
    - `currency` (required): Currency — one of `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BRL`, `BSD`, `BTC`, `BTN`, `BWP`, `BYN`, `BZD`, `CAD`, `CDF`, `CHF`, `CLF`, `CLP`, `CNH`, `CNY`, `COP`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GGP`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `IMP`, `INR`, `IQD`, `IRR`, `ISK`, `JEP`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRU`, `MUR`, `MVR`, `MWK`, `MXN`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLL`, `SOS`, `SRD`, `SSP`, `STD`, `STN`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `UYU`, `UZS`, `VEF`, `VES`, `VND`, `VUV`, `WST`, `XAF`, `XAG`, `XAU`, `XCD`, `XDR`, `XOF`, `XPD`, `XPF`, `XPT`, `YER`, `ZAR`, `ZMW`, `ZWL`; ISO 4217 currency code
    - `gross` (required): number — Total revenue generated (excluding taxes and commission)
    - `commission`: number — Store commission or payment processor fees deducted from gross revenue (if any)
    - `tax` (required): number — Estimated taxes deducted from gross revenue
    - `proceeds` (required): number — Net revenue after store commission / fees and taxes
  - `expiration_date`: integer or null (format: `int64`) — The expiration date of the transaction in ms since epoch
  - `effective_expiration_date`: integer or null (format: `int64`) — The effective expiration date of the transaction in ms since epoch, including potential grace period
- `next_page` (required): string or null — URL to access the next page of the projects. If not present / null, there is no next page
- `url` (required): string — length 0–5000; The URL where this list can be accessed.

### SubscriptionTransaction

- Used by `POST /projects/{project_id}/subscriptions/{subscription_id}/transactions/{transaction_id}/actions/refund (200) — Refund a Play Store or Galaxy subscription's transaction`

- `object` (required): string — one of `subscription_transaction`; String representing the object's type. Objects of the same type share the same value.
- `id` (required): string — length 1–255; The ID of the subscription transaction in the store
- `purchased_at` (required): integer (format: `int64`) — The date of the transaction in ms since epoch
- `product_store_identifier` (required): string — length 1–511; The store identifier of the purchased product
- `revenue_in_local_currency`: MonetaryAmount or null — The revenue generated by the transaction in the customer's purchased currency
  - `currency` (required): Currency — one of `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BRL`, `BSD`, `BTC`, `BTN`, `BWP`, `BYN`, `BZD`, `CAD`, `CDF`, `CHF`, `CLF`, `CLP`, `CNH`, `CNY`, `COP`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GGP`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `IMP`, `INR`, `IQD`, `IRR`, `ISK`, `JEP`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRU`, `MUR`, `MVR`, `MWK`, `MXN`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLL`, `SOS`, `SRD`, `SSP`, `STD`, `STN`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `UYU`, `UZS`, `VEF`, `VES`, `VND`, `VUV`, `WST`, `XAF`, `XAG`, `XAU`, `XCD`, `XDR`, `XOF`, `XPD`, `XPF`, `XPT`, `YER`, `ZAR`, `ZMW`, `ZWL`; ISO 4217 currency code
  - `gross` (required): number — Total revenue generated (excluding taxes and commission)
  - `commission`: number — Store commission or payment processor fees deducted from gross revenue (if any)
  - `tax` (required): number — Estimated taxes deducted from gross revenue
  - `proceeds` (required): number — Net revenue after store commission / fees and taxes
- `revenue_in_usd`: MonetaryAmount or null — The revenue generated by the transaction in USD
  - `currency` (required): Currency — one of `AED`, `AFN`, `ALL`, `AMD`, `ANG`, `AOA`, `ARS`, `AUD`, `AWG`, `AZN`, `BAM`, `BBD`, `BDT`, `BGN`, `BHD`, `BIF`, `BMD`, `BND`, `BOB`, `BRL`, `BSD`, `BTC`, `BTN`, `BWP`, `BYN`, `BZD`, `CAD`, `CDF`, `CHF`, `CLF`, `CLP`, `CNH`, `CNY`, `COP`, `CRC`, `CUC`, `CUP`, `CVE`, `CZK`, `DJF`, `DKK`, `DOP`, `DZD`, `EGP`, `ERN`, `ETB`, `EUR`, `FJD`, `FKP`, `GBP`, `GEL`, `GGP`, `GHS`, `GIP`, `GMD`, `GNF`, `GTQ`, `GYD`, `HKD`, `HNL`, `HRK`, `HTG`, `HUF`, `IDR`, `ILS`, `IMP`, `INR`, `IQD`, `IRR`, `ISK`, `JEP`, `JMD`, `JOD`, `JPY`, `KES`, `KGS`, `KHR`, `KMF`, `KPW`, `KRW`, `KWD`, `KYD`, `KZT`, `LAK`, `LBP`, `LKR`, `LRD`, `LSL`, `LYD`, `MAD`, `MDL`, `MGA`, `MKD`, `MMK`, `MNT`, `MOP`, `MRU`, `MUR`, `MVR`, `MWK`, `MXN`, `MYR`, `MZN`, `NAD`, `NGN`, `NIO`, `NOK`, `NPR`, `NZD`, `OMR`, `PAB`, `PEN`, `PGK`, `PHP`, `PKR`, `PLN`, `PYG`, `QAR`, `RON`, `RSD`, `RUB`, `RWF`, `SAR`, `SBD`, `SCR`, `SDG`, `SEK`, `SGD`, `SHP`, `SLL`, `SOS`, `SRD`, `SSP`, `STD`, `STN`, `SVC`, `SYP`, `SZL`, `THB`, `TJS`, `TMT`, `TND`, `TOP`, `TRY`, `TTD`, `TWD`, `TZS`, `UAH`, `UGX`, `USD`, `UYU`, `UZS`, `VEF`, `VES`, `VND`, `VUV`, `WST`, `XAF`, `XAG`, `XAU`, `XCD`, `XDR`, `XOF`, `XPD`, `XPF`, `XPT`, `YER`, `ZAR`, `ZMW`, `ZWL`; ISO 4217 currency code
  - `gross` (required): number — Total revenue generated (excluding taxes and commission)
  - `commission`: number — Store commission or payment processor fees deducted from gross revenue (if any)
  - `tax` (required): number — Estimated taxes deducted from gross revenue
  - `proceeds` (required): number — Net revenue after store commission / fees and taxes
- `expiration_date`: integer or null (format: `int64`) — The expiration date of the transaction in ms since epoch
- `effective_expiration_date`: integer or null (format: `int64`) — The effective expiration date of the transaction in ms since epoch, including potential grace period
