# OpenReceive guides

OpenReceive adds Bitcoin Lightning checkout to your application or store.
Payments go straight to your wallet, and payment attempts are stored in your
existing database. Pick your framework or platform below.

OpenReceive can also accept **USDT, USDC, SOL, and ETH** through a swap
provider you configure. The provider converts the payment to **BTC over
Lightning**, and it settles into the merchant's connected wallet. Swaps are
optional. The provider decides which assets and networks are available.

## Your own app

1. [Express quickstart (Node)](/guides/quickstart-node.md)
   - [Bitcoin checkout on Replit](/guides/replit.md): the same Express setup, built by Replit Agent and published on Replit
2. [Fastify quickstart](/guides/quickstart-fastify.md)
3. [Next.js quickstart](/guides/quickstart-next.md)
   - [Bitcoin checkout on Vercel and v0](/guides/vercel.md): the same Next.js setup, hosted on Vercel or built by v0
4. [NestJS quickstart](/guides/quickstart-nestjs.md): the Express adapter, mounted in `main.ts`
5. [Node ORM recipes](/guides/node-orms.md)
6. [Rails quickstart](/guides/quickstart-rails.md)
7. [FastAPI quickstart](/guides/quickstart-fastapi.md)
   - [Flask quickstart](/guides/quickstart-flask.md): the same Python engine, as a Flask Blueprint
8. [Django quickstart](/guides/quickstart-django.md)
9. [PHP quickstart (plain PHP)](/guides/quickstart-php.md)
10. [Laravel quickstart](/guides/quickstart-laravel.md)

Recipes: [React + Material UI](/guides/react-material-ui-recipe.md),
[TanStack Start](/guides/tanstack-start-recipe.md) (a server route, on Node or Cloudflare Workers),
[Supabase Edge Functions](/guides/supabase-edge-functions-recipe.md).
On Node, the same handler mounts in [SvelteKit](/guides/sveltekit-recipe.md),
[Nuxt](/guides/nuxt-recipe.md), [Astro](/guides/astro-recipe.md) and
[React Router](/guides/react-router-recipe.md).

## AI app builders

- [Bitcoin checkout on Lovable](/guides/lovable.md)
- [Bitcoin checkout on Bolt](/guides/bolt.md)
- [Bitcoin checkout with Supabase](/guides/supabase.md): payment storage in Supabase Postgres, through its pooler, with Supabase Auth

## Stores and billing panels

- [WordPress + WooCommerce quickstart](/guides/quickstart-woocommerce.md)
- [Easy Digital Downloads quickstart](/guides/quickstart-edd.md): the same WordPress plugin
- [WordPress hosting requirements](/guides/wordpress-hosting.md): which hosts can run the WordPress plugin
- [Paymenter quickstart](/guides/quickstart-paymenter.md)
- [FOSSBilling quickstart](/guides/quickstart-fossbilling.md)
- [PrestaShop quickstart](/guides/quickstart-prestashop.md)
- [Odoo quickstart](/guides/quickstart-odoo.md)
- [Medusa quickstart](/guides/quickstart-medusa.md)
- [Vendure quickstart](/guides/quickstart-vendure.md)
- [BTCPay Server quickstart](/guides/quickstart-btcpay.md), plus its [reference](/guides/btcpay-reference.md)
- Through BTCPay Server: [Odoo](/guides/odoo.md), [Magento](/guides/magento.md) and [PrestaShop](/guides/prestashop.md)

## Checkout

- [Authorization and the host](/guides/authorization.md)
- [Frontend checkout](/guides/frontend-checkout.md)
- [Checkout UX](/guides/checkout-ux.md)
- [Headless checkout](/guides/headless-checkout.md)
- [Writing your own checkout route](/guides/custom-checkout-route.md)
- [Rate limiting](/guides/rate-limiting.md)

## Swaps

- [Automated swaps](/guides/automated-swaps.md)
- [Swap refunds, and the way back to them](/guides/swap-refunds.md)
- [Lightning Swap Connect (LSC) URI](/guides/lightning-swap-connect.md)
- [Provider registry](/guides/provider-registry.md)

## Running it

- [Environment variables](/guides/environment-variables.md)
- [Payment storage](/guides/storage.md)
- [Deploying OpenReceive](/guides/deploying.md)
  - [Bitcoin checkout on serverless hosts](/guides/serverless.md): Netlify, AWS Lambda, Google Cloud Run and AI Studio, and pooled database URLs
  - [Bitcoin checkout in mobile apps](/guides/mobile-apps.md): React Native, Flutter, Swift and Kotlin apps, and what the app stores allow
- [Payment safety upgrade and repair](/guides/payment-safety-upgrade.md): how to roll out an upgrade and how unpaid attempts close
- [Testing your OpenReceive integration](/guides/host-testing.md)
- [Security](/guides/security.md)
- [Price feeds](/guides/price-feeds.md)
- [How we test platforms](/guides/how-we-test-platforms.md): what a Tested badge on openreceive.org means

## Reference

- [API reference](/api_docs.md)

## With a coding agent

Give your agent one of the agent-directions files instead of a reading list.
Each one holds the rules to follow before any code (Step 0) and the full
matching quickstart, and works pasted into an editor with no network access:
[Express](https://openreceive.org/agent-directions/node/full.md),
[Fastify](https://openreceive.org/agent-directions/fastify/full.md),
[Next.js](https://openreceive.org/agent-directions/next/full.md),
[NestJS](https://openreceive.org/agent-directions/nestjs/full.md),
[SvelteKit](https://openreceive.org/agent-directions/sveltekit/full.md),
[Nuxt](https://openreceive.org/agent-directions/nuxt/full.md),
[Astro](https://openreceive.org/agent-directions/astro/full.md),
[React Router](https://openreceive.org/agent-directions/react-router/full.md),
[TanStack Start](https://openreceive.org/agent-directions/tanstack-start/full.md),
[FastAPI](https://openreceive.org/agent-directions/fastapi/full.md),
[Django](https://openreceive.org/agent-directions/django/full.md),
[Flask](https://openreceive.org/agent-directions/flask/full.md),
[Rails](https://openreceive.org/agent-directions/rails/full.md),
[PHP](https://openreceive.org/agent-directions/php/full.md),
[Laravel](https://openreceive.org/agent-directions/laravel/full.md),
[Lovable](https://openreceive.org/agent-directions/lovable/full.md),
[Bolt](https://openreceive.org/agent-directions/bolt/full.md),
[WooCommerce](https://openreceive.org/agent-directions/woocommerce/full.md),
[Easy Digital Downloads](https://openreceive.org/agent-directions/edd/full.md),
[Paymenter](https://openreceive.org/agent-directions/paymenter/full.md),
[FOSSBilling](https://openreceive.org/agent-directions/fossbilling/full.md),
[PrestaShop](https://openreceive.org/agent-directions/prestashop/full.md),
[Odoo](https://openreceive.org/agent-directions/odoo/full.md),
[Medusa](https://openreceive.org/agent-directions/medusa/full.md),
[Vendure](https://openreceive.org/agent-directions/vendure/full.md),
[BTCPay Server](https://openreceive.org/agent-directions/btcpay/full.md) or
[a mobile app's server](https://openreceive.org/agent-directions/mobile/full.md).
To hand an agent a link instead, drop `/full` from the URL: that short page
tells it to download the full file with its shell.
