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
paramsobject that contains the page identity values returned by the signature API (tenantId,id,token,signature, andkey), 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.
| Parameter | Type | Description |
|---|---|---|
field_upiTimerWindow | Integer | Optional. 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. |
doPayment | Boolean | Specifies 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. |
storePaymentMethod | Boolean | Specifies 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_accountId | String | The 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_authorizationAmount | String | Required 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_currency | String | Required when you authorize an amount. EBANX UPI Intent supports only INR. |
documents | String | Required for invoice processing. An array of invoices to pay in the transaction. Each item contains type and ref values. |
param_gwOptions_UpiMandateEnabled | Boolean | Must 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_shopperEmail | String | Optional. 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_phoneNumber | String | Optional. 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.
| Parameter | Type | Description |
|---|---|---|
param_gwOptions_frequency | String | Optional. The mandate debit frequency for UPI Autopay, for example, on demand. |
param_gwOptions_min_amount | String | Optional. The minimum amount, in INR, that can be debited under the mandate. |
param_gwOptions_max_amount | String | Optional. The maximum amount, in INR, that can be debited under the mandate. |
param_gwOptions_start_date | String | Optional. The date when the mandate becomes active. |
param_gwOptions_expiration_date | String | Optional. The date when the mandate expires. |
Parameter combinations
The combination of doPayment and storePaymentMethod determines the flow, as described in the following table.
| doPayment | storePaymentMethod | Result |
|---|---|---|
true | false | Zuora processes a one-time payment only. Zuora does not store a payment method or create a mandate. |
true | true | Zuora charges your customer the authorized amount and stores a UPI Autopay payment method for future recurring payments. |
false | true | Zuora 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. |
storePaymentMethod is true, param_gwOptions_UpiMandateEnabled must also be true. Otherwise, Zuora rejects the request to store the payment method.