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

This feature is in Controlled Release. We are actively soliciting feedback from a small set of early adopters before releasing as generally available. If you want to use this feature, submit a request to Zuora Global Support.

In accordance with the directive of processing e-mandate for recurring transactions issued by the Reserve Bank of India (RBI), mandates must be established for India local recurring transactions. In Zuora, You can implement a one-time payment flow for Credit Card payment methods on the Stripe v2 payment gateway integration to support processing India local recurring payments. You need to pass in additional fields for the generation of a mandate. The generated mandate ID will be stored for the Credit Card payment method as well as sent to the gateway. Any recurring payments in INR without the mandate ID data will fail.

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.

Implement Payment Pages 2.0 to support processing India local recurring transactions

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 enable the support for India recurring mandate in Zuora, submit a request at Zuora Global Support.
    • To process the required webhook events with Stripe, submit a request at Zuora Global Support to enable the Stripe Real-Time Reconciliation feature. This feature is currently in a Controlled Release phase before becoming generally available.
  3. 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.

    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"
    };
    

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 Credit Card 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 > Each Credit Card payment method 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.