Docs

Log into read the version of docs relevant to your site.

UPI via dLocal

This feature is a Private Beta Release. Contact Chargebee Support to enable UPI via dLocal for your live and test sites.

Overview

dLocal supports UPI (Unified Payments Interface) for India, allowing businesses to collect recurring payments via pre-approved UPI mandates. UPI is a pull-based payment method in which the customer authorizes a mandate once, and subsequent debits are pulled automatically without further user action.

This feature is ideal for subscription billing use cases, where reducing payment friction and improving collection success are critical.

This payment method is ideal for:

  • Businesses targeting customers in India who prefer to pay via local methods like UPI, without needing international cards or wallets.
  • Global merchants expanding into India or combining UPI with other local payment methods (LATAM, SE Asia, etc.) via dLocal.

Supported Region

The following are the region categories supported for this integration:

CategoryDetails
Your RegionMerchants onboarded in India and enabled for INR collections.
Payment Collection Region (Your customer’s region)Payers must have India-issued bank accounts with UPI enabled.
Currency supported: INR

Processing Characteristics

CharacteristicDetails
Payment TypeMandate-based recurring (UPI)
Mandate ApprovalCustomer authorizes via UPI app or link
Mandate RulesMandate Amount: ≤ ₹15,000
Validity: up to 1 year
Frequency: daily
RefundsNot supported

Prerequisites

Ensure the following before configuring UPI payments via dLocal:

  1. A live dLocal merchant account with UPI enabled.
  2. dLocal must be added and configured as a payment gateway in Chargebee.
  3. UPI must be enabled by dLocal for your account. Contact the dLocal support team to activate it for your account.

Required Fields for UPI via dLocal

To collect payments successfully, the following fields must be passed during checkout:

  • First Name, Last Name
  • Email
  • Phone Number
  • Billing Address
  • PAN / Document Number (auto-filled based on currency)

If you're using Chargebee Checkout, go to:

  1. Settings > Configure Chargebee > Checkout & Self-Serve Portal > Fields
  2. Make the following fields mandatory:
    • Under Account Information: First Name, Last Name, Email, Phone Number
    • Under Billing Address: All address fields
    • Ensure PAN / Document Number is set up correctly (auto-handled for INR).

If using a custom checkout using JavaScript, you must explicitly collect and send these fields to Chargebee.

Integration Options

Integration MethodSupported/Not Supported
Chargebee CheckoutIn-app layout of Checkout - Supported
Full Page Checkout - Supported
Custom CheckoutChargebee.js - Supported
Payment Components - Supported
dLocal.js - Not supported

Configuring UPI Payments in Chargebee

Enable UPI via dLocal in your Chargebee site:

  1. Log in to the Chargebee Billing site.
  2. Go to Settings > Configure Chargebee > Payment Gateways > dLocal.
  3. On the Configure dLocal page, enable Unified Payments Interface (UPI) from the list of payment methods.
  4. Click Apply to save changes.

Configure Smart Routing

Follow these steps to configure Smart Routing rules to ensure INR recurring payments for the UPI route to dLocal:

  1. Go to Settings > Configure Chargebee > Payment Gateways.
  2. Select Smart Routing.
  3. Select dLocal as the payment gateway for the INR currency under the For UPI section.

Checkout Flow

  1. Customer initiates checkout and selects UPI as the payment method.
  2. Customer enters all mandatory details (e.g., PAN, billing info) and clicks Next.
  3. The customer then reviews the entered information and clicks Pay & Subscribe.
  4. After clicking Pay, the customer is redirected to a processor page or their UPI app.
  5. The customer completes the mandate approval:
    • Enters UPI ID
    • Approves request via app or link
  6. On successful mandate approval:
    • Payment is triggered automatically
    • Subscription moves to In-Progress state
  7. Chargebee updates the status as Successful or Failed based on dLocal’s gateway confirmation.

Was this article helpful?