No momento, esta página não está disponível em português
Payment-method icon

Recurring payments with UPI Autopay

Offer recurring payments to your shoppers with our UPI Autopay integration.

Accept UPI Autopay payments using our APIs, and build your own payment form to have full control over the look and feel of your checkout page. Use this page to offer recurring UPI Autopay payments to your shoppers.

You can accept recurring UPI Autopay payments for the following types of payments:

  • Subscriptions: A recurring transaction made at regular intervals for a product or a service. These payments use the Subscription recurring processing model.
  • Automatic top-ups: Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount. These payments use the UnscheduledCardOnFile [recurring processing model](/online-payments/tokenization/advanced-flow.

How to pay with UPI Autopay

After shoppers select to pay through UPI on your website for the first time:

  1. Shoppers are prompted to provide the Virtual Payment Address (VPA).
  2. The shoppers then get a notification on their UPI app asking them to complete the payment.
  3. On the UPI app, shoppers provide their UPI pin to confirm the payment.
  4. When shoppers go back to your checkout page, they are redirected to a page showing the payment status.

For subsequent payments, shoppers receive a pre-debit notification in the form of an SMS or an email at least 24 hours before the recurring amount is charged.

Set up a billing plan

To start a billing plan for a shopper, you need to store their payment details and create a mandate in their UPI app. The UPI payment service provider and the issuer uses this mandate to have visibility of your shopper's billing plan. They can then let the shopper cancel (or pause/unpause) the mandate on their side.

Make sure that every billing plan has a unique mandate associated with it.

  1. From your server, make a POST /payments request, specifying:

    Field Required Description
    paymentMethod.type -white_check_mark- upi_collect
    paymentMethod.virtualPaymentAddress -white_check_mark- Virtual Payment Address. A unique identifier used to let UPI connect to the shopper's bank account.
    storePaymentMethod -white_check_mark- Set to true to store shopper's payment details.
    shopperInteraction -white_check_mark- Set to Ecommerce.
    recurringProcessingModel -white_check_mark- Set to Subscription or UnscheduledCardOnFile.
    shopperReference -white_check_mark- The shopper reference associated with the billing plan (minimum length three characters).
    mandate.amount -white_check_mark- The amount the shopper will be charged per recurring debit in minor units. Must be more than or equal to the transaction amount.
    The recurring charge does not need to go through authentication if the amount is less than or equal to INR 15,000.
    mandate.amountRule Possible values: max (default) and exact.
    • max - The shopper can be charged any amount between INR 1 to the amount in the amount field.
    • exact - The shopper can only be charged the amount in the amount field.
    mandate.frequency -white_check_mark- The frequency at which the shopper will be charged. Possible values: monthly and adhoc.
    mandate.startsAt Start date of the billing plan, in YYYY-MM-DD format. The default value is the transaction date.
    mandate.endsAt -white_check_mark- End date of the billing plan, in YYYY-MM-DD format.
    mandate.remarks Limited to 50 characters, no special characters. Shown in the shopper's UPI app, under the Mandate section.
    mandate.billingAttemptsRule Possible values: before, after, and on.
    • before - You can initiate the charge and retries anytime from 1st day of the billing cycle to the mandate.billingDay.
    • after - You can initiate the charge and retries any time from the mandate.billingDay to the end of billing cycle (if the frequency is monthly, till the end of the month).
    • on - You can initiate the charge and retries only on the mandate.billingDay.
    mandate.billingDay The day of the billing cycle when the shopper would be charged. If the mandate.frequency is monthly, and mandate.billingDay is 26th, the shopper should be charged on the 26th of every month. This field does not apply for adhoc frequency. Possible values: 1-31

    The details in the mandate object are used to create the mandate for the shopper's billing plan.

    The /payments response is:

  2. Show a waiting screen to the shopper, telling them you are waiting for them to complete the payment.

  3. Check your webhooks to see the payment result. We send a webhook to you with the final status of the payment.

    eventCode success field Description Action to take
    AUTHORISATION false The transaction failed. Cancel the order and inform the shopper that the payment failed and any amount debited will be refunded in 2-3 days.
    AUTHORISATION true The shopper successfully completed the payment and a mandate was created. Inform the shopper that the payment has been successful and proceed with the order.

    You can receive the mandate details as part of your standard webhooks. To do this:

    1. In your Customer Area, go to Developers > Webhooks.
    2. Next to Standard webhook, select the edit webhook icon .
    3. Under Additional Settings, select Include Mandate Details.
    4. Select Save Configuration.

    Then, the webhook will also contain the details on the shopper's mandate, including:

    • mandate.mandateId: The identifier for the mandate created by the issuer.
    • mandate.providerId: The ID returned by the provider.
    • mandate.status: The status of the mandate.
    • <