Welcome to Zuora Product Documentation

Explore our rich library of product information

Set up your client for EBANX UPI Intent payments

This reference provides the client parameters and rendering details that you use to accept EBANX UPI Intent payments through a Payment Page 2.0.

Payment Page rendering

To accept UPI Intent payments on EBANX, render a Payment Page 2.0 in your client application by following the instructions in Integrate Payment Pages 2.0. When you call Z.render or Z.renderWithErrorHandler, pass the client parameters described in the following sections to control the UPI Intent flow.

To render the Payment Page, call the Z.render function and pass the following items:

  • A params object that contains the page identity values returned by the signature API (tenantId, id, token, signature, and key), together with the UPI Intent client parameters that control the flow.
  • A prepopulated fields object.
  • A callback function that handles the response after your customer completes the payment.

The following example shows a client-side render pattern for UPI Intent. Replace the sample values with values for your tenant and your transaction:

var params = {
  tenantId: "<tenantId>",
  id: "<UPI Intent Payment Page ID>",
  token: "<token>",
  signature: "<signature>",
  key: "<key>",
  style: "inline",
  submitEnabled: "true",
  locale: "en",
  field_currency: "INR",
  doPayment: true,
  storePaymentMethod: false,
  field_accountId: "<Zuora account ID>",
  field_authorizationAmount: "100.00",
  param_gwOptions_shopperEmail: "customer@example.com",
  param_gwOptions_phoneNumber: "+919999999999"
};

function callback(response) {
  if (response.success) {
    // response.refId is the ID of the UPI Intent payment method created in Zuora.
    // Use it to look up the payment method or the resulting payment.
  } else {
    // Handle the failure using response.errorCode and response.errorMessage.
  }
}

Z.render(params, {}, callback);

After Zuora renders the page, your customer selects a UPI app and approves the payment in that app. Zuora then invokes your callback function with the result.

Client parameters

The following table lists the client parameters that you can pass for EBANX UPI Intent payments.

Table 1. Client parameters for EBANX UPI Intent
ParameterTypeDescription
field_upiTimerWindowIntegerOptional. The number of minutes during which your customer can complete the UPI authorization in the selected UPI app after submitting the hosted Payment Page. Minimum: 5. Maximum: 36.
doPaymentBooleanSpecifies whether to process a payment. Set this value to true to process a one-time payment for the authorized amount. Set this value to false or omit the parameter to create the payment method without an immediate charge.
storePaymentMethodBooleanSpecifies whether to store the UPI Intent payment method for future recurring UPI Autopay payments. Set this value to true to store the payment method. Set this value to false to process the payment without storing it.
field_accountIdStringThe Zuora customer account ID. This account must use the INR currency. Zuora creates the UPI payment method for this account and processes it through the configured EBANX gateway instance.
field_authorizationAmountStringRequired for authorization amount processing. For payment processing flows, this value is the one-time payment amount that Zuora sends to EBANX. For payment method validation flows, specify 0.
field_currencyStringRequired when you authorize an amount. EBANX UPI Intent supports only INR.
documentsStringRequired for invoice processing. An array of invoices to pay in the transaction. Each item contains type and ref values.
param_gwOptions_UpiMandateEnabledBooleanMust be set to true when you store a payment method (storePaymentMethod=true). When you enable this parameter, Zuora submits the enrollment to EBANX UPI Autopay, creates a tokenized UPI payment method, and links the resulting mandate. Zuora can then process recurring payments off session.
param_gwOptions_shopperEmailStringOptional. The customer email address that Zuora sends to EBANX. If you do not provide this parameter, Zuora uses the bill-to contact email when available.
param_gwOptions_phoneNumberStringOptional. The customer phone number that Zuora sends to EBANX. If you do not provide this parameter, Zuora uses the bill-to contact phone number when available. For orphan payment methods that are created without a customer account, both param_gwOptions_shopperEmail and param_gwOptions_phoneNumber are required.

Mandate parameters

When you store a payment method for UPI Autopay, you can optionally provide the mandate parameters described in the following table. If you do not provide them, Zuora applies the EBANX default values.

Table 2. Mandate parameters for EBANX UPI Autopay
ParameterTypeDescription
param_gwOptions_frequencyStringOptional. The mandate debit frequency for UPI Autopay, for example, on demand.
param_gwOptions_min_amountStringOptional. The minimum amount, in INR, that can be debited under the mandate.
param_gwOptions_max_amountStringOptional. The maximum amount, in INR, that can be debited under the mandate.
param_gwOptions_start_dateStringOptional. The date when the mandate becomes active.
param_gwOptions_expiration_dateStringOptional. The date when the mandate expires.

Parameter combinations

The combination of doPayment and storePaymentMethod determines the flow, as described in the following table.

Table 3. Flow outcomes for doPayment and storePaymentMethod combinations
doPaymentstorePaymentMethodResult
truefalseZuora processes a one-time payment only. Zuora does not store a payment method or create a mandate.
truetrueZuora charges your customer the authorized amount and stores a UPI Autopay payment method for future recurring payments.
falsetrueZuora stores a UPI Autopay payment method for future recurring payments without charging the full amount. Zuora charges a small validation amount and automatically refunds it.
Note: When storePaymentMethod is true, param_gwOptions_UpiMandateEnabled must also be true. Otherwise, Zuora rejects the request to store the payment method.