> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# v1.105.0 (June 22, 2026)

> Bring Your Own Processor (BYOP), the official Rust SDK release, Korean payment methods (Kakao Pay, Naver Pay, PAYCO) and Przelewy24, brand_id on every webhook payload, decimal-aware currency handling, higher entitlement limits, plus checkout, analytics, and dashboard improvements.

## 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.

<Frame>
  <img src="https://mintcdn.com/dodopayments/DNTF2guUc26Fj2yI/images/byop/overview.png?fit=max&auto=format&n=DNTF2guUc26Fj2yI&q=85&s=aeb8dfda155edde6d9084a4a03d7b15f" alt="BYOP settings showing the Merchant of Record and Bring Your Own Processor options with a feature comparison" style={{ maxHeight: '500px', width: 'auto' }} width="1391" height="1010" data-path="images/byop/overview.png" />
</Frame>

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](/features/byop) | [BYOP with Stripe](/features/byop/stripe) | [BYOP with Adyen](/features/byop/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:

```bash theme={null}
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](/developer-resources/sdks/rust) | [Crates.io](https://crates.io/crates/dodopayments) | [GitHub](https://github.com/dodopayments/dodopayments-rust)

### 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:

| Method        | API type    | Subscriptions      |
| ------------- | ----------- | ------------------ |
| **Kakao Pay** | `kakao_pay` | Yes                |
| **Naver Pay** | `naver_pay` | Yes                |
| **PAYCO**     | `payco`     | No (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](/features/payment-methods/south-korea) | [European Payment Methods](/features/payment-methods/europe) | [Payment Methods Overview](/features/payment-methods)

### 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](/features/multi-brands) | [Webhook Events](/developer-resources/webhooks/intents/webhook-events-guide)

### 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](/features/entitlements/introduction) | [Credit-Based Billing](/features/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](/developer-resources/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](/api-reference/payments/get-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.

<Frame>
  <img src="https://mintcdn.com/dodopayments/tvJ2MmXYymW0IZ3R/images/recovery/dunning-on-hold-email.png?fit=max&auto=format&n=tvJ2MmXYymW0IZ3R&q=85&s=5e46040ed49a4da84569afdeeb87c813" alt="Subscription dunning recovery email rendered with the purchasing brand's name and logo" style={{ maxHeight: '500px', width: 'auto' }} width="1070" height="1502" data-path="images/recovery/dunning-on-hold-email.png" />
</Frame>

Learn more: [Subscription Dunning](/features/recovery/subscription-dunning) | [Abandoned Cart Recovery](/features/recovery/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.

<Frame>
  <img src="https://mintcdn.com/dodopayments/r426DlzEVUSPZlYb/images/analytics/revenue-breakdown.png?fit=max&auto=format&n=r426DlzEVUSPZlYb&q=85&s=66d1c0d64e6a69e6e7f22ac26c89bed7" alt="Revenue analytics with a gross/net toggle and an MRR breakdown" style={{ maxHeight: '500px', width: 'auto' }} width="1267" height="867" data-path="images/analytics/revenue-breakdown.png" />
</Frame>

* **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.
