Welcome to Zuora Product Documentation

Explore our rich library of product information

Payment Pages signature for Adyen UPI QR

Here are two request examples for the Generate RSA signature REST API operation.

Example 1: One-time UPI QR payment with amount and currency

Use this pattern when you want to charge a customer immediately with a one-time UPI QR payment. Include both the payment amount and the transaction currency in the signed payload.

Follow the instructions in Request a signature for the Payment Page from ZuoraNo Content found for /db/organizations/zuora/repositories/prod-sitemap/content/documents/external_publications/payments/Payment_Pages_2.0/J_Implement_Payment_Pages_2.0_to_support_one-time_payment_flows/Implement_one-time_payment_flows_on_Adyen_v2.0/request_a_signature_for_the_hosted_page_from_zuora.dita. Then send a request similar to the following for the Generate RSA signature REST API operation:


{
  "uri": "https://sandbox.na.zuora.com/apps/PublicHostedPageLite.do",
  "method": "POST",
  "pageId": "<YOUR_PAYMENT_PAGE_ID>",
  "paymentGateway": "<YOUR_ADYEN_V2_GATEWAY>",
  "authorizationAmount": "100",
  "currency": "INR",
  "accountId": "<YOUR_ACCOUNT_ID>"
}
      

For UPI QR one-time payments, Zuora recommends that you always include at least the following fields in the signed payload:

  • authorizationAmount: The one-time payment amount.
  • currency: The transaction currency. For UPI on Adyen Integration v2.0, this must be INR.

Example 2: UPI Autopay or validation without an immediate charge

Use this pattern when you want to create or validate a UPI payment method or mandate without charging the customer immediately, for example as part of a UPI Autopay setup flow.

You can omit the authorizationAmount and currency fields from the signature request when you are not collecting a one-time payment during the Payment Page session.

The following example shows a minimal request body for the Generate RSA signature REST API operation in this scenario:


{
  "uri": "https://sandbox.na.zuora.com/apps/PublicHostedPageLite.do",
  "method": "POST",
  "pageId": "<YOUR_PAYMENT_PAGE_ID>",
  "paymentGateway": "<YOUR_ADYEN_V2_GATEWAY>",
  "accountId": "<YOUR_ACCOUNT_ID>"
}
      

When you use this pattern:

  • The Payment Page session can be used to collect and tokenize UPI details for later use in UPI Autopay flows.
  • The actual recurring debits are initiated later by Zuora using the stored mandate and token information, according to your billing and payment run configuration.