{"title":"API only","category":"default","creationDate":1653644640,"content":"<p>Accept UPI payments in India using our APIs, and build your own payment form to have full control over your checkout journey.<\/p>\n<h2>Requirements<\/h2>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Requirement<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Integration type<\/strong><\/td>\n<td style=\"text-align: left;\">Make sure that you have built an <a href=\"\/pt\/online-payments\/build-your-integration\/advanced-flow?platform=Web&amp;integration=API%20only\">API-only integration<\/a>. <\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">Before you begin, <a href=\"\/pt\/payment-methods\/add-payment-methods\">add  in your test Customer Area<\/a>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n<div id=\"tabia8bZ\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;UPI Intent&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;When a shopper pays using UPI Intent, you need to redirect them to the UPI app on their mobile device. We recommend that you implement UPI Intent for mobile users only. Use screen size to determine whether the shopper is accessing your site on mobile, desktop, or tablet.&lt;\\\/p&gt;\\n&lt;h2&gt;Make a payment&lt;\\\/h2&gt;\\n&lt;p&gt;Make a  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments&lt;\\\/a&gt; request with:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;&lt;code&gt;paymentMethod.type&lt;\\\/code&gt;: &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;upi_intent&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;paymentMethod.appId&lt;\\\/code&gt;: The Id of the Third Party Application that is used to make the UPI payment. Possible values:\\n&lt;ul&gt;\\n&lt;li&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;gpay&lt;\\\/strong&gt;&lt;\\\/span&gt;: Google Pay.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;phonepe&lt;\\\/strong&gt;&lt;\\\/span&gt;: PhonePe.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;bhim&lt;\\\/strong&gt;&lt;\\\/span&gt;: BHIM (Bharat Interface for Money).&lt;\\\/li&gt;\\n&lt;li&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;paytm&lt;\\\/strong&gt;&lt;\\\/span&gt;: Paytm.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;amount.currency&lt;\\\/code&gt;: INR&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;amount.value&lt;\\\/code&gt;: The value of the payment, in minor units.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;\\\/payments request&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;json&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v72\\\\\\\/payments \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n    \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;INR\\\\&amp;quot;,\\\\n        \\\\&amp;quot;value\\\\&amp;quot;: 15100\\\\n    },\\\\n    \\\\&amp;quot;countryCode\\\\&amp;quot;: \\\\&amp;quot;IN\\\\&amp;quot;,\\\\n    \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n    \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n    \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;upi_intent\\\\&amp;quot;,\\\\n        \\\\&amp;quot;appId\\\\&amp;quot;: \\\\&amp;quot;gpay\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;returnUrl\\\\&amp;quot;: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;\\\\n}&#039;&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;\\\/payments response&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n    \\\\\\&quot;resultCode\\\\\\&quot;: \\\\\\&quot;Pending\\\\\\&quot;,\\\\n    \\\\\\&quot;action\\\\\\&quot;: {\\\\n        \\\\\\&quot;paymentData\\\\\\&quot;: \\\\\\&quot;Ab02b4c0!BQABAg...\\\\\\&quot;,\\\\n        \\\\\\&quot;paymentMethodType\\\\\\&quot;: \\\\\\&quot;upi_intent\\\\\\&quot;,\\\\n        \\\\\\&quot;url\\\\\\&quot;: \\\\\\&quot;gpay:\\\\\\\/\\\\\\\/upi\\\\\\\/pay?pa=upidirect@hdfcbank&amp;amp;pn=PayeeHDFC&amp;amp;tn=UPI&amp;amp;am=4.30&amp;amp;cu=INR&amp;amp;mc=6012&amp;amp;tr=BNLXDR7VHXFKTM92&amp;amp;qrMedium=06&amp;amp;mode=04\\\\\\&quot;,\\\\n        \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;await\\\\\\&quot;\\\\n    }\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;h2 id=\\&quot;redirect\\&quot;&gt;Redirect the shopper&lt;\\\/h2&gt;\\n&lt;p&gt;The  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments&lt;\\\/a&gt; response contains:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;&lt;code&gt;resultCode&lt;\\\/code&gt;: &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;Pending&lt;\\\/strong&gt;&lt;\\\/span&gt;. This means that the final status of the payment is not available yet. Inform the shopper that you have received their order, and are waiting for the shopper to complete the payment on the UPI app.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;action.url&lt;\\\/code&gt;: Use this to redirect the shopper to the UPI app on their mobile device.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div class=\\&quot;notices green\\&quot;&gt;\\n&lt;p&gt;App redirects work differently on Android and iOS. On Android, shoppers are given a choice of compatible apps to open the redirect link. iOS makes a default choice of which app to use.&lt;\\\/p&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;To complete the payment, redirect the shopper to the &lt;code&gt;action.url&lt;\\\/code&gt; returned in the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments&lt;\\\/a&gt; response.&lt;\\\/p&gt;\\n&lt;div class=\\&quot;sc-notice note\\&quot;&gt;&lt;div&gt;\\n&lt;p&gt;&lt;strong&gt;When using the HTTP GET method:&lt;\\\/strong&gt;&lt;br \\\/&gt;\\nFor security reasons, when displaying the redirect in the app, we recommend that you use &lt;a href=\\&quot;https:\\\/\\\/developer.apple.com\\\/documentation\\\/safariservices\\\/sfsafariviewcontroller\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;SFSafariViewController&lt;\\\/a&gt; for iOS or &lt;a href=\\&quot;https:\\\/\\\/developer.chrome.com\\\/multidevice\\\/android\\\/customtabs\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Chrome Custom Tabs&lt;\\\/a&gt; for Android, instead of WebView objects. Also refer to the &lt;a href=\\&quot;https:\\\/\\\/developer.android.com\\\/topic\\\/security\\\/best-practices#webview\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;security best practices&lt;\\\/a&gt; for WebView.&lt;\\\/p&gt;\\n&lt;\\\/div&gt;&lt;\\\/div&gt;\\n&lt;h2&gt;Show the waiting screen&lt;\\\/h2&gt;\\n&lt;ol&gt;\\n&lt;li&gt;Show a waiting screen to the shopper. We recommend adding a countdown timer of 5 minutes to remind shoppers to complete the payment on their UPI app.&lt;\\\/li&gt;\\n&lt;li&gt;Check your &lt;a href=\\&quot;\\\/pt\\\/development-resources\\\/webhooks\\&quot;&gt;webhook notifications&lt;\\\/a&gt; to see the payment result. We send you an AUTHORISATION notification after the shopper completes the payment in their UPI app.&lt;\\\/li&gt;\\n&lt;li&gt;Once you receive the notification webhook, redirect them to your website, and present the payment result.&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;h2&gt;Present the payment result&lt;\\\/h2&gt;\\n&lt;p&gt;Wait for a notification webhook to know the outcome of the payment. The notification webhooks you can receive for UPI Intent are:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;eventCode&lt;\\\/th&gt;\\n&lt;th&gt;success field&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;th&gt;Action to take&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;AUTHORISATION&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;false&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The transaction failed.&lt;\\\/td&gt;\\n&lt;td&gt;Cancel the order and inform the shopper that the payment failed.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;AUTHORISATION&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;true&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The shopper successfully completed the payment.&lt;\\\/td&gt;\\n&lt;td&gt;Inform the shopper that the payment has been successful and proceed with the order.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;h2&gt;Test and Go Live&lt;\\\/h2&gt;\\n&lt;p&gt;Depending on your account setup, you may have access to the UPI simulator which you can use to test your UPI integration. Contact your Account Manager or our &lt;a href=\\&quot;https:\\\/\\\/ca-test.adyen.com\\\/ca\\\/ca\\\/contactUs\\\/support.shtml?form=other\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Support Team&lt;\\\/a&gt; if you have questions about the simulator.&lt;\\\/p&gt;\\n&lt;p&gt;You can also use your personal account on a UPI app to test your integration by making live payments with a low value.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;upi_intent_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;UPI QR&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;When a shopper pays with UPI QR, you present a QR code which they can scan using the UPI app on their mobile device. We recommend that you use screen size to determine whether the shopper is accessing your site on mobile, desktop, or tablet and present the QR Code for shoppers on desktop or tablet.&lt;\\\/p&gt;\\n&lt;h2&gt;Make a payment&lt;\\\/h2&gt;\\n&lt;p&gt;Make a  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments&lt;\\\/a&gt; request with:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;&lt;code&gt;paymentMethod.type&lt;\\\/code&gt;: &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;upi_qr&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;amount.currency&lt;\\\/code&gt;: INR&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;amount.value&lt;\\\/code&gt;: The value of the payment, in minor units.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;\\\/payments request&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;json&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v68\\\\\\\/payments \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n    \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;INR\\\\&amp;quot;,\\\\n        \\\\&amp;quot;value\\\\&amp;quot;: 3600\\\\n    },\\\\n    \\\\&amp;quot;countryCode\\\\&amp;quot;: \\\\&amp;quot;IN\\\\&amp;quot;,\\\\n    \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n    \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;upi_qr\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;browserInfo\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;acceptHeader\\\\&amp;quot;: \\\\&amp;quot;*\\\\\\\/*\\\\&amp;quot;,\\\\n        \\\\&amp;quot;userAgent\\\\&amp;quot;: \\\\&amp;quot;Mozilla\\\\\\\/5.0 (X11; Linux x86_64) AppleWebKit\\\\\\\/537.36 (KHTML, like Gecko) Chrome\\\\\\\/78.0.3904.108 Safari\\\\\\\/537.36\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;returnUrl\\\\&amp;quot;: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/test.adyen.com\\\\\\\/\\\\&amp;quot;,\\\\n    \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;\\\\n    }&#039;&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;The  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments&lt;\\\/a&gt; response contains:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;&lt;code&gt;action.qrCodeData&lt;\\\/code&gt;: Use this to render the QR code on your checkout page.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;\\\/payments response&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n    \\\\\\&quot;resultCode\\\\\\&quot;: \\\\\\&quot;Pending\\\\\\&quot;,\\\\n    \\\\\\&quot;action\\\\\\&quot;: {\\\\n        \\\\\\&quot;paymentMethodType\\\\\\&quot;: \\\\\\&quot;upi_qr\\\\\\&quot;,\\\\n        \\\\\\&quot;qrCodeData\\\\\\&quot;: \\\\\\&quot;iVBORw0KGgoAAAANSUhEUgAAAMgAAADIA\\\\u2026.\\\\\\&quot;,\\\\n        \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;qrCode\\\\\\&quot;\\\\n    },\\\\n    \\\\\\&quot;details\\\\\\&quot;: [\\\\n        {\\\\n            \\\\\\&quot;key\\\\\\&quot;: \\\\\\&quot;payload\\\\\\&quot;,\\\\n            \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;text\\\\\\&quot;\\\\n        }\\\\n    ],\\\\n    \\\\\\&quot;redirect\\\\\\&quot;: {\\\\n        \\\\\\&quot;data\\\\\\&quot;: {\\\\n            \\\\\\&quot;qrCodeData\\\\\\&quot;: \\\\\\&quot;iVBORw0KGgoAAAANS\\\\u2026.\\\\\\&quot;\\\\n        },\\\\n    }\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;h2&gt;Present the QR code&lt;\\\/h2&gt;\\n&lt;p&gt;Follow these steps to render the QR code on your checkout page:&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;Use the &lt;code&gt;qrCodeData&lt;\\\/code&gt; from the &lt;code&gt;action&lt;\\\/code&gt; object to render the QR code on your checkout page. We recommend showing a countdown timer of 5 minutes to remind shoppers to complete the payment on their UPI app.&lt;\\\/li&gt;\\n&lt;li&gt;After the shopper scans the QR code and completes the payment, we send a &lt;a href=\\&quot;\\\/pt\\\/development-resources\\\/webhooks\\&quot;&gt;webhook&lt;\\\/a&gt; informing you of the payment result.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;a href=\\&quot;#present\\&quot;&gt;Present the payment result to your shopper&lt;\\\/a&gt;.&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;h2 id=\\&quot;present\\&quot;&gt;Present the payment result&lt;\\\/h2&gt;\\n&lt;p&gt;Wait for a webhook to know the outcome of the payment. The webhooks you can receive for UPI QR are:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;eventCode&lt;\\\/th&gt;\\n&lt;th&gt;success field&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;th&gt;Action to take&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;AUTHORISATION&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;false&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The transaction failed.&lt;\\\/td&gt;\\n&lt;td&gt;Cancel the order and inform the shopper that the payment failed.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;AUTHORISATION&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;true&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The shopper successfully completed the payment.&lt;\\\/td&gt;\\n&lt;td&gt;Inform the shopper that the payment has been successful and proceed with the order.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;For UPI QR payments, you can receive the following &lt;code&gt;resultCode&lt;\\\/code&gt; values:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;resultCode&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;th&gt;Action to take&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;Error&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;There was an error when the payment was being processed. For more information, check the &lt;a href=\\&quot;\\\/pt\\\/development-resources\\\/refusal-reasons\\&quot;&gt;\\n  &lt;code&gt;refusalReason&lt;\\\/code&gt;\\n&lt;\\\/a&gt; field.&lt;\\\/td&gt;\\n&lt;td&gt;Inform the shopper that there was an error processing their payment.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;Pending&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The payment order was successfully received.&lt;\\\/td&gt;\\n&lt;td&gt;Inform the shopper that you have received their order, and are waiting for the payment to clear. &lt;br&gt; You will receive the final result of the payment in an &lt;a href=\\&quot;\\\/pt\\\/development-resources\\\/webhooks\\\/webhook-types\\&quot;&gt;AUTHORISATION webhook&lt;\\\/a&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;Refused&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The payment was refused.  For more information, check the &lt;a href=\\&quot;\\\/pt\\\/development-resources\\\/refusal-reasons\\&quot;&gt;\\n  &lt;code&gt;refusalReason&lt;\\\/code&gt;\\n&lt;\\\/a&gt; field.&lt;\\\/td&gt;\\n&lt;td&gt;Ask the shopper to try the payment again using a different payment method.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;h2&gt;Test and Go Live&lt;\\\/h2&gt;\\n&lt;p&gt;Depending on your account setup, you may have access to the UPI simulator which you can use to test your UPI integration. Contact your Account Manager or our &lt;a href=\\&quot;https:\\\/\\\/ca-test.adyen.com\\\/ca\\\/ca\\\/contactUs\\\/support.shtml?form=other\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Support Team&lt;\\\/a&gt; if you have questions about the simulator.&lt;\\\/p&gt;\\n&lt;p&gt;You can also use your personal account on a UPI app to test your integration by making live payments with a low value.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;upi_qr_1_2&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;UPI Collect&quot;,&quot;content&quot;:&quot;\\n&lt;div class=\\&quot;sc-notice note\\&quot;&gt;&lt;div&gt;\\n&lt;ul&gt;\\n&lt;li&gt;In November 2025, the National Payments Corporation of India (NPCI) has informed ecosystem partners of its plan to &lt;strong&gt;deprecate UPI Collect&lt;\\\/strong&gt;, shifting its focus toward UPI Intent and UPI QR as the primary UPI payment methods going forward. This decision has been driven by lower authorization rates and a higher likelihood of fraudulent transactions associated with UPI Collect.&lt;\\\/li&gt;\\n&lt;li&gt;Therefore, we will no longer offer UPI Collect for &lt;u&gt;new&lt;\\\/u&gt; merchant integrations, and &lt;u&gt;we have updated our drop-in and components (&lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-web\\\/releases\\\/tag\\\/v6.30.0\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;V6.30.0&lt;\\\/a&gt;)&lt;\\\/u&gt; to reflect this change.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;strong&gt;If you use UPI Collect via a custom Checkout API and UI&lt;\\\/strong&gt;: We strongly recommend that you begin offering &lt;strong&gt;UPI Intent&lt;\\\/strong&gt; and\\\/or &lt;strong&gt;UPI QR&lt;\\\/strong&gt; (if not already enabled) and start your migration as soon as possible.&lt;\\\/li&gt;\\n&lt;li&gt;Adyen is keeping merchants informed about this initiative with specific system messages.\\n&lt;\\\/div&gt;&lt;\\\/div&gt;&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;p&gt;When a shopper pays with UPI Collect, they enter their virtual payment address and complete the payment using the UPI app on their mobile device.&lt;\\\/p&gt;\\n&lt;h2&gt;Validate UPI ID&lt;\\\/h2&gt;\\n&lt;p&gt;To avoid payment failure caused by an incorrect, invalid or inactive UPI ID (also known as Virtual Payment Address or VPA), send a  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/validateShopperId\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/validateShopperId&lt;\\\/a&gt; request to ensure that the UPI ID is:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;in the correct format&lt;\\\/li&gt;\\n&lt;li&gt;valid and active in the UPI system&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;p&gt;By performing this validation check before creating a payment, you:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;prevent errors at the input stage&lt;\\\/li&gt;\\n&lt;li&gt;reduce failed  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments&lt;\\\/a&gt; calls caused by invalid, inactive, or incorrectly entered UPI IDs&lt;\\\/li&gt;\\n&lt;li&gt;provide faster, clearer feedback to shoppers without waiting for payment authorization failures&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div class=\\&quot;sc-notice info\\&quot;&gt;&lt;div&gt;\\n&lt;p&gt;UPI ID validation:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;is optional and intended to improve the shopper&#039;s user experience&lt;\\\/li&gt;\\n&lt;li&gt;does not guarantee that a subsequent debit will succeed&lt;\\\/li&gt;\\n&lt;li&gt;confirms that the UPI ID is currently recognized and is active in the UPI system&lt;\\\/li&gt;\\n&lt;li&gt;is available only on our latest acquiring connection (Adyen Direct) and not on legacy connections (Billdesk \\\/ PayU)&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;\\\/div&gt;&lt;\\\/div&gt;\\n&lt;p&gt;You can contact your implementation manager or &lt;a href=\\&quot;https:\\\/\\\/ca-test.adyen.com\\\/ca\\\/ca\\\/contactUs\\\/support.shtml?form=other\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Support Team&lt;\\\/a&gt; to validate the suitability of using UPI ID validation.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Example \\\/validateShopperId request for UPI validation&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;json&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/checkout\\\\\\\/v71\\\\\\\/post\\\\\\\/validateShopperId \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n   \\\\&amp;quot;shopperIP\\\\&amp;quot;:\\\\&amp;quot;127.0.0.11\\\\&amp;quot;,\\\\n   \\\\&amp;quot;shopperReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n   \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n   \\\\&amp;quot;shopperEmail\\\\&amp;quot;: \\\\&amp;quot;shopper@email.com\\\\&amp;quot;,\\\\n   \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n       \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;upi_collect\\\\&amp;quot;,\\\\n       \\\\&amp;quot;virtualPaymentAddress\\\\&amp;quot;: \\\\&amp;quot;correct@okhdfcbank\\\\&amp;quot;\\\\n   }\\\\n}&#039;&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;The response includes &lt;code&gt;result&lt;\\\/code&gt; and &lt;code&gt;reason&lt;\\\/code&gt;:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Example \\\/validateShopperId response&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n   \\\\\\&quot;result\\\\\\&quot;: \\\\\\&quot;valid\\\\\\&quot;,\\\\n   \\\\\\&quot;reason\\\\\\&quot;: \\\\\\&quot;VPA is valid\\\\\\&quot;\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;Below is a list of possible responses, and how to proceed:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;Result&lt;\\\/th&gt;\\n&lt;th&gt;Reason&lt;\\\/th&gt;\\n&lt;th&gt;Merchant action&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;valid&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;VPA is valid.&lt;\\\/td&gt;\\n&lt;td&gt;Proceed to &lt;code&gt;\\\/payments&lt;\\\/code&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;unknown&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Status unknown due to technical error.&lt;\\\/td&gt;\\n&lt;td&gt;Proceed to &lt;code&gt;\\\/payments&lt;\\\/code&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;invalid&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;VPA is invalid.&lt;\\\/td&gt;\\n&lt;td&gt;Block &lt;code&gt;\\\/payments&lt;\\\/code&gt;. Ask shopper to check UPI ID.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;invalid&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;VPA is incomplete.&lt;\\\/td&gt;\\n&lt;td&gt;Block &lt;code&gt;\\\/payments&lt;\\\/code&gt;. Prompt shopper to complete UPI ID.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;invalid&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;VPA format is incorrect.&lt;\\\/td&gt;\\n&lt;td&gt;Block &lt;code&gt;\\\/payments&lt;\\\/code&gt;. Show format hint (for example, &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;name@bank&lt;\\\/strong&gt;&lt;\\\/span&gt;).&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;div class=\\&quot;sc-notice note\\&quot;&gt;&lt;div&gt;\\n&lt;p&gt;Do not block your  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments&lt;\\\/a&gt; request if the UPI ID validation request fails due to technical issues, for example for HTTP 4xx or 5xx  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/validateShopperId#responses-400\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/validateShopperId responses&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&lt;p&gt;Handle these cases gracefully and proceed with the payment request. Only block the payment flow when the validation result explicitly returns &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;INVALID&lt;\\\/strong&gt;&lt;\\\/span&gt;.&lt;\\\/p&gt;\\n&lt;\\\/div&gt;&lt;\\\/div&gt;\\n&lt;h2 id=\\&quot;make-payment\\&quot;&gt;Make a payment&lt;\\\/h2&gt;\\n&lt;p&gt;In your  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments&lt;\\\/a&gt; request, specify:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;&lt;code&gt;paymentMethod.type&lt;\\\/code&gt;: &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;upi_collect&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;paymentMethod.virtualPaymentAddress&lt;\\\/code&gt;: The UPI VPA that the shopper entered.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;amount.currency&lt;\\\/code&gt;: INR&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;amount.value&lt;\\\/code&gt;: The value of the payment, in minor units.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;\\\/payments request&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;json&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v68\\\\\\\/payments \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n   \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n     \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;INR\\\\&amp;quot;,\\\\n     \\\\&amp;quot;value\\\\&amp;quot;: 12000\\\\n   },\\\\n   \\\\&amp;quot;countryCode\\\\&amp;quot;: \\\\&amp;quot;IN\\\\&amp;quot;,\\\\n   \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n   \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n   \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n     \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;upi_collect\\\\&amp;quot;,\\\\n     \\\\&amp;quot;virtualPaymentAddress\\\\&amp;quot;: \\\\&amp;quot;9999999999@upi\\\\&amp;quot;\\\\n   },\\\\n   \\\\&amp;quot;returnUrl\\\\&amp;quot;: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n}&#039;&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;The  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments&lt;\\\/a&gt; response contains:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;&lt;code&gt;action.type&lt;\\\/code&gt;: &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;await&lt;\\\/strong&gt;&lt;\\\/span&gt;, this means you need to wait for the &lt;a href=\\&quot;\\\/pt\\\/development-resources\\\/webhooks\\&quot;&gt;webhook&lt;\\\/a&gt; to know the payment outcome.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;\\\/payments response&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n    \\\\\\&quot;resultCode\\\\\\&quot;: \\\\\\&quot;Pending\\\\\\&quot;,\\\\n    \\\\\\&quot;action\\\\\\&quot;: {\\\\n        \\\\\\&quot;paymentMethodType\\\\\\&quot;: \\\\\\&quot;upi_collect\\\\\\&quot;,\\\\n        \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;await\\\\\\&quot;\\\\n    },\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;h2&gt;Show the waiting screen&lt;\\\/h2&gt;\\n&lt;ol&gt;\\n&lt;li&gt;Show a waiting screen to the shopper. We recommend adding a countdown timer of 5 minutes to remind shoppers to complete the payment on their UPI app.&lt;\\\/li&gt;\\n&lt;li&gt;Check your &lt;a href=\\&quot;\\\/pt\\\/development-resources\\\/webhooks\\&quot;&gt;webhooks&lt;\\\/a&gt; to see the payment result. We send you an &lt;a href=\\&quot;\\\/pt\\\/development-resources\\\/webhooks\\\/webhook-types\\&quot;&gt;AUTHORISATION webhook&lt;\\\/a&gt; after the shopper completes the payment in their UPI app.&lt;\\\/li&gt;\\n&lt;li&gt;Once you receive the webhook, redirect the shopper to your website, and present the payment result.&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;h2&gt;Present the payment result&lt;\\\/h2&gt;\\n&lt;p&gt;Wait for a webhook to know the outcome of the payment. The webhooks you can receive for UPI Collect are:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;eventCode&lt;\\\/th&gt;\\n&lt;th&gt;success field&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;th&gt;Action to take&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;AUTHORISATION&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;false&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The transaction failed.&lt;\\\/td&gt;\\n&lt;td&gt;Cancel the order and inform the shopper that the payment failed.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;AUTHORISATION&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;true&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The shopper successfully completed the payment.&lt;\\\/td&gt;\\n&lt;td&gt;Inform the shopper that the payment has been successful and proceed with the order.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;Use the &lt;code&gt;resultCode&lt;\\\/code&gt; that you received in the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments&lt;\\\/a&gt; response to inform your shopper of the payment status. The &lt;code&gt;resultCode&lt;\\\/code&gt; values you can receive for payments made through UPI Collect are:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;resultCode&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;th&gt;Action to take&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;Error&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;There was an error when the payment was being processed. For more information, check the &lt;a href=\\&quot;\\\/pt\\\/development-resources\\\/refusal-reasons\\&quot;&gt;\\n  &lt;code&gt;refusalReason&lt;\\\/code&gt;\\n&lt;\\\/a&gt; field.&lt;\\\/td&gt;\\n&lt;td&gt;Inform the shopper that there was an error processing their payment.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;Pending&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The payment order was successfully received.&lt;\\\/td&gt;\\n&lt;td&gt;Inform the shopper that you have received their order, and are waiting for the payment to clear. &lt;br&gt; You will receive the final result of the payment in an &lt;a href=\\&quot;\\\/pt\\\/development-resources\\\/webhooks\\\/webhook-types\\&quot;&gt;AUTHORISATION webhook&lt;\\\/a&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;Refused&lt;\\\/strong&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The payment was refused.  For more information, check the &lt;a href=\\&quot;\\\/pt\\\/development-resources\\\/refusal-reasons\\&quot;&gt;\\n  &lt;code&gt;refusalReason&lt;\\\/code&gt;\\n&lt;\\\/a&gt; field.&lt;\\\/td&gt;\\n&lt;td&gt;Ask the shopper to try the payment again using a different payment method.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;h2&gt;Test and Go Live&lt;\\\/h2&gt;\\n&lt;p&gt;Use these credentials to test UPI Collect:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Parameter&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Value&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;VPA&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;testvpa@icici&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;Depending on your account setup, you may have access to the UPI simulator which you can use to test your UPI integration. Contact your Account Manager or our &lt;a href=\\&quot;https:\\\/\\\/ca-test.adyen.com\\\/ca\\\/ca\\\/contactUs\\\/support.shtml?form=other\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Support Team&lt;\\\/a&gt; if you have questions about the simulator.&lt;\\\/p&gt;\\n&lt;p&gt;You can also use your personal account on a UPI app to test your integration by making live payments with a low value.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;upi_collect_2_3&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/payment-methods\/upi\/api-only","articleFields":{"feedback_component":true,"last_edit_on":"13-06-2022 12:28","parameters":{"integration":"API-only","platform":"Web"}},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/payment-methods\/upi\/api-only","title":"API only","content":"Accept UPI payments in India using our APIs, and build your own payment form to have full control over your checkout journey.\nRequirements\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nMake sure that you have built an API-only integration. \n\n\nSetup steps\nBefore you begin, add  in your test Customer Area.\n\n\n\n\n\n    \n        \n        \n    \n\n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Payment methods","lvl2":"UPI","lvl3":"API only"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/payment-methods","lvl2":"https:\/\/docs.adyen.com\/pt\/payment-methods\/upi","lvl3":"\/pt\/payment-methods\/upi\/api-only"},"levels":4,"category":"Payment method","category_color":"green","tags":[]}}
