Click to Pay is a frictionless online checkout experience designed to simplify and secure card payments for shoppers. It follows the EMV® Secure Remote Commerce (SRC) standard, allowing users to pay with their stored cards without manually entering card details for every transaction. It can be seen as a wallet to store the payment credentials - similar to Apple or Google Pay.
Click to Pay offers various benefits to merchants and shoppers, such as:
Improved security - No plain text card numbers are stored and transmitted in the payment process as Click to Pay uses tokenisation for each card. Only trusted and authenticated users and devices can process payments.
Increased conversion rate & seamless checkout - No need to enter cards or passwords manually as they are stored securely in the Click to Pay wallet, respectively use passkeys and biometrics for authentication.
Higher authorisation rate - Stronger security measures, higher data accuracy and the optimisation for cardholders, merchants, card networks and Issuers increase the overall stability of the payment transaction process and lead to higher authorisation rates.
Processing fees - Click to Pay transactions are processed as normal tokenised card not present (CNP) transactions. However, non-tokenised CNP might come with higher processing fees. Indirectly Click to Pay might additionally help to reduce chargeback fees.
Activation & integration
Please contact our support team or your dedicated account manager to add Click to Pay to your merchant configuration.
Implement the hosted payment page integration, either as Redirect or Lightbox method. Click to Pay will work out of the box and is automatically displayed on the payment page when activated. Other implementation options are currently not supported.
To recognise shoppers, Click to Pay checks if an account is registered with your shopper's email address. We recommend including the shopper's email in the initialisation request to /v1/transactions to improve the user experience.
A missing email address will prompt the shopper to enter his email manually on the Click to Pay screen.
📘
Card on File registration
Click to Pay does currently not support saving payment information used for Merchant Initiated Transactions or Fast checkout. Click to Pay will be skipped automatically when a card on file registration request is detected. The normal payment form is displayed to enter the card details manually and to save the payment information for subsequent usage.
Notes
Click to Pay transactions are processed as card payments and might therefore be in scope of PSD2 and 3D-Secure. Strong customer authentication will be applied or not based on regular 3D-Secure rules and logic active on your merchantID.
Currently we support Click to Pay for Mastercard branded cards. Visa will be available at the beginning of Q3 2025, with other brands following upon readiness and demand.
\n To recognise shoppers, Click to Pay checks if an account is registered with your shopper's email address. We recommend including the shopper's email in the initialisation request to `/v1/transactions` to improve the user experience. \n\n```json Init request\n... \n\"customer\": {\n \"email\": \"jon@doe.com\"\n} \n```\n\nA missing email address will prompt the shopper to enter his email manually on the Click to Pay screen.\n\n> 📘 Card on File registration\n> \n> Click to Pay does currently not support [saving payment information](https://docs.datatrans.ch/docs/customer-initiated-payments#saving-payment-information) used for Merchant Initiated Transactions or Fast checkout. Click to Pay will be skipped automatically when a card on file registration request is detected. The normal payment form is displayed to enter the card details manually and to save the payment information for subsequent usage.\n\n# Notes\n\n- Click to Pay transactions are processed as card payments and might therefore be in scope of PSD2 and 3D-Secure. Strong customer authentication will be applied or not based on regular 3D-Secure rules and logic active on your merchantID.\n- Currently we support Click to Pay for Mastercard branded cards. Visa will be available at the beginning of Q3 2025, with other brands following upon readiness and demand.\n\n# Testing\n\nCreate a Click to Pay account [directly at Mastercard](https://sandbox.src.mastercard.com/profile/enroll) and add one of their [test cards](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/testing/test_cases/click_to_pay_case/#test-cards) to your account.","dehydrated":{"toc":"","body":"
Click to Pay is a frictionless online checkout experience designed to simplify and secure card payments for shoppers. It follows the EMV® Secure Remote Commerce (SRC) standard, allowing users to pay with their stored cards without manually entering card details for every transaction. It can be seen as a wallet to store the payment credentials - similar to Apple or Google Pay.
\n
Click to Pay offers various benefits to merchants and shoppers, such as:
\n
\n
Improved security - No plain text card numbers are stored and transmitted in the payment process as Click to Pay uses tokenisation for each card. Only trusted and authenticated users and devices can process payments.
\n
Increased conversion rate & seamless checkout - No need to enter cards or passwords manually as they are stored securely in the Click to Pay wallet, respectively use passkeys and biometrics for authentication.
\n
Higher authorisation rate - Stronger security measures, higher data accuracy and the optimisation for cardholders, merchants, card networks and Issuers increase the overall stability of the payment transaction process and lead to higher authorisation rates.
\n
Processing fees - Click to Pay transactions are processed as normal tokenised card not present (CNP) transactions. However, non-tokenised CNP might come with higher processing fees. Indirectly Click to Pay might additionally help to reduce chargeback fees.
\n
\n
Activation & integration
\n
\n
Please contact our support team or your dedicated account manager to add Click to Pay to your merchant configuration.
\n
Implement the hosted payment page integration, either as Redirect or Lightbox method. Click to Pay will work out of the box and is automatically displayed on the payment page when activated. Other implementation options are currently not supported. \n
\nTo recognise shoppers, Click to Pay checks if an account is registered with your shopper's email address. We recommend including the shopper's email in the initialisation request to /v1/transactions to improve the user experience.
A missing email address will prompt the shopper to enter his email manually on the Click to Pay screen.
\n
📘
Card on File registration
Click to Pay does currently not support saving payment information used for Merchant Initiated Transactions or Fast checkout. Click to Pay will be skipped automatically when a card on file registration request is detected. The normal payment form is displayed to enter the card details manually and to save the payment information for subsequent usage.
\n
Notes
\n
\n
Click to Pay transactions are processed as card payments and might therefore be in scope of PSD2 and 3D-Secure. Strong customer authentication will be applied or not based on regular 3D-Secure rules and logic active on your merchantID.
\n
Currently we support Click to Pay for Mastercard branded cards. Visa will be available at the beginning of Q3 2025, with other brands following upon readiness and demand.
"},"mdx":false,"opts":{"alwaysThrow":false,"compatibilityMode":false,"copyButtons":true,"correctnewlines":false,"markdownOptions":{"fences":true,"commonmark":true,"gfm":true,"ruleSpaces":false,"listItemIndent":"1","spacedTable":true,"paddedTable":true},"normalize":true,"lazyImages":true,"reusableContent":{"tags":{}},"safeMode":false,"settings":{"position":true},"theme":"light","customBlocks":{},"resourceID":"67e1495727e02a00609471da","resourceType":"page","baseUrl":"/","terms":[{"_id":"5af0288f47537800035e5851","term":"uppTransactionId","definition":"The transactionId parameter returned after a payment/registration."},{"_id":"5af029abdf4a8800031c71e8","term":"aliasCC","definition":"An alias of a payment method."},{"_id":"5c6d11162f76cb00139600df","term":"CIT","definition":"Cardholder initiated transaction"},{"_id":"5c6d112fa96ba90033cb426b","term":"MIT","definition":"Merchant initiated transaction"}],"variables":{"user":{},"defaults":[{"_id":"5bbf565ceb416300039a2529","name":"apiReferenceUrl","default":"https://admin.sandbox.datatrans.com/d3574c10-d317-4f6b-82f5-ebc7c2d685af/api-reference/","source":"","type":""},{"_id":"5bbf565ceb416300039a2528","name":"","default":"","source":"","type":""}]}},"terms":[{"_id":"5af0288f47537800035e5851","term":"uppTransactionId","definition":"The transactionId parameter returned after a payment/registration."},{"_id":"5af029abdf4a8800031c71e8","term":"aliasCC","definition":"An alias of a payment method."},{"_id":"5c6d11162f76cb00139600df","term":"CIT","definition":"Cardholder initiated transaction"},{"_id":"5c6d112fa96ba90033cb426b","term":"MIT","definition":"Merchant initiated transaction"}],"variables":{"user":{},"defaults":[{"_id":"5bbf565ceb416300039a2529","name":"apiReferenceUrl","default":"https://admin.sandbox.datatrans.com/d3574c10-d317-4f6b-82f5-ebc7c2d685af/api-reference/","source":"","type":""},{"_id":"5bbf565ceb416300039a2528","name":"","default":"","source":"","type":""}]}},"doc":{"metadata":{"image":[],"title":"","description":"","keywords":"","robots":"index"},"mdx":{"altBody":"","status":"rdmd"},"api":{"method":"get","url":"","auth":"required","params":[]},"next":{"description":"","pages":[]},"algolia":{"recordCount":4,"publishPending":false,"translationFailure":false,"updatedAt":"2025-05-26T15:41:45.363Z"},"_id":"67e1495727e02a00609471da","title":"Click to Pay","icon":"","updates":[],"type":"basic","slug":"click-to-pay","excerpt":"","body":"Click to Pay is a frictionless online checkout experience designed to simplify and secure card payments for shoppers. It follows the [EMV® Secure Remote Commerce (SRC) standard](https://www.emvco.com/emv-technologies/secure-remote-commerce/), allowing users to pay with their stored cards without manually entering card details for every transaction. It can be seen as a wallet to store the payment credentials - similar to Apple or Google Pay.\n\nClick to Pay offers various benefits to merchants and shoppers, such as:\n\n- **Improved security** - No plain text card numbers are stored and transmitted in the payment process as Click to Pay uses tokenisation for each card. Only trusted and authenticated users and devices can process payments. \n- **Increased conversion rate & seamless checkout** - No need to enter cards or passwords manually as they are stored securely in the Click to Pay wallet, respectively use passkeys and biometrics for authentication. \n- **Higher authorisation rate** - Stronger security measures, higher data accuracy and the optimisation for cardholders, merchants, card networks and Issuers increase the overall stability of the payment transaction process and lead to higher authorisation rates. \n- **Processing fees** - Click to Pay transactions are processed as normal tokenised card not present (CNP) transactions. However, non-tokenised CNP might come with higher processing fees. Indirectly Click to Pay might additionally help to reduce chargeback fees. \n\n# Activation & integration\n\n- Please contact our [support team](mailto:support@datatrans.ch) or your dedicated account manager to add Click to Pay to your merchant configuration.\n- Implement the hosted payment page integration, either as [Redirect or Lightbox](https://docs.datatrans.ch/docs/redirect-lightbox) method. Click to Pay will work out of the box and is automatically displayed on the payment page when activated. Other implementation options are currently not supported. \n \n To recognise shoppers, Click to Pay checks if an account is registered with your shopper's email address. We recommend including the shopper's email in the initialisation request to `/v1/transactions` to improve the user experience. \n\n```json Init request\n... \n\"customer\": {\n \"email\": \"jon@doe.com\"\n} \n```\n\nA missing email address will prompt the shopper to enter his email manually on the Click to Pay screen.\n\n> 📘 Card on File registration\n> \n> Click to Pay does currently not support [saving payment information](https://docs.datatrans.ch/docs/customer-initiated-payments#saving-payment-information) used for Merchant Initiated Transactions or Fast checkout. Click to Pay will be skipped automatically when a card on file registration request is detected. The normal payment form is displayed to enter the card details manually and to save the payment information for subsequent usage.\n\n# Notes\n\n- Click to Pay transactions are processed as card payments and might therefore be in scope of PSD2 and 3D-Secure. Strong customer authentication will be applied or not based on regular 3D-Secure rules and logic active on your merchantID.\n- Currently we support Click to Pay for Mastercard branded cards. Visa will be available at the beginning of Q3 2025, with other brands following upon readiness and demand.\n\n# Testing\n\nCreate a Click to Pay account [directly at Mastercard](https://sandbox.src.mastercard.com/profile/enroll) and add one of their [test cards](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/testing/test_cases/click_to_pay_case/#test-cards) to your account.","order":7,"isReference":false,"deprecated":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"reusableContent":[],"previousSlug":"","slugUpdatedAt":"2025-03-24T02:05:33.314Z","revision":66,"user":"5c2f4a200a4b2c0063a07426","project":"5a1288ecf49d120012dff9be","category":{"_id":"62c8500880e0a700815c320f","project":"5a1288ecf49d120012dff9be","version":"62c8500880e0a700815c323c","isAPI":false,"reference":false,"createdAt":"2017-11-20T09:40:08.499Z","from_sync":false,"order":2,"slug":"integrations","title":"Integrations","__v":0,"type":"guide","id":"62c8500880e0a700815c320f"},"createdAt":"2025-03-24T12:00:23.510Z","updatedAt":"2025-05-26T15:41:45.370Z","version":{"pdfStatus":"","source":"readme","_id":"62c8500880e0a700815c323c","version":"2.1.0","version_clean":"2.1.0","codename":"New Design","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["62c8500880e0a700815c320d","62c8500880e0a700815c320e","62c8500880e0a700815c320f","5a12a302b57953001cecd09a","62c8500880e0a700815c3210","5a12a319b57953001cecd09d","5a12a31eb57953001cecd09e","62c8500880e0a700815c3211","5ae1da614ee4da0003c98b38","5ec3d8681838e900122691ad","5a12e180ca61dc001ea89591","5a12e1f6ca61dc001ea89592","5a1355fc22131e001204ac39","5a13562945769d002674f9d0","5a1358c522131e001204acc2","5a1358d54e5aed0012b4423d","5a1358e64e5aed0012b4423e","5ec3d8681838e900122691ae","62c8500880e0a700815c3212","5af01dc4df4a8800031c70ff","5b17991b53b0b90003f68b40","5ec3d8681838e900122691b0","5b6d81e0ebb22e0003051748","5b6d886f9218840003992b2b","5c0147688ab18f026df6a28f","5c66b3e4a06714004b3a25d7","5c66b4c2382d410124b9586f","5c6d48085cec4d0019246dd4","5c8a41989bf60e00147b4ac3","5c8f93cba67e3a00fe4c6eeb","5c8fa03a2b8eef00458a6e89","5c98d9f3c17f390167bd4d50","5c993fc486b321000e2c87c3","5c99404714c076002e0bda16","62c8500880e0a700815c3213","6376b41d081e400003bac19e"],"project":"5a1288ecf49d120012dff9be","__v":0,"forked_from":"5ec3d8681838e90012269216","createdAt":"2017-11-20T07:49:01.029Z","releaseDate":"2017-11-20T07:49:01.029Z","apiRegistries":[]},"lastUpdatedHash":"7ca67817a68faa3d414aa8c324ab4cb70e0b2f68","__v":0,"parentDoc":null,"isApi":false,"tutorials":[],"id":"67e1495727e02a00609471da"},"hideTOC":true,"meta":{"_id":"67e1495727e02a00609471da","description":"Click to Pay is a frictionless online checkout experience designed to simplify and secure card payments for shoppers. It follows the EMV® Secure Remote Commerce (SRC) standard , allowing users to pay with their stored cards without manually entering card details for every transaction. It can be seen...","hidden":false,"image":[],"keywords":"","metaTitle":"Click to Pay","parent":null,"robots":"index","slug":"click-to-pay","title":"Click to Pay","type":"docs"},"slugUrl":"/docs/click-to-pay","config":{"algoliaIndex":"readme_search_v2","amplitude":{"apiKey":"dc8065a65ef83d6ad23e37aaf014fc84","enabled":true},"asset_url":"https://cdn.readme.io","domain":"readme.io","domainFull":"https://dash.readme.com","encryptedLocalStorageKey":"ekfls-2025-03-27","fullstory":{"enabled":true,"orgId":"FSV9A"},"liveblocks":{"copilotId":"co_11Q0l0JJlkcBhhAYUFh8s"},"metrics":{"billingCronEnabled":"true","dashUrl":"https://m.readme.io","defaultUrl":"https://m.readme.io","exportMaxRetries":12,"wsUrl":"wss://m.readme.io"},"proxyUrl":"https://try.readme.io","readmeRecaptchaSiteKey":"6LesVBYpAAAAAESOCHOyo2kF9SZXPVb54Nwf3i2x","releaseVersion":"5.421.0","sentry":{"dsn":"https://3bbe57a973254129bcb93e47dc0cc46f@o343074.ingest.sentry.io/2052166","enabled":true},"shMigration":{"promoVideo":"","forceWaitlist":false,"migrationPreview":false},"sslBaseDomain":"readmessl.com","sslGenerationService":"ssl.readmessl.com","stripePk":"pk_live_5103PML2qXbDukVh7GDAkQoR4NSuLqy8idd5xtdm9407XdPR6o3bo663C1ruEGhXJjpnb2YCpj8EU1UvQYanuCjtr00t1DRCf2a","superHub":{"newProjectsEnabled":true},"wootric":{"accountToken":"NPS-122b75a4","enabled":true}},"context":{"labs":{},"user":{},"terms":[{"_id":"5af0288f47537800035e5851","term":"uppTransactionId","definition":"The transactionId parameter returned after a payment/registration."},{"_id":"5af029abdf4a8800031c71e8","term":"aliasCC","definition":"An alias of a payment method."},{"_id":"5c6d11162f76cb00139600df","term":"CIT","definition":"Cardholder initiated transaction"},{"_id":"5c6d112fa96ba90033cb426b","term":"MIT","definition":"Merchant initiated transaction"}],"variables":{"user":{},"defaults":[{"_id":"5bbf565ceb416300039a2529","name":"apiReferenceUrl","default":"https://admin.sandbox.datatrans.com/d3574c10-d317-4f6b-82f5-ebc7c2d685af/api-reference/","source":"","type":""},{"_id":"5bbf565ceb416300039a2528","name":"","default":"","source":"","type":""}]},"project":{"_id":"5a1288ecf49d120012dff9be","appearance":{"nextStepsLabel":"","hideTableOfContents":true,"showVersion":false,"html_hidelinks":false,"html_footer_meta":"","html_head":"","html_footer":"","html_body":"","html_promo":"","javascript_hub2":"var paramsBlackList = [\"$formController\",\"version\",\"uppWebResponseMethod\", \"uppMsgType\", \"uppReturnTarget\", \"uppWebResponseMethod\", \"returnCustomerCountry\",\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_content\",\"utm_term\",\"merchantId\",\"authorizationCode\", \"responseCode\",\"expy\",\"acqAuthorizationCode\",\"reqtype\",\"expm\",\"pmethod\",\"theme\",\"testOnly\"];\nfunction getQueryParameters(str) {\n \tif(document.location.search == \"\"){\n return (document.location.href).substring(document.location.href.indexOf(\"?\"),document.location.href.length)\n .replace(/(^\\?)/,'')\n .split(\"&\")\n .reduce(function(p,n) {\n return n = n.split(\"=\"), p[n[0]] = n[1], p;\n }, {} );\n }else{\n return (document.location.search)\n .replace(/(^\\?)/,'') \n .split(\"&\")\n .reduce(function(p,n) {\n return n = n.split(\"=\"), p[n[0]] = n[1], p;\n }, {} );\n }\n \n}\n \nfunction hasReturnParams(){\n\tif(window.location.toString().indexOf(\"?\") > 0){\n if(!window.location.toString().includes(\"utm_source\")|| !window.location.toString().includes(\"utm_campaign\") || !window.location.toString().includes(\"utm_content\") || !window.location.toString().includes(\"utm_term\")){\n \treturn true;\n }\n \n }\n \n return false;\n}\n\nfunction escapeHtml(unsafe) {\n return unsafe\n .replace(/&/g, \"&\")\n .replace(//g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n }\n\nfunction addParamsToForm(params, formId){\n $.each( params, function( key, value ) {\n $('').attr({\n type: 'hidden',\n name: key,\n value: value\n \t}).appendTo(\"#\"+formId);\n\t});\n \n $.each($(\"#paymentForm\").data(),function(key,value){\n $('').attr({\n type: 'hidden',\n name: key,\n value: value\n \t}).appendTo(\"#\"+formId);\n });\n}\nif (window.location.href.indexOf(\"docs/redirect-lightbox\") > -1) { \n $(window).on('pageLoad',function(){\n \t\tif(hasReturnParams()){\n var successParams = \"\";\n var params = getQueryParameters();\n var typeClass = \"type-danger\"\n var message = \" Your transaction failed.\"\n var titleIcon = \"Danger\";\n var iconClass = \"fa-exclamation-triangle\"\n for (var key in params) {\n if(key == \"status\"){\n \tif(params[key] == \"success\"){\n \ttypeClass =\"type-success\";\n titleIcon =\"Success\"\n iconClass =\"fa-check-square\"\n \t\t\tmessage = \" Your transaction was successful.\"\n }\n }\n if(key == \"status\"){\n \tif(params[key] == \"cancel\"){\n \t\t\tmessage = \" Your transaction was canceled.\"\n }\n }\n if(paramsBlackList.indexOf(key) < 0){\n \t\t\t\t \tsuccessParams += key +\"=\"+ escapeHtml(decodeURIComponent(params[key])) + \" \";\n\t\t\t\t }\n }\n if(successParams.length > 1){\n $(\"