### Get Offerings API Request Source: https://www.revenuecat.com/docs/api-v1 This example shows how to make a GET request to retrieve offerings for a specific app user ID. Ensure the 'X-Platform' header is set if using a legacy API key. ```http GET /v1/subscribers/{app_user_id}/offerings HTTP/1.1 Host: api.revenuecat.com Authorization: Bearer YOUR_API_KEY X-Platform: ios ``` -------------------------------- ### Example Request Payload Source: https://www.revenuecat.com/docs/api-v1 This is an example of a JSON request body for POST requests. Ensure 'app_user_id' and 'fetch_token' are provided. ```json { "app_user_id": "user-1456", "fetch_token": "MQABC...EFH1234=" } ``` -------------------------------- ### Customer Info Response Example Source: https://www.revenuecat.com/docs/api-v1 This JSON object represents the detailed information for a customer, including their subscription status, purchase history, and first seen date. It is returned by the RevenueCat API when requesting customer data. ```json { "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" } } } } ``` -------------------------------- ### Subscriber Data Response Source: https://www.revenuecat.com/docs/api-v1 Example JSON response detailing subscriber information, including entitlements, subscriptions, and purchase history. ```json { "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 } } } } } ``` -------------------------------- ### Get Customer Info Source: https://www.revenuecat.com/docs/api-v1 Retrieves all information about a customer, including their subscriptions, entitlements, and purchase history. ```APIDOC ## Get Customer Info ### Description Retrieves all information about a customer, including their subscriptions, entitlements, and purchase history. ### Method GET ### Endpoint /customers/{app_user_id} ### Parameters #### Path Parameters - **app_user_id** (string) - Required - The unique identifier for the user. #### Query Parameters - **request_date** (string) - Optional - Date of the request in ISO 8601 format. - **request_date_ms** (integer) - Optional - Date of the request in milliseconds since Epoch. ### Response #### Success Response (200) - **request_date** (string) - Date of the request in ISO 8601 format. - **request_date_ms** (integer) - Date of the request in milliseconds since Epoch. - **subscriber** (object) - Information about the Customer. - **entitlements** (object) - Dictionary of the entitlements of this Customer (including any expired entitlements). - **first_seen** (string) - The ISO 8601 datetime string corresponding to when the Customer was first seen by RevenueCat. - **last_seen** (string) - The ISO 8601 datetime string corresponding to when the Customer was last seen by RevenueCat. - **management_url** (string) - URL to manage the active subscription of the Customer. - **non_subscriptions** (object) - Non-subscription purchases of the Customer, keyed by the product identifier. - **original_app_user_id** (string) - The App User ID under which this Customer was first known to RevenueCat. - **original_application_version** (string) - _Only available on iOS_. Indicates the first App Store version of your app that the Customer installed. - **original_purchase_date** (string) - _Only available on iOS_. The date that the app was first purchased/downloaded by the Customer. - **subscriber_attributes** (object) - A dictionary of any Attributes set on this Customer. **Only included in responses to requests made with a secret API key**. - **subscriptions** (object) - Subscription purchases of the Customer, keyed by the product identifier. ### Response Example ```json { "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", "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" } } } } ``` -------------------------------- ### Get Offerings Source: https://www.revenuecat.com/docs/api-v1 Retrieves the available offerings for a given app user ID. This endpoint is useful for fetching product details and subscription options that can be presented to users. ```APIDOC ## Get Offerings get/subscribers/{app_user_id}/offerings ### Description Gets the offerings for your app. ### Method GET ### Endpoint https://api.revenuecat.com/v1/subscribers/{app_user_id}/offerings ### Parameters #### Path Parameters - **app_user_id** (string) - Required - The App User ID used with the mobile SDK. The App User ID doesn't have to exist for the endpoint to work but it can affect the current offering depending on whether you have any Experiments running or have overridden the current offering for this specific App User ID. #### Header Parameters - **X-Platform** (string) - Optional - Example: ios. Set the X-Platform header to fetch that platform's packages. Can be `ios`, `android`, `amazon`, `stripe`, `roku`, or `paddle`. This header is required if you use a legacy public API key to determine which store the products should be returned for. It is not required if you use a new, app-specific API key, in which case the products for the app associated with the API key will be returned. ### Responses #### Success Response (200) Offerings for the Customer. #### Error Responses - **400** - **403** ``` -------------------------------- ### Get or Create Customer Source: https://www.revenuecat.com/docs/api-v1 Retrieves the latest customer information for a given App User ID. If the customer does not exist, a new one will be created. ```APIDOC ## GET /v1/subscribers/{app_user_id} ### Description Gets the latest Customer Info for the customer with the given App User ID, or creates a new customer if it doesn't exist. ### Method GET ### Endpoint https://api.revenuecat.com/v1/subscribers/{app_user_id} ### Parameters #### Path Parameters - **app_user_id** (string) - Required - The App User ID used with the mobile SDK. #### Header Parameters - **X-Platform** (string) - Optional - Can be set to `ios`, `android`, `amazon`, `macos`, `uikitformac` to update the Customer's `last_seen` field. Do not set if calling for informational purposes or using a secret API key. ### Responses #### Success Response (200) Returns the Customer Info for the Customer. #### Success Response (201) Returns the Customer Info for the Customer. #### Error Response (400) Bad Request #### Error Response (401) Unauthorized ``` -------------------------------- ### Add Customer Attribution Data Request Source: https://www.revenuecat.com/docs/api-v1 Example JSON payload for attaching attribution data to a subscriber. Supports various networks like Apple Search Ads, Adjust, AppsFlyer, etc. ```json { "data": { "rc_idfa": "string", "rc_gps_adid": "string" }, "network": "0" } ``` -------------------------------- ### 200 OK Response Sample for Offerings Source: https://www.revenuecat.com/docs/api-v1 This JSON structure represents a successful response when retrieving offerings. It includes details about current offerings and their associated packages. ```json { "value": { "current_offering_id": "default", "offerings": [ { "description": "The default offering", "identifier": "default", "packages": [ { "identifier": "$rc_monthly", "platform_product_identifier": "monthly_free_trial" }, { "identifier": "consumable", "platform_product_identifier": "consumable1" }, { "identifier": "$rc_annual", "platform_product_identifier": "yearly_free_trial" } ] }, { "description": "The sale offeringg", "identifier": "sale_offering", "packages": [ { "identifier": "$rc_monthly", "platform_product_identifier": "monthly_free_trial_sale" }, { "identifier": "consumable", "platform_product_identifier": "consumable1_sale" }, { "identifier": "$rc_annual", "platform_product_identifier": "yearly_free_trial_sale" } ] } ] } } ``` -------------------------------- ### Post Purchase Response Sample Source: https://www.revenuecat.com/docs/api-v1 This is a sample JSON response for a successful purchase post. It includes customer information and details about their subscriptions and non-subscriptions. ```json { "value": { "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 } } } } } ``` -------------------------------- ### Response Sample for 200 OK Source: https://www.revenuecat.com/docs/api-v1 This is a sample JSON response for a successful request (HTTP 200 OK) to the RevenueCat API v1. It includes detailed information about a subscriber's entitlements, subscriptions, and purchase history. ```APIDOC ## Response Sample (200 OK) ### Description This is a sample JSON response for a successful request (HTTP 200 OK) to the RevenueCat API v1. It includes detailed information about a subscriber's entitlements, subscriptions, and purchase history. ### Content Type application/json ### Response Body Example ```json { "value": { "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 } } } } } ``` ``` -------------------------------- ### Offerings Structure Source: https://www.revenuecat.com/docs/api-v1 This JSON structure represents the available offerings, including their identifiers, descriptions, and the packages they contain. It shows different offerings like 'default' and 'sale_offering', each with monthly, consumable, and annual packages. ```json { "current_offering_id": "default", "offerings": [ { "description": "The default offering", "identifier": "default", "packages": [ { "identifier": "$rc_monthly", "platform_product_identifier": "monthly_free_trial" }, { "identifier": "consumable", "platform_product_identifier": "consumable1" }, { "identifier": "$rc_annual", "platform_product_identifier": "yearly_free_trial" } ] }, { "description": "The sale offeringg", "identifier": "sale_offering", "packages": [ { "identifier": "$rc_monthly", "platform_product_identifier": "monthly_free_trial_sale" }, { "identifier": "consumable", "platform_product_identifier": "consumable1_sale" }, { "identifier": "$rc_annual", "platform_product_identifier": "yearly_free_trial_sale" } ] } ] } ``` -------------------------------- ### Create Purchase Record Source: https://www.revenuecat.com/docs/api-v1 Use this endpoint to record a purchase for a customer. This will create a customer if they don't already exist. Ensure the 'X-Platform' header is set correctly. ```http POST https://api.revenuecat.com/v1/receipts ``` -------------------------------- ### Create a Purchase Source: https://www.revenuecat.com/docs/api-v1 Records a purchase for a Customer from various platforms (iOS, Android, Stripe, etc.). This endpoint will create a Customer if they don't already exist. ```APIDOC ## POST /receipts ### Description Records a purchase for a Customer from iOS, Android, Stripe, Roku and Paddle will create a Customer if they don't already exist. ### Method POST ### Endpoint https://api.revenuecat.com/v1/receipts ### Parameters #### Header Parameters - **Authorization** (string) - Required - Bearer token for authentication. - **X-Platform** (string) - Required - The platform this purchase is for. Either `ios`, `android`, `amazon`, `macos`, `uikitformac`, `stripe`, `roku`, or `paddle`. #### Request Body schema: application/json - **app_user_id** (string) - Required - App User ID of the Customer the receipt is associated with. - **fetch_token** (string) - Required - 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** (string) - Optional - The Apple, Google, Amazon, Roku, or Paddle product identifier or SKU. Required for Google. - **price** (number) - Optional - The price of the product. Required if you provide a currency. - **currency** (string) - Optional - Default: "USD" The currency of the product. The currency must be in ISO 4217 format. Required if you provide a price. - **payment_mode** (string) - Optional - 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** (number) - Optional - Introductory price paid. - **is_restore** (boolean) - Optional - Deprecated. Default: false. If true, the fetch token will trigger your configured restore behavior for any other users sharing the same fetch token. - **presented_offering_identifier** (string) - 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** (object) - Optional - Any Attributes to set on the Customer as a dictionary keyed by the Attribute name. - **value** (string) - Required - The value of the attribute. If the value is `null` or an empty string, the attribute will be deleted. - **updated_at_ms** (integer) - Optional - 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. ### Request Example ```json { "app_user_id": "user-1456", "fetch_token": "MQABC...EFH1234=", "product_id": "com.example.consumable", "price": 1.99, "currency": "USD", "attributes": { "custom_attribute": { "value": "some_value", "updated_at_ms": 1678886400000 } } } ``` ### Response #### Success Response (200) - **customer** (object) - Information about the customer. - **subscriber** (object) - Information about the subscriber. #### Response Example ```json { "customer": { "first_seen": "2023-01-01T12:00:00Z", "last_seen": "2023-03-15T10:30:00Z", "original_app_user_id": "user-1456", "original_application_version": "1.0.0", "original_sdk_version": "1.0.0", "management_url": "https://app.revenuecat.com/customers/user-1456", "entitlements": { "premium": { "expires_date": "2024-01-01T12:00:00Z", "grace_period_expires_date": null, "purchase_date": "2023-01-01T12:00:00Z" } }, "original_purchase_date": "2023-01-01T12:00:00Z", "request_date": "2023-03-15T10:30:00Z" }, "subscriber": { "non_subscriptions": { "com.example.consumable": { "purchase_date": "2023-03-15T10:30:00Z", "quantity": 1 } }, "subscriptions": { "premium": { "expires_date": "2024-01-01T12:00:00Z", "grace_period_expires_date": null, "purchase_date": "2023-01-01T12:00:00Z", "store_transaction_id": "1234567890", "unsubscribe_detected_at": null } }, "entitlements": { "premium": { "expires_date": "2024-01-01T12:00:00Z", "grace_period_expires_date": null, "purchase_date": "2023-01-01T12:00:00Z" } }, "first_seen": "2023-01-01T12:00:00Z", "original_app_user_id": "user-1456", "original_application_version": "1.0.0", "original_sdk_version": "1.0.0", "management_url": "https://app.revenuecat.com/customers/user-1456", "request_date": "2023-03-15T10:30:00Z" } } ``` ``` -------------------------------- ### Subscriber Data Response Sample Source: https://www.revenuecat.com/docs/api-v1 This JSON object represents a sample response for subscriber data, detailing entitlements, subscriptions, and purchase history. ```json { "value": { "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 } } } } } ``` -------------------------------- ### Remove Offering Override Source: https://www.revenuecat.com/docs/api-v1 Use this endpoint to reset a customer's offering overrides to their current offering. This action is confirmed with a 201 status code and returns the updated customer info. ```http DELETE /v1/subscribers/{app_user_id}/offerings/override HTTP/1.1 Host: api.revenuecat.com Authorization: Bearer YOUR_API_KEY ``` -------------------------------- ### API Authentication Header Source: https://www.revenuecat.com/docs/api-v1 Use this header to authenticate your requests to the RevenueCat API. Replace YOUR_REVENUECAT_API_KEY with your actual API key. ```http Authorization: Bearer YOUR_REVENUECAT_API_KEY ``` -------------------------------- ### Add Customer Attribution Data Response Source: https://www.revenuecat.com/docs/api-v1 An empty JSON object is returned upon successful posting of attribution data. ```json "{}" ```