---
title: "Dodo Payments vs Polar.sh and Paddle: Merchant of Record Comparison"
id: "33454"
type: "post"
slug: "merchant-of-record-platforms-wordpress"
published_at: "2026-05-29T22:45:26+00:00"
modified_at: "2026-06-10T23:07:03+00:00"
url: "https://purethemes.net/merchant-of-record-platforms-wordpress/"
markdown_url: "https://purethemes.net/merchant-of-record-platforms-wordpress.md"
excerpt: "What is MoR (Merchant of Record)? WordPress plugin and theme developers usually look at a Merchant of Record for one reason: they do not want to run global tax, receipts, and invoices themselves. Stripe can take the card payment, but..."
taxonomy_category:
  - "WordPress"
---

## What is MoR (Merchant of Record)?

WordPress plugin and theme developers usually look at a Merchant of Record for one reason: they do not want to run **global tax, receipts, and invoices** themselves. Stripe can take the card payment, but the boring work stays with you: VAT, GST, sales tax, buyer location, reverse-charge rules, billing details, refunds, and country reporting. **That gets ugly fast.**A small plugin or theme business can end up issuing hundreds of invoices every month, each with a different country, tax rate, billing address, currency, and refund state.

> A Merchant of Record takes over the tax and compliance layer. For WordPress software, though, **checkout is only half the job**. You still need license keys, site activations, update eligibility, protected ZIP downloads, renewals, refunds, and support access.

We tested Dodo Payments, Polar.sh, and Paddle in the WordPress licenser we use for our products: [Listeo](https://purethemes.net/listeo/)
 and [PurioChat](https://purethemes.net/ai-chatbot-for-wordpress/)
. The ranking for this build is simple: **Dodo first, Polar second, Paddle third**. Dodo fit our API and licensing setup best. The other two are usable; they just needed more compromise for this build.

## What We Actually Reviewed and Tested

We judged each provider by the jobs our licenser has to do: create checkout sessions, read paid/cancelled/refunded states, map provider products to PureThemes products, issue and validate license keys, keep updates/downloads available, and handle webhook retries without breaking access.

- **Checkout:** hosted purchase flow without forcing WooCommerce into every sale.
- **Billing state:** payment, subscription, cancellation, refund, and dispute events we can map locally.
- **Entitlement:** local license keys, site activation limits, update windows, and protected downloads.
- **Recovery:** idempotent handling when events retry or arrive out of order.
- **Portability:** provider-specific objects kept behind adapters, not scattered through the product business.

| Rank for our WordPress licenser | Best fit | Pricing headline | WordPress angle | Why it landed there |
| --- | --- | --- | --- | --- |
| **1. Dodo Payments** | Custom WordPress licensing builds, especially if usage billing or local-currency checkout may matter later | [4% + $0.40](https://dodopayments.com/pricing) domestic US card/wallet headline rate, with extra fees for international cards, subscriptions, PayPal/BNPL, refunds, disputes and FX. | Has an official WordPress.org WooCommerce plugin. | Best fit for us: good docs, WordPress material, optional usage-based billing, Adaptive Currency, and the most complete adapter fit in our licenser. |
| **2. Polar.sh** | Developer-first/open-source commerce with custom entitlement layers | [5% + $0.50](https://polar.sh/resources/pricing) on Starter; paid tiers lower variable fees but add a monthly subscription. | No official WordPress/WooCommerce plugin or WordPress-specific integration guide found. | Strong product/benefit model, license keys, customer portal, and webhook tooling; weaker currency localization and still requires custom WordPress adapter work. |
| **3. Paddle** | Mature MoR/compliance-first SaaS billing with the strongest localized-pricing controls | [5% + $0.50](https://www.paddle.com/pricing) public pay-as-you-go checkout pricing, with custom pricing for larger cases. | Paddle explicitly says it does not provide a WordPress plugin; customers must use unsupported third-party plugins or custom glue. | Best currency/localized pricing story, but less differentiated for a small WordPress team wiring a custom licenser. |

## 1. [Dodo Payments](https://dodopayments.com/) : Our Current MoR Pick

Dodo is the youngest platform here, but it **fit our WordPress licenser best**: checkout sessions, subscriptions, license validity, activations, and a clean provider adapter setup.

The fee was not the only reason. Dodo has [MCP server](https://docs.dodopayments.com/developer-resources/mcp-server)
, and [Agent Skills](https://docs.dodopayments.com/developer-resources/agent-skills)
 which makes integration a breeze, but the features that mattered more to us were **[usage-based billing](https://docs.dodopayments.com/features/usage-based-billing/introduction)** and **[adaptive currency](https://docs.dodopayments.com/features/adaptive-currency)**. Usage billing helps if your plugin or SaaS product charges for API calls, AI tokens, credits, storage, or another metered unit.

> Adaptive Currency matters because buyers see supported local currencies instead of one global USD price. In our informal Listeo community poll of 3,000+ users, **85% said they prefer paying in their own currency**.

Dodo also has a real WordPress signal: the [Dodo Payments for WooCommerce plugin](https://wordpress.org/plugins/dodo-payments-for-woocommerce/)
 on WordPress.org. We are not making WooCommerce the center of this licenser, but the plugin shows **Dodo is paying attention to the WordPress market**.

The community side helped too. Dodo’s Discord is not just a dead announcement channel: founders, support people, and product people are visibly around. Docs and APIs still matter more, but **fast answers lower the risk** with a newer MoR.

- **What felt strongest:** docs, usage-based billing, Adaptive Currency, WordPress material, active Discord support, and the best fit for our adapter.
- **Licensing fit:** checkout creation, **license-key handling**, license lookup, instances, activation, deactivation, and validation mapped well to the way we structured the licenser.
- **Pricing caveat:** the headline rate is clean, but international cards, subscription billing, PayPal/BNPL, refunds, disputes, payouts, and FX can change the effective rate.
- **Worth knowing:** it is still the newest provider here.

## 2. Polar.sh: Strong Alternative

**Polar is the strongest developer option** in this test. Its useful building blocks are products, benefits, license keys, customer portal access, and webhook events. The [license-key benefit](https://polar.sh/docs/features/benefits/license-keys)
 supports branded keys, expiry rules, activation limits, validation rules, usage quotas, and revocation after cancellation. That maps well to a custom WordPress licenser.

Some people describe Polar as a “Stripe wrapper”. That is too simple. Polar positions itself as a Merchant of Record and billing platform, but it still uses Stripe infrastructure in some flows, including Stripe Connect Express payout accounts. Fair shorthand: **not raw Stripe, not fully Stripe-independent either**.

Pricing is more flexible than the Starter headline. Polar has a free Starter plan plus paid Pro, Growth, and Scale plans that trade a fixed monthly fee for lower variable MoR rates and better support priority.

| Plan | Monthly fee | Per transaction | Support |
| --- | --- | --- | --- |
| Starter | Free | 5% + 50¢ | Standard Support |
| Pro | $20 /mo | 3.8% + 40¢ | Prioritized Support |
| Growth | $100 /mo | 3.6% + 35¢ | Prioritized Support |
| Scale | $400 /mo | 3.4% + 30¢ | Slack + Prioritized Support |

The weak point for our case is still WordPress fit and currency automation. We found **no official WordPress or WooCommerce plugin** for less technical people. Polar supports many currencies, but not Dodo-style adaptive currency from one base price or Paddle-style country price overrides.

- **Best part:** products, benefits, license-key automation, Customer Portal, webhook review/redelivery, transparent pricing, and open-source code.
- **Main caveat:** you need a custom WordPress adapter; local-currency pricing needs deliberate setup.
- **Why second:** better licensing building blocks than Paddle for our licenser, but less WordPress-specific proof than Dodo.

## 3. Paddle: Mature, Familiar, but Less Differentiated Here

**Paddle is the mature option**: broad SaaS billing, strong MoR/tax coverage, and lots of existing developer familiarity. Its best checkout feature here is [localized pricing](https://developer.paddle.com/build/products/offer-localized-pricing)
: automatic currency conversion plus country-specific price overrides. That means a $59 product can show as 49 EUR in Europe or 199 PLN in Poland instead of a weird FX-looking amount like 207.43 PLN. For a global WordPress seller, that can matter as much as a few basis points of MoR fee.

For WordPress, Paddle’s [WordPress integration help page](https://www.paddle.com/help/start/intro-to-paddle/does-paddle-integrate-with-wordpress)
 reads more like a warning than an integration guide. **Paddle says it does not provide a WordPress plugin**. It points customers to unsupported third-party options such as WPSmartPay or WooCommerce, says some plugins may only work with Paddle Classic, and says Paddle does not provide technical support for those plugins. In our licenser, that still meant custom glue for transactions, customers, subscriptions, local license state, and protected downloads.

- **What felt strongest:** maturity, compliance reputation, localized pricing, SaaS billing depth, and lower risk for bigger SaaS teams.
- **Licensing fit:** useful transaction, customer, and subscription objects, but no equivalent built-in license-key generation/delivery primitive for this flow.
- **Why third:** credible default, but less WordPress-specific than Dodo for this build, **no checkout sessions** with custom parameters, checkout feels outdated

## Checkout Comparison: The Buyer Experience Still Matters

We used hosted/no-code checkout flows. Dodo and Polar let you create payment links and hosted checkout pages without writing custom checkout code.

 [https://purethemes.net/wp-content/uploads/2026/05/mor-polar-checkout.jpg](https://purethemes.net/wp-content/uploads/2026/05/mor-polar-checkout.jpg)
Polar Checkout [https://purethemes.net/wp-content/uploads/2026/05/mor-dodo-checkout.jpg](https://purethemes.net/wp-content/uploads/2026/05/mor-dodo-checkout.jpg)
Dodo Payments Checkout [https://purethemes.net/wp-content/uploads/2026/05/mor-paddle-checkout.jpg](https://purethemes.net/wp-content/uploads/2026/05/mor-paddle-checkout.jpg)
Paddle Checkout - **Dodo:** clearest MoR transparency. The trade-off is friction: buyers enter more details before the card step.
- **Polar:** looks fine, but less polished than Dodo.
- **Paddle:** honestly looks the most outdated; it does not have a static checkout page and opens in a popup. Still, it works in a familiar hosted checkout flow.

Dodo also has a checkout visual editor:

[https://purethemes.net/wp-content/uploads/2026/05/dodo-design-editor-scaled.jpg](https://purethemes.net/wp-content/uploads/2026/05/dodo-design-editor-scaled.jpg)
## The Product Differences That Actually Matter

There is no single winner for every WordPress developer.

**Dodo has the official WooCommerce path**, license key management, checkout customization, Adaptive Currency, usage-based billing, credit billing, storefront, database sync, CLI/API tooling, and enough AI-oriented billing features for token, generation, or API-call products.

**Polar fits access-control products best**. Its license keys and benefits model is the most concrete in this group: activations, expiry, validation conditions, usage quotas, file downloads, feature flags, custom checkout fields, credits, and seat assignment all sit close to the core product model. That still requires WordPress glue, but it gives a plugin licenser more built-in entitlement structure than Paddle.

Paddle fits teams where **billing operations matter more than plugin licensing**. Its advantage is not WordPress-specific tooling. It is subscription lifecycle depth, failed-payment recovery, retention flows, plan changes, proration, buyer support, fraud and chargeback handling, invoice-style billing, hosted checkout maturity, and SaaS billing UI components. That can still make Paddle the right call for a larger SaaS business, even if it ranked third for our WordPress licenser build.

## How We Implemented All Three MoRs in Our WordPress Licenser

The provider is allowed to tell us that a payment, subscription, refund, dispute, or cancellation happened. WordPress decides what that means for license keys, site activations, update access, protected downloads, and support state.

The architecture is deliberately boring: **one WordPress licenser, provider adapters for Dodo, Polar, and Paddle**, and an internal product registry. Provider-side product IDs stay behind the adapter layer instead of leaking through the whole business. **Listeo** and **PurioChat** are the kind of products where this boundary matters: billing can change, but installed products, updates, renewals, and access still need to stay coherent.

- **Provider adapters:** each MoR gets its own adapter instead of hard-coding the whole business around one vendor.
- **Product registry:** internal products map to provider-side products while WordPress keeps the entitlement model consistent.
- **Local license keys:** WordPress remains the durable source for license status, activation count, and update eligibility.
- **Protected downloads:** update ZIP access stays behind the WordPress licenser instead of becoming public file links.

> **Dodo and Polar can generate license keys** and send them to buyers as part of the commerce flow. Paddle does not expose the same built-in license-key generation and buyer-delivery feature. Our WordPress licenser still stays in charge, but Dodo and Polar are nicer for simpler setups where the MoR can help with the first license delivery.

[https://purethemes.net/wp-content/uploads/2026/05/CleanShot-2026-05-31-at-14.08.16@2x-scaled.jpg](https://purethemes.net/wp-content/uploads/2026/05/CleanShot-2026-05-31-at-14.08.16@2x-scaled.jpg)
Our own licensing software## Which MoR WordPress Plugin Developer Should Choose?

All three options are decent however **Dodo Payments is the one I would pick today**. Not just because of the API or pricing, but because the **team is moving fast.** Bugs get answered quickly, feature requests are actually discussed, and the product keeps improving at a pace you can feel.

That matters with a newer Merchant of Record. You are not only choosing a checkout provider. You are trusting part of your billing stack to the people behind it. **With Dodo, it feels like the team is hungry**, close to users, and willing to ship instead of hiding behind support macros.

Polar is still a strong developer option, and Paddle is still the mature SaaS default. But for me, **Dodo has the best mix of product fit, momentum, and human support**. The CEO probably needs sleep, but selfishly, I like the pace.
