Mandala
Tools

RevenueCat

Manage in-app subscriptions and entitlements

Usage Instructions

Integrate RevenueCat into the workflow. Manage subscribers, entitlements, offerings, and Google Play subscriptions. Retrieve customer subscription status, grant or revoke promotional entitlements, record purchases, update subscriber attributes, and manage Google Play subscription billing.

Tools

revenuecat_get_customer

Retrieve subscriber information by app user ID

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber

Output

ParameterTypeDescription
subscriberobjectThe subscriber object with subscriptions and entitlements
metadataobjectSubscriber summary metadata

revenuecat_delete_customer

Permanently delete a subscriber and all associated data

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber to delete

Output

ParameterTypeDescription
deletedbooleanWhether the subscriber was deleted
app_user_idstringThe deleted app user ID

revenuecat_create_purchase

Record a purchase (receipt) for a subscriber via the REST API

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat API key (public or secret)
appUserIdstringYesThe app user ID of the subscriber
fetchTokenstringYesFor iOS, the base64-encoded receipt (or JWSTransaction for StoreKit2); for Android the purchase token; for Amazon the receipt; for Stripe the subscription ID or Checkout Session ID; for Roku the transaction ID; for Paddle the subscription ID or transaction ID
productIdstringNoApple, Google, Amazon, Roku, or Paddle product identifier or SKU. Required for Google.
pricenumberNoPrice of the product. Required if you provide a currency.
currencystringNoISO 4217 currency code (e.g., USD, EUR). Required if you provide a price.
isRestorebooleanNoDeprecated. Triggers configured restore behavior for shared fetch tokens.
presentedOfferingIdentifierstringNoIdentifier of the offering presented to the customer at the time of purchase. Attached to new transactions in this fetch token and exposed in ETL exports and webhooks.
paymentModestringNoPayment mode for the introductory period. One of: pay_as_you_go, pay_up_front, free_trial. Defaults to free_trial when an introductory period is detected and no value is provided.
introductoryPricenumberNoIntroductory price paid (if any).
attributesjsonNoJSON object of subscriber attributes to set alongside the purchase. Each key maps to {"value": string, "updated_at_ms": number}.
updatedAtMsnumberNoUNIX epoch in milliseconds used to resolve attribute conflicts at the request level.
platformstringYesPlatform of the purchase. One of: ios, android, amazon, macos, uikitformac, stripe, roku, paddle. Sent as the X-Platform header (required by RevenueCat).

Output

ParameterTypeDescription
customerobjectCustomer object returned at the top level of POST /v1/receipts (first_seen, last_seen, original_app_user_id, original_application_version, original_sdk_version, management_url, entitlements, original_purchase_date, request_date). Null when the response uses the value-wrapped envelope.
subscriberobjectThe updated subscriber object after recording the purchase

revenuecat_grant_entitlement

Grant a promotional entitlement to a subscriber

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
entitlementIdentifierstringYesThe entitlement identifier to grant
durationstringNoDeprecated. Duration of the entitlement. Provide either duration or endTimeMs (endTimeMs preferred). One of: daily, three_day, weekly, two_week, monthly, two_month, three_month, six_month, yearly, lifetime
endTimeMsnumberNoAbsolute end time in milliseconds since Unix epoch. Use instead of duration to grant the entitlement until a specific timestamp.
startTimeMsnumberNoDeprecated. Optional start time in milliseconds since Unix epoch, used with duration to determine expiration. Regardless of value, the entitlement is always granted immediately.

Output

ParameterTypeDescription
subscriberobjectThe updated subscriber object after granting the entitlement

revenuecat_revoke_entitlement

Revoke all promotional entitlements for a specific entitlement identifier

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
entitlementIdentifierstringYesThe entitlement identifier to revoke

Output

ParameterTypeDescription
subscriberobjectThe updated subscriber object after revoking the entitlement

revenuecat_list_offerings

List all offerings configured for the project

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat API key
appUserIdstringYesAn app user ID to retrieve offerings for
platformstringNoX-Platform header value. One of: ios, android, amazon, stripe, roku, paddle. Required when using a legacy public API key; ignored with app-specific API keys.

Output

ParameterTypeDescription
current_offering_idstringThe identifier of the current offering
offeringsarrayList of offerings
metadataobjectOfferings metadata

revenuecat_update_subscriber_attributes

Update custom subscriber attributes (e.g., $email, $displayName, or custom key-value pairs)

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
attributesjsonYesJSON object of attributes to set. Each key maps to an object with "value" (string; null or empty deletes the attribute) and "updated_at_ms" (Unix epoch ms used for conflict resolution — required). Example: {"$email": {"value": "user@example.com", "updated_at_ms": 1709195668093}}

Output

ParameterTypeDescription
updatedbooleanWhether the subscriber attributes were successfully updated
app_user_idstringThe app user ID of the updated subscriber

revenuecat_defer_google_subscription

Defer a Google Play subscription by extending its billing date by a number of days (Google Play only)

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
productIdstringYesThe Google Play product identifier of the subscription to defer (use the part before the colon for products set up after Feb 2023)
extendByDaysnumberNoNumber of days to extend the subscription by (1-365). Provide either extendByDays or expiryTimeMs.
expiryTimeMsnumberNoAbsolute new expiry time in milliseconds since Unix epoch. Use instead of extendByDays to set an exact expiry.

Output

ParameterTypeDescription
subscriberobjectThe updated subscriber object after deferring the Google subscription

revenuecat_refund_google_subscription

Refund a specific store transaction by its store transaction identifier and revoke access (subscription or non-subscription, last 365 days)

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
storeTransactionIdstringYesThe store transaction identifier of the purchase to refund (e.g., GPA.3309-9122-6177-45730 for Google Play)

Output

ParameterTypeDescription
subscriberobjectThe updated subscriber object after refunding the Google subscription

revenuecat_revoke_google_subscription

Immediately revoke access to a Google Play subscription and issue a refund (Google Play only)

Input

ParameterTypeRequiredDescription
apiKeystringYesRevenueCat secret API key (sk_...)
appUserIdstringYesThe app user ID of the subscriber
productIdstringYesThe Google Play product identifier of the subscription to revoke

Output

ParameterTypeDescription
subscriberobjectThe updated subscriber object after revoking the Google subscription

Triggers

revenuecat_initial_purchase

Trigger workflow when a subscriber makes their first purchase in RevenueCat

Output

ParameterTypeDescription
typestringEvent type (e.g., INITIAL_PURCHASE, RENEWAL)
idstringUnique event identifier
app_idstringRevenueCat app public identifier
event_timestamp_msnumberTimestamp (ms since epoch) when the event was generated
app_user_idstringCurrent App User ID
original_app_user_idstringFirst App User ID ever used
aliasesjsonAll App User IDs ever used by the subscriber
product_idstringProduct identifier
new_product_idstringProduct identifier changed to (PRODUCT_CHANGE events only)
period_typestringPeriod type (TRIAL, INTRO, NORMAL, PROMOTIONAL, or PREPAID)
purchased_at_msnumberPurchase timestamp (ms since epoch)
expiration_at_msnumberExpiration timestamp (ms since epoch), nullable
environmentstringEnvironment (SANDBOX or PRODUCTION)
entitlement_idstringDeprecated single entitlement identifier
entitlement_idsjsonAssociated entitlement identifiers
presented_offering_idstringIdentifier of the offering presented to the user
transaction_idstringStore transaction ID
original_transaction_idstringOriginal subscription transaction ID
is_family_sharebooleanWhether the purchase was family shared
country_codestringISO country code of the subscriber
currencystringISO 4217 currency code
pricenumberPrice in USD
price_in_purchased_currencynumberPrice in the currency the purchase was made in
storestringStore the purchase was made on (e.g., APP_STORE)
takehome_percentagenumberEstimated percentage of the price taken home after store commission
tax_percentagenumberEstimated percentage taken as tax
commission_percentagenumberEstimated percentage taken by the store as commission
offer_codestringOffer code applied to the purchase, if any
subscriber_attributesjsonSubscriber attributes at the time of the event
experimentsjsonExperiments the subscriber was enrolled in
cancel_reasonstringReason for cancellation (CANCELLATION events only)
expiration_reasonstringReason for expiration (EXPIRATION events only)
api_versionstringRevenueCat webhook API version
eventjsonFull RevenueCat event object

revenuecat_renewal

Trigger workflow when a RevenueCat subscription renews

Output

ParameterTypeDescription
typestringEvent type (e.g., INITIAL_PURCHASE, RENEWAL)
idstringUnique event identifier
app_idstringRevenueCat app public identifier
event_timestamp_msnumberTimestamp (ms since epoch) when the event was generated
app_user_idstringCurrent App User ID
original_app_user_idstringFirst App User ID ever used
aliasesjsonAll App User IDs ever used by the subscriber
product_idstringProduct identifier
new_product_idstringProduct identifier changed to (PRODUCT_CHANGE events only)
period_typestringPeriod type (TRIAL, INTRO, NORMAL, PROMOTIONAL, or PREPAID)
purchased_at_msnumberPurchase timestamp (ms since epoch)
expiration_at_msnumberExpiration timestamp (ms since epoch), nullable
environmentstringEnvironment (SANDBOX or PRODUCTION)
entitlement_idstringDeprecated single entitlement identifier
entitlement_idsjsonAssociated entitlement identifiers
presented_offering_idstringIdentifier of the offering presented to the user
transaction_idstringStore transaction ID
original_transaction_idstringOriginal subscription transaction ID
is_family_sharebooleanWhether the purchase was family shared
country_codestringISO country code of the subscriber
currencystringISO 4217 currency code
pricenumberPrice in USD
price_in_purchased_currencynumberPrice in the currency the purchase was made in
storestringStore the purchase was made on (e.g., APP_STORE)
takehome_percentagenumberEstimated percentage of the price taken home after store commission
tax_percentagenumberEstimated percentage taken as tax
commission_percentagenumberEstimated percentage taken by the store as commission
offer_codestringOffer code applied to the purchase, if any
subscriber_attributesjsonSubscriber attributes at the time of the event
experimentsjsonExperiments the subscriber was enrolled in
cancel_reasonstringReason for cancellation (CANCELLATION events only)
expiration_reasonstringReason for expiration (EXPIRATION events only)
api_versionstringRevenueCat webhook API version
eventjsonFull RevenueCat event object

revenuecat_cancellation

Trigger workflow when a subscriber cancels a RevenueCat subscription

Output

ParameterTypeDescription
typestringEvent type (e.g., INITIAL_PURCHASE, RENEWAL)
idstringUnique event identifier
app_idstringRevenueCat app public identifier
event_timestamp_msnumberTimestamp (ms since epoch) when the event was generated
app_user_idstringCurrent App User ID
original_app_user_idstringFirst App User ID ever used
aliasesjsonAll App User IDs ever used by the subscriber
product_idstringProduct identifier
new_product_idstringProduct identifier changed to (PRODUCT_CHANGE events only)
period_typestringPeriod type (TRIAL, INTRO, NORMAL, PROMOTIONAL, or PREPAID)
purchased_at_msnumberPurchase timestamp (ms since epoch)
expiration_at_msnumberExpiration timestamp (ms since epoch), nullable
environmentstringEnvironment (SANDBOX or PRODUCTION)
entitlement_idstringDeprecated single entitlement identifier
entitlement_idsjsonAssociated entitlement identifiers
presented_offering_idstringIdentifier of the offering presented to the user
transaction_idstringStore transaction ID
original_transaction_idstringOriginal subscription transaction ID
is_family_sharebooleanWhether the purchase was family shared
country_codestringISO country code of the subscriber
currencystringISO 4217 currency code
pricenumberPrice in USD
price_in_purchased_currencynumberPrice in the currency the purchase was made in
storestringStore the purchase was made on (e.g., APP_STORE)
takehome_percentagenumberEstimated percentage of the price taken home after store commission
tax_percentagenumberEstimated percentage taken as tax
commission_percentagenumberEstimated percentage taken by the store as commission
offer_codestringOffer code applied to the purchase, if any
subscriber_attributesjsonSubscriber attributes at the time of the event
experimentsjsonExperiments the subscriber was enrolled in
cancel_reasonstringReason for cancellation (CANCELLATION events only)
expiration_reasonstringReason for expiration (EXPIRATION events only)
api_versionstringRevenueCat webhook API version
eventjsonFull RevenueCat event object

revenuecat_expiration

Trigger workflow when a RevenueCat subscription expires

Output

ParameterTypeDescription
typestringEvent type (e.g., INITIAL_PURCHASE, RENEWAL)
idstringUnique event identifier
app_idstringRevenueCat app public identifier
event_timestamp_msnumberTimestamp (ms since epoch) when the event was generated
app_user_idstringCurrent App User ID
original_app_user_idstringFirst App User ID ever used
aliasesjsonAll App User IDs ever used by the subscriber
product_idstringProduct identifier
new_product_idstringProduct identifier changed to (PRODUCT_CHANGE events only)
period_typestringPeriod type (TRIAL, INTRO, NORMAL, PROMOTIONAL, or PREPAID)
purchased_at_msnumberPurchase timestamp (ms since epoch)
expiration_at_msnumberExpiration timestamp (ms since epoch), nullable
environmentstringEnvironment (SANDBOX or PRODUCTION)
entitlement_idstringDeprecated single entitlement identifier
entitlement_idsjsonAssociated entitlement identifiers
presented_offering_idstringIdentifier of the offering presented to the user
transaction_idstringStore transaction ID
original_transaction_idstringOriginal subscription transaction ID
is_family_sharebooleanWhether the purchase was family shared
country_codestringISO country code of the subscriber
currencystringISO 4217 currency code
pricenumberPrice in USD
price_in_purchased_currencynumberPrice in the currency the purchase was made in
storestringStore the purchase was made on (e.g., APP_STORE)
takehome_percentagenumberEstimated percentage of the price taken home after store commission
tax_percentagenumberEstimated percentage taken as tax
commission_percentagenumberEstimated percentage taken by the store as commission
offer_codestringOffer code applied to the purchase, if any
subscriber_attributesjsonSubscriber attributes at the time of the event
experimentsjsonExperiments the subscriber was enrolled in
cancel_reasonstringReason for cancellation (CANCELLATION events only)
expiration_reasonstringReason for expiration (EXPIRATION events only)
api_versionstringRevenueCat webhook API version
eventjsonFull RevenueCat event object

revenuecat_non_renewing_purchase

Trigger workflow when a subscriber makes a non-renewing purchase in RevenueCat

Output

ParameterTypeDescription
typestringEvent type (e.g., INITIAL_PURCHASE, RENEWAL)
idstringUnique event identifier
app_idstringRevenueCat app public identifier
event_timestamp_msnumberTimestamp (ms since epoch) when the event was generated
app_user_idstringCurrent App User ID
original_app_user_idstringFirst App User ID ever used
aliasesjsonAll App User IDs ever used by the subscriber
product_idstringProduct identifier
new_product_idstringProduct identifier changed to (PRODUCT_CHANGE events only)
period_typestringPeriod type (TRIAL, INTRO, NORMAL, PROMOTIONAL, or PREPAID)
purchased_at_msnumberPurchase timestamp (ms since epoch)
expiration_at_msnumberExpiration timestamp (ms since epoch), nullable
environmentstringEnvironment (SANDBOX or PRODUCTION)
entitlement_idstringDeprecated single entitlement identifier
entitlement_idsjsonAssociated entitlement identifiers
presented_offering_idstringIdentifier of the offering presented to the user
transaction_idstringStore transaction ID
original_transaction_idstringOriginal subscription transaction ID
is_family_sharebooleanWhether the purchase was family shared
country_codestringISO country code of the subscriber
currencystringISO 4217 currency code
pricenumberPrice in USD
price_in_purchased_currencynumberPrice in the currency the purchase was made in
storestringStore the purchase was made on (e.g., APP_STORE)
takehome_percentagenumberEstimated percentage of the price taken home after store commission
tax_percentagenumberEstimated percentage taken as tax
commission_percentagenumberEstimated percentage taken by the store as commission
offer_codestringOffer code applied to the purchase, if any
subscriber_attributesjsonSubscriber attributes at the time of the event
experimentsjsonExperiments the subscriber was enrolled in
cancel_reasonstringReason for cancellation (CANCELLATION events only)
expiration_reasonstringReason for expiration (EXPIRATION events only)
api_versionstringRevenueCat webhook API version
eventjsonFull RevenueCat event object

revenuecat_product_change

Trigger workflow when a subscriber changes their RevenueCat subscription product

Output

ParameterTypeDescription
typestringEvent type (e.g., INITIAL_PURCHASE, RENEWAL)
idstringUnique event identifier
app_idstringRevenueCat app public identifier
event_timestamp_msnumberTimestamp (ms since epoch) when the event was generated
app_user_idstringCurrent App User ID
original_app_user_idstringFirst App User ID ever used
aliasesjsonAll App User IDs ever used by the subscriber
product_idstringProduct identifier
new_product_idstringProduct identifier changed to (PRODUCT_CHANGE events only)
period_typestringPeriod type (TRIAL, INTRO, NORMAL, PROMOTIONAL, or PREPAID)
purchased_at_msnumberPurchase timestamp (ms since epoch)
expiration_at_msnumberExpiration timestamp (ms since epoch), nullable
environmentstringEnvironment (SANDBOX or PRODUCTION)
entitlement_idstringDeprecated single entitlement identifier
entitlement_idsjsonAssociated entitlement identifiers
presented_offering_idstringIdentifier of the offering presented to the user
transaction_idstringStore transaction ID
original_transaction_idstringOriginal subscription transaction ID
is_family_sharebooleanWhether the purchase was family shared
country_codestringISO country code of the subscriber
currencystringISO 4217 currency code
pricenumberPrice in USD
price_in_purchased_currencynumberPrice in the currency the purchase was made in
storestringStore the purchase was made on (e.g., APP_STORE)
takehome_percentagenumberEstimated percentage of the price taken home after store commission
tax_percentagenumberEstimated percentage taken as tax
commission_percentagenumberEstimated percentage taken by the store as commission
offer_codestringOffer code applied to the purchase, if any
subscriber_attributesjsonSubscriber attributes at the time of the event
experimentsjsonExperiments the subscriber was enrolled in
cancel_reasonstringReason for cancellation (CANCELLATION events only)
expiration_reasonstringReason for expiration (EXPIRATION events only)
api_versionstringRevenueCat webhook API version
eventjsonFull RevenueCat event object

Notes

  • Category: tools
  • Type: revenuecat
RevenueCat