Skip to main content

Implement Payment Pages 2.0 to support processing payments in India

Zuora

Implement Payment Pages 2.0 to support processing payments in India

To process recurring payments in India through Zuora, the following requirements must be met to be compliant with the directive of processing e-mandate for recurring transactions issued by the Reserve Bank of India (RBI):

  • Run your transactions in Indian Rupees (INR) through a local Indian entity.
  • Mandates must be established for recurring transactions in INR. In Zuora, you can implement a one-time payment flow for Credit Card Reference Transaction payment methods on the Stripe v2 payment gateway integration to support processing India local recurring payments, as described in the following sections in this article.
    The support for India local recurring payment processing is only available on Stripe v2 gateway integration for now. Zuora is continuing to evaluate other gateway partners for recurring mandate processing based on their readiness.
  • Other processing requirements from RBI are met.

For more information about Zuora's support and suggestions for recurring payments in India, see the Recurring Payments in India article in Zuora Community.

Due to the RBI's regulation for storage of payment system data, Zuora does not support saving the masked card numbers.

Zuora's support for processing India local recurring payments through one-time payment flows is currently in a joint pilot program with Stripe. To use this feature, you must request the pilot version of the feature with Stripe to avoid issues with incorrect configuration.

Implement Payment Pages 2.0 to support processing recurring transactions in INR

You can take advantage of the flow of adding or updating a payment method to create an Indian recurring mandate without being required to make a payment. You can also create an Indian recurring mandate, complete a payment, and store the details as a fully tokenized payment method. You need to pass in additional fields for the generation of a mandate. The generated mandate ID will be stored for the payment method as well as sent to the gateway. Any recurring payments in INR without the mandate ID data will fail.

Procedure

To implement a Payment Page to process recurring payments in INR through a one-time payment flow, complete the following tasks:

  1. Review the instructions in Implement Payment Pages 2.0 to support one-time payment flows to make sure:

    • All requirements in the Before you begin section are met.
    • You have understood the procedure for implementing a one-time payment flow.
  2. In addition to the requirements mentioned in step 1, ensure that the following requirements are also met to enable the support for India recurring mandate:

    • To enable the support for recurring payments in INR on the Stripe platform, work with your Stripe account representative.
    • To process the required webhook events with Stripe, submit a request at Zuora Global Support to enable the Stripe Real-Time Reconciliation feature. See Real-Time Reconciliation for details.
  3. In Zuora, set up a Payment Page 2.0 by following instructions in Configure Credit Card Reference Payment Pages 2.0 for Stripe v2, and implementing the following configuration:
    • Select Credit Card Reference as the Payment Page type.
    • On the Create New Hosted Page page, select Enable 3D Secure 2.0.

    For more information about the optional tasks of setting up a payment page, see step 1 in Payment Pages 2.0 implementation process.

  4. Follow the instructions in Implement Payment Pages 2.0 to support one-time payment flows to implement a Payment Page for one-time payment flow. In addition to the fields for authorization amounts or invoices, pass in the following fields to generate a mandate ID for the payment. The default value for each field is specific to the Stripe gateway integration.

    Parameter Description

    cardMandateEnabled

    Required

    Type: boolean

    Default: false

    true indicates that additional Gateway Options fields can be passed in to generate a mandate ID.

    param_gwOptions_CardMandateReference

    Optional

    Type: string

    Default: null

    Unique identifier for the mandate.

    See Client parameters for Payment Pages 2.0 for details about the Gateway Options fields.

    param_gwOptions_CardMandateDescription

    Optional

    Type: string

    Default: null

    A description of the mandate.

    See Client parameters for Payment Pages 2.0 for details about the Gateway Options fields.

    param_gwOptions_CardMandateAmountType

    Optional

    Type: string (enum)

    Default: maximum

    The value can be fixed or maximum.

    • fixed - The value of the param_gwOptions_CardMandateAmount field indicates the exact amount to be charged in future payments.
    • maximum - The amount charged can be up to the value passed for the param_gwOptions_CardMandateAmount field.

    See Client parameters for Payment Pages 2.0 for details about the Gateway Options fields.

    param_gwOptions_CardMandateAmount

    Optional

    Type: number

    Default: 5000

    Amount to be charged for future payments.

    See Client parameters for Payment Pages 2.0 for details about the Gateway Options fields.

    param_gwOptions_CardMandateStartDate

    Optional

    Type: date-time

    Default: Date and time when passing the parameter

    Start date of the mandate, such as 2021-09-14T21:56:00+08:00 

    See Client parameters for Payment Pages 2.0 for details about the Gateway Options fields.

    param_gwOptions_CardMandateEndDate

    Optional

    Type: date-time

    Default: 20 years after the mandate start date

    End date of the mandate, such as 2022-09-14T21:56:00+08:00

    See Client parameters for Payment Pages 2.0 for details about the Gateway Options fields.

    param_gwOptions_CardMandateInterval

    Optional

    Type: string (enum)

    Default: sporadic

    Payment frequency. The value can be day, week, month, year, or sporadic.

    See Client parameters for Payment Pages 2.0 for details about the Gateway Options fields.

    param_gwOptions_CardMandateIntervalCount

    Optional

    Type: integer

    Default: null

    The number of intervals between payments. Up to one year interval is allowed (1 year, 12 months, or 52 weeks). This parameter is optional when iparam_gwOptions_CardMandateInterval is sporadic.

    See Client parameters for Payment Pages 2.0 for details about the Gateway Options fields.

    param_gwOptions_CardMandateSupportedTypes

    Optional

    Type: string

    Default: empty

    The mandate type supported for this payment. Currently, only india is allowed. If you want to set india as the default value, submit a request at Zuora Global Support.

    When cardMandateEnabled is true, if a Gateway Options field is not specified, the default value of the field will be used. You can specify the field to override the default value.

    Here is an example.

    var params = {
        doPayment:"true",
        field_accountId:"testc0f87596f2f301759c29443622fa",
        authorizationAmount:"99",
        field_currency:"INR",
        cardMandateEnabled:"true",
        param_gwOptions_CardMandateReference:"sample-reference",
        param_gwOptions_CardMandateDescription:"sample description",
        param_gwOptions_CardMandateAmountType:"fixed",
        param_gwOptions_CardMandateAmount: "4000",
        param_gwOptions_CardMandateStartDate: "2021-09-14T21:56:00+08:00",
        param_gwOptions_CardMandateEndDate: "",
        param_gwOptions_CardMandateInterval: "month",
        param_gwOptions_CardMandateIntervalCount: "1",
        param_gwOptions_CardMandateSupportedTypes: "india"
    };
    

View mandate information in Zuora

After the additional fields are passed to the gateway and the mandate ID is successfully generated, it will be stored for the payment method in Zuora. You can view the mandate information by any of the following methods:

  • View the information at any of the following UI locations:
    • Payment detail page > View Detail hover help next to the Payment Method field
    • Account detail page > Billing and Payment Info section > View Detail hover help next to the Default Payment Method field
    • Account detail page > Electronic Payment Methods section > Your Credit Card Reference Transaction record
  • Retrieve the information through the Retrieve a payment method API operation. 
  • Retrieve the information from the Payment Method data source. See Generate a data source export for more information.
  • Retrieve the information from the PaymentMethod object in Data Query. See Construct SQL Queries in Data Query for more information.

Additional information for other scenarios

To support cross-border transactions that are not in INR currency and therefore do not require a recurring mandate to be established, Zuora recommends you implement a Zuora’s one-time payment flow in non-INR currency.

If Zuora’s one-time payments do not meet your needs, the following solutions are recommended. You can then push the external payments into Zuora.

  • Work with your current payment gateway provider for guidance on how to implement necessary measures for your recurring payments.
  • Implement Pay-By-Link flows.
  • Build your own one-time payment flow.