openapi: 3.0.0
info:
  title: Transactions | REST API v1 Reference
  version: '1.0'
  description: RevenueCat API v1 endpoint reference for Transactions.
servers:
  - url: https://api.revenuecat.com/v1
security:
  - BearerAuth: []
tags:
  - name: transactions
    description: >-
      Part of the [REST API v1 Reference](/docs/api-v1).


      Operations about transactions.


      #### Endpoints


      - [Create a Purchase](#tag/transactions/operation/receipts) — `POST
      /receipts`

      - [Google Play: Refund and Revoke
      Subscription](#tag/transactions/operation/revoke-a-google-subscription) —
      `POST
      /subscribers/{app_user_id}/subscriptions/{product_identifier}/revoke`

      - [Google Play: Defer a
      Subscription](#tag/transactions/operation/defer-a-google-subscription) —
      `POST /subscribers/{app_user_id}/subscriptions/{product_identifier}/defer`

      - [Google Play: Refund and Revoke
      Purchase](#tag/transactions/operation/refund-a-google-subscription) —
      `POST
      /subscribers/{app_user_id}/transactions/{store_transaction_identifier}/refund`

      - [Google Play: Cancel a
      Subscription](#tag/transactions/operation/cancel-a-google-subscription) —
      `POST
      /subscribers/{app_user_id}/subscriptions/{store_transaction_identifier}/cancel`

      - [App Store: Extend a
      Subscription](#tag/transactions/operation/extend-an-apple-subscription) —
      `POST
      /subscribers/{app_user_id}/subscriptions/{store_transaction_identifier}/extend`
    x-displayName: Transactions
  - name: Endpoint Reference
    x-traitTag: true
    description: >
      All API v1 resources, one page each. General concepts (authentication,
      request format, URL parameters) live on the [API v1
      overview](/docs/api-v1).


      - [Customer Info Model](/docs/api-v1/customer-info-model) — full schema
      reference

      - [Customers](/docs/api-v1/customers) — 4 endpoints

      - [Entitlements](/docs/api-v1/entitlements) — 2 endpoints

      - [Offerings](/docs/api-v1/offerings) — 3 endpoints

      - [Offerings Model](/docs/api-v1/offerings-model) — full schema reference

      - [Transactions](/docs/api-v1/transactions) — 6 endpoints
paths:
  /receipts:
    post:
      summary: Create a Purchase
      tags:
        - transactions
      description: >-
        Records a purchase for a Customer from iOS, Android, Stripe, Roku and
        Paddle will create a Customer if they don't already exist.
      operationId: receipts
      parameters:
        - name: X-Platform
          in: header
          description: >-
            The platform this purchase is for. Either `ios`, `android`,
            `amazon`, `macos`, `uikitformac`, `stripe`, `roku`, or `paddle`
          required: true
          schema:
            type: string
            example: ios
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - app_user_id
                - fetch_token
              properties:
                app_user_id:
                  type: string
                  description: App User ID of the Customer the receipt is associated with.
                fetch_token:
                  type: string
                  description: >-
                    For iOS, the base64 encoded receipt file (or JWSTransaction
                    for StoreKit2), for Android the receipt token, for Amazon
                    the receipt, for Stripe the subscription ID or the Stripe
                    Checkout Session ID, for Roku the transaction ID, and for
                    Paddle the subscription ID or transaction ID.
                product_id:
                  type: string
                  description: >-
                    The Apple, Google, Amazon, Roku, or Paddle product
                    identifier or SKU. Required for Google.
                  example: com.my.product.iap
                price:
                  type: number
                  description: >-
                    The price of the product. **Required if you provide a
                    currency.**
                  example: 1.99
                  format: float
                currency:
                  type: string
                  description: >-
                    The currency of the product. The currency must be in [ISO
                    4217 format](https://en.wikipedia.org/wiki/ISO_4217).
                    **Required if you provide a price.**
                  example: USD
                  default: USD
                payment_mode:
                  type: string
                  description: >-
                    Optionally used by the iOS SDK to communicate intro pricing
                    periods. Either `pay_as_you_go = 0`, `pay_up_front = 1`, or
                    `free_trial = 2`. Defaults to `2` (free trial) if an
                    introductory period is detected in the receipt but this
                    value is not provided.
                introductory_price:
                  type: number
                  description: Introductory price paid
                  format: float
                is_restore:
                  type: boolean
                  description: >-
                    If true, the fetch token will trigger your configured
                    [restore
                    behavior](https://www.revenuecat.com/docs/restoring-purchases#restore-behavior)
                    for any other users sharing the same fetch token.
                  default: false
                  deprecated: true
                presented_offering_identifier:
                  type: string
                  description: >-
                    Optional. The offering that was presented to the Customer at
                    the time of purchase.  This will be attached to any new
                    transactions in this fetch token and will be available in
                    ETL exports and webhooks. This is mostly useful if you're
                    sending fetch tokens from your backend.
                attributes:
                  description: >-
                    Any [Attributes](/docs/customers/customer-attributes) to set
                    on the Customer as a dictionary keyed by the Attribute name.
                  additionalProperties:
                    description: A single Attribute to be set.
                    type: object
                    required:
                      - value
                    properties:
                      value:
                        type: string
                        description: >-
                          The value of the attribute. If the value is `null` or
                          an empty string, the attribute will be deleted.
                      updated_at_ms:
                        type: integer
                        format: int64
                        description: >-
                          UNIX epoch in milliseconds of when the attribute was
                          updated. This value is used to resolve conflicts, an
                          attribute will only be updated if the new
                          `updated_at_ms` value is newer than the value for the
                          stored attribute.
                        example: 1709195668093
                  type: object
      responses:
        '200':
          description: >
            Purchase was successfully posted.


            Returns the updated [Customer
            Info](/docs/api-v1/customer-info-model#tag/customer_info_model) for
            the Customer for which the purchase was posted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscriber'
      deprecated: false
  /subscribers/{app_user_id}/subscriptions/{product_identifier}/revoke:
    post:
      summary: 'Google Play: Refund and Revoke Subscription'
      tags:
        - transactions
      description: >-
        Immediately revokes access to a Google Subscription and issues a refund
        for the last purchase. If you want to refund a one-time Google purchase,
        see [refund a Google
        purchase](#tag/transactions/operation/revoke-a-google-subscription).
      operationId: revoke-a-google-subscription
      parameters:
        - name: app_user_id
          in: path
          description: The App User ID of the Customer.
          schema:
            type: string
          required: true
        - name: product_identifier
          in: path
          description: >-
            The identifier of the product belonging to the subscription that is
            being revoked.
          schema:
            type: string
          required: true
      responses:
        '200':
          description: >
            Subscription was successfully refunded and revoked.


            Returns the updated [Customer
            Info](/docs/api-v1/customer-info-model#tag/customer_info_model) for
            the Customer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscriber'
      deprecated: false
  /subscribers/{app_user_id}/subscriptions/{product_identifier}/defer:
    post:
      summary: 'Google Play: Defer a Subscription'
      tags:
        - transactions
      description: Defers the purchase of a Google Subscription to a later date.
      operationId: defer-a-google-subscription
      parameters:
        - name: app_user_id
          in: path
          description: The App User ID of the Customer.
          schema:
            type: string
          required: true
        - name: product_identifier
          in: path
          description: >-
            The identifier of the product belonging to the subscription that is
            being deferred. This can be found in RevenueCat's Product catalog ->
            {Product} -> Subscription Id.
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                expiry_time_ms:
                  type: integer
                  format: int64
                  description: >-
                    The desired next expiry time to assign to the subscription,
                    in milliseconds since the Epoch. The given time must be
                    later/greater than the current expiry time for the
                    subscription. Either `expiry_time_ms` or `extend_by_days`
                    must be provided.
                  example: 1708417962662
                extend_by_days:
                  type: integer
                  minimum: 1
                  maximum: 365
                  description: >-
                    The number of days to extend the subscription renewal date.
                    Must be between 1 and 365. Either `expiry_time_ms` or
                    `extend_by_days` must be provided.
                  example: 30
      responses:
        '200':
          description: >
            Subscription was successfully deferred.


            Returns the updated [Customer
            Info](/docs/api-v1/customer-info-model#tag/customer_info_model) for
            the Customer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscriber'
  /subscribers/{app_user_id}/transactions/{store_transaction_identifier}/refund:
    post:
      summary: 'Google Play: Refund and Revoke Purchase'
      tags:
        - transactions
      description: >-
        Issues a refund for the specified transaction and revokes access. Works
        for subscription and non-subscription purchases that occurred in the
        last 365 days.
      operationId: refund-a-google-subscription
      parameters:
        - name: app_user_id
          in: path
          description: The App User ID of the Customer.
          schema:
            type: string
          required: true
        - name: store_transaction_identifier
          in: path
          description: >-
            The identifier of the transaction to refund. Example:
            GPA.3309-9122-6177-45730
          schema:
            type: string
          required: true
      responses:
        '200':
          description: >
            Purchase was successfully refunded and revoked.


            Returns the updated [Customer
            Info](/docs/api-v1/customer-info-model#tag/customer_info_model) for
            the Customer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscriber'
      deprecated: false
  /subscribers/{app_user_id}/subscriptions/{store_transaction_identifier}/cancel:
    post:
      summary: 'Google Play: Cancel a Subscription'
      tags:
        - transactions
      description: >-
        Cancels a Google subscription. The subscription remains valid until its
        expiration time, but it will not renew.
      operationId: cancel-a-google-subscription
      parameters:
        - name: app_user_id
          in: path
          description: The App User ID of the Customer.
          schema:
            type: string
          required: true
        - name: store_transaction_identifier
          in: path
          description: >-
            The identifier of the transaction to cancel. Example:
            GPA.3309-9122-6177-45730
          schema:
            type: string
          required: true
      responses:
        '200':
          description: >
            Subscription was successfully canceled.


            Returns the updated [Customer
            Info](/docs/api-v1/customer-info-model#tag/customer_info_model) for
            the Customer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscriber'
      deprecated: false
  /subscribers/{app_user_id}/subscriptions/{store_transaction_identifier}/extend:
    post:
      summary: 'App Store: Extend a Subscription'
      tags:
        - transactions
      description: >
        Extends the renewal date of an auto-renewable subscription for up to 90
        days for a specific customer.


        This uses Apple's [Extend a Subscription Renewal
        Date](https://developer.apple.com/documentation/appstoreserverapi/extend_a_subscription_renewal_date)
        API.


        **Requires a v1 Secret API key.**


        Note: Apple limits subscription extensions to two per year per customer.
        Apple immediately sends the customer an email notification of the
        extension.
      operationId: extend-an-apple-subscription
      parameters:
        - name: app_user_id
          in: path
          description: The App User ID of the Customer.
          schema:
            type: string
          required: true
        - name: store_transaction_identifier
          in: path
          description: >-
            The store transaction identifier of the subscription to extend. Can
            be original transaction identifier or renewal transaction
            identifier. Example: 1000000819074923
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - extend_by_days
                - extend_reason_code
              properties:
                extend_by_days:
                  type: integer
                  minimum: 1
                  maximum: 90
                  description: >-
                    The number of days to extend the subscription renewal date.
                    Must be between 1 and 90.
                  example: 30
                extend_reason_code:
                  type: integer
                  minimum: 0
                  maximum: 3
                  description: >
                    The reason code for the subscription extension. See Apple's
                    [extendReasonCode](https://developer.apple.com/documentation/appstoreserverapi/extendreasoncode)
                    documentation.

                    - `0`: Undeclared - The renewal-date extension reason is
                    undeclared.

                    - `1`: Customer Satisfaction - The renewal-date extension is
                    for customer satisfaction.

                    - `2`: Other - The renewal-date extension is for a reason
                    other than the ones listed.

                    - `3`: Service Issue or Outage - The renewal-date extension
                    is due to a service issue or outage.
                  example: 1
      responses:
        '200':
          description: >
            Subscription was successfully extended.


            Returns the updated [Customer
            Info](/docs/api-v1/customer-info-model#tag/customer_info_model) for
            the Customer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscriber'
      deprecated: false
components:
  schemas:
    Subscriber:
      type: object
      description: Snapshot of information about a Customer.
      properties:
        request_date:
          type: string
          description: Date of the request in ISO 8601 format.
          example: '2019-07-26T17:40:10Z'
        request_date_ms:
          type: integer
          format: int64
          description: Date of the request in milliseconds since Epoch.
          example: 1564162810884
        subscriber:
          type: object
          description: Information about the Customer.
          properties:
            entitlements:
              type: object
              description: >-
                Dictionary of the entitlements of this Customer (including any
                expired entitlements).
              additionalProperties:
                type: object
                description: >-
                  One entitlement granted to this Customer. If the customer was
                  granted this entitlement through multiple purchases, then the
                  information about the purchase with the furthest-out
                  expiration date is included.
                properties:
                  expires_date:
                    type: string
                    description: >-
                      Date when the entitlement expires / expired (in ISO 8601
                      format, may be in the past). `null` if it is a lifetime
                      entitlement.
                    example: '2024-12-12T14:04:03Z'
                    nullable: true
                  grace_period_expires_date:
                    type: string
                    description: >-
                      Date when any potential grace period of the entitlement
                      expires / expired (in ISO 8601 format, may be in the
                      past). `null` if the Customer has never been in a grace
                      period.
                    example: '2024-12-12T14:04:03Z'
                    nullable: true
                  product_identifier:
                    type: string
                    description: >
                      The identifier of the product that is responsible for this
                      entitlement being granted.<br><br>Please note: in some
                      cases, if there are problems with validating the purchase
                      with the store, the correct product identifier might
                      temporarily be unavailable.
                    example: onetime
                  purchase_date:
                    type: string
                    description: >-
                      Time of the last purchase or renewal of the product that
                      grants this entitlement (in ISO 8601 format).
                    example: '2019-04-05T21:52:45Z'
            first_seen:
              type: string
              description: >-
                The ISO 8601 datetime string corresponding to when the Customer
                was first seen by RevenueCat.
              example: '2019-02-21T00:08:41Z'
            last_seen:
              type: string
              description: >-
                The ISO 8601 datetime string corresponding to when the Customer
                was last seen by RevenueCat.
              example: '2019-02-21T00:08:41Z'
            management_url:
              type: string
              description: >
                URL to manage the active subscription of the Customer.


                If the Customer has an active App Store subscription, this will
                point to the App Store. If the Customer has an active Play Store
                subscription, it will point there. Amazon subscriptions point to
                the Amazon subscription management page, Paddle subscriptions
                point to the Paddle Customer Portal, and RevenueCat Web Billing
                subscriptions point to the RevenueCat Web Billing Customer
                Portal. For Stripe Billing subscriptions, this returns the
                configured Stripe Customer Portal URL or a custom URL. If no
                Stripe Customer Portal URL is configured, this will be null.


                If there are no active subscriptions it will be null.


                If the Customer has multiple active subscriptions for different
                platforms, this will take the value of the OS in the
                `X-Platform` header into consideration:

                - If the request was made on an OS for which there are active
                subscriptions, this will return the URL for the store that
                matches the header.

                - If the request was made on a different OS or the OS was not
                included in the X-Platform header, this will return the URL for
                the store of the subscription with the farthest future
                expiration date.
              example: https://apps.apple.com/account/subscriptions
            non_subscriptions:
              type: object
              description: >-
                Non-subscription purchases of the Customer, keyed by the product
                identifier.
              additionalProperties:
                type: array
                description: >-
                  One non-subscription product purchased by the customer.
                  Contains an array of the individual purchases of the product.
                items:
                  type: object
                  properties:
                    display_name:
                      type: string
                      description: >-
                        The display name of the product as configured in the
                        RevenueCat dashboard.
                      example: Lifetime Access
                    id:
                      type: string
                      example: cadba0c81b
                      description: A unique ID of the purchase.
                    is_sandbox:
                      type: boolean
                      description: Whether or not the purchase was made in sandbox mode.
                      example: false
                    price:
                      type: object
                      description: >-
                        The price of the transaction in the currency the product
                        was purchased in.
                      properties:
                        amount:
                          type: number
                          example: 9.99
                        currency:
                          type: string
                          example: USD
                    purchase_date:
                      type: string
                      example: '2019-04-05T21:52:45Z'
                      description: Date of the purchase (in ISO 8601 format).
                    store:
                      type: string
                      example: app_store
                      description: >
                        Identifier of the store of the purchase:

                        - `app_store`: The product was purchased through Apple
                        App Store.

                        - `mac_app_store`: The product was purchased through the
                        Mac App Store.

                        - `play_store`: The product was purchased through the
                        Google Play Store.

                        - `amazon`: The product was purchased through the Amazon
                        Appstore.

                        - `stripe`: The product was purchased through Stripe.

                        - `roku`: The product was purchased through Roku.

                        - `paddle`: The product was purchased through Paddle.
                    store_transaction_id:
                      type: string
                      description: >-
                        The identifier associated with the purchase in the
                        underlying store.
                      example: '1000000819074923'
            original_app_user_id:
              type: string
              example: XXX-XXXXX-XXXXX-XX
              description: >-
                The App User ID under which this Customer was first known to
                RevenueCat.
            original_application_version:
              type: string
              example: '1.0'
              description: >-
                *Only available on iOS*. This will be `null` until an iOS
                receipt is sent for the Customer. After a receipt has been sent,
                it will indicate the first App Store version of your app that
                the Customer installed.
            original_purchase_date:
              type: string
              example: '2019-01-30T23:54:10Z'
              description: >-
                **Only available on iOS**. The date that the app was first
                purchased/downloaded by the Customer. Will be `null` if no
                receipt is recorded for the Customer. Useful for [Migrating
                Subscriptions](/docs/migrating-to-revenuecat/migrating-existing-subscriptions).
            other_purchases:
              type: object
              properties: {}
              deprecated: true
            subscriber_attributes:
              description: >-
                A dictionary of any Attributes set on this Customer. **Only
                included in responses to requests made with a secret API key**.
              type: object
              additionalProperties:
                type: object
                description: An Attribute set on the Customer object.
                example:
                  favorite_color:
                    value: red
                    updated_at_ms: 1564162810884
                properties:
                  value:
                    type: string
                    description: The value of the attribute.
                    example: red
                  updated_at_ms:
                    type: integer
                    format: int64
                    description: >-
                      The time that the Attribute was last updated, in
                      milliseconds since Epoch.
                    example: 1564162810884
            subscriptions:
              type: object
              description: >-
                Subscription purchases of the Customer, keyed by the product
                identifier.
              additionalProperties:
                type: object
                description: One subscription product purchased by the Customer.
                properties:
                  auto_resume_date:
                    type: string
                    description: >-
                      Date when the subscription will automatically resume after
                      being paused (in ISO 8601 format). Google Play only.
                    example: null
                  billing_issues_detected_at:
                    type: string
                    example: null
                    description: >-
                      Date when RevenueCat detected any billing issues with this
                      subscription (in ISO 8601 format). If and when the billing
                      issue gets resolved, this field is set to `null`. Note the
                      subscription may still be active, check the `expires_date`
                      attribute.
                  expires_date:
                    type: string
                    example: '2019-08-14T21:07:40Z'
                    description: >-
                      Date when the subscription expires/expired (in ISO 8601
                      format).
                  display_name:
                    type: string
                    description: >-
                      The display name of the product as configured in the
                      RevenueCat dashboard.
                    example: Monthly Subscription
                  grace_period_expires_date:
                    type: string
                    example: '2019-08-14T21:07:40Z'
                    description: >-
                      Date when any grace period for this subscription
                      expires/expired (in ISO 8601 format). `null` if the
                      Customer has never been in a grace period.
                  is_sandbox:
                    type: boolean
                    description: Whether or not the purchase was made in sandbox mode.
                    example: false
                  original_purchase_date:
                    type: string
                    example: '2019-02-21T00:42:05Z'
                    description: >-
                      Date when this subscription first started (in ISO 8601
                      format). This property does not update with renewals. On
                      iOS, this property also does not update for product
                      changes within a subscription group or resubscriptions by
                      lapsed subscribers.
                  ownership_type:
                    type: string
                    enum:
                      - PURCHASED
                      - FAMILY_SHARED
                    description: >
                      How the Customer received access to this subscription:

                      - `PURCHASED`: The Customer purchased the product.

                      - `FAMILY_SHARED`: The Customer has access to the product
                      via their family.
                  period_type:
                    type: string
                    enum:
                      - normal
                      - trial
                      - intro
                    description: >
                      Type of the current subscription period_type:

                      - `normal`: The product is in a normal period (default)

                      - `trial`: The product is in a free trial period

                      - `intro`: The product is in an introductory pricing
                      period
                    example: NORMAL
                  price:
                    type: object
                    description: >-
                      The price of the transaction in the currency the product
                      was purchased in. Can be 0 for free trials.
                    properties:
                      amount:
                        type: number
                        example: 9.99
                      currency:
                        type: string
                        example: USD
                  purchase_date:
                    type: string
                    description: >-
                      Date when the last subscription period started (in ISO
                      8601 format).
                    example: '2019-07-14T20:07:40Z'
                  refunded_at:
                    type: string
                    description: >-
                      Date when RevenueCat detected a refund of this
                      subscription.
                    example: null
                  store:
                    type: string
                    example: app_store
                    description: >
                      Identifier of the store of the purchase:

                      - `app_store`: The product was purchased through Apple App
                      Store.

                      - `mac_app_store`: The product was purchased through the
                      Mac App Store.

                      - `play_store`: The product was purchased through the
                      Google Play Store.

                      - `amazon`: The product was purchased through the Amazon
                      Appstore.

                      - `stripe`: The product was purchased through Stripe.

                      - `promotional`: The product was [granted via
                      RevenueCat](/docs/api-v1/entitlements#tag/entitlements/operation/grant-a-promotional-entitlement).

                      - `roku`: The product was purchased through Roku.

                      - `paddle`: The product was purchased through Paddle.
                  store_transaction_id:
                    type: string
                    example: GPA.6801-7988-0152-76034..5
                    description: |
                      Identifier of the purchase in the store's API.
                  unsubscribe_detected_at:
                    type: string
                    description: >-
                      Date when RevenueCat detected that auto-renewal was turned
                      off for this subsription (in ISO 8601 format). Note the
                      subscription may still be active, check the `expires_date`
                      attribute.
                    example: '2019-07-17T22:48:38Z'
      example:
        value: &ref_0
          request_date: '2019-07-26T17:40:10Z'
          request_date_ms: 1564162810884
          subscriber:
            entitlements:
              pro_cat:
                expires_date: null
                grace_period_expires_date: null
                product_identifier: onetime
                purchase_date: '2019-04-05T21:52:45Z'
            first_seen: '2019-02-21T00:08:41Z'
            management_url: https://apps.apple.com/account/subscriptions
            non_subscriptions:
              onetime:
                - id: cadba0c81b
                  is_sandbox: true
                  purchase_date: '2019-04-05T21:52:45Z'
                  store: app_store
            original_app_user_id: XXX-XXXXX-XXXXX-XX
            original_application_version: '1.0'
            original_purchase_date: '2019-01-30T23:54:10Z'
            other_purchases: {}
            subscriptions:
              annual:
                auto_resume_date: null
                billing_issues_detected_at: null
                expires_date: '2019-08-14T21:07:40Z'
                grace_period_expires_date: null
                is_sandbox: true
                original_purchase_date: '2019-02-21T00:42:05Z'
                ownership_type: PURCHASED
                period_type: normal
                purchase_date: '2019-07-14T20:07:40Z'
                refunded_at: null
                store: play_store
                store_transaction_id: GPA.6801-7988-0152-76034..5
                unsubscribe_detected_at: '2019-07-17T22:48:38Z'
              onemonth:
                auto_resume_date: null
                billing_issues_detected_at: null
                expires_date: '2019-06-17T22:47:55Z'
                grace_period_expires_date: null
                is_sandbox: true
                original_purchase_date: '2019-02-21T00:42:05Z'
                ownership_type: PURCHASED
                period_type: normal
                purchase_date: '2019-06-17T22:42:55Z'
                refunded_at: null
                store: app_store
                store_transaction_id: 1000000652379790
                unsubscribe_detected_at: '2019-06-17T22:48:38Z'
              rc_promo_pro_cat_monthly:
                auto_resume_date: null
                billing_issues_detected_at: null
                expires_date: '2019-08-26T01:02:16Z'
                grace_period_expires_date: null
                is_sandbox: false
                original_purchase_date: '2019-07-26T01:02:16Z'
                ownership_type: FAMILY_SHARED
                period_type: normal
                purchase_date: '2019-07-26T01:02:16Z'
                refunded_at: null
                store: promotional
                store_transaction_id: a42db3af39530cb82b17eaf9c6576393
                unsubscribe_detected_at: null
  examples:
    Subscriber:
      value: *ref_0
  securitySchemes:
    BearerAuth:
      bearerFormat: auth-scheme
      description: >-
        Bearer HTTP authentication. Allowed headers -- Authorization: Bearer
        <api_key>
      scheme: bearer
      type: http
