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 beINR.
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.