---
name: bijection-creem
description: "Evaluate and integrate the Creem component with Bijection."
---

# Creem

A Creem component for Bijection.

- Package: @bijectionhq/creem
- Category: Payments
- Status: Preview
- License: MIT
- Bijection source (repository access required): https://github.com/bijectionhq/creem/tree/c6ea447308fa972a2cc22f55d1fd929660db8dc3/packages/integrations/convex
- Upstream: https://github.com/armitage-labs/creem/tree/cbb07d19b10efdb64399bf924d2cb838da170089/packages/integrations/convex
- Documentation: https://docs.bijection.com/components/using
- Directory: https://bijection.com/components/creem

## Get the source

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

```sh
git clone https://github.com/bijectionhq/creem.git
cd creem
git checkout c6ea447308fa972a2cc22f55d1fd929660db8dc3
cd packages/integrations/convex
```

## 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 @creem_io/convex. 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 Creem. Follow the installation and configuration steps exactly.

# Creem

## Instructions

The @creem_io/convex package integrates Creem's Merchant of Record billing platform directly into Convex applications, providing backend helpers and React/Svelte UI widgets for subscriptions, one-time purchases, seat-based pricing, and customer portal access. It handles checkout session creation, webhook processing, and subscription state synchronization within the Convex backend. Creem acts as the legal seller of your software, managing global tax compliance across 140+ countries, payment processing, and automated payouts.

### Installation

```bash
npm install @creem_io/convex
```

Current npm version: `@creem_io/convex@0.5.0`

## Use cases

- Adding subscription billing to a Convex app without building a separate payment backend or managing Stripe webhook infrastructure yourself
- Implementing seat-based pricing where subscription state needs to be queryable from Convex functions alongside application data
- Dropping in pre-built React or Svelte checkout and customer portal widgets without writing custom billing UI components
- Selling software globally and offloading US state tax, EU VAT, and other compliance obligations to a Merchant of Record
- Handling subscription lifecycle events such as upgrades, downgrades, trials, and cancellations with webhook handlers that write directly to the Convex database

## How it works

The component is installed via npm as @creem_io/convex and configured with a Creem API key. It exposes backend helpers that run as Convex actions to call the Creem API for checkout session creation and subscription management, and webhook handlers that verify incoming Creem webhook payloads and persist subscription state to the Convex database.

Webhook events such as checkout.completed and subscription.canceled are verified using a webhook secret and dispatched to typed handler callbacks, following the same pattern as the broader Creem SDK. This keeps billing state in sync with your Convex tables without requiring a separate server.

The package ships pre-built React and Svelte UI widgets for checkout flows and the customer portal, which can be embedded directly into your frontend. These widgets coordinate with the backend helpers to initiate checkouts and reflect current subscription status from Convex queries.

Creem functions as a Merchant of Record, meaning tax calculation, VAT collection, fraud protection, and payout handling are all managed externally. Your application only needs to provision or revoke access based on the subscription events delivered through the webhook integration.

## 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 Creem is not needed

## Resources

- [npm package](https://www.npmjs.com/package/@creem_io/convex)
- [GitHub repository](https://github.com/armitage-labs/creem/tree/main/packages/integrations/convex)
- [Live demo](https://convex-creem.pages.dev/)
- [Convex Components Directory](https://www.convex.dev/components/mmailaender/convex-creem)
- [Convex documentation](https://docs.convex.dev)