---
name: bijection-dodo-payments
description: "Evaluate and integrate the Dodo Payments component with Bijection."
---

# Dodo Payments

Dodo Payments component

- Package: @bijectionhq/dodo-payments
- Category: Payments
- Status: Preview
- License: GPL-3.0
- Bijection source (repository access required): https://github.com/bijectionhq/dodo-payments/tree/7f87230383f3c3bad91a82e26671e5d5fee32136/packages/convex
- Upstream: https://github.com/dodopayments/dodo-adapters/tree/41f2a2c6d6f9541733780ddfb1ad0b84879e1e60/packages/convex
- Documentation: https://docs.bijection.com/components/using
- Directory: https://bijection.com/components/dodo-payments

## Get the source

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

```sh
git clone https://github.com/bijectionhq/dodo-payments.git
cd dodo-payments
git checkout 7f87230383f3c3bad91a82e26671e5d5fee32136
cd packages/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 @dodopayments/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 Dodo Payments. Follow the installation and configuration steps exactly.

# Dodo Payments

## Instructions

The Dodo Payments Convex component integrates checkout sessions, customer portals, and webhook handling directly into Convex applications. It provides a complete billing solution with built-in webhook verification, customer identification mapping, and payment flow management. The component handles the complexity of payment processing while letting you focus on your business logic within Convex's serverless architecture.

### Installation

```bash
npm install @dodopayments/convex
```

Current npm version: `@dodopayments/convex@0.2.15`

## Use cases

- **SaaS subscription billing** - Handle recurring subscriptions, plan upgrades, and customer self-service portals for your AI or SaaS application
- **One-time product sales** - Create checkout flows for digital products, credits, or feature unlocks with automatic payment confirmation
- **Usage-based billing** - Process payments for API usage, compute credits, or consumption-based pricing models
- **Multi-tenant billing** - Manage separate billing for different organizations or workspaces within your application
- **Payment webhook processing** - Automatically sync payment status, subscription changes, and customer data to your Convex database

## How it works

The component follows Convex's component architecture pattern, requiring installation via `app.use(dodopayments)` in your convex.config.ts. You configure a `DodoPayments` instance with an `identify` function that maps your authenticated Convex users to Dodo Payments customers using internal queries.

Checkout and customer portal functionality is exposed through the `dodo.api()` methods, which you call from Convex actions. The `checkout` function accepts product carts and billing configuration, returning checkout URLs for frontend redirection. The `customerPortal` function generates self-service management links.

Webhook handling uses `createDodoWebhookHandler` in your http.ts file, providing event-specific handlers like `onPaymentSucceeded` and `onSubscriptionActive`. Each webhook handler receives Convex's `ActionCtx`, allowing you to use `ctx.runMutation()` to persist payment data directly to your database with automatic webhook signature verification.

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

## Resources

- [npm package](https://www.npmjs.com/package/%40dodopayments%2Fconvex)
- [GitHub repository](https://github.com/dodopayments/dodo-adapters/blob/main/packages/convex/README.md)
- [Convex Components Directory](https://www.convex.dev/components/dodopayments)
- [Convex documentation](https://docs.convex.dev)