Skip to main content

New Features

1. Bring Your Own Processor (BYOP)

You can now connect your own payment processor — Stripe or Adyen — and route payments through it per customer country, while Dodo Payments keeps powering everything on top of the transaction: products, subscriptions, license keys and entitlements, invoicing, the customer portal, and analytics. Countries you don’t explicitly route fall back to Dodo as full-service Merchant of Record.
BYOP settings showing the Merchant of Record and Bring Your Own Processor options with a feature comparison
Set it up from Settings → BYOP in the dashboard: choose a processor, connect your account, define per-country routing rules, and add your own invoice issuer details. What changes on a BYOP route
  • You are the Merchant of Record. Dodo does not calculate or charge tax on BYOP transactions — your own invoice issuer details (business name, tax ID, and address) replace the Dodo block on invoices and refund receipts.
  • Disputes and refunds are handled in your processor. BYOP disputes are read-only in the Dodo dashboard, since accept/challenge happens inside Stripe or Adyen.
  • Payments route through Hyperswitch and currently support credit and debit cards only.
For developers Payment and dispute responses now include is_byop and a payment_provider discriminator (stripe, adyen, or dodo) so you can identify how each transaction was routed. The fields are additive — Merchant-of-Record traffic continues to report payment_provider: dodo. Learn more: Bring Your Own Processor | BYOP with Stripe | BYOP with Adyen

2. Official Rust SDK Release

The official Dodo Payments Rust SDK is now available as the dodopayments crate on crates.io. The launch line is aligned with the Dodo Payments API version series, with v1.105.0 as the first public API-line release and v1.106.0 already published with the latest OpenAPI regeneration. Install it with Cargo:
cargo add dodopayments
The SDK requires Rust 1.75+ and is built for async Rust applications with Tokio and reqwest. It includes:
  • Strongly typed request and response models across the Dodo Payments API surface.
  • Client::from_env() for reading DODO_PAYMENTS_API_KEY from the environment.
  • Typed pagination helpers, including get_next_page() and into_stream() for list endpoints.
  • Configurable environments and timeouts, including test-mode support.
  • Binary response decoding for PDF-style responses such as invoices, payout invoices, and refund invoices.
  • A fluent resource-chain builder API for ergonomic Rust call sites.
Learn more: Rust SDK | Crates.io | GitHub

3. New Payment Methods: Korean Wallets & Przelewy24

Four new local payment methods are now available, expanding coverage in South Korea and Poland. South Korea (KRW) — three Korean wallets surface on KRW checkouts:
MethodAPI typeSubscriptions
Kakao Paykakao_payYes
Naver Paynaver_payYes
PAYCOpaycoNo (one-time only)
The Korean wallets require a billing country of KR and KRW billing — if your product is priced in another currency, enable Adaptive Currency so the customer is billed in KRW. Poland (PLN)Przelewy24 (P24), Poland’s leading online payment method, now settles in PLN (not EUR) and supports one-time payments. Pass przelewy24 in allowed_payment_method_types. Learn more: South Korea Payment Methods | European Payment Methods | Payment Methods Overview

4. brand_id on Every Webhook Payload

Every webhook event payload now includes a brand_id, so you can attribute payments, subscriptions, refunds, disputes, license keys, credit ledger entries, entitlement grants, dunning attempts, and abandoned checkouts to a specific brand. Where an entity has no brand of its own, brand_id falls back to the business’s primary brand. No integration changes are required — the field is additive and appears automatically on existing webhook endpoints. Learn more: Multiple Brands | Webhook Events

5. Decimal-Aware Currency Handling

Currency handling has been reworked so amounts are computed and displayed with the correct precision for each currency, instead of assuming two decimals everywhere. The 16 zero-decimal currencies — including JPY, KRW, VND, CLP, XAF, and XOF — are now handled accurately across payments, invoices, payouts, emails, and analytics, and presentment (Adaptive Currency) conversions are precision-aware end to end. This removes a class of rounding and display errors for zero-decimal currencies and lays the groundwork for additional precisions in the future.

Improvements

6. Higher Product Entitlement & Credit Limits

  • Product entitlements per product raised from 20 to 50.
  • Credit entitlements (credits attached to a product) raised from 3 to 5.
Learn more: Entitlements | Credit-Based Billing

7. Signed Customer Credits in Change Plan Preview

The change-plan preview now returns customer_credits as a signed value: negative when credits are deducted to offset a charge (typical on upgrades) and positive when credits are added (from a downgrade proration refund or a wallet top-up), making it clear whether credits are being used or granted. Learn more: Subscription Upgrade & Downgrade

8. card_last_four and card_network on List Payments

The List Payments response now includes card_last_four and card_network on each payment, so you can display card details in lists without fetching each payment individually. Learn more: List Payments

9. Branded ACR & Dunning Emails

Abandoned-cart recovery (ACR) and subscription dunning recovery emails now use the relevant brand’s name and logo instead of the business default, so the recovery experience matches the brand the customer purchased from.
Subscription dunning recovery email rendered with the purchasing brand's name and logo
Learn more: Subscription Dunning | Abandoned Cart Recovery

10. Improved Tax ID Validation

Tax ID validation at checkout has been extended with notation detection and registry lookup (via the Tax ID Pro integration), reducing false rejections of valid IDs. The business verification form now includes a country selector to prevent Tax ID validation errors, and file uploads are more reliable with a progress indicator and a single consolidated error toast.

11. Analytics Improvements

Dashboard analytics now include corrected subscription MRR, active-subscription counts, and retention/churn calculations.
Revenue analytics with a gross/net toggle and an MRR breakdown
  • Page-wise analytics — new tiles surface revenue and discount performance per checkout page.
  • A gross/net revenue toggle and an MRR breakdown on the revenue view.
  • Chart tooltips now show currency and percentage units, including zero-value points.

12. Dashboard & Storefront Polish

  • Brand filter added to the product list, with filters combined into a single button and brands lazy-loaded.
  • Product collection, add-on, and credit forms reworked with create / edit / duplicate flows.
  • Payout settings page redesigned, with the ability to recover a failed payout to success.
  • Payment-provider badges (Stripe / Adyen / Dodo) surfaced on the transactions and disputes tables.
  • Storefront store-banner copy refined.

Other Fixes & Improvements

  • Korean and several other currencies (VND, PYG, XOF, XAF) now default to local currency at checkout.
  • Minor bug fixes and stability improvements across the platform.
Last modified on June 22, 2026