{"title":"Recurring card payments in India","category":"default","creationDate":1613653980,"content":"<div class=\"sc-notice note\"><div>\n<p>You need to process transactions via local acquiring to support the recurring flows described on this page. Reach out to your Account Manager or our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a> to evaluate if and how you can process locally with Adyen.<\/p>\n<\/div><\/div>\n<p>You can accept recurring card payments in India for the following types of payments:<\/p>\n<ul>\n<li><strong>Subscriptions<\/strong>: A recurring transaction made at regular intervals for a product or a service. These payments use the <span translate=\"no\"><strong>Subscription<\/strong><\/span> <a href=\"\/pt\/online-payments\/tokenization\/make-token-payments#make-a-subscription-or-unscheduled-card-on-file-payment\">recurring processing model<\/a>.<\/li>\n<li><strong>Automatic top-ups<\/strong>: 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 <span translate=\"no\"><strong>UnscheduledCardOnFile<\/strong><\/span> <a href=\"\/pt\/online-payments\/tokenization\/make-token-payments#make-a-subscription-or-unscheduled-card-on-file-payment\">recurring processing model<\/a>.<\/li>\n<\/ul>\n<p>To process recurring card payments in India, you need to perform some extra steps:<\/p>\n<ul>\n<li>You provide information about the shopper's billing plan in the payments request.<\/li>\n<li>Based on this information, the shopper creates a mandate between them and their issuer.<\/li>\n<li>You initiate a pre-debit notification before you charge the shopper.<\/li>\n<\/ul>\n<h2>How it works<\/h2>\n<div class=\"notices green\">\n<p>The instructions on this page describe the requests and responses using Checkout API <div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        v66\n    <\/tag>\n<\/div>\n or earlier. You can use Checkout API <div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        v67\n    <\/tag>\n<\/div>\n or later, but note that there are some differences in the 3D Secure flow. For more information, see the <a href=\"\/pt\/online-payments\/release-notes\">release notes<\/a>.<\/p>\n<\/div>\n<p>Set up a recurring contract and a mandate:<\/p>\n<ol>\n<li>In your payment form, a shopper selects their card and fills in their details.<\/li>\n<li>You send a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> request, specifying the required details to <a href=\"#set-up-mandate\">set up a recurring contract and mandate<\/a>.<\/li>\n<li>The shopper is redirected to the issuer and performs 3D Secure 2 authentication.<\/li>\n<li>The shopper is redirected back to your website.<\/li>\n<li>You send a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a> request, and include the data that you received in the \/payments response.<\/li>\n<li>You get a response from the \/payments\/details request. When the result is successful, the mandate is created and you can start processing recurring <span translate=\"no\"><strong>Subscription<\/strong><\/span> or <span translate=\"no\"><strong>UnscheduledCardOnFile<\/strong><\/span> payments for your shoppers.<\/li>\n<\/ol>\n<p>Use the recurring contract to make a payment:<\/p>\n<ol>\n<li><a href=\"#send-a-pre-debit-notification\">Notify the issuer<\/a> that you will charge the shopper. We recommend that you do this at least 72 hours before you intend to charge the shopper.<\/li>\n<li>At least 24 hours before the recurring charge, the issuer sends the shopper a pre-debit notification that the recurring amount will be charged. To send a notification to the shopper, the issuer can use an SMS, or an e-mail, for example.<\/li>\n<li>You send a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> request, specifying the required details to <a href=\"#make-a-subscription-payment\">make a recurring payment<\/a>.<\/li>\n<\/ol>\n<h2 id=\"set-up-mandate\">Set up a recurring contract<\/h2>\n<p>To start a recurring contract for a shopper, you need to store their payment details and create a mandate with their issuer. The issuer uses this mandate to have visibility of the shopper's recurring payments. They can then let the shopper cancel (or pause\/unpause) the mandate on their side.<\/p>\n<p>In the examples on this page, you set up a subscription for a shopper.<\/p>\n<div class=\"notices blue\">\n<p>Make sure that every billing plan has a unique mandate associated with it.<\/p>\n<\/div>\n<h3>Make a payment<\/h3>\n<p>Make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> call, including:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Field<\/th>\n<th style=\"text-align: left;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>paymentMethod.type<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><strong>scheme<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentMethod.encryptedCardNumber<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The shopper's encrypted card number.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentMethod.encryptedExpiryYear<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The shopper's encrypted card expiry year.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentMethod.encryptedExpiryMonth<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The shopper's encrypted card expiry month.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentMethod.encryptedSecurityCode<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The shopper's encrypted card CVC.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentMethod.holderName<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The name on the shopper's card.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>mandate.amount<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The amount the shopper will be charged per recurring debit in minor units. Must be more than or equal to the transaction amount. <br\/><div class=\"notices green\">The recurring charge does not need to go through 3D Secure authentication if the amount is less than or equal to INR 15,000.<\/div><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>mandate.amountRule<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">Possible values: <span translate=\"no\"><strong>max<\/strong><\/span> (default) and <span translate=\"no\"><strong>exact<\/strong><\/span>. <ul><li markdown=\"1\"><strong>max<\/strong> - The shopper can be charged any amount between INR 1 to the amount in the <code>amount<\/code> field.<\/li><li markdown=\"1\"><strong>exact<\/strong> - The shopper can only be charged the amount in the <code>amount<\/code> field.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>mandate.frequency<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The frequency at which the shopper will be charged. Possible values: <span translate=\"no\"><strong>monthly<\/strong><\/span> and <span translate=\"no\"><strong>adhoc<\/strong><\/span>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>mandate.startsAt<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">Start date of the billing plan, in <span translate=\"no\"><strong>YYYY-MM-DD<\/strong><\/span> format. The default value is the transaction date.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>mandate.endsAt<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">End date of the billing plan, in <span translate=\"no\"><strong>YYYY-MM-DD<\/strong><\/span> format.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>mandate.remarks<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">Limited to 50 characters, no special characters.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>browserInfo<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">The shopper's browser information.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>shopperEmail<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">The shopper's email address.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>shopperIP<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">The shopper's IP address.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>storePaymentMethod<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Set to <span translate=\"no\"><strong>true<\/strong><\/span> to store shopper's payment details.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>shopperInteraction<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Set to <span translate=\"no\"><strong>Ecommerce<\/strong><\/span>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>recurringProcessingModel<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Possible values: <span translate=\"no\"><strong>Subscription<\/strong><\/span> or <span translate=\"no\"><strong>UnscheduledCardOnFile<\/strong><\/span>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>shopperReference<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The shopper reference associated with the billing plan (minimum length three characters).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The details in the <code>mandate<\/code> object are used to create the mandate for the shopper's billing plan.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'\/payments request'\" :id=\"''\" :code-data=\"[{&quot;language&quot;:&quot;json&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/payments \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;currency\\&quot;: \\&quot;INR\\&quot;,\\n    \\&quot;value\\&quot;: 9000\\n  },\\n  \\&quot;countryCode\\&quot;: \\&quot;IN\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n  \\&quot;paymentMethod\\&quot;: {\\n    \\&quot;type\\&quot;: \\&quot;scheme\\&quot;,\\n    \\&quot;encryptedCardNumber\\&quot;: \\&quot;adyenjs_0_1_18$k7s65M5V0KdPxTErhBIPoMPI8HlC..\\&quot;,\\n    \\&quot;encryptedExpiryYear\\&quot;: \\&quot;adyenjs_0_1_18$CkCOLYZsdqpxGjrALWHj3QoGHqe+..\\&quot;,\\n    \\&quot;encryptedExpiryMonth\\&quot;: \\&quot;adyenjs_0_1_18$p2OZxW2XmwAA8C1Avxm3G9UB6e4..\\&quot;,\\n    \\&quot;encryptedSecurityCode\\&quot;: \\&quot;adyenjs_0_1_24$XUyMJyHebrra\/TpSda9fha978+..\\&quot;,\\n    \\&quot;holderName\\&quot;: \\&quot;S. Hopper\\&quot;\\n  },\\n  \\&quot;mandate\\&quot;:{\\n      \\&quot;amount\\&quot;: \\&quot;100000\\&quot;,\\n      \\&quot;amountRule\\&quot;: \\&quot;max\\&quot;,\\n      \\&quot;frequency\\&quot;: \\&quot;monthly\\&quot;,\\n      \\&quot;startsAt\\&quot;: \\&quot;2021-02-16\\&quot;,\\n      \\&quot;endsAt\\&quot;: \\&quot;2022-02-16\\&quot;,\\n      \\&quot;remarks\\&quot;: \\&quot;Remark on mandate\\&quot;\\n  },\\n  \\&quot;browserInfo\\&quot;: {\\n        \\&quot;acceptHeader\\&quot;: \\&quot;*\\\/*\\&quot;,\\n        \\&quot;userAgent\\&quot;: \\&quot;Mozilla\\\\\\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\\\\\\/537.36 (KHTML, like Gecko) Chrome\\\\\\\/70.0.3538.110 Safari\\\\\\\/537.36\\&quot;\\n  },\\n  \\&quot;shopperEmail\\&quot;: \\&quot;s.hopper@example.com\\&quot;,\\n  \\&quot;shopperIP\\&quot;: \\&quot;127.0.0.1\\&quot;,\\n  \\&quot;returnUrl\\&quot;: \\&quot;https:\/\/your-company.example.com\/checkout?shopperOrder=12xy..\\&quot;,\\n  \\&quot;storePaymentMethod\\&quot;: true,\\n  \\&quot;shopperInteraction\\&quot;: \\&quot;Ecommerce\\&quot;,\\n  \\&quot;recurringProcessingModel\\&quot;: \\&quot;Subscription\\&quot;,\\n  \\&quot;shopperReference\\&quot;: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> response is:<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'\/payments response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"resultCode\\\":\\\"RedirectShopper\\\",\\n   \\\"action\\\":{\\n      \\\"data\\\":{\\n         \\\"MD\\\":\\\"OEVudmZVMUlkWjd0MDNwUWs2bmhSdz09...\\\",\\n         \\\"PaReq\\\":\\\"eNpVUttygjAQ\\\/RXbDyAXBYRZ00HpTH3wUosPfe...\\\",\\n         \\\"TermUrl\\\":\\\"https:\/\/your-company.example.com\/checkout?shopperOrder=12xy..\\\"\\n      },\\n      \\\"method\\\":\\\"POST\\\",\\n      \\\"{hint: Store this on your server.}paymentData{\\\/hint}\\\":\\\"Ab02b4c0!BQABAgCJN1wRZuGJmq8dMncmypvknj9s7l5Tj...\\\",\\n      \\\"paymentMethodType\\\":\\\"scheme\\\",\\n      \\\"type\\\":\\\"redirect\\\",\\n      \\\"url\\\":\\\"ISSUER_URL\\\"\\n   },\\n   \\\"details\\\":[\\n      {\\n         \\\"key\\\":\\\"MD\\\",\\n         \\\"type\\\":\\\"text\\\"\\n      },\\n      {\\n         \\\"key\\\":\\\"PaRes\\\",\\n         \\\"type\\\":\\\"text\\\"\\n      }\\n   ],\\n   ...\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The response contains an <code>action<\/code> object. Your next step is to <a href=\"#handle-the-redirect-web\">Handle the redirect<\/a>.<\/p>\n<h3 id=\"handle-the-redirect-web\">Handle the redirect<\/h3>\n<p>Handling the redirect is similar to handling a regular <a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\">3D Secure redirect<\/a>, but with a few differences for recurring card payments in India:<\/p>\n<ul>\n<li><strong>Testing<\/strong><br \/>\nTo test the 3D Secure 2 authentication flow, you can use a test card and static One Time Password (OTP) from the <a href=\"#test-and-go-live\">Test and go live<\/a> section.<\/li>\n<li><strong>Mandate details returned in the response<\/strong><br \/>\nYou will receive the mandate details as additional data in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a> response.<\/li>\n<\/ul>\n<p>For more detailed information about handling the redirect in the different integration types, see:<br \/>\n<a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\/web-drop-in#handle-the-redirect\">Web Drop-in<\/a><br \/>\n<a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\/web-component\/#step-4-handle-the-redirect-result\">Web Component<\/a><br \/>\n<a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\/ios-drop-in#handle-the-redirect-result\">iOS Drop-in<\/a><br \/>\n<a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\/ios-component#handle-the-redirect\">iOS Component<\/a><br \/>\n<a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\/android-drop-in#check-the-payment-result\">Android Drop-in<\/a><br \/>\n<a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\/android-component#handle-the-redirect\">Android Component<\/a><br \/>\n<a href=\"\/pt\/online-payments\/build-your-integration\/advanced-flow\/?platform=Web&amp;integration=API%20only#handle-the-redirect\">API only<\/a><\/p>\n<p>If the payment was successful, the shopper created the mandate with their issuer, and you will get a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a> response with:<\/p>\n<ul>\n<li>\n<p><code>resultCode<\/code>: <span translate=\"no\"><strong>Authorised<\/strong><\/span><\/p>\n<\/li>\n<li>\n<p><code>additionalData.tokenization.storedPaymentMethodId<\/code>: The token for the saved payment details. You will need this to make future payments for the shopper.<\/p>\n<\/li>\n<li>\n<p><code>additionalData.mandate<\/code>: The details on the shopper's mandate. This contains the mandate details that you provided in your request, as well as:<\/p>\n<ul>\n<li><code>mandate.mandateId<\/code>: This field will include the identifier for the mandate created by the issuer. Currently, this is a placeholder field and we return an empty string as the value. When issuers start passing the <code>mandateId<\/code>, we will return the value in this field.<\/li>\n<li><code>mandate.providerId<\/code>: The ID returned by the provider.<\/li>\n<li><code>mandate.status<\/code>: The status of the mandate.<\/li>\n<li><code>mandate.txVariant<\/code>: The transaction variant.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>pspReference<\/code>: Our unique identifier for the transaction.<\/p>\n<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example \/payments\/details response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"additionalData\\\": {\\n        \\\"cvcResult\\\": \\\"0 Unknown\\\",\\n        \\\"authCode\\\": null,\\n        \\\"avsResult\\\": \\\"0 Unknown\\\",\\n        \\\"tokenization.storedPaymentMethodId\\\": \\\"9915989424854370\\\",\\n        \\\"tokenization.shopperReference\\\": \\\"YOUR_SHOPPER_REFERENCE\\\",\\n        \\\"tokenization.store.operationType\\\": \\\"created\\\",\\n        \\\"refusalReasonRaw\\\": \\\"MD000: Request successful\\\",\\n        \\\"mandate.amount\\\" : \\\"1000.00\\\",\\n        \\\"mandate.amountRule\\\" : \\\"max\\\",\\n        \\\"mandate.currency\\\" : \\\"INR\\\",\\n        \\\"mandate.frequency\\\" : \\\"monthly\\\",\\n        \\\"mandate.startsAt\\\" : \\\"2020-02-16 00:00:00\\\",\\n        \\\"mandate.endsAt\\\" : \\\"2022-02-16 00:00:00\\\",\\n        \\\"mandate.remarks\\\" : \\\"Remark on mandate\\\",\\n        \\\"mandate.mandateId\\\" : \\\"\\\",\\n        \\\"mandate.providerId\\\" : \\\"PROVIDER_ID\\\",\\n        \\\"mandate.status\\\" : \\\"active\\\",\\n        \\\"mandate.txVariant\\\" : \\\"TX_VARIANT\\\",\\n        \\\"acquirerCode\\\": \\\"ACQUIRER_CODE\\\",\\n        \\\"acquirerReference\\\": \\\"ACQUIRER_REFERENCE\\\",\\n        ...\\n      },\\n      \\\"pspReference\\\": \\\"8826006786035918\\\",\\n      \\\"resultCode\\\": \\\"Authorised\\\",\\n      \\\"amount\\\": {\\n        \\\"currency\\\": \\\"INR\\\",\\n        \\\"value\\\": 9000\\n      },\\n      \\\"merchantReference\\\": \\\"YOUR_ORDER_NUMBER\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>You will need the <code>storedPaymentMethodId<\/code> and <code>shopperReference<\/code> to make subsequent payments.<\/p>\n<h3>Present the payment result<\/h3>\n<p>Use the\u00a0 <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#responses-200-resultCode\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">resultCode<\/a> from the   <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a> response to present the payment result to your shopper. You will also receive the outcome of the payment asynchronously in a <a href=\"\/pt\/development-resources\/webhooks\">webhook<\/a>.<\/p>\n<p><\/p>\n<p>You can receive the following <code>resultCode<\/code> values:<\/p>\n<table>\n<thead>\n<tr>\n<th>resultCode<\/th>\n<th>Description<\/th>\n<th>Action to take<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><span translate=\"no\"><strong>Authorised<\/strong><\/span><\/td>\n<td>The payment was successful, and a mandate was created.<\/td>\n<td>Inform the shopper that the payment has been successful.<\/td>\n<\/tr>\n<tr>\n<td><span translate=\"no\"><strong>Cancelled<\/strong><\/span><\/td>\n<td>The shopper cancelled the payment.<\/td>\n<td>Ask the shopper whether they want to continue with the order, or ask them to select a different payment method.<\/td>\n<\/tr>\n<tr>\n<td><span translate=\"no\"><strong>Error<\/strong><\/span><\/td>\n<td>There was an error when the payment was being processed. For more information, check the <a href=\"\/pt\/development-resources\/refusal-reasons\">\n  <code>refusalReason<\/code>\n<\/a> field.<\/td>\n<td>Inform the shopper that there was an error processing their payment.<\/td>\n<\/tr>\n<tr>\n<td><span translate=\"no\"><strong>Refused<\/strong><\/span><\/td>\n<td>The payment was refused.  For more information, check the <a href=\"\/pt\/development-resources\/refusal-reasons\">\n  <code>refusalReason<\/code>\n<\/a> field.<\/td>\n<td>Ask the shopper to try the payment again using a different payment method.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Webhook<\/h3>\n<p>You will receive a <a href=\"\/pt\/development-resources\/webhooks\">webhook<\/a> message with the final status of the payment.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">eventCode<\/th>\n<th style=\"text-align: left;\">success field<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<th style=\"text-align: left;\">Action to take<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>AUTHORISATION<\/strong><\/span><\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>false<\/strong><\/span><\/td>\n<td style=\"text-align: left;\">The transaction failed.<\/td>\n<td style=\"text-align: left;\">Cancel the order and inform the shopper that the payment failed and any amount debited will be refunded in 2-3 days.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>AUTHORISATION<\/strong><\/span><\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>true<\/strong><\/span><\/td>\n<td style=\"text-align: left;\">The shopper successfully completed the payment, and a mandate was created.<\/td>\n<td style=\"text-align: left;\">Inform the shopper that the payment has been successful and proceed with the order.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>You can receive the mandate details as part of your standard webhooks. To do this:<\/p>\n<ol>\n<li>In your\u00a0<a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>,\u00a0go to\u00a0<strong>Developers<\/strong> &gt; <strong>Webhooks<\/strong>.<\/li>\n<li>Next to <strong>Standard webhook<\/strong>,\u00a0select the edit webhook icon <i class=\"adl-icon-edit\"><\/i>.<\/li>\n<li>Under <strong>Additional Settings<\/strong>, select <strong>Include Mandate Details<\/strong>.<\/li>\n<li>Select <strong>Save Configuration<\/strong>.<\/li>\n<\/ol>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example webhook'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"live\\\" : \\\"false\\\",\\n   \\\"notificationItems\\\" : [\\n      {\\n         \\\"NotificationRequestItem\\\" : {\\n            \\\"additionalData\\\" : {\\n               \\\"refusalReasonRaw\\\" : \\\"MD000: Request successful\\\",\\n               \\\"tokenization.storedPaymentMethodId\\\" : \\\"9915989424854370\\\",\\n               \\\"tokenization.shopperReference\\\" : \\\"YOUR_SHOPPER_REFERENCE\\\",\\n               \\\"tokenization.store.operationType\\\" : \\\"created\\\",\\n               \\\"mandate.amount\\\" : \\\"1000.00\\\",\\n               \\\"mandate.amountRule\\\" : \\\"max\\\",\\n               \\\"mandate.currency\\\" : \\\"INR\\\",\\n               \\\"mandate.frequency\\\" : \\\"monthly\\\",\\n               \\\"mandate.startsAt\\\" : \\\"2021-02-16 00:00:00\\\",\\n               \\\"mandate.endsAt\\\" : \\\"2022-02-16 00:00:00\\\",\\n               \\\"mandate.remarks\\\" : \\\"Remark on mandate\\\",\\n               \\\"mandate.mandateId\\\" : \\\"\\\",\\n               \\\"mandate.providerId\\\" : \\\"PROVIDER_ID\\\",\\n               \\\"mandate.status\\\" : \\\"active\\\",\\n               \\\"mandate.txVariant\\\" : \\\"TX_VARIANT\\\",\\n            },\\n            \\\"amount\\\" : {\\n               \\\"currency\\\" : \\\"INR\\\",\\n               \\\"value\\\" : 9000\\n            },\\n            \\\"eventCode\\\" : \\\"AUTHORISATION\\\",\\n            \\\"eventDate\\\" : \\\"2021-02-16T10:57:26+02:00\\\",\\n            \\\"merchantAccountCode\\\" : \\\"YOUR_MERCHANT_ACCOUNT\\\",\\n            \\\"merchantReference\\\" : \\\"YOUR_ORDER_NUMBER\\\",\\n            \\\"paymentMethod\\\" : \\\"scheme\\\",\\n            \\\"pspReference\\\" : \\\"8826006786035918\\\",\\n            \\\"reason\\\" : \\\"null\\\",\\n            \\\"success\\\" : \\\"true\\\"\\n         }\\n      }\\n   ]\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2 id=\"make-subscription-payments\">Make recurring payments<\/h2>\n<p>For every subsequent payment in a billing plan, for example a subscription, you need to:<\/p>\n<ol>\n<li><a href=\"#send-a-pre-debit-notification\">Initiate a pre-debit notification.<\/a><\/li>\n<li><a href=\"#make-a-subscription-payment\">Make the recurring payment.<\/a><\/li>\n<\/ol>\n<h3 id=\"send-a-pre-debit-notification\">Initiate a pre-debit notification<\/h3>\n<p>A pre-debit notification is an email or SMS notification sent to a shopper to inform them of their impending billing plan charge. You need to inform the issuer when the notification needs to be sent out and subsequently the issuer sends the email or SMS. When they receive the notification, shoppers can choose to cancel the mandate. Shoppers receive the pre-debit notification at least 24 hours before every recurring payment in the billing plan.<\/p>\n<p>To send a pre-debit notification to your shopper, make a POST call to <code>\/notifyShopper<\/code>:<\/p>\n<ul>\n<li><code>storedPaymentMethodId<\/code>: The token for your shopper's stored payment details.<\/li>\n<li><code>merchantAccount<\/code>: Your merchant account associated with the shopper's stored payment details.<\/li>\n<li><code>shopperReference<\/code>: The shopper reference associated with the billing plan.<\/li>\n<li><code>amount<\/code>: The amount you are going to charge the shopper. If you have configured <span translate=\"no\"><strong>max<\/strong><\/span> for the <code>mandate.amountRule<\/code>, the shopper can be charged any amount between INR 1 to the amount in the <code>mandate.amount<\/code> field. If you have configured <span translate=\"no\"><strong>exact<\/strong><\/span>, the shopper can only be charged the amount in the <code>mandate.amount<\/code> field.<\/li>\n<li><code>billingDate<\/code>: The date the shopper will be charged.<\/li>\n<li><code>reference<\/code>: The notification reference. This field is shown to the shopper if the <code>displayedReference<\/code> field is left blank or is not sent.<\/li>\n<li><code>displayedReference<\/code>: Optional. The reference shown to the shopper in the pre-debit notification they receive from their issuer. If this field is left blank or is not sent, the <code>reference<\/code> field will be shown instead.<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'\/notifyShopper request'\" :id=\"''\" :code-data=\"[{&quot;language&quot;:&quot;json&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/pal-test.adyen.com\\\/pal\\\/servlet\\\/Recurring\\\/v49\\\/notifyShopper \\\\\\n-u \\&quot;ws@Company.YourCompany\\&quot;:\\&quot;YourWSPassword\\&quot; \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n    \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n    \\&quot;storedPaymentMethodId\\&quot;: \\&quot;8415995487234100\\&quot;,\\n    \\&quot;shopperReference\\&quot;: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;,\\n    \\&quot;amount\\&quot;: {\\n        \\&quot;currency\\&quot;: \\&quot;INR\\&quot;,\\n        \\&quot;value\\&quot;: 1000\\n    },\\n    \\&quot;billingDate\\&quot;: \\&quot;2021-03-16\\&quot;,\\n    \\&quot;reference\\&quot;: \\&quot;Example reference\\&quot;,\\n    \\&quot;displayedReference\\&quot;: \\&quot;Example displayed reference\\&quot;\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The <code>\/notifyShopper<\/code> response contains:<\/p>\n<ul>\n<li><code>message<\/code>: Information about the status of the pre-debit notification.<\/li>\n<li><code>shopperNotificationReference<\/code>: Unique reference to the pre-debit notification. Store this value to make the subsequent payment.<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example \/notifyShopper Success response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"message\\\": \\\"Request Processed Successfully\\\",\\n    \\\"resultCode\\\": \\\"Success\\\",\\n    \\\"shopperNotificationReference\\\": \\\"9915003646742627\\\",\\n    \\\"storedPaymentMethodId\\\": \\\"8415995487234100\\\",\\n    \\\"pspReference\\\": \\\"9915003646742627\\\",\\n    \\\"reference\\\": \\\"Example reference\\\",\\n    \\\"displayedReference\\\": \\\"Example displayed reference\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>If the <code>\/notifyShopper<\/code> request fails, you will receive a response with <code>resultCode<\/code> set to <span translate=\"no\"><strong>Refused<\/strong><\/span>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example \/notifyShopper Refused response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"message\\\": \\\"Request failed\\\",\\n    \\\"resultCode\\\": \\\"Refused\\\",\\n    \\\"pspReference\\\": \\\"9915003645882507\\\",\\n    \\\"reference\\\": \\\"Example reference\\\",\\n    \\\"displayedReference\\\": \\\"Example displayed reference\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>If there was an issue with the <code>\/notifyShopper<\/code> request, you will receive a response containing an <code>errorCode<\/code> and a <code>message<\/code> explaining the error. For a list of possible values, refer to <a href=\"\/pt\/development-resources\/error-codes#generic-error-codes\">Generic error codes<\/a>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example \/notifyShopper error response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"status\\\": 422,\\n    \\\"errorCode\\\": \\\"000\\\",\\n    \\\"message\\\": \\\"Invalid response\\\",\\n    \\\"errorType\\\": \\\"validation\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h3 id=\"make-a-subscription-payment\">Make a recurring payment<\/h3>\n<p>After the shopper has received the pre-debit notification, you can carry out a recurring payment, for example for a subscription.<\/p>\n<ol>\n<li>\n<p>To do so, make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> call, including:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Field<\/th>\n<th style=\"text-align: left;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>amount<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Include the <code>currency<\/code> and <code>value<\/code> of the shopper's subscription payment.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentMethod.type<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\"><strong>scheme<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentMethod.storedPaymentMethodId<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The token value for the shopper's stored payment information.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>paymentMethod.shopperNotificationReference<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Unique reference to the pre-debit notification from the <code>\/notifyShopper<\/code> response.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>shopperEmail<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">The shopper's email address.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>shopperIP<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">The shopper's IP address.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>merchantAccount<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Your merchant account<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>shopperReference<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The shopper reference associated with the subscription.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>shopperInteraction<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Set to <span translate=\"no\"><strong>ContAuth<\/strong><\/span>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>recurringProcessingModel<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">Set to <span translate=\"no\"><strong>Subscription<\/strong><\/span> or <span translate=\"no\"><strong>UnscheduledCardOnFile<\/strong><\/span>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'\/payments request'\" :id=\"''\" :code-data=\"[{&quot;language&quot;:&quot;json&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/payments \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n    \\&quot;amount\\&quot;: {\\n        \\&quot;currency\\&quot;: \\&quot;INR\\&quot;,\\n        \\&quot;value\\&quot;: 1000\\n    },\\n    \\&quot;paymentMethod\\&quot;: {\\n        \\&quot;type\\&quot;: \\&quot;scheme\\&quot;,\\n        \\&quot;storedPaymentMethodId\\&quot;: \\&quot;8415995487234100\\&quot;,\\n        \\&quot;shopperNotificationReference\\&quot;: \\&quot;9915003646742627\\&quot;\\n    },\\n    \\&quot;shopperIP\\&quot;: \\&quot;127.0.0.1\\&quot;,\\n    \\&quot;shopperEmail\\&quot;: \\&quot;s.hopper@example.com\\&quot;,\\n    \\&quot;returnUrl\\&quot;: \\&quot;https:\/\/your-company.example.com\/checkout?shopperOrder=12xy..\\&quot;,\\n    \\&quot;reference\\&quot;: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n    \\&quot;shopperInteraction\\&quot;: \\&quot;ContAuth\\&quot;,\\n    \\&quot;recurringProcessingModel\\&quot;: \\&quot;Subscription\\&quot;,\\n    \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n    \\&quot;shopperReference\\&quot;: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>The  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> response contains:<\/p>\n<ul>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#responses-200-resultCode\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">resultCode<\/a>&#58; <span translate=\"no\"><strong>Authorised<\/strong><\/span><\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'\/payments response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"additionalData\\\": {\\n      \\\"cvcResult\\\": \\\"0 Unknown\\\",\\n      \\\"authCode\\\": null,\\n      \\\"avsResult\\\": \\\"0 Unknown\\\",\\n      \\\"tokenization.storedPaymentMethodId\\\": \\\"9915989424854370\\\",\\n      \\\"tokenization.shopperReference\\\": \\\"YOUR_SHOPPER_REFERENCE\\\",\\n      \\\"tokenization.store.operationType\\\" : \\\"created\\\",\\n      \\\"refusalReasonRaw\\\": \\\"0300: Success\\\",\\n      \\\"mandate.amount\\\" : \\\"1000.00\\\",\\n      \\\"mandate.amountRule\\\" : \\\"max\\\",\\n      \\\"mandate.currency\\\" : \\\"INR\\\",\\n      \\\"mandate.frequency\\\" : \\\"monthly\\\",\\n      \\\"mandate.startsAt\\\" : \\\"2020-02-16 00:00:00\\\",\\n      \\\"mandate.endsAt\\\" : \\\"2022-02-16 00:00:00\\\",\\n      \\\"mandate.remarks\\\" : \\\"Remark on mandate\\\",\\n      \\\"mandate.mandateId\\\" : \\\"\\\",\\n      \\\"mandate.providerId\\\" : \\\"PROVIDER_ID\\\",\\n      \\\"mandate.status\\\" : \\\"active\\\",\\n      \\\"mandate.txVariant\\\" : \\\"TX_VARIANT\\\",\\n      \\\"acquirerCode\\\": \\\"ACQUIRER_CODE\\\",\\n      \\\"acquirerReference\\\": \\\"ACQUIRER_REFERENCE\\\",\\n      ...\\n  },\\n  \\\"pspReference\\\": \\\"8614811075307466\\\",\\n  \\\"resultCode\\\": \\\"Authorised\\\",\\n  \\\"amount\\\": {\\n      \\\"currency\\\": \\\"INR\\\",\\n      \\\"value\\\": 1000\\n  },\\n  \\\"merchantReference\\\": \\\"YOUR_ORDER_NUMBER\\\"\\n     }\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>If the payment is not successful, the <code>resultCode<\/code> will be <span translate=\"no\"><strong>Refused<\/strong><\/span>.<\/p>\n<\/li>\n<li>\n<p>Check the <a href=\"\/pt\/development-resources\/webhooks\">webhook<\/a> message with the final status of the payment.<\/p>\n<table>\n<thead>\n<tr>\n<th>eventCode<\/th>\n<th>success field<\/th>\n<th>Description<\/th>\n<th>Action to take<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><span translate=\"no\"><strong>AUTHORISATION<\/strong><\/span><\/td>\n<td><span translate=\"no\"><strong>false<\/strong><\/span><\/td>\n<td>The transaction failed.<\/td>\n<td>Cancel the order and inform the shopper that the payment failed.<\/td>\n<\/tr>\n<tr>\n<td><span translate=\"no\"><strong>AUTHORISATION<\/strong><\/span><\/td>\n<td><span translate=\"no\"><strong>true<\/strong><\/span><\/td>\n<td>The shopper successfully completed the payment.<\/td>\n<td>Inform the shopper that the payment has been successful and proceed with the order.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ol>\n<h2 id=\"cancel-a-mandate\">Cancel a mandate<\/h2>\n<p>When a shopper ends their mandate with their issuer, you are notified in a webhook message:<\/p>\n<ul>\n<li><strong>For acquiring with BillDesk<\/strong> you receive a webhook message with an event code of <span translate=\"no\"><strong>DISABLE_RECURRING<\/strong><\/span>.<\/li>\n<li><strong>For local acquiring<\/strong> you need to enable <a href=\"\/pt\/online-payments\/tokenization\/managing-tokens#webhooks\">\n  <strong>Tokenization webhooks<\/strong>\n<\/a> to receive a webhook with a type of <span translate=\"no\"><strong>recurring.token.disabled.<\/strong><\/span><\/li>\n<li>If the shopper cancelled a mandate immediately after the related payment was authorized and just before the payment was cleared with the card scheme, you receive a webhook message with an event code of <span translate=\"no\"><strong>CAPTURE_FAILED<\/strong><\/span> and the following message: <em>Capture rejected by card scheme because the shopper cancelled the recurring payment through their bank.<\/em><\/li>\n<\/ul>\n<p>To cancel the mandate, send a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Recurring\/latest\/post\/disable\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/disable<\/a> request that includes:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Field<\/th>\n<th style=\"text-align: left;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>merchantAccount<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The merchant account identifier.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>shopperReference<\/code><\/td>\n<td style=\"text-align: left;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: left;\">The ID that uniquely identifies the shopper. The value provided here must be the same as the value used in the initial payment.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>recurringDetailReference<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">The ID that uniquely identifies the recurring detail reference. If not provided, the whole recurring contract for the provided <code>shopperReference<\/code> will be disabled, which includes all recurring details.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>contract<\/code><\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: left;\">Specify the contract if you only want to disable a specific use. This parameter can be set to one of the following values, or to a combination of values (comma-separated):<br\/> - <span translate=\"no\"><strong>ONECLICK<\/strong><\/span><br\/> - <span translate=\"no\"><strong>RECURRING<\/strong><\/span><br\/> - <span translate=\"no\"><strong>PAYOUT<\/strong><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example \/disable request'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"merchantAccount\\\": \\\"ADYEN_MERCHANT_ACCOUNT\\\",\\n    \\\"shopperReference\\\": \\\"YOUR_SHOPPER_REFERENCE\\\",\\n    \\\"recurringDetailReference\\\": \\\"BPRMC9F77R9B99X3\\\",\\n    \\\"recurring\\\":{\\n        \\\"contract\\\":\\\"RECURRING,ONECLICK\\\"\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Recurring\/latest\/post\/disable\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/disable<\/a> response includes a <code>response<\/code> parameter that indicates either <span translate=\"no\"><strong>[detail-successfully-disabled]<\/strong><\/span> or <span translate=\"no\"><strong>[all-details-successfully-disabled]<\/strong><\/span>, depending on whether a specific recurring detail was in the request, or not.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example \/disable response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"response\\\": \\\"[detail-successfully-disabled]\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2 id=\"test-and-go-live\">Test and go live<\/h2>\n<p>Before going live, make sure to go to your <a href=\"https:\/\/ca-live-in.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">live India Customer Area<\/a> and follow the exact instructions as described above.<\/p>\n<h2 id=\"see-also\">See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/online-payments\/tokenization\"\n                        target=\"_self\"\n                        >\n                    Tokenization\n                <\/a><\/li><li><a href=\"\/online-payments\/3d-secure\/redirect-3ds2\"\n                        target=\"_self\"\n                        >\n                    3D Secure - Redirect\n                <\/a><\/li><li><a href=\"\/development-resources\/webhooks\"\n                        target=\"_self\"\n                        >\n                    Webhooks\n                <\/a><\/li><li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/overview\"\n                        target=\"_blank\"\n                         class=\"external\">\n                    API Explorer\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/payment-methods\/cards\/cards-recurring-india","articleFields":{"feedback_component":true,"parameters":{"payment_method":"cards","country_code":"IN","currency":"INR","payment_method_type":"scheme","number":"adyenjs_0_1_18$k7s65M5V0KdPxTErhBIPoMPI8HlC..","expiryYear":"adyenjs_0_1_18$CkCOLYZsdqpxGjrALWHj3QoGHqe+..","expiryMonth":"adyenjs_0_1_18$p2OZxW2XmwAA8C1Avxm3G9UB6e4..","holderName":"S. Hopper","cvc":"adyenjs_0_1_24$XUyMJyHebrra\/TpSda9fha978+..","shopper_email":"s.hopper@example.com","shopper_ip":"127.0.0.1","return_url":"https:\/\/your-company.example.com\/checkout?shopperOrder=12xy.."},"last_edit_on":"04-05-2021 10:41","page_id":"f182b81b-e7eb-4b7a-ae2a-d377a343b767","filters_component":false,"decision_tree":"[]"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/payment-methods\/cards\/cards-recurring-india","title":"Recurring card payments in India","content":"\nYou need to process transactions via local acquiring to support the recurring flows described on this page. Reach out to your Account Manager or our Support Team to evaluate if and how you can process locally with Adyen.\n\nYou can accept recurring card payments in India for the following types of payments:\n\nSubscriptions: A recurring transaction made at regular intervals for a product or a service. These payments use the Subscription recurring processing model.\nAutomatic 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.\n\nTo process recurring card payments in India, you need to perform some extra steps:\n\nYou provide information about the shopper's billing plan in the payments request.\nBased on this information, the shopper creates a mandate between them and their issuer.\nYou initiate a pre-debit notification before you charge the shopper.\n\nHow it works\n\nThe instructions on this page describe the requests and responses using Checkout API \n    \n        v66\n    \n\n or earlier. You can use Checkout API \n    \n        v67\n    \n\n or later, but note that there are some differences in the 3D Secure flow. For more information, see the release notes.\n\nSet up a recurring contract and a mandate:\n\nIn your payment form, a shopper selects their card and fills in their details.\nYou send a  \/payments request, specifying the required details to set up a recurring contract and mandate.\nThe shopper is redirected to the issuer and performs 3D Secure 2 authentication.\nThe shopper is redirected back to your website.\nYou send a  \/payments\/details request, and include the data that you received in the \/payments response.\nYou get a response from the \/payments\/details request. When the result is successful, the mandate is created and you can start processing recurring Subscription or UnscheduledCardOnFile payments for your shoppers.\n\nUse the recurring contract to make a payment:\n\nNotify the issuer that you will charge the shopper. We recommend that you do this at least 72 hours before you intend to charge the shopper.\nAt least 24 hours before the recurring charge, the issuer sends the shopper a pre-debit notification that the recurring amount will be charged. To send a notification to the shopper, the issuer can use an SMS, or an e-mail, for example.\nYou send a  \/payments request, specifying the required details to make a recurring payment.\n\nSet up a recurring contract\nTo start a recurring contract for a shopper, you need to store their payment details and create a mandate with their issuer. The issuer uses this mandate to have visibility of the shopper's recurring payments. They can then let the shopper cancel (or pause\/unpause) the mandate on their side.\nIn the examples on this page, you set up a subscription for a shopper.\n\nMake sure that every billing plan has a unique mandate associated with it.\n\nMake a payment\nMake a POST  \/payments call, including:\n\n\n\nField\nRequired\nDescription\n\n\n\n\npaymentMethod.type\n\nscheme\n\n\npaymentMethod.encryptedCardNumber\n\nThe shopper's encrypted card number.\n\n\npaymentMethod.encryptedExpiryYear\n\nThe shopper's encrypted card expiry year.\n\n\npaymentMethod.encryptedExpiryMonth\n\nThe shopper's encrypted card expiry month.\n\n\npaymentMethod.encryptedSecurityCode\n\nThe shopper's encrypted card CVC.\n\n\npaymentMethod.holderName\n\nThe name on the shopper's card.\n\n\nmandate.amount\n\nThe 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 3D Secure authentication if the amount is less than or equal to INR 15,000.\n\n\nmandate.amountRule\n\nPossible 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.\n\n\nmandate.frequency\n\nThe frequency at which the shopper will be charged. Possible values: monthly and adhoc.\n\n\nmandate.startsAt\n\nStart date of the billing plan, in YYYY-MM-DD format. The default value is the transaction date.\n\n\nmandate.endsAt\n\nEnd date of the billing plan, in YYYY-MM-DD format.\n\n\nmandate.remarks\n\nLimited to 50 characters, no special characters.\n\n\nbrowserInfo\n\nThe shopper's browser information.\n\n\nshopperEmail\n\nThe shopper's email address.\n\n\nshopperIP\n\nThe shopper's IP address.\n\n\nstorePaymentMethod\n\nSet to true to store shopper's payment details.\n\n\nshopperInteraction\n\nSet to Ecommerce.\n\n\nrecurringProcessingModel\n\nPossible values: Subscription or UnscheduledCardOnFile.\n\n\nshopperReference\n\nThe shopper reference associated with the billing plan (minimum length three characters).\n\n\n\nThe details in the mandate object are used to create the mandate for the shopper's billing plan.\n\n    \n\nThe  \/payments response is:\n\n    \n\nThe response contains an action object. Your next step is to Handle the redirect.\nHandle the redirect\nHandling the redirect is similar to handling a regular 3D Secure redirect, but with a few differences for recurring card payments in India:\n\nTesting\nTo test the 3D Secure 2 authentication flow, you can use a test card and static One Time Password (OTP) from the Test and go live section.\nMandate details returned in the response\nYou will receive the mandate details as additional data in the  \/payments\/details response.\n\nFor more detailed information about handling the redirect in the different integration types, see:\nWeb Drop-in\nWeb Component\niOS Drop-in\niOS Component\nAndroid Drop-in\nAndroid Component\nAPI only\nIf the payment was successful, the shopper created the mandate with their issuer, and you will get a  \/payments\/details response with:\n\n\nresultCode: Authorised\n\n\nadditionalData.tokenization.storedPaymentMethodId: The token for the saved payment details. You will need this to make future payments for the shopper.\n\n\nadditionalData.mandate: The details on the shopper's mandate. This contains the mandate details that you provided in your request, as well as:\n\nmandate.mandateId: This field will include the identifier for the mandate created by the issuer. Currently, this is a placeholder field and we return an empty string as the value. When issuers start passing the mandateId, we will return the value in this field.\nmandate.providerId: The ID returned by the provider.\nmandate.status: The status of the mandate.\nmandate.txVariant: The transaction variant.\n\n\n\npspReference: Our unique identifier for the transaction.\n\n\n\n    \n\nYou will need the storedPaymentMethodId and shopperReference to make subsequent payments.\nPresent the payment result\nUse the\u00a0 resultCode from the   \/payments\/details response to present the payment result to your shopper. You will also receive the outcome of the payment asynchronously in a webhook.\n\nYou can receive the following resultCode values:\n\n\n\nresultCode\nDescription\nAction to take\n\n\n\n\nAuthorised\nThe payment was successful, and a mandate was created.\nInform the shopper that the payment has been successful.\n\n\nCancelled\nThe shopper cancelled the payment.\nAsk the shopper whether they want to continue with the order, or ask them to select a different payment method.\n\n\nError\nThere was an error when the payment was being processed. For more information, check the \n  refusalReason\n field.\nInform the shopper that there was an error processing their payment.\n\n\nRefused\nThe payment was refused.  For more information, check the \n  refusalReason\n field.\nAsk the shopper to try the payment again using a different payment method.\n\n\n\nWebhook\nYou will receive a webhook message with the final status of the payment.\n\n\n\neventCode\nsuccess field\nDescription\nAction to take\n\n\n\n\nAUTHORISATION\nfalse\nThe transaction failed.\nCancel the order and inform the shopper that the payment failed and any amount debited will be refunded in 2-3 days.\n\n\nAUTHORISATION\ntrue\nThe shopper successfully completed the payment, and a mandate was created.\nInform the shopper that the payment has been successful and proceed with the order.\n\n\n\nYou can receive the mandate details as part of your standard webhooks. To do this:\n\nIn your\u00a0Customer Area,\u00a0go to\u00a0Developers &gt; Webhooks.\nNext to Standard webhook,\u00a0select the edit webhook icon .\nUnder Additional Settings, select Include Mandate Details.\nSelect Save Configuration.\n\n\n    \n\nMake recurring payments\nFor every subsequent payment in a billing plan, for example a subscription, you need to:\n\nInitiate a pre-debit notification.\nMake the recurring payment.\n\nInitiate a pre-debit notification\nA pre-debit notification is an email or SMS notification sent to a shopper to inform them of their impending billing plan charge. You need to inform the issuer when the notification needs to be sent out and subsequently the issuer sends the email or SMS. When they receive the notification, shoppers can choose to cancel the mandate. Shoppers receive the pre-debit notification at least 24 hours before every recurring payment in the billing plan.\nTo send a pre-debit notification to your shopper, make a POST call to \/notifyShopper:\n\nstoredPaymentMethodId: The token for your shopper's stored payment details.\nmerchantAccount: Your merchant account associated with the shopper's stored payment details.\nshopperReference: The shopper reference associated with the billing plan.\namount: The amount you are going to charge the shopper. If you have configured max for the mandate.amountRule, the shopper can be charged any amount between INR 1 to the amount in the mandate.amount field. If you have configured exact, the shopper can only be charged the amount in the mandate.amount field.\nbillingDate: The date the shopper will be charged.\nreference: The notification reference. This field is shown to the shopper if the displayedReference field is left blank or is not sent.\ndisplayedReference: Optional. The reference shown to the shopper in the pre-debit notification they receive from their issuer. If this field is left blank or is not sent, the reference field will be shown instead.\n\n\n    \n\nThe \/notifyShopper response contains:\n\nmessage: Information about the status of the pre-debit notification.\nshopperNotificationReference: Unique reference to the pre-debit notification. Store this value to make the subsequent payment.\n\n\n    \n\nIf the \/notifyShopper request fails, you will receive a response with resultCode set to Refused.\n\n    \n\nIf there was an issue with the \/notifyShopper request, you will receive a response containing an errorCode and a message explaining the error. For a list of possible values, refer to Generic error codes.\n\n    \n\nMake a recurring payment\nAfter the shopper has received the pre-debit notification, you can carry out a recurring payment, for example for a subscription.\n\n\nTo do so, make a POST  \/payments call, including:\n\n\n\nField\nRequired\nDescription\n\n\n\n\namount\n\nInclude the currency and value of the shopper's subscription payment.\n\n\npaymentMethod.type\n\nscheme\n\n\npaymentMethod.storedPaymentMethodId\n\nThe token value for the shopper's stored payment information.\n\n\npaymentMethod.shopperNotificationReference\n\nUnique reference to the pre-debit notification from the \/notifyShopper response.\n\n\nshopperEmail\n\nThe shopper's email address.\n\n\nshopperIP\n\nThe shopper's IP address.\n\n\nmerchantAccount\n\nYour merchant account\n\n\nshopperReference\n\nThe shopper reference associated with the subscription.\n\n\nshopperInteraction\n\nSet to ContAuth.\n\n\nrecurringProcessingModel\n\nSet to Subscription or UnscheduledCardOnFile.\n\n\n\n\n\n\n\n\nThe  \/payments response contains:\n\n resultCode&#58; Authorised\n\n\n\n\nIf the payment is not successful, the resultCode will be Refused.\n\n\nCheck the webhook message with the final status of the payment.\n\n\n\neventCode\nsuccess field\nDescription\nAction to take\n\n\n\n\nAUTHORISATION\nfalse\nThe transaction failed.\nCancel the order and inform the shopper that the payment failed.\n\n\nAUTHORISATION\ntrue\nThe shopper successfully completed the payment.\nInform the shopper that the payment has been successful and proceed with the order.\n\n\n\n\n\nCancel a mandate\nWhen a shopper ends their mandate with their issuer, you are notified in a webhook message:\n\nFor acquiring with BillDesk you receive a webhook message with an event code of DISABLE_RECURRING.\nFor local acquiring you need to enable \n  Tokenization webhooks\n to receive a webhook with a type of recurring.token.disabled.\nIf the shopper cancelled a mandate immediately after the related payment was authorized and just before the payment was cleared with the card scheme, you receive a webhook message with an event code of CAPTURE_FAILED and the following message: Capture rejected by card scheme because the shopper cancelled the recurring payment through their bank.\n\nTo cancel the mandate, send a  \/disable request that includes:\n\n\n\nField\nRequired\nDescription\n\n\n\n\nmerchantAccount\n\nThe merchant account identifier.\n\n\nshopperReference\n\nThe ID that uniquely identifies the shopper. The value provided here must be the same as the value used in the initial payment.\n\n\nrecurringDetailReference\n\nThe ID that uniquely identifies the recurring detail reference. If not provided, the whole recurring contract for the provided shopperReference will be disabled, which includes all recurring details.\n\n\ncontract\n\nSpecify the contract if you only want to disable a specific use. This parameter can be set to one of the following values, or to a combination of values (comma-separated): - ONECLICK - RECURRING - PAYOUT\n\n\n\n\n    \n\nThe  \/disable response includes a response parameter that indicates either [detail-successfully-disabled] or [all-details-successfully-disabled], depending on whether a specific recurring detail was in the request, or not.\n\n    \n\nTest and go live\nBefore going live, make sure to go to your live India Customer Area and follow the exact instructions as described above.\nSee also\n\n\n                    Tokenization\n                \n                    3D Secure - Redirect\n                \n                    Webhooks\n                \n                    API Explorer\n                \n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Payment methods","lvl2":"Cards","lvl3":"Recurring card payments in India"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/payment-methods","lvl2":"https:\/\/docs.adyen.com\/pt\/payment-methods\/cards","lvl3":"\/pt\/payment-methods\/cards\/cards-recurring-india"},"levels":4,"category":"Payment method","category_color":"green","tags":["Recurring","payments","India"]},"articleFiles":{"payments.js":"<p alt=\"\">payments.js<\/p>","post-paymentdetails.js":"<p alt=\"\">post-paymentdetails.js<\/p>"}}
