Welcome to Zuora Product Documentation

Explore our rich library of product information

UPI for EBANX payment gateway integration

Learn about integrating UPI with the EBANX payment gateway using Zuora's EBANX payment gateway integration, supporting one-time and recurring payments in INR.

Unified Payments Interface (UPI) is an Indian instant payment system developed by the National Payments Corporation of India (NPCI). It enables users to link multiple bank accounts to a single mobile application, facilitating inter-bank transactions through a user-friendly process. Zuora uses EBANX’s Real Time Reconciliation to operate the UPI payments, and therefore it is mandatory to configure Real Time Reconciliation (RTR) for UPI payments.

Zuora's EBANX payment gateway integration supports UPI transactions in INR. To support UPI one-time and recurring payment flows, you can implement a hosted payment page through Overview of Payment Pages 2.0.

Supported and unsupported features

The following table lists the supported and unsupported operations and features for UPI on Adyen Integration v2.0.

SupportedUnsupported
  • One-time payment processing (With UPI QR code)
  • Recurring payment processing (With UPI Collect)
  • Payment Method Creation with initial Payment (With UPI Collect)
  • Payment method creation without making a one-time payment
  • Referenced refund
  • Real-Time Reconciliation
  • Payment cancel (void)
  • Non-referenced refund
  • Batch Gateway Reconciliation
  • Delayed Capture
  • Stored Credential Transactions framework and the sharing NTI feature
  • Creation of UPI payment method through UI or API operation
  • Asynchronous Payment Statuses

One-time payment flow

Zuora supports a one-time payment flow through UPI QR code. When the hosted payment page is initiated, a QR code is displayed for the customer to scan by using their UPI application to complete the payment. After the customer authorizes the payment, a success page is displayed. This flow supports one-time payments only, and no payment token is created for future use.

Payment Method Creation

On the hosted payment page, customers enter their Virtual Payment Address (VPA) and submit the payment. Zuora then calls the EBANX Direct API (/ws/direct) with payment_type_code set to upi-intent, along with the required customer and charge parameters.

The following table describes the workflows after Zuora receives a successful or failed response from the EBANX synchronous payment API.

ResponseWorkflow
Successful response
  • Zuora creates the following items:
    • A payment with Payment status = Processed and Gateway State = Submitted
  • At the backend, Zuora listens for EBANX webhook and Real-Time Reconciliation (RTR) events that convey the final payment status, such as APPROVED, DECLINED, EXPIRED, or FAILED.
  • Zuora returns the payment result to the hosted payment page callback function. You can implement custom callback logic to handle success or failure cases.
  • Zuora updates the Gateway State based on the EBANX UPI payment status:
    • If the status is APPROVED, the Gateway State is set to Settled.
    • If the status is DECLINED, FAILED, or EXPIRED, the Gateway State is set to FailedToSettle.
  • If Zuora does not receive an EBANX webhook event before the timer expires, Zuora returns an error callback with the Payment_Status_Unknown error code. Zuora recommends querying the payment status by using the Retrieve a payment API operation.
Failed response
  • If EBANX immediately rejects the request, Zuora displays an error on the hosted payment page using the error message returned by EBANX.
  • In this case, no payment is recorded and no UPI payment method is created.

Stored token information

After a successful payment method creation, the created UPI payment method can be retrieved through the Zuora UI and REST APIs.

In the Electronic Payment Methods section of the customer account page, Zuora stores EBANX-issued tokens and mandate-related identifiers in the Token ID fields. These identifiers are used for subsequent recurring UPI Autopay payments and mandate management.

  • Token ID fields store EBANX UPI payment tokens so that subsequent debits can be processed without exposing raw VPA data.
  • Mandate-related identifiers, such as UPI Autopay enrollment references, are stored with the payment method and referenced during recurring payments and reconciliation.

Recurring payments flow (UPI Autopay)

UPI Autopay on EBANX is a mandate-based recurring payment framework. Customers approve an enrollment once in their UPI application. Zuora and EBANX reference this enrollment for future merchant-initiated transactions.

To comply with RBI and NPCI regulations, Zuora sends a pre-debit notification (PDN) to UPI users before each recurring debit by using the /ws/customerenrollment-notify endpoint.

A pre-debit notification (PDN) is required before a recurring charge can be initiated and it must be sent at least 24 hours before the scheduled payment. Because of this requirement, Zuora supports only scheduled recurring charges for this flow. Zuora automatically sends the pre-debit notification to the customer 24 hours before the scheduled payment. No additional configuration or action is required to trigger the pre-debit notification.

Conditions for triggering pre-debit notifications

When an invoice is posted, Zuora sends a pre-debit notification request to EBANX if all of the following conditions are met:

  • The invoice has an outstanding balance.
  • The payment method type is UPI.
  • The payment gateway is an EBANX gateway configured for UPI Autopay.
  • The transaction currency is INR.
  • The invoice is not already associated with an active pre-debit notification for the current balance.

Retries of failed pre-debit notifications

If a pre-debit notification request fails, Zuora logs the failure and does not attempt the recurring debit until a successful notification is acknowledged.

Zuora retries the notification according to the configured retry schedule until EBANX confirms delivery or the retry window expires.

Mandate cancellation

UPI Autopay mandates can be canceled by the merchant or by the customer through their UPI application.

Merchant-initiated cancellation

  • Cancels the enrollment in EBANX by using the appropriate UPI Autopay API.
  • Deletes the UPI payment method in Zuora to prevent further debits.

Customer-initiated cancellation

  • Customer can deactivate or cancel the mandate directly on their UPI Application.
  • EBANX updates the enrollment status and sends a webhook to Zuora.
  • Zuora closes the UPI payment method and updates mandate-related fields for reporting and reconciliation.