Skip to content

Medusa vs Saleor vs Vendure

Medusa vs Saleor vs Vendure, and the hosted fourth option.

Medusa (TypeScript, MIT license), Saleor (Python and GraphQL, BSD-3), and Vendure (TypeScript and GraphQL, GPLv3) are open-source commerce backends. Medusa Cloud starts at $29 a month, Saleor Cloud’s first commercial plan is $1,599 a month, and Vendure’s paid plans start at €199 a month, with its own cloud planned for Q1 2027. On all three you bring a Stripe account and a way to compute US sales tax, and on Medusa and Vendure you also register Stripe’s webhooks yourself. Flint Pay is the fourth option for US businesses that would rather not run a commerce backend: orders, catalog, inventory, promotions, subscriptions, and returns in a hosted API, with Stripe processing and automatic US sales tax built in and no monthly fee.

3.79% + 35¢ on cards · no monthly fee · free sandbox · no credit card

last reviewed 2026-10-15 · sources

01The options

Four options for a commerce backend in 2026.

Ranked for a US business selling on its own website or app. Each figure is from the vendor's own pricing page, docs, or license file, checked on the date under Sources.

  1. 01

    Flint Pay

    US businesses that want the commerce backend hosted, with card payments and automatic US sales tax already in it.

    Hosting
    hosted by Flint
    Payments
    built in, 3.79% + 35¢
    US sales tax
    automatic, 0.50% on taxed payments
    Monthly
    no monthly fee
  2. 02

    Medusa

    TypeScript teams that want a Node commerce framework to run themselves or on Medusa Cloud.

    License
    MIT, Enterprise Edition excepted
    Medusa Cloud
    $29, $99, $299/mo, 0% GMV
    Payments
    Stripe module, your keys and webhooks
    US sales tax
    Avalara module you write
  3. 03

    Saleor

    Python teams that want a GraphQL commerce API, self-hosted or on Saleor Cloud.

    License
    BSD-3-Clause
    Saleor Cloud
    $1,599/mo to $200K GMV, then 0.8%
    Payments
    Stripe app, Saleor 3.23
    US sales tax
    AvaTax app, or flat rates
  4. 04

    Vendure

    TypeScript and NestJS teams that self-host and want the B2B features Vendure's paid plans add.

    License
    GPLv3, or commercial on paid plans
    Plans
    €199, €599, €2,499/mo, 12-month term
    Payments
    community Stripe plugin
    US sales tax
    zone rates, or your own strategy

02Side by side

Medusa, Saleor, Vendure, and Flint, need by need.

The middle column is what each project's own docs and pricing pages say today, each linked under Sources. The Flint column is what a Flint account does, with the API name behind it.

HostingMedusa, Saleor, and Vendure: Medusa: self-hosted production runs PostgreSQL, Redis, a server instance, and a worker instance, or Medusa Cloud. Saleor: self-hosted, or Saleor Cloud, whose free Sandbox is marked non-commercial use only. Vendure: self-hosted; Vendure Cloud opens as a closed beta for paid plans, with wider availability planned for Q1 2027.Flint: Hosted. There is nothing to deploy: the API, dashboard, hosted checkout, and buyer account come with your API keys.
PriceMedusa, Saleor, and Vendure: Medusa Cloud: $29, $99, or $299 a month plus metered usage, such as $0.16 per extra compute hour and $30 per extra seat. Saleor Cloud: $1,599 a month up to $200,000 of monthly GMV, then 0.8%; $3,999 up to $1,000,000, then 0.4%. Vendure: €199, €599, or €2,499 a month on a 12-month term, Enterprise from €60,000 a year. Card processing is billed by your processor on top of each.Flint: No monthly fee. 3.79% + 35¢ per card payment, which covers Stripe's processing fees.
Card paymentsMedusa, Saleor, and Vendure: Medusa: register the Stripe module in medusa-config.ts with your API key and webhook secret, add Stripe webhooks for four payment events, and enable Stripe on each region. Saleor: the Stripe app needs Saleor 3.23, and its docs say Stripe Checkout is not supported. Vendure: the Stripe plugin is published as @vendure-community/stripe-plugin; you create the Stripe webhook endpoint and wire Stripe’s Payment Element into your storefront.Flint: Stripe, on a processing account Flint sets up and runs for you: cards, Apple Pay, Google Pay, ACH debit, and Affirm. No processor keys or webhook secret of your own.POST /v1/checkout-sessions
US sales taxMedusa, Saleor, and Vendure: Medusa: a placeholder system provider for basic calculation; for Avalara, its guide has you create a custom tax module provider. Saleor: flat rates you enter per country by default, or a tax app such as AvaTax; its Stripe Tax app request was closed as not planned. Vendure: rates per tax category and zone, and its docs name the tax line strategy as the place to integrate a third-party tax API.Flint: Automatic US sales tax computed after discounts and recorded on each line, at 0.50% only on payments that carry tax. Or pass rates from your own engine.tax_money
Subscriptions and gift cardsMedusa, Saleor, and Vendure: Medusa: its 22 commerce modules include no subscription module; gift cards come from the Loyalty Module in its Loyalty plugin, for Medusa v2.14.0 and later. Vendure: gift cards are listed on the Growth plan, €599 a month.Flint: Subscriptions at 0.40% of subscription payments, with trials, setup fees, retries, and buyer pause and skip, plus a gift cards API.POST /v1/subscriptions

03How to choose

Medusa vs Saleor vs Vendure: which one should you pick?

Medusa vs Saleor. The first split is language and price. Medusa is a TypeScript framework under the MIT license, and Medusa Cloud starts at $29 a month with no GMV fee. Saleor is Python with a GraphQL API under BSD-3, and Saleor Cloud starts at $1,599 a month for up to $200,000 of monthly GMV. On either, self-hosting moves the bill from the plan to your own servers.

Medusa vs Vendure. Both are TypeScript. Vendure runs on NestJS with GraphQL APIs and moved from MIT to GPLv3 with version 3; its paid plans include a commercial license instead. Vendure’s plans, introduced on 2026-10-13, add company accounts, quote requests, and other B2B features from €199 a month, and Vendure Cloud is planned for Q1 2027, so today you host it yourself.

Saleor vs Vendure. Python against TypeScript, a permissive license against GPLv3, and a hosted cloud from $1,599 a month against self-hosting with plans from €199. Both put a GraphQL API in front of the catalog and orders.

What all three share. Each is a backend you deploy, upgrade, and monitor, and each leaves the payment processor and the US sales tax engine to you: a Stripe account, with webhooks you register on Medusa and Vendure, plus an Avalara integration or rates you maintain. If running that stack is not the job you want, Flint is the fourth option: the same commerce records in a hosted API, with Stripe processing and automatic US sales tax already in it.

Flint vs Medusa →Saleor alternatives →Headless commerce platforms, ranked →

04What you wire up

What do you set up before the first card payment?

On Medusa, taking a card means a Stripe account, a provider in the config, webhooks registered in Stripe, the provider enabled on each region, and a tax module for US sales tax, all running on servers you host. Saleor and Vendure take an app or a plugin with its own keys and configuration. On Flint it is two calls with your API key.

Medusa: Stripe, webhooks, regions, tax, hosting
// medusa-config.ts: register Stripe with the Payment Module
modules: [
  {
    resolve: "@medusajs/medusa/payment",
    options: {
      providers: [
        {
          resolve: "@medusajs/medusa/payment-stripe",
          id: "stripe",
          options: {
            apiKey: process.env.STRIPE_API_KEY,
            webhookSecret: process.env.STRIPE_WEBHOOK_SECRET,
            capture: true, // defaults to false
          },
        },
      ],
    },
  },
],

// Then, outside the code:
// 1. In Stripe, add a webhook to {server_url}/hooks/payment/stripe_stripe
//    for payment_intent.amount_capturable_updated, .succeeded,
//    .payment_failed, and .partially_funded.
// 2. In Medusa Admin, enable Stripe on every region that sells.
// 3. For US sales tax, write a custom tax module provider (Medusa's
//    Avalara guide) and assign it to each tax region.
// 4. Host it: PostgreSQL, Redis, a server instance, a worker instance.

From Medusa's Stripe provider, Avalara, and deployment docs. Saleor's Stripe and AvaTax apps each need their own configuration, and the Stripe app creates its Stripe webhooks. Vendure's Stripe plugin needs a key, a webhook secret, and a webhook endpoint you create in Stripe.

Flint: an order by variant, then checkout
# 1. The cart, by variant. Flint prices each line, applies the code,
#    and computes US sales tax after the discount.
curl -X POST https://api.withflintpay.com/v1/orders \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: cart-4410" \
  -d '{
    "line_items": [
      { "variant_id": "var_1kmn0aMugBlue", "quantity": 2 }
    ],
    "discounts": [{ "promotion": { "promotion_code": "WELCOME10" } }],
    "tax": {
      "enabled": true,
      "calculation": { "mode": "automatic", "price_mode": "additive" }
    }
  }'

# 2. Hosted checkout for that order, with Stripe processing the card.
curl -X POST https://api.withflintpay.com/v1/checkout-sessions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: checkout-4410" \
  -d '{
    "order_id": "ord_1kmn0aExample",
    "redirects": {
      "success_redirect_url": "https://example.com/thanks",
      "cancel_redirect_url": "https://example.com/cart"
    }
  }'

Flint computes the subtotal, discount, and tax, holds the stock when payment starts, and sends order.paid once the buyer pays.

Checkout sessions guide →Sales tax guide →

05Included

What does a hosted Flint account include?

The commerce records Medusa, Saleor, and Vendure model, plus the parts each leaves to you: card processing and US sales tax. One account and one rate, 3.79% + 35¢, with no monthly fee. Invoices, subscriptions, and automatic tax are priced add-ons.

Card processing on Stripe, set up and run by Flint, with Stripe's fees inside one rate. No processor account or keys of your own.

POST /v1/checkout-sessions

An order for every checkout, payment link, invoice, and renewal, with totals Flint computes on its server.

POST /v1/orders

Products with options and variants, plus categories, modifier sets, and bundles.

POST /v1/products

Stock per location, held when payment starts, committed on success, and released on failure.

held_quantity

Codes and automatic promotions that stack by rules you set, with a preview call.

POST /v1/discount-previews

Automatic US sales tax computed after discounts and recorded on each line.

tax_money

Subscriptions with trials, setup fees, and retries, each renewal creating an order.

POST /v1/subscriptions

Returns from a policy, with inspections, restocking fees, exchanges, and buyer self-serve.

POST /v1/return-policies

Refund one line item, and its share of the discount and the tax goes back with it.

line_item_allocations

The commerce API →Selling physical goods on Flint →Flint pricing →

06Who Flint is for

Flint is built for US businesses selling online.

If that describes you, the commerce backend, the payments, and the tax engine are running the day you create your account.

US businesses

Flint onboards businesses in the US and pays out in USD to your own bank account. Buyers can pay from anywhere with a card.

Your own storefront

Your Next.js, Remix, or any other frontend sends carts to the API, or you sell through payment links and Flint's hosted checkout.

No backend to run

Flint hosts the API, the dashboard, the checkout, and the buyer account. There is no database, cache, or worker for you to operate.

Developers and agents

A public OpenAPI spec, Node and PHP SDKs, a CLI, llms.txt, and MCP servers a coding agent can read.

07Switching

How do you move from Medusa, Saleor, or Vendure to Flint?

Your storefront stays. The calls behind its cart and checkout change, one flow at a time.

  1. Recreate the catalog

    POST /v1/products

    Create each product with its options and variants, and keep the old product id in metadata so your storefront's links and reports still resolve.

  2. Send the cart as an order

    POST /v1/orders

    Replace the cart and checkout calls with an order created from variant IDs and quantities. Flint prices each line, applies promotions, and computes US sales tax.

  3. Open hosted checkout

    POST /v1/checkout-sessions

    Create a checkout session for the order, or confirm payment with Stripe Elements on your own page. No processor account or webhook secret of your own is needed.

  4. Fulfill from order.paid

    order.paid

    Move the work your payment webhook handlers did to Flint's order.paid event, and verify Flint's webhook signatures.

  5. Go live

    Run each flow in a sandbox with Stripe's test cards, then switch to live keys. The paths stay the same.

Read the orders-first guide →

08Start

From a sandbox key to a paid test order in ten minutes.

Node

npm install @flintpay/node

CLI

npm install -g @flintpay/cli

Test keys are prefixed flint_test_ and bound to a sandbox with its own data, so nothing you try there touches live money. Pay with 4242 4242 4242 4242, any future expiry, any CVC.

Then read these

  1. 01
    The commerce APIOrders, catalog, tax, and returns in one API
  2. 02
  3. 03
  4. 04

Sources

Where each claim comes from.

  • Medusa Cloud Develop from $29, Launch from $99, Scale from $299 a month; 0.0% GMV platform fee; compute overage $0.16 per hour and $30 per extra seat. Medusa: Pricing

    medusajs.com · checked 2026-10-15
  • MIT License, except Enterprise Edition materials under a separate license. Medusa: LICENSE

    raw.githubusercontent.com · checked 2026-10-15
  • Stripe provider added to the Payment Module in medusa-config.ts with an API key and webhook secret; production webhooks for four payment intent events; enabled per region; capture defaults to false. Medusa: Stripe Module Provider

    docs.medusajs.com · checked 2026-10-15
  • The system tax provider is a placeholder that performs basic calculation; Avalara is linked under other tax providers. Medusa: Tax Module Provider

    docs.medusajs.com · checked 2026-10-15
  • To integrate Avalara you create a custom Avalara Tax Module Provider under src/modules/avalara and register it in medusa-config.ts. Medusa: Avalara integration guide

    docs.medusajs.com · checked 2026-10-15
  • The 22 listed commerce modules include Loyalty and Store Credit but no subscription module. Medusa: Commerce Modules

    docs.medusajs.com · checked 2026-10-15
  • The Loyalty Module, part of the Loyalty Plugin for Medusa v2.14.0 and later, issues, redeems, and tracks gift cards with unique codes. Medusa: Loyalty Module

    docs.medusajs.com · checked 2026-10-15
  • Production needs PostgreSQL, Redis, and two instances, one in server mode and one in worker mode. Medusa: General deployment guide

    docs.medusajs.com · checked 2026-10-15
  • Sandboxes free, marked non-commercial use only; Select $1,599 a month up to $200,000 monthly GMV, then 0.8%; Volume $3,999 up to $1,000,000, then 0.4%. Saleor: Pricing

    saleor.io · checked 2026-10-15
  • BSD 3-Clause License. Saleor: LICENSE

    raw.githubusercontent.com · checked 2026-10-15
  • Saleor 3.23 required; the app automatically creates Stripe webhooks when a configuration is created; Stripe Checkout is not currently supported. Saleor: Stripe app

    docs.saleor.io · checked 2026-10-15
  • Flat rates entered per country are the default; dynamic taxes go through tax apps such as AvaTax. Saleor: Taxes

    docs.saleor.io · checked 2026-10-15
  • The AvaTax app delegates tax calculation to Avalara AvaTax for checkouts and orders. Saleor: AvaTax app

    docs.saleor.io · checked 2026-10-15
  • The Stripe Tax integration request was closed as not planned on 2023-11-09. saleor/apps issue 297

    github.com · checked 2026-10-15
  • Published 2026-10-13: Starter 199, Growth 599, Scale 2,499 euros a month on a 12-month term, Enterprise from 60,000 euros a year; no GMV fee; gift cards on Growth; Cloud opens as a closed beta for paid plans with wider availability planned for Q1 2027; Core keeps GPLv3 with the plugin exception. Vendure: Introducing Vendure plans

    vendure.io · checked 2026-10-15
  • Vendure moved from MIT to GPLv3 with v3; v2.3 was the last MIT release. Vendure: License change announcement

    vendure.io · checked 2026-10-15
  • Install the @vendure-community/stripe-plugin package, create the Stripe webhook endpoint in the Stripe dashboard, set the key and secret in the Admin UI, and use the Payment Element in the storefront. Vendure: Stripe plugin

    docs.vendure.io · checked 2026-10-15
  • Tax rates per tax category and zone; the tax line calculation strategy is where a third-party tax API is integrated. Vendure: Taxes

    docs.vendure.io · checked 2026-10-15

last reviewed 2026-10-15 · corrections: Flint Help

FAQ

Questions people ask.

Medusa vs Saleor: which is better?

It depends on your stack and budget. Medusa is TypeScript under the MIT license, with Medusa Cloud from $29 a month and no GMV fee. Saleor is Python and GraphQL under BSD-3, with Saleor Cloud from $1,599 a month up to $200,000 of monthly GMV. Both leave payments and US sales tax to you: a Stripe account and a tax integration such as Avalara. On Medusa you also register Stripe's webhooks and write the Avalara tax module; Saleor's Stripe app creates its webhooks, and its AvaTax app connects Avalara.

Medusa vs Vendure: what is the difference?

Both are TypeScript commerce backends. Medusa is MIT licensed and offers Medusa Cloud from $29 a month. Vendure runs on NestJS with GraphQL APIs, is licensed GPLv3 with a plugin exception, and since 2026-10-13 sells paid plans from 199 euros a month that add B2B features and a commercial license. Vendure Cloud is planned for Q1 2027, so today Vendure is self-hosted.

Saleor vs Vendure: which should I choose?

Saleor if your team writes Python and wants a hosted cloud, from $1,599 a month. Vendure if your team writes TypeScript and will self-host, with paid plans from 199 euros a month on a 12-month term. On both, card payments come from a Stripe app or plugin you configure, and US sales tax from a tax app, rates you enter, or your own integration.

Do Medusa, Saleor, and Vendure include payments and sales tax?

No. Each connects to a payment processor account you open, such as Stripe, through a module, app, or plugin with its own keys; on Medusa and Vendure you also register the Stripe webhooks, while Saleor's Stripe app creates them. For US sales tax, Medusa's Avalara guide has you write a custom tax module provider, Saleor offers flat rates or the AvaTax app, and Vendure calculates from rates you set per zone or from a tax strategy you write. Flint includes Stripe processing and automatic US sales tax in the account.

How much do Medusa Cloud, Saleor Cloud, and Vendure cost?

Medusa Cloud is $29, $99, or $299 a month with 0% GMV fee, plus metered usage. Saleor Cloud is $1,599 a month up to $200,000 of monthly GMV, then 0.8%, or $3,999 up to $1,000,000, then 0.4%; its free Sandbox is for non-commercial use. Vendure's plans are 199, 599, and 2,499 euros a month on a 12-month term, and Enterprise from 60,000 euros a year. Card processing is extra on all three.

Is Flint a good alternative to Medusa, Saleor, or Vendure?

Yes, for a US business that wants the commerce backend hosted instead of run. Flint has orders, variants, inventory held at payment, promotions, subscriptions, returns, and line-item refunds in one API, with Stripe processing and automatic US sales tax built in, no monthly fee, and 3.79% + 35¢ per card payment. Flint is a hosted service rather than code you deploy, and it serves US businesses selling in USD. Create an account from the terminal with flint signup. Flint vs Medusa

Skip running the backend. Keep the commerce records.

Free sandbox, no credit card, no sales call. Create a product with variants, send a cart as an order, and take a test payment with US sales tax computed after the discount.

Or run npm install -g @flintpay/cli && flint signup to create your account and a sandbox key from the terminal. CLI guide

More comparisons · last reviewed 2026-10-15