---
name: bijection-revenuecat
description: "Evaluate and integrate the Revenuecat component with Bijection."
---

# Revenuecat

Mobile subscription synchronization

- Package: @bijectionhq/revenuecat
- Category: Payments
- Status: Preview
- License: Apache-2.0
- Bijection source (repository access required): https://github.com/bijectionhq/revenuecat/tree/098510f8a09cc1f14015ce6c440a9e95c6a0c05f
- Upstream: https://github.com/ramonclaudio/convex-revenuecat/tree/3b5c3b455afab2a51d7e000af8f6a975ebc275f7
- Documentation: https://docs.bijection.com/components/using
- Directory: https://bijection.com/components/revenuecat

## Get the source

Bijection repository access is required. Request access at https://bijection.com/contact.

```sh
git clone https://github.com/bijectionhq/revenuecat.git
cd revenuecat
git checkout 098510f8a09cc1f14015ce6c440a9e95c6a0c05f
```

## Before using this component

Read the package README at the recorded revision for setup, dependencies, and API examples. Upstream documentation describes the original package and may differ from the Bijection adaptation. This is a source candidate for evaluation. Catalog inclusion does not establish npm availability or runtime qualification. Check compatibility with your SDK and deployment before adoption. External providers run their own compute.

## Integration workflow

1. Read the source README and package manifest at the recorded revision.
2. Confirm the required SDK, dependency availability, and runtime compatibility.
3. Follow the component's documented setup and configuration. Never invent an npm install command from a catalog package name.
4. Keep credentials in the project's existing secret store.
5. Follow the project's execution rules for verification and report what was actually checked.

## Original upstream skill

The following guidance describes convex-revenuecat. Its installation commands and APIs refer to the upstream package. Evaluate compatibility with the Bijection source separately.


> Agents: read this skill fully before writing code that uses RevenueCat. Follow the installation and configuration steps exactly.

# RevenueCat

## Instructions

A Convex component that processes RevenueCat webhooks to maintain subscription state in your Convex database. It provides real-time entitlement checking by syncing all 18 RevenueCat webhook events and storing customer, subscription, and entitlement data. You can query active subscriptions and check user permissions directly from Convex without polling external APIs.

### Installation

```bash
npm install convex-revenuecat
```

Current npm version: `convex-revenuecat@0.3.2`

## Use cases

- **Check premium feature access** - Query `hasEntitlement()` to gate features based on active subscriptions, with real-time updates when subscriptions change
- **Build subscription dashboards** - Display user subscription status, billing grace periods, and entitlement history using Convex's reactive queries
- **Handle subscription lifecycle** - Automatically sync cancellations, renewals, refunds, and product changes from RevenueCat without manual API calls
- **Manage user transfers** - Track when subscriptions move between users and maintain entitlement continuity during account migrations
- **A/B test subscription flows** - Access experiment enrollment data from RevenueCat to personalize pricing and features based on test variants

## How it works

The component registers a webhook handler that processes all RevenueCat events and stores them in structured Convex tables. You mount the webhook at `/webhooks/revenuecat` using the provided `httpHandler()` and secure it with a shared authorization header. RevenueCat sends events like purchases, cancellations, and renewals to your Convex deployment.

The `RevenueCat` class provides query methods like `hasEntitlement()`, `getActiveSubscriptions()`, and `getCustomer()` that read from the synced database tables. The component handles edge cases correctly - cancellations don't immediately revoke access, grace periods maintain entitlements, and lifetime purchases never expire.

All webhook events are processed idempotently and stored in the `webhookEvents` table for debugging. The component includes built-in rate limiting and automatic cleanup of old events. You query entitlement state using standard Convex patterns, getting real-time reactivity when subscription status changes.

## When NOT to use

- When a simpler built-in solution exists for your specific use case
- If you are not using Convex as your backend
- When the functionality provided by RevenueCat is not needed

## Resources

- [npm package](https://www.npmjs.com/package/convex-revenuecat)
- [GitHub repository](https://github.com/ramonclaudio/convex-revenuecat)
- [Convex Components Directory](https://www.convex.dev/components/ramonclaudio-convex-revenuecat)
- [Convex documentation](https://docs.convex.dev)