Skip to main content
Upsells and downsells let you offer additional products or plan changes to customers using their saved payment methods. This enables one-click purchases that skip payment collection, dramatically improving conversion rates.

Post-Purchase Upsells

Offer complementary products immediately after checkout with one-click purchasing.

Subscription Upgrades

Move customers to higher tiers with automatic proration and instant billing.

Cross-Sells

Add related products to existing customers without re-entering payment details.

Overview

Upsells and downsells are powerful revenue optimization strategies:
  • Upsells: Offer a higher-value product or upgrade (e.g., Pro plan instead of Basic)
  • Downsells: Offer a lower-priced alternative when a customer declines or downgrades
  • Cross-sells: Suggest complementary products (e.g., add-ons, related items)
Dodo Payments enables these flows through the payment_method_id parameter, which lets you charge a customer’s saved payment method without requiring them to re-enter card details.

Key Benefits

How It Works

Prerequisites

Before implementing upsells and downsells, ensure you have:
1

Customer with Saved Payment Method

Customers must have completed at least one purchase. Payment methods are automatically saved when customers complete checkout.
2

Products Configured

Create your upsell products in the Dodo Payments dashboard. These can be one-time payments, subscriptions, or add-ons.
3

Webhook Endpoint

Set up webhooks to handle payment.succeeded, payment.failed, and subscription.plan_changed events.

Getting Customer Payment Methods

Before offering an upsell, retrieve the customer’s saved payment methods:
Payment methods are automatically saved when customers complete checkout. You don’t need to explicitly save them.

Post-Purchase One-Click Upsells

Offer additional products immediately after a successful purchase. The customer can accept with a single click since their payment method is already saved.

Implementation

When using payment_method_id, you must set confirm: true and provide an existing customer_id. The payment method must belong to that customer.

Subscription Upgrades

Move customers to higher-tier subscription plans with automatic proration handling.

Preview Before Committing

Always preview plan changes to show customers exactly what they’ll be charged:

Execute the Upgrade

Proration Modes

Choose how customers are billed when upgrading:
Use difference_immediately for straightforward upgrade flows. Use prorated_immediately when you want to account for unused time on the current plan.

Cross-Sells

Add complementary products for existing customers without requiring them to re-enter payment details.

Implementation

Subscription Downgrades

When customers want to move to a lower-tier plan, handle the transition gracefully with automatic credits.

How Downgrades Work

  1. Customer requests downgrade (Pro → Basic)
  2. System calculates remaining value on current plan
  3. Credit is added to subscription for future renewals
  4. Customer moves to new plan immediately
Credits from downgrades using difference_immediately are subscription-scoped and automatically applied to future renewals. They’re distinct from Credit-Based Billing entitlements.

Complete Example: Post-Purchase Upsell Flow

Here’s a complete implementation showing how to offer an upsell after a successful purchase:

Best Practices

The best time to offer an upsell is immediately after a successful purchase when customers are in a buying mindset. Other effective moments:
  • After feature usage milestones
  • When approaching plan limits
  • During onboarding completion
Before attempting a one-click charge, verify the payment method:
  • Is compatible with the product’s currency
  • Hasn’t expired
  • Belongs to the customer
The API will validate these, but checking proactively improves UX.
When one-click charges fail:
  1. Fall back to standard checkout flow
  2. Notify the customer with clear messaging
  3. Offer to update payment method
  4. Don’t repeatedly attempt failed charges
Upsells convert better when customers understand the value:
  • Show what they’re getting vs. current plan
  • Highlight the price difference, not total price
  • Use social proof (e.g., “Most popular upgrade”)
  • Always provide an easy way to decline
  • Don’t show the same upsell repeatedly after decline
  • Track and analyze which upsells convert to optimize offers

Webhooks to Monitor

Track these webhook events for upsell and downgrade flows:

Webhook Integration Guide

Learn how to set up and verify webhook endpoints.

Subscription Upgrade Guide

Detailed guide on plan changes, proration modes, and handling failures.

Checkout Sessions

Complete reference for creating checkout sessions with all options.

Customer Payment Methods API

API reference for listing customer payment methods.

Add-ons

Enhance subscriptions with flexible add-ons for additional revenue.
Last modified on July 29, 2026