Introducing Tap Payment's Card JavaScript library, a powerful tool designed for crafting seamless payment experiences. This library empowers you to construct secure payment flows embedded within your web applications, enabling the collection of sensitive card information from users.
In this guide, we will walk you through the step-by-step creation of a dynamic payment form using the TAP JavaScript library, unlocking the potential for secure and user-friendly payment processing on your website.
Requirements
Using Elements for payment submissions requires a secure HTTPS connection. This is essential to guard against potential attacks and avoid mixed content warnings on modern browsers. Importantly, if the payment form is served over HTTP, the Elements SDK won't function correctly, compromising both security and functionality by preventing the generation of essential tokens for payment processing. In summary, maintaining an HTTPS connection is crucial for the secure and effective operation of your payment system.
🚧
For optimal security and functionality, the Card JS library must be utilized over an HTTPS connection, both in sandbox and production environments.
Card JS Elements Features
This library being our first embedded experience for accepting card payments like Visa, Mastercard and mada. This library is not just a tool; it's a comprehensive solution that enhances the security and user experience in online transactions. Here are its key features that set it apart:
A prebuilt UI component that not only efficiently gathers card details from customers but also tokenizes this sensitive information within the element, all without requiring interaction with your server.
Automatic formatting which formats card details as they are entered, streamlining the data entry process and reducing user errors.
Currency validation to ensuring compatibility with various global payment options, making it a versatile tool for international transactions.
Robust input validation with error response handling, ensuring customers are guided correctly through the payment process.
Real-time BIN (Bank Identification Number) response, that helps you gain immediate insights into the card type and issuing bank, adding an extra layer of verification.
Responsive design catering to various screen sizes and devices to ensures a seamless user experience.
Customizable style of the payment form that tailor the payment form's appearance, including font styles, sizes, and colors, particularly for the submit button, ensuring the form aligns perfectly with your brand's aesthetic.
What to Expect
Here you can see how the payment form will look like when implementing the Card JS library into your website, giving you an embedded form without requiring a redirection to Tap's hosted environment to tokenize the card and complete a payment. Moreover, in addition to having this form, you can also customize your own submit button to submit the card details once entered and then allowing you to get a token as a response which you need to use to complete the payment.
In order to see and test and fully working demo of the Card JS library, please follow this link.
Card JS Integration
We have streamlined the process of implementing the Card JS library, by providing the integration code in HTML, CSS, and JavaScript, ensuring a straightforward and user-friendly setup. To effectively integrate this library into your website, simply follow the steps outlined below.
Initialize and Setup Card Library
To begin integrating the TAP JS library, it's essential to load the SDK correctly and to provide a better experience for all screen sizes. Here is how to complete that.
Import the Library Scripts
You can initialize the library by including a specific script in the header of your HTML webpage. This step is crucial and should be the starting point of your integration process.
To make JS element scale to dimensions of the device, You should include the following meta tag in your html header, noting that this an optional step but will provide a better user-experience when the website is accessed from different screen sizes.
To control the information sent in the Referer header when navigating from your site to another, you should include the following meta tag in your HTML header. This is an optional step, but it will enhance security and privacy by limiting the referrer information shared with external sites.
To securely collect card details from your customers, Elements creates UI components for you that are hosted by Tap payments. They are then placed into your payment form, rather than you creating them directly. To determine where to insert these components, create empty DOM elements (containers) with unique IDs within your payment form.
<form id="form-container" method="post" action="/charge">
<!-- Tap element will be here -->
<div id="element-container"></div>
<div id="error-handler" role="alert"></div>
<div id="success" style=" display: none;;position: relative;float: left;">
Success! Your token is <span id="token"></span>
</div>
<!-- Tap pay button -->
<button id="tap-btn">Submit</button>
</form>
Style the Payment Form
To style the payment form and also the submit button, you need to add some CSS into your code. It is worth noting that the styling of the form is up to you, and below is an example to start with.
To effectively utilize the Card JS library, begin by creating an instance of an Element in JavaScript once your form is loaded. This instance should be mounted onto the Element container you've previously set up. The main action of this process is the use of a public key provided by Tap, which grants access to the JS library and links it to your specific TAP account. Ensure you pass this public key as a parameter when calling Tapjsli().
Once you pass your account's public key in the Tapjsli(), and the payment form loads, it will show you to the left all the card payments logos that are enabled on your account. Add the below JavaScript code to complete this step.
//pass your public key from tap's dashboard
var tap = Tapjsli('pk_test_EtHFV4BuPQokJT6jiROls87Y');
var elements = tap.elements({});
var style = {
base: {
color: '#535353',
lineHeight: '18px',
fontFamily: 'sans-serif',
fontSmoothing: 'antialiased',
fontSize: '16px',
'::placeholder': {
color: 'rgba(0, 0, 0, 0.26)',
fontSize:'15px'
}
},
invalid: {
color: 'red'
}
};
// input labels/placeholders
var labels = {
cardNumber:"Card Number",
expirationDate:"MM/YY",
cvv:"CVV",
cardHolder:"Card Holder Name"
};
//payment options
var paymentOptions = {
currencyCode:["KWD","USD","SAR"], //change the currency array as per your requirement
labels : labels,
TextDirection:'ltr', //only two values valid (rtl, ltr)
paymentAllowed: ['VISA', 'MASTERCARD', 'AMERICAN_EXPRESS', 'MADA'] //default string 'all' to show all payment methods enabled on your account
}
//create element, pass style and payment options
var card = elements.create('card', {style: style},paymentOptions);
//mount element
card.mount('#element-container');
//card change event listener
card.addEventListener('change', function(event) {
if(event.loaded){ //If ‘true’, js library is loaded
console.log("UI loaded :"+event.loaded);
console.log("current currency is :"+card.getCurrency())
}
var displayError = document.getElementById('error-handler');
if (event.error) {
displayError.textContent = event.error.message;
} else {
displayError.textContent = '';
}
});
Get Card BIN Details
The first six digits of a credit or debit card number are known as the "Bank Identification Number (BIN)," which are essential for identifying the card's issuing bank and other related details. The TAP JS Card library is equipped to retrieve this BIN information in real-time. To leverage this feature in your application, ensure that your code includes the below specific condition that should be added in the code that was shared in the previous step in card.addEventListener() as below, that triggers the retrieval of BIN details.
The condition stating if(event.BIN) {} shown in the JavaScript tab will display in the console of your website the card details related to the BIN added in the card form as shown in tab BIN Result.
Transforming the payment details collected through Elements into a token is an essential step in the process. To accomplish this, set up an event handler that manages the submit event on the form. This handler is responsible for transmitting the fields to TAP for tokenization and strategically prevents the form's default submission. The form submission is done through JavaScript in the subsequent step, ensuring a controlled and secure process of token generation for your payment transactions.
As you can see in the below step, the function tap.createToken() provides a Promise, offering a straightforward outcome:
result.id: Successful creation of a Token.
result.error: An indication of an error, including any client-side validation issues.
// Handle form submission
var form = document.getElementById('form-container');
form.addEventListener('submit', function(event) {
event.preventDefault();
tap.createToken(card).then(function(result) {
console.log(result);
if (result.error) {
// Inform the user if there was an error
var errorElement = document.getElementById('error-handler');
errorElement.textContent = result.error.message;
} else {
// Send the token to your server
var errorElement = document.getElementById('success');
errorElement.style.display = "block";
var tokenElement = document.getElementById('token');
tokenElement.textContent = result.id;
tapTokenHandler(token)
}
});
});
Submit the Token to your Server
To conclude the integration of the Card JS library, the last step is to submit the generated token, along with any additional collected information, to your server. In the previous step, you can see in the code the function tapTokenHandler() has been called to handle the submission of the token, and below is the code used to complete this functionalitiy.
function tapTokenHandler(token) {
// Insert the token ID into the form so it gets submitted to the server
var form = document.getElementById('payment-form');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'tapToken');
hiddenInput.setAttribute('value', token.id);
form.appendChild(hiddenInput);
// Submit the form
form.submit();
}
Updated about 1 month ago
\n\n```\n\n### Responsive Dimension\n\nTo make JS element scale to dimensions of the device, You should include the following meta tag in your html header, noting that this an optional step but will provide a better user-experience when the website is accessed from different screen sizes.\n\n```c HTML\n\n```\n\n### Referrer Policy\n\nTo control the information sent in the Referer header when navigating from your site to another, you should include the following meta tag in your HTML header. This is an optional step, but it will enhance security and privacy by limiting the referrer information shared with external sites. \n\n```\n\n```\n\n## Create the Payment Form\n\nTo securely collect card details from your customers, Elements creates UI components for you that are hosted by Tap payments. They are then placed into your payment form, rather than you creating them directly. To determine where to insert these components, create empty DOM elements (containers) with unique IDs within your payment form.\n\n```json HTML\n\n```\n\n## Style the Payment Form\n\nTo style the payment form and also the submit button, you need to add some CSS into your code. It is worth noting that the styling of the form is up to you, and below is an example to start with.\n\n```css\n.form-row {\n width: 70%;\n float: left;\n background-color: #ededed;\n}\n#card-element {\nbackground-color: transparent;\nheight: 40px;\nborder-radius: 4px;\nborder: 1px solid transparent;\nbox-shadow: 0 1px 3px 0 #e6ebf1;\n-webkit-transition: box-shadow 150ms ease;\ntransition: box-shadow 150ms ease;\n}\n\n#card-element--focus {\n box-shadow: 0 1px 3px 0 #cfd7df;\n}\n\n#card-element--invalid {\n border-color: #fa755a;\n}\n\n#card-element--webkit-autofill {\n background-color: #fefde5 !important;\n}\n\n#submitbutton,#tap-btn{\nalign-items:flex-start;\nbackground-attachment:scroll;background-clip:border-box;\nbackground-color:rgb(50, 50, 93);background-image:none;\nbackground-origin:padding-box;\nbackground-position-x:0%;\nbackground-position-y:0%;\nbackground-size:auto;\nborder-bottom-color:rgb(255, 255, 255);\nborder-bottom-left-radius:4px;\nborder-bottom-right-radius:4px;border-bottom-style:none;\nborder-bottom-width:0px;border-image-outset:0px;\nborder-image-repeat:stretch;border-image-slice:100%;\nborder-image-source:none;border-image-width:1;\nborder-left-color:rgb(255, 255, 255);\nborder-left-style:none;\nborder-left-width:0px;\nborder-right-color:rgb(255, 255, 255);\nborder-right-style:none;\nborder-right-width:0px;\nborder-top-color:rgb(255, 255, 255);\nborder-top-left-radius:4px;\nborder-top-right-radius:4px;\nborder-top-style:none;\nborder-top-width:0px;\nbox-shadow:rgba(50, 50, 93, 0.11) 0px 4px 6px 0px, rgba(0, 0, 0, 0.08) 0px 1px 3px 0px;\nbox-sizing:border-box;color:rgb(255, 255, 255);\ncursor:pointer;\ndisplay:block;\nfloat:left;\nfont-family:\"Helvetica Neue\", Helvetica, sans-serif;\nfont-size:15px;\nfont-stretch:100%;\nfont-style:normal;\nfont-variant-caps:normal;\nfont-variant-east-asian:normal;\nfont-variant-ligatures:normal;\nfont-variant-numeric:normal;\nfont-weight:600;\nheight:35px;\nletter-spacing:0.375px;\nline-height:35px;\nmargin-bottom:0px;\nmargin-left:12px;\nmargin-right:0px;\nmargin-top:28px;\noutline-color:rgb(255, 255, 255);\noutline-style:none;\noutline-width:0px;\noverflow-x:visible;\noverflow-y:visible;\npadding-bottom:0px;\npadding-left:14px;\npadding-right:14px;\npadding-top:0px;\ntext-align:center;\ntext-decoration-color:rgb(255, 255, 255);\ntext-decoration-line:none;\ntext-decoration-style:solid;\ntext-indent:0px;\ntext-rendering:auto;\ntext-shadow:none;\ntext-size-adjust:100%;\ntext-transform:none;\ntransition-delay:0s;\ntransition-duration:0.15s;\ntransition-property:all;\ntransition-timing-function:ease;\nwhite-space:nowrap;\nwidth:150.781px;\nword-spacing:0px;\nwriting-mode:horizontal-tb;\n-webkit-appearance:none;\n-webkit-font-smoothing:antialiased;\n-webkit-tap-highlight-color:rgba(0, 0, 0, 0);\n-webkit-border-image:none;\n\n}\n```\n\n## Load the Library using JavaScript\n\nTo effectively utilize the Card JS library, begin by creating an instance of an Element in JavaScript once your form is loaded. This instance should be mounted onto the Element container you've previously set up. The main action of this process is the use of a public key provided by Tap, which grants access to the JS library and links it to your specific TAP account. Ensure you pass this public key as a parameter when calling `Tapjsli()`.\n\nOnce you pass your account's public key in the `Tapjsli()`, and the payment form loads, it will show you to the left all the card payments logos that are enabled on your account. Add the below JavaScript code to complete this step.\n\n```json JavaScript\n//pass your public key from tap's dashboard\nvar tap = Tapjsli('pk_test_EtHFV4BuPQokJT6jiROls87Y');\n\nvar elements = tap.elements({});\n\nvar style = {\n base: {\n color: '#535353',\n lineHeight: '18px',\n fontFamily: 'sans-serif',\n fontSmoothing: 'antialiased',\n fontSize: '16px',\n '::placeholder': {\n color: 'rgba(0, 0, 0, 0.26)',\n fontSize:'15px'\n }\n },\n invalid: {\n color: 'red'\n }\n};\n// input labels/placeholders\nvar labels = {\n cardNumber:\"Card Number\",\n expirationDate:\"MM/YY\",\n cvv:\"CVV\",\n cardHolder:\"Card Holder Name\"\n };\n//payment options\nvar paymentOptions = {\n currencyCode:[\"KWD\",\"USD\",\"SAR\"], //change the currency array as per your requirement\n labels : labels,\n TextDirection:'ltr', //only two values valid (rtl, ltr)\n paymentAllowed: ['VISA', 'MASTERCARD', 'AMERICAN_EXPRESS', 'MADA'] //default string 'all' to show all payment methods enabled on your account\n}\n//create element, pass style and payment options\nvar card = elements.create('card', {style: style},paymentOptions);\n//mount element\ncard.mount('#element-container');\n//card change event listener\ncard.addEventListener('change', function(event) {\n if(event.loaded){ //If ‘true’, js library is loaded\n console.log(\"UI loaded :\"+event.loaded);\n console.log(\"current currency is :\"+card.getCurrency())\n }\n var displayError = document.getElementById('error-handler');\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n});\n```\n\n### Get Card BIN Details\n\nThe first six digits of a credit or debit card number are known as the \"Bank Identification Number (BIN),\" which are essential for identifying the card's issuing bank and other related details. The TAP JS Card library is equipped to retrieve this BIN information in real-time. To leverage this feature in your application, ensure that your code includes the below specific condition that should be added in the code that was shared in the previous step in `card.addEventListener() `as below, that triggers the retrieval of BIN details.\n\nThe condition stating if(event.BIN) \\{} shown in the JavaScript tab will display in the console of your website the card details related to the BIN added in the card form as shown in tab BIN Result.\n\n```groovy JavaScript\ncard.addEventListener('change', function(event) {\n if(event.BIN){\n console.log(event.BIN)\n }\n var displayError = document.getElementById('card-errors');\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n});\n```\n```json BIN Result\n{\n \"bin\":\"424242\",\n \"bank\":\"\",\n \"card_brand\":\"VISA\",\n \"card_type\":\"CREDIT\",\n \"card_category\":\"\",\n \"card_scheme\":\"VISA\",\n \"country_name\":\"UNITED KINGDOM\",\n \"country\":\"GB\",\n \"website\":\"\",\n \"phone\":\"\",\n \"address_required\":false,\n \"api_version\":\"V2\"\n}\n```\n\n## Tokenize the Card Details\n\nTransforming the payment details collected through Elements into a token is an essential step in the process. To accomplish this, set up an event handler that manages the submit event on the form. This handler is responsible for transmitting the fields to TAP for tokenization and strategically prevents the form's default submission. The form submission is done through JavaScript in the subsequent step, ensuring a controlled and secure process of token generation for your payment transactions.\n\nAs you can see in the below step, the function `tap.createToken()` provides a Promise, offering a straightforward outcome:\n\n1. **result.id**: Successful creation of a Token.\n2. **result.error**: An indication of an error, including any client-side validation issues.\n\n```json JavaScript\n\n// Handle form submission\nvar form = document.getElementById('form-container');\nform.addEventListener('submit', function(event) {\n event.preventDefault();\n\n tap.createToken(card).then(function(result) {\n console.log(result);\n if (result.error) {\n // Inform the user if there was an error\n var errorElement = document.getElementById('error-handler');\n errorElement.textContent = result.error.message;\n } else {\n // Send the token to your server\n var errorElement = document.getElementById('success');\n errorElement.style.display = \"block\";\n var tokenElement = document.getElementById('token');\n tokenElement.textContent = result.id;\n tapTokenHandler(token)\n\n }\n });\n});\n```\n\n## Submit the Token to your Server\n\nTo conclude the integration of the Card JS library, the last step is to submit the generated token, along with any additional collected information, to your server. In the previous step, you can see in the code the function `tapTokenHandler()` has been called to handle the submission of the token, and below is the code used to complete this functionalitiy.\n\n```less JavaScript\nfunction tapTokenHandler(token) {\n // Insert the token ID into the form so it gets submitted to the server\n var form = document.getElementById('payment-form');\n var hiddenInput = document.createElement('input');\n hiddenInput.setAttribute('type', 'hidden');\n hiddenInput.setAttribute('name', 'tapToken');\n hiddenInput.setAttribute('value', token.id);\n form.appendChild(hiddenInput);\n\n // Submit the form\n form.submit();\n}\n```","excerpt":"Integrating Web Card SDK (v1) in Your Application","link":{"url":null,"new_tab":false},"next":{"description":null,"pages":[]}},"metadata":{"description":null,"image":{"uri":null,"url":null},"keywords":null,"title":null},"parent":{"uri":null},"privacy":{"view":"public"},"slug":"card-sdk-web-v1","state":"current","title":"Web Card SDK V1","type":"basic","href":{"dash":"https://dash.readme.com/project/tappayments/v1.0/docs/card-sdk-web-v1","hub":"https://developers.tap.company/docs/card-sdk-web-v1"},"links":{"project":"/projects/me"},"project":{"name":"Tap API Docs 1.0","subdomain":"tappayments","uri":"/projects/me"},"renderable":{"status":true},"updated_at":"2025-06-11T23:52:05.740Z","uri":"/branches/1.0/guides/card-sdk-web-v1"},"meta":{"baseUrl":"/","description":"Integrating Web Card SDK (v1) in Your Application","hidden":false,"image":[],"metaTitle":"Web Card SDK V1","robots":"index","slug":"card-sdk-web-v1","title":"Web Card SDK V1","type":"docs"},"rdmd":{"baseUrl":"/","body":"Introducing Tap Payment's Card JavaScript library, a powerful tool designed for crafting seamless payment experiences. This library empowers you to construct secure payment flows embedded within your web applications, enabling the collection of sensitive card information from users. \n\nIn this guide, we will walk you through the step-by-step creation of a dynamic payment form using the TAP JavaScript library, unlocking the potential for secure and user-friendly payment processing on your website.\n\n# Requirements\n\nUsing Elements for payment submissions requires a secure HTTPS connection. This is essential to guard against potential attacks and avoid mixed content warnings on modern browsers. Importantly, if the payment form is served over HTTP, the Elements SDK won't function correctly, compromising both security and functionality by preventing the generation of essential tokens for payment processing. In summary, maintaining an HTTPS connection is crucial for the secure and effective operation of your payment system.\n\n> 🚧 For optimal security and functionality, the Card JS library must be utilized over an HTTPS connection, both in sandbox and production environments.\n\n# Card JS Elements Features\n\nThis library being our first embedded experience for accepting card payments like Visa, Mastercard and mada. This library is not just a tool; it's a comprehensive solution that enhances the security and user experience in online transactions. Here are its key features that set it apart:\n\n1. A prebuilt UI component that not only efficiently gathers card details from customers but also tokenizes this sensitive information within the element, all without requiring interaction with your server. \n2. Automatic formatting which formats card details as they are entered, streamlining the data entry process and reducing user errors.\n3. Currency validation to ensuring compatibility with various global payment options, making it a versatile tool for international transactions.\n4. Robust input validation with error response handling, ensuring customers are guided correctly through the payment process.\n5. Real-time BIN (Bank Identification Number) response, that helps you gain immediate insights into the card type and issuing bank, adding an extra layer of verification.\n6. Responsive design catering to various screen sizes and devices to ensures a seamless user experience.\n7. Customizable style of the payment form that tailor the payment form's appearance, including font styles, sizes, and colors, particularly for the submit button, ensuring the form aligns perfectly with your brand's aesthetic.\n\n# What to Expect\n\nHere you can see how the payment form will look like when implementing the Card JS library into your website, giving you an embedded form without requiring a redirection to Tap's hosted environment to tokenize the card and complete a payment. Moreover, in addition to having this form, you can also customize your own submit button to submit the card details once entered and then allowing you to get a token as a response which you need to use to complete the payment.\n\nIn order to see and test and fully working demo of the Card JS library, please follow this [link](https://jselements.tap.company/tapdocumentation/public/).\n\n\n\n# Card JS Integration\n\nWe have streamlined the process of implementing the Card JS library, by providing the integration code in HTML, CSS, and JavaScript, ensuring a straightforward and user-friendly setup. To effectively integrate this library into your website, simply follow the steps outlined below.\n\n## Initialize and Setup Card Library\n\nTo begin integrating the TAP JS library, it's essential to load the SDK correctly and to provide a better experience for all screen sizes. Here is how to complete that.\n\n### Import the Library Scripts\n\nYou can initialize the library by including a specific script in the header of your HTML webpage. This step is crucial and should be the starting point of your integration process.\n\n```json HTML\n\n\n```\n\n### Responsive Dimension\n\nTo make JS element scale to dimensions of the device, You should include the following meta tag in your html header, noting that this an optional step but will provide a better user-experience when the website is accessed from different screen sizes.\n\n```c HTML\n\n```\n\n### Referrer Policy\n\nTo control the information sent in the Referer header when navigating from your site to another, you should include the following meta tag in your HTML header. This is an optional step, but it will enhance security and privacy by limiting the referrer information shared with external sites. \n\n```\n\n```\n\n## Create the Payment Form\n\nTo securely collect card details from your customers, Elements creates UI components for you that are hosted by Tap payments. They are then placed into your payment form, rather than you creating them directly. To determine where to insert these components, create empty DOM elements (containers) with unique IDs within your payment form.\n\n```json HTML\n\n```\n\n## Style the Payment Form\n\nTo style the payment form and also the submit button, you need to add some CSS into your code. It is worth noting that the styling of the form is up to you, and below is an example to start with.\n\n```css\n.form-row {\n width: 70%;\n float: left;\n background-color: #ededed;\n}\n#card-element {\nbackground-color: transparent;\nheight: 40px;\nborder-radius: 4px;\nborder: 1px solid transparent;\nbox-shadow: 0 1px 3px 0 #e6ebf1;\n-webkit-transition: box-shadow 150ms ease;\ntransition: box-shadow 150ms ease;\n}\n\n#card-element--focus {\n box-shadow: 0 1px 3px 0 #cfd7df;\n}\n\n#card-element--invalid {\n border-color: #fa755a;\n}\n\n#card-element--webkit-autofill {\n background-color: #fefde5 !important;\n}\n\n#submitbutton,#tap-btn{\nalign-items:flex-start;\nbackground-attachment:scroll;background-clip:border-box;\nbackground-color:rgb(50, 50, 93);background-image:none;\nbackground-origin:padding-box;\nbackground-position-x:0%;\nbackground-position-y:0%;\nbackground-size:auto;\nborder-bottom-color:rgb(255, 255, 255);\nborder-bottom-left-radius:4px;\nborder-bottom-right-radius:4px;border-bottom-style:none;\nborder-bottom-width:0px;border-image-outset:0px;\nborder-image-repeat:stretch;border-image-slice:100%;\nborder-image-source:none;border-image-width:1;\nborder-left-color:rgb(255, 255, 255);\nborder-left-style:none;\nborder-left-width:0px;\nborder-right-color:rgb(255, 255, 255);\nborder-right-style:none;\nborder-right-width:0px;\nborder-top-color:rgb(255, 255, 255);\nborder-top-left-radius:4px;\nborder-top-right-radius:4px;\nborder-top-style:none;\nborder-top-width:0px;\nbox-shadow:rgba(50, 50, 93, 0.11) 0px 4px 6px 0px, rgba(0, 0, 0, 0.08) 0px 1px 3px 0px;\nbox-sizing:border-box;color:rgb(255, 255, 255);\ncursor:pointer;\ndisplay:block;\nfloat:left;\nfont-family:\"Helvetica Neue\", Helvetica, sans-serif;\nfont-size:15px;\nfont-stretch:100%;\nfont-style:normal;\nfont-variant-caps:normal;\nfont-variant-east-asian:normal;\nfont-variant-ligatures:normal;\nfont-variant-numeric:normal;\nfont-weight:600;\nheight:35px;\nletter-spacing:0.375px;\nline-height:35px;\nmargin-bottom:0px;\nmargin-left:12px;\nmargin-right:0px;\nmargin-top:28px;\noutline-color:rgb(255, 255, 255);\noutline-style:none;\noutline-width:0px;\noverflow-x:visible;\noverflow-y:visible;\npadding-bottom:0px;\npadding-left:14px;\npadding-right:14px;\npadding-top:0px;\ntext-align:center;\ntext-decoration-color:rgb(255, 255, 255);\ntext-decoration-line:none;\ntext-decoration-style:solid;\ntext-indent:0px;\ntext-rendering:auto;\ntext-shadow:none;\ntext-size-adjust:100%;\ntext-transform:none;\ntransition-delay:0s;\ntransition-duration:0.15s;\ntransition-property:all;\ntransition-timing-function:ease;\nwhite-space:nowrap;\nwidth:150.781px;\nword-spacing:0px;\nwriting-mode:horizontal-tb;\n-webkit-appearance:none;\n-webkit-font-smoothing:antialiased;\n-webkit-tap-highlight-color:rgba(0, 0, 0, 0);\n-webkit-border-image:none;\n\n}\n```\n\n## Load the Library using JavaScript\n\nTo effectively utilize the Card JS library, begin by creating an instance of an Element in JavaScript once your form is loaded. This instance should be mounted onto the Element container you've previously set up. The main action of this process is the use of a public key provided by Tap, which grants access to the JS library and links it to your specific TAP account. Ensure you pass this public key as a parameter when calling `Tapjsli()`.\n\nOnce you pass your account's public key in the `Tapjsli()`, and the payment form loads, it will show you to the left all the card payments logos that are enabled on your account. Add the below JavaScript code to complete this step.\n\n```json JavaScript\n//pass your public key from tap's dashboard\nvar tap = Tapjsli('pk_test_EtHFV4BuPQokJT6jiROls87Y');\n\nvar elements = tap.elements({});\n\nvar style = {\n base: {\n color: '#535353',\n lineHeight: '18px',\n fontFamily: 'sans-serif',\n fontSmoothing: 'antialiased',\n fontSize: '16px',\n '::placeholder': {\n color: 'rgba(0, 0, 0, 0.26)',\n fontSize:'15px'\n }\n },\n invalid: {\n color: 'red'\n }\n};\n// input labels/placeholders\nvar labels = {\n cardNumber:\"Card Number\",\n expirationDate:\"MM/YY\",\n cvv:\"CVV\",\n cardHolder:\"Card Holder Name\"\n };\n//payment options\nvar paymentOptions = {\n currencyCode:[\"KWD\",\"USD\",\"SAR\"], //change the currency array as per your requirement\n labels : labels,\n TextDirection:'ltr', //only two values valid (rtl, ltr)\n paymentAllowed: ['VISA', 'MASTERCARD', 'AMERICAN_EXPRESS', 'MADA'] //default string 'all' to show all payment methods enabled on your account\n}\n//create element, pass style and payment options\nvar card = elements.create('card', {style: style},paymentOptions);\n//mount element\ncard.mount('#element-container');\n//card change event listener\ncard.addEventListener('change', function(event) {\n if(event.loaded){ //If ‘true’, js library is loaded\n console.log(\"UI loaded :\"+event.loaded);\n console.log(\"current currency is :\"+card.getCurrency())\n }\n var displayError = document.getElementById('error-handler');\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n});\n```\n\n### Get Card BIN Details\n\nThe first six digits of a credit or debit card number are known as the \"Bank Identification Number (BIN),\" which are essential for identifying the card's issuing bank and other related details. The TAP JS Card library is equipped to retrieve this BIN information in real-time. To leverage this feature in your application, ensure that your code includes the below specific condition that should be added in the code that was shared in the previous step in `card.addEventListener() `as below, that triggers the retrieval of BIN details.\n\nThe condition stating if(event.BIN) \\{} shown in the JavaScript tab will display in the console of your website the card details related to the BIN added in the card form as shown in tab BIN Result.\n\n```groovy JavaScript\ncard.addEventListener('change', function(event) {\n if(event.BIN){\n console.log(event.BIN)\n }\n var displayError = document.getElementById('card-errors');\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n});\n```\n```json BIN Result\n{\n \"bin\":\"424242\",\n \"bank\":\"\",\n \"card_brand\":\"VISA\",\n \"card_type\":\"CREDIT\",\n \"card_category\":\"\",\n \"card_scheme\":\"VISA\",\n \"country_name\":\"UNITED KINGDOM\",\n \"country\":\"GB\",\n \"website\":\"\",\n \"phone\":\"\",\n \"address_required\":false,\n \"api_version\":\"V2\"\n}\n```\n\n## Tokenize the Card Details\n\nTransforming the payment details collected through Elements into a token is an essential step in the process. To accomplish this, set up an event handler that manages the submit event on the form. This handler is responsible for transmitting the fields to TAP for tokenization and strategically prevents the form's default submission. The form submission is done through JavaScript in the subsequent step, ensuring a controlled and secure process of token generation for your payment transactions.\n\nAs you can see in the below step, the function `tap.createToken()` provides a Promise, offering a straightforward outcome:\n\n1. **result.id**: Successful creation of a Token.\n2. **result.error**: An indication of an error, including any client-side validation issues.\n\n```json JavaScript\n\n// Handle form submission\nvar form = document.getElementById('form-container');\nform.addEventListener('submit', function(event) {\n event.preventDefault();\n\n tap.createToken(card).then(function(result) {\n console.log(result);\n if (result.error) {\n // Inform the user if there was an error\n var errorElement = document.getElementById('error-handler');\n errorElement.textContent = result.error.message;\n } else {\n // Send the token to your server\n var errorElement = document.getElementById('success');\n errorElement.style.display = \"block\";\n var tokenElement = document.getElementById('token');\n tokenElement.textContent = result.id;\n tapTokenHandler(token)\n\n }\n });\n});\n```\n\n## Submit the Token to your Server\n\nTo conclude the integration of the Card JS library, the last step is to submit the generated token, along with any additional collected information, to your server. In the previous step, you can see in the code the function `tapTokenHandler()` has been called to handle the submission of the token, and below is the code used to complete this functionalitiy.\n\n```less JavaScript\nfunction tapTokenHandler(token) {\n // Insert the token ID into the form so it gets submitted to the server\n var form = document.getElementById('payment-form');\n var hiddenInput = document.createElement('input');\n hiddenInput.setAttribute('type', 'hidden');\n hiddenInput.setAttribute('name', 'tapToken');\n hiddenInput.setAttribute('value', token.id);\n form.appendChild(hiddenInput);\n\n // Submit the form\n form.submit();\n}\n```","dehydrated":{"toc":"","body":"
Introducing Tap Payment's Card JavaScript library, a powerful tool designed for crafting seamless payment experiences. This library empowers you to construct secure payment flows embedded within your web applications, enabling the collection of sensitive card information from users.
\n
In this guide, we will walk you through the step-by-step creation of a dynamic payment form using the TAP JavaScript library, unlocking the potential for secure and user-friendly payment processing on your website.
\n
Requirements
\n
Using Elements for payment submissions requires a secure HTTPS connection. This is essential to guard against potential attacks and avoid mixed content warnings on modern browsers. Importantly, if the payment form is served over HTTP, the Elements SDK won't function correctly, compromising both security and functionality by preventing the generation of essential tokens for payment processing. In summary, maintaining an HTTPS connection is crucial for the secure and effective operation of your payment system.
\n
🚧
For optimal security and functionality, the Card JS library must be utilized over an HTTPS connection, both in sandbox and production environments.
\n
Card JS Elements Features
\n
This library being our first embedded experience for accepting card payments like Visa, Mastercard and mada. This library is not just a tool; it's a comprehensive solution that enhances the security and user experience in online transactions. Here are its key features that set it apart:
\n\n
A prebuilt UI component that not only efficiently gathers card details from customers but also tokenizes this sensitive information within the element, all without requiring interaction with your server.
\n
Automatic formatting which formats card details as they are entered, streamlining the data entry process and reducing user errors.
\n
Currency validation to ensuring compatibility with various global payment options, making it a versatile tool for international transactions.
\n
Robust input validation with error response handling, ensuring customers are guided correctly through the payment process.
\n
Real-time BIN (Bank Identification Number) response, that helps you gain immediate insights into the card type and issuing bank, adding an extra layer of verification.
\n
Responsive design catering to various screen sizes and devices to ensures a seamless user experience.
\n
Customizable style of the payment form that tailor the payment form's appearance, including font styles, sizes, and colors, particularly for the submit button, ensuring the form aligns perfectly with your brand's aesthetic.
\n\n
What to Expect
\n
Here you can see how the payment form will look like when implementing the Card JS library into your website, giving you an embedded form without requiring a redirection to Tap's hosted environment to tokenize the card and complete a payment. Moreover, in addition to having this form, you can also customize your own submit button to submit the card details once entered and then allowing you to get a token as a response which you need to use to complete the payment.
\n
In order to see and test and fully working demo of the Card JS library, please follow this link.
\n\n
Card JS Integration
\n
We have streamlined the process of implementing the Card JS library, by providing the integration code in HTML, CSS, and JavaScript, ensuring a straightforward and user-friendly setup. To effectively integrate this library into your website, simply follow the steps outlined below.
\n
Initialize and Setup Card Library
\n
To begin integrating the TAP JS library, it's essential to load the SDK correctly and to provide a better experience for all screen sizes. Here is how to complete that.
\n
Import the Library Scripts
\n
You can initialize the library by including a specific script in the header of your HTML webpage. This step is crucial and should be the starting point of your integration process.
To make JS element scale to dimensions of the device, You should include the following meta tag in your html header, noting that this an optional step but will provide a better user-experience when the website is accessed from different screen sizes.
To control the information sent in the Referer header when navigating from your site to another, you should include the following meta tag in your HTML header. This is an optional step, but it will enhance security and privacy by limiting the referrer information shared with external sites.
To securely collect card details from your customers, Elements creates UI components for you that are hosted by Tap payments. They are then placed into your payment form, rather than you creating them directly. To determine where to insert these components, create empty DOM elements (containers) with unique IDs within your payment form.
\n
<form id="form-container" method="post" action="/charge">\n <!-- Tap element will be here -->\n <div id="element-container"></div>\n <div id="error-handler" role="alert"></div>\n <div id="success" style=" display: none;;position: relative;float: left;">\n Success! Your token is <span id="token"></span>\n </div>\n <!-- Tap pay button -->\n <button id="tap-btn">Submit</button>\n</form>
\n
Style the Payment Form
\n
To style the payment form and also the submit button, you need to add some CSS into your code. It is worth noting that the styling of the form is up to you, and below is an example to start with.
To effectively utilize the Card JS library, begin by creating an instance of an Element in JavaScript once your form is loaded. This instance should be mounted onto the Element container you've previously set up. The main action of this process is the use of a public key provided by Tap, which grants access to the JS library and links it to your specific TAP account. Ensure you pass this public key as a parameter when calling Tapjsli().
\n
Once you pass your account's public key in the Tapjsli(), and the payment form loads, it will show you to the left all the card payments logos that are enabled on your account. Add the below JavaScript code to complete this step.
\n
//pass your public key from tap's dashboard\nvar tap = Tapjsli('pk_test_EtHFV4BuPQokJT6jiROls87Y');\n\nvar elements = tap.elements({});\n\nvar style = {\n base: {\n color: '#535353',\n lineHeight: '18px',\n fontFamily: 'sans-serif',\n fontSmoothing: 'antialiased',\n fontSize: '16px',\n '::placeholder': {\n color: 'rgba(0, 0, 0, 0.26)',\n fontSize:'15px'\n }\n },\n invalid: {\n color: 'red'\n }\n};\n// input labels/placeholders\nvar labels = {\n cardNumber:"Card Number",\n expirationDate:"MM/YY",\n cvv:"CVV",\n cardHolder:"Card Holder Name"\n };\n//payment options\nvar paymentOptions = {\n currencyCode:["KWD","USD","SAR"], //change the currency array as per your requirement\n labels : labels,\n TextDirection:'ltr', //only two values valid (rtl, ltr)\n paymentAllowed: ['VISA', 'MASTERCARD', 'AMERICAN_EXPRESS', 'MADA'] //default string 'all' to show all payment methods enabled on your account\n}\n//create element, pass style and payment options\nvar card = elements.create('card', {style: style},paymentOptions);\n//mount element\ncard.mount('#element-container');\n//card change event listener\ncard.addEventListener('change', function(event) {\n if(event.loaded){ //If ‘true’, js library is loaded\n console.log("UI loaded :"+event.loaded);\n console.log("current currency is :"+card.getCurrency())\n }\n var displayError = document.getElementById('error-handler');\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n});
\n
Get Card BIN Details
\n
The first six digits of a credit or debit card number are known as the "Bank Identification Number (BIN)," which are essential for identifying the card's issuing bank and other related details. The TAP JS Card library is equipped to retrieve this BIN information in real-time. To leverage this feature in your application, ensure that your code includes the below specific condition that should be added in the code that was shared in the previous step in card.addEventListener() as below, that triggers the retrieval of BIN details.
\n
The condition stating if(event.BIN) {} shown in the JavaScript tab will display in the console of your website the card details related to the BIN added in the card form as shown in tab BIN Result.
Transforming the payment details collected through Elements into a token is an essential step in the process. To accomplish this, set up an event handler that manages the submit event on the form. This handler is responsible for transmitting the fields to TAP for tokenization and strategically prevents the form's default submission. The form submission is done through JavaScript in the subsequent step, ensuring a controlled and secure process of token generation for your payment transactions.
\n
As you can see in the below step, the function tap.createToken() provides a Promise, offering a straightforward outcome:
\n\n
result.id: Successful creation of a Token.
\n
result.error: An indication of an error, including any client-side validation issues.
\n\n
\n// Handle form submission\nvar form = document.getElementById('form-container');\nform.addEventListener('submit', function(event) {\n event.preventDefault();\n\n tap.createToken(card).then(function(result) {\n console.log(result);\n if (result.error) {\n // Inform the user if there was an error\n var errorElement = document.getElementById('error-handler');\n errorElement.textContent = result.error.message;\n } else {\n // Send the token to your server\n var errorElement = document.getElementById('success');\n errorElement.style.display = "block";\n var tokenElement = document.getElementById('token');\n tokenElement.textContent = result.id;\n tapTokenHandler(token)\n\n }\n });\n});
\n
Submit the Token to your Server
\n
To conclude the integration of the Card JS library, the last step is to submit the generated token, along with any additional collected information, to your server. In the previous step, you can see in the code the function tapTokenHandler() has been called to handle the submission of the token, and below is the code used to complete this functionalitiy.
\n
function tapTokenHandler(token) {\n // Insert the token ID into the form so it gets submitted to the server\n var form = document.getElementById('payment-form');\n var hiddenInput = document.createElement('input');\n hiddenInput.setAttribute('type', 'hidden');\n hiddenInput.setAttribute('name', 'tapToken');\n hiddenInput.setAttribute('value', token.id);\n form.appendChild(hiddenInput);\n\n // Submit the form\n form.submit();\n}
","css":"/*! tailwindcss v4.1.6 | MIT License | https://tailwindcss.com */\n@layer theme, base, components, utilities;\n@layer utilities;\n"},"mdx":true,"opts":{"alwaysThrow":false,"compatibilityMode":false,"copyButtons":true,"correctnewlines":false,"markdownOptions":{"fences":true,"commonmark":true,"gfm":true,"ruleSpaces":false,"listItemIndent":"1","spacedTable":true,"paddedTable":true},"lazyImages":true,"normalize":true,"safeMode":false,"settings":{"position":false},"theme":"light","customBlocks":{},"resourceID":"/branches/1.0/guides/card-sdk-web-v1","resourceType":"page","components":{},"baseUrl":"/","terms":[{"_id":"609181673ecbe5000fceea45","term":"parliament","definition":"Owls are generally solitary, but when seen together the group is called a 'parliament'!"},{"_id":"644a67ce58a5e3035857ee5f","term":"MID","definition":"Merchant ID"},{"_id":"65cb1bc0a5ae180057f5b1ac","term":"charge_id","definition":"Charge_id is the transaction id"},{"_id":"65cb1c46a5f15f002857ddb3","term":"destinations","definition":"Destinations in this context refer to specific entities or accounts where portions of a transaction amount are directed to a single/multiple accounts."}],"variables":{"user":{},"defaults":[{"source":"security","_id":"62e8bff18f830d02d6155225","name":"Authorization","type":"apiKey","default":"sk_test_oqAcdQztv84agVkCBZEup0Hh","apiSetting":"614aeaa22843b7000fe98330"},{"source":"security","_id":"646b514404003f0045ac6eda","name":"test","type":"apiKey","default":"test","apiSetting":"644a369fbc093f0068977db4"}]}},"terms":[{"_id":"609181673ecbe5000fceea45","term":"parliament","definition":"Owls are generally solitary, but when seen together the group is called a 'parliament'!"},{"_id":"644a67ce58a5e3035857ee5f","term":"MID","definition":"Merchant ID"},{"_id":"65cb1bc0a5ae180057f5b1ac","term":"charge_id","definition":"Charge_id is the transaction id"},{"_id":"65cb1c46a5f15f002857ddb3","term":"destinations","definition":"Destinations in this context refer to specific entities or accounts where portions of a transaction amount are directed to a single/multiple accounts."}],"variables":{"user":{},"defaults":[{"source":"security","_id":"62e8bff18f830d02d6155225","name":"Authorization","type":"apiKey","default":"sk_test_oqAcdQztv84agVkCBZEup0Hh","apiSetting":"614aeaa22843b7000fe98330"},{"source":"security","_id":"646b514404003f0045ac6eda","name":"test","type":"apiKey","default":"test","apiSetting":"644a369fbc093f0068977db4"}]}},"sidebar":[{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"saved-cards","title":"Saved Cards","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payment-agreement","title":"Payment Agreement and Contracts","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/payment-agreement","category":"/branches/1.0/categories/guides/Acceptance","parent":"/branches/1.0/guides/saved-cards"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-payment-agreement","title":"Creating Payment Agreement","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/creating-payment-agreement","category":"/branches/1.0/categories/guides/Acceptance","parent":"/branches/1.0/guides/saved-cards"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"merchant-initiated-transaction","title":"Merchant Initiated Transaction","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/merchant-initiated-transaction","category":"/branches/1.0/categories/guides/Acceptance","parent":"/branches/1.0/guides/saved-cards"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"liability-shift-customer-vs-merchant","title":"Liability Shift: Customer vs Merchant","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/liability-shift-customer-vs-merchant","category":"/branches/1.0/categories/guides/Acceptance","parent":"/branches/1.0/guides/saved-cards"}],"uri":"/branches/1.0/guides/saved-cards","category":"/branches/1.0/categories/guides/Acceptance","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"recurring-payments","title":"Recurring Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/recurring-payments","category":"/branches/1.0/categories/guides/Acceptance","parent":null}],"title":"Acceptance","uri":"/branches/1.0/categories/guides/Acceptance"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"card-sdk-web-v1","title":"Web Card SDK V1","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/card-sdk-web-v1","category":"/branches/1.0/categories/guides/SDK","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"card-sdk-web-v2","title":"Web Card SDK V2","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/card-sdk-web-v2","category":"/branches/1.0/categories/guides/SDK","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"checkout","title":"Checkout","type":"basic","updatedAt":"2025-07-16T09:52:15.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"checkout-sdk-ios","title":"Checkout iOS SDK ","type":"basic","updatedAt":"2025-07-17T14:59:25.000Z","pages":[],"uri":"/branches/1.0/guides/checkout-sdk-ios","category":"/branches/1.0/categories/guides/SDK","parent":"/branches/1.0/guides/checkout"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"checkout-sdk-flutter","title":"Checkout Flutter SDK ","type":"basic","updatedAt":"2025-07-17T13:32:44.000Z","pages":[],"uri":"/branches/1.0/guides/checkout-sdk-flutter","category":"/branches/1.0/categories/guides/SDK","parent":"/branches/1.0/guides/checkout"}],"uri":"/branches/1.0/guides/checkout","category":"/branches/1.0/categories/guides/SDK","parent":null}],"title":"SDK","uri":"/branches/1.0/categories/guides/SDK"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payment-methods","title":"Overview of Payment Methods","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/payment-methods","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"samsung-pay-token","title":"Samsung Pay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/samsung-pay-token","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"card-payments","title":"Card Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"cards","title":"Cards","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/cards","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/card-payments"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"google-pay","title":"Google Pay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/google-pay","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/card-payments"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"omannet","title":"OmanNet","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/omannet","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/card-payments"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefit","title":"Benefit","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefit","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/card-payments"}],"uri":"/branches/1.0/guides/card-payments","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-sdk","title":"Benefit Pay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-web-sdk","title":"Web","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefitpay-web-sdk","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/benefitpay-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-sdk-ios","title":"iOS","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefitpay-sdk-ios","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/benefitpay-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-sdk-android","title":"Android","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefitpay-sdk-android","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/benefitpay-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-sdk-reactnative","title":"React-Native","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefitpay-sdk-reactnative","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/benefitpay-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"benefitpay-sdk-flutter","title":"Flutter","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/benefitpay-sdk-flutter","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/benefitpay-sdk"}],"uri":"/branches/1.0/guides/benefitpay-sdk","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay","title":"Apple Pay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay-csr-cer","title":"Apple Pay CSR CER Process","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/apple-pay-csr-cer","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/apple-pay"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay-token","title":"Apple Pay Token","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/apple-pay-token","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/apple-pay"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay-web-sdk","title":"Apple Pay Web SDK","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/apple-pay-web-sdk","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/apple-pay"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay-recurring","title":"Apple Pay Recurring","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/apple-pay-recurring","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/apple-pay"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay-decrypted-payload","title":"Apple Pay (Decrypted Payload)","type":"basic","updatedAt":"2025-07-17T05:21:10.000Z","pages":[],"uri":"/branches/1.0/guides/apple-pay-decrypted-payload","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/apple-pay"}],"uri":"/branches/1.0/guides/apple-pay","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"cash-wallet","title":"Cash Wallet","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"fawry","title":"Fawry","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/fawry","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/cash-wallet"}],"uri":"/branches/1.0/guides/cash-wallet","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"knet","title":"KNET","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"kfast","title":"KFAST","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/kfast","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/knet"}],"uri":"/branches/1.0/guides/knet","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"mada","title":"Mada","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"mada-recurring","title":"Mada Recurring","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/mada-recurring","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/mada"}],"uri":"/branches/1.0/guides/mada","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"qpay","title":"NAPS/QPay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/qpay","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"stcpay","title":"STC Pay","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/stcpay","category":"/branches/1.0/categories/guides/Payment methods","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"renderable":{"status":true},"slug":"bnpl","title":"BNPL","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"tabby","title":"Tabby","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/tabby","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/bnpl"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"deema","title":"Deema","type":"basic","updatedAt":"2025-07-11T14:45:25.000Z","pages":[],"uri":"/branches/1.0/guides/deema","category":"/branches/1.0/categories/guides/Payment methods","parent":"/branches/1.0/guides/bnpl"}],"uri":"/branches/1.0/guides/bnpl","category":"/branches/1.0/categories/guides/Payment methods","parent":null}],"title":"Payment methods","uri":"/branches/1.0/categories/guides/Payment methods"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"woocommerce","title":"Woocommerce","type":"basic","updatedAt":"2025-07-02T11:47:42.000Z","pages":[],"uri":"/branches/1.0/guides/woocommerce","category":"/branches/1.0/categories/guides/Plugins","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"magento","title":"Magento","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/magento","category":"/branches/1.0/categories/guides/Plugins","parent":null}],"title":"Plugins","uri":"/branches/1.0/categories/guides/Plugins"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"webhook","title":"Webhook","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/webhook","category":"/branches/1.0/categories/guides/After Payment","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"redirect","title":"Redirect","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/redirect","category":"/branches/1.0/categories/guides/After Payment","parent":null}],"title":"After Payment","uri":"/branches/1.0/categories/guides/After Payment"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"marketplace-overview","title":"Overview","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/marketplace-overview","category":"/branches/1.0/categories/guides/Marketplace","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"marketplace-getting-started","title":"Getting Started","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/marketplace-getting-started","category":"/branches/1.0/categories/guides/Marketplace","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"marketplace-onboarding-businesses","title":"Onboarding Businesses","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/marketplace-onboarding-businesses","category":"/branches/1.0/categories/guides/Marketplace","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"marketplace-split-payments","title":"Split Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/marketplace-split-payments","category":"/branches/1.0/categories/guides/Marketplace","parent":null}],"title":"Marketplace","uri":"/branches/1.0/categories/guides/Marketplace"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"user-access-permissions","title":"User Access Permissions","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/user-access-permissions","category":"/branches/1.0/categories/guides/References","parent":null}],"title":"References","uri":"/branches/1.0/categories/guides/References"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"card-payments-integration-flow","title":"Card Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/card-payments-integration-flow","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"redirect-payments-integration-flow","title":"Redirect Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/redirect-payments-integration-flow","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"device-payments-integration-flow","title":"Device Payments","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/device-payments-integration-flow","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"authorize-and-capture","title":"Authorize and Capture","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/authorize-and-capture","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"recommendations-best-practices","title":"Recommendations & Best Practices","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/recommendations-best-practices","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"encrypted-card-flow-pci","title":"Encrypted Card Flow (PCI)","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/encrypted-card-flow-pci","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"save-card-use-case-scenarios","title":"Save Card Use Case Scenarios","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/save-card-use-case-scenarios","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"idempotency","title":"Idempotency in Payment Processing","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/idempotency","category":"/branches/1.0/categories/guides/Integrations Flow","parent":null}],"title":"Integrations Flow","uri":"/branches/1.0/categories/guides/Integrations Flow"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"platforms-setup","title":"Platforms Setups","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/platforms-setup","category":"/branches/1.0/categories/guides/Platform","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"platforms-integration-concepts","title":"Platforms Integration Concepts","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/platforms-integration-concepts","category":"/branches/1.0/categories/guides/Platform","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-a-lead","title":"Creating a Lead","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/creating-a-lead","category":"/branches/1.0/categories/guides/Platform","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-a-merchant-account","title":"Creating a Merchant Account","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/creating-a-merchant-account","category":"/branches/1.0/categories/guides/Platform","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-a-transaction","title":"Creating a Transaction","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/creating-a-transaction","category":"/branches/1.0/categories/guides/Platform","parent":null}],"title":"Platform","uri":"/branches/1.0/categories/guides/Platform"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"reports-concepts","title":"Reports Download Concepts","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/reports-concepts","category":"/branches/1.0/categories/guides/Reports","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payout-report","title":"Payout Report","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/payout-report","category":"/branches/1.0/categories/guides/Reports","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"commerce-platform-reports","title":"Reports for Commerce Platforms","type":"basic","updatedAt":"2025-06-21T11:50:59.000Z","pages":[],"uri":"/branches/1.0/guides/commerce-platform-reports","category":"/branches/1.0/categories/guides/Reports","parent":null}],"title":"Reports","uri":"/branches/1.0/categories/guides/Reports"}],"branches":{"total":0,"page":1,"per_page":100,"paging":{"next":null,"previous":null,"first":"/tappayments/api-next/v2/branches?prefix=v1.0&page=1&per_page=100","last":null},"data":[],"type":"branch"},"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.420.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":"609181673ecbe5000fceea45","term":"parliament","definition":"Owls are generally solitary, but when seen together the group is called a 'parliament'!"},{"_id":"644a67ce58a5e3035857ee5f","term":"MID","definition":"Merchant ID"},{"_id":"65cb1bc0a5ae180057f5b1ac","term":"charge_id","definition":"Charge_id is the transaction id"},{"_id":"65cb1c46a5f15f002857ddb3","term":"destinations","definition":"Destinations in this context refer to specific entities or accounts where portions of a transaction amount are directed to a single/multiple accounts."}],"variables":{"user":{},"defaults":[{"source":"security","_id":"62e8bff18f830d02d6155225","name":"Authorization","type":"apiKey","default":"sk_test_oqAcdQztv84agVkCBZEup0Hh","apiSetting":"614aeaa22843b7000fe98330"},{"source":"security","_id":"646b514404003f0045ac6eda","name":"test","type":"apiKey","default":"test","apiSetting":"644a369fbc093f0068977db4"}]},"project":{"_id":"609181673ecbe5000fceea44","appearance":{"rdmd":{"callouts":{"useIconFont":false},"theme":{"background":"","border":"","markdownEdge":"","markdownFont":"","markdownFontSize":"","markdownLineHeight":"","markdownRadius":"","markdownText":"","markdownTitle":"","markdownTitleFont":"","mdCodeBackground":"","mdCodeFont":"","mdCodeRadius":"","mdCodeTabs":"","mdCodeText":"","tableEdges":"","tableHead":"","tableHeadText":"","tableRow":"","tableStripe":"","tableText":"","text":"","title":""}},"main_body":{"type":"links"},"colors":{"highlight":"","main":"#343740","main_alt":"#101010","header_text":"","body_highlight":"#1F88D0","custom_login_link_color":""},"typography":{"headline":"Open+Sans:400:sans-serif","body":"Open+Sans:400:sans-serif","typekit":false,"tk_key":"","tk_headline":"","tk_body":""},"header":{"style":"gradient","img":[],"img_size":"auto","img_pos":"tl","linkStyle":"buttons"},"body":{"style":"none"},"global_landing_page":{"html":"","redirect":""},"referenceLayout":"column","link_logo_to_url":false,"theme":"solid","overlay":"triangles","landing":true,"sticky":false,"hide_logo":true,"childrenAsPills":false,"subheaderStyle":"links","splitReferenceDocs":true,"logo":["https://files.readme.io/c7b8517-small-Tapcircle_gray.png","c7b8517-small-Tapcircle_gray.png",81,80,"#4c4948","https://files.readme.io/63fefd0-Tapcircle_gray.png"],"logo_white":["https://files.readme.io/cc73b8e-tap-logo-white.svg","cc73b8e-tap-logo-white.svg",300,124,"#000000","668673aa9dde7b0013e136eb"],"logo_white_use":true,"favicon":["https://files.readme.io/ab5c5ff-small-Tapcircle_gray.png","ab5c5ff-small-Tapcircle_gray.png",32,32,"#4c4948","https://files.readme.io/12da5df-Tapcircle_gray.png"],"stylesheet":"","stylesheet_hub2":"[data-color-mode=\"light\"] {\n --font-family: Roboto, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif !important;\n --font-weight-bold: 400 !important;\n}\n\n.heading-text {font-weight:400 !important;}\n\n[data-color-mode=\"dark\"] {\n--color-bg-page: #101010 !important;\n --font-family: Roboto, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif !important;\n --font-weight-bold: 400 !important;\n}","javascript":"","javascript_hub2":"","html_promo":"","html_body":"","html_footer":"","html_head":"","html_footer_meta":"","html_hidelinks":false,"showVersion":false,"hideTableOfContents":false,"nextStepsLabel":"","promos":[{"extras":{"type":"buttons","buttonPrimary":"reference","buttonSecondary":""},"title":"Developer documentation","text":"Developer Tools to Build Disruptive Payment Experiences","_id":"609181673ecbe5000fceea46"}],"showMetricsInReference":true,"referenceSimpleMode":true,"stylesheet_hub3":"","loginLogo":[],"logo_large":true,"colorScheme":"system","changelog":{"layoutExpanded":false,"showAuthor":true,"showExactDate":false},"allowApiExplorerJsonEditor":true,"ai_dropdown":"disabled","ai_options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","copilot":"enabled","perplexity":"enabled","view_as_markdown":"enabled"},"showPageIcons":true,"layout":{"full_width":false,"style":"classic"}},"custom_domain":"developers.tap.company","childrenProjects":[],"derivedPlan":"business2018","description":"","isExternalSnippetActive":false,"error404":"","experiments":[],"first_page":"landing","flags":{"allow_hub2":false,"enterprise":false,"alwaysShowDocPublishStatus":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"oauth":false,"swagger":false,"correctnewlines":false,"rdmdCompatibilityMode":false,"speedyRender":false,"allowXFrame":false,"newEditor":true,"oldMarkdown":false,"useReactApp":true,"newMarkdownBetaProgram":true,"referenceRedesign":false,"disableAnonForum":false,"directGoogleToStableVersion":false,"translation":false,"staging":false,"newSearch":true,"graphql":false,"allowApiExplorerJsonEditor":false,"newHeader":false,"singleProjectEnterprise":false,"dashReact":false,"allowReferenceUpgrade":false,"metricsV2":true,"newEditorDash":true,"enableRealtimeExperiences":false,"reviewWorkflow":true,"star":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"disablePasswordlessLogin":false,"personalizedDocs":false,"myDevelopers":false,"superHub":true,"developerDashboard":false,"allowReusableOTPs":false,"dashHomeRefresh":false,"owlbotAi":false,"apiV2":false,"git":{"read":false,"write":false},"superHubBeta":false,"dashQuickstart":false,"disableAutoTranslate":false,"customBlocks":false,"devDashHub":false,"disableSAMLScoping":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"apiAccessRevoked":false,"passwordlessLogin":"default","disableSignups":false,"billingRedesignEnabled":true,"developerPortal":false,"mdx":true,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":true,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"externalSdkSnippets":false,"requiresJQuery":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false},"fullBaseUrl":"https://developers.tap.company/","git":{"migration":{"createRepository":{"start":"2025-06-11T23:49:38.090Z","end":"2025-06-11T23:49:38.506Z","status":"successful"},"transformation":{"end":"2025-06-11T23:49:40.856Z","start":"2025-06-11T23:49:38.697Z","status":"successful"},"migratingPages":{"end":"2025-06-11T23:49:42.138Z","start":"2025-06-11T23:49:41.204Z","status":"successful"},"enableSuperhub":{"start":"2025-06-12T00:18:55.452Z","status":"successful","end":"2025-06-12T00:18:55.453Z"}},"sync":{"linked_repository":{},"installationRequest":{},"connections":[],"providers":[]}},"glossaryTerms":[{"_id":"609181673ecbe5000fceea45","term":"parliament","definition":"Owls are generally solitary, but when seen together the group is called a 'parliament'!"},{"_id":"644a67ce58a5e3035857ee5f","term":"MID","definition":"Merchant ID"},{"_id":"65cb1bc0a5ae180057f5b1ac","term":"charge_id","definition":"Charge_id is the transaction id"},{"_id":"65cb1c46a5f15f002857ddb3","term":"destinations","definition":"Destinations in this context refer to specific entities or accounts where portions of a transaction amount are directed to a single/multiple accounts."}],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"shouldGateDash":false,"healthCheck":{"provider":"manual","settings":{"page":"","status":true,"url":"http://www.tap.company/"}},"intercom_secure_emailonly":false,"intercom":"","is_active":true,"integrations":{"login":{}},"internal":"","jwtExpirationTime":0,"landing_bottom":[{"type":"text-media","alignment":"left","side":"left","mediaType":"image","text":"Tap is on a mission to change how businesses and consumers in the Middle East accept and make payments online.\n\nExplore our well-documented developer docs to build powerful products with our flexible APIs.","title":"Ready to start building?","mediaImage":["https://files.readme.io/34ceb1e-tap-checkout-laptop-iphone.png","34ceb1e-tap-checkout-laptop-iphone.png",1440,917,"#000000"]},{"type":"text-media","alignment":"left","side":"right","mediaType":"image","title":"Access all local, regional, & global payment methods","text":"Your customers can scale globally by offering all popular payment methods across MENA, whether that's mada, KNET, Fawry, Apple Pay, Visa, Mastercard, Amex, Tabby, and many more.","mediaImage":["https://files.readme.io/4dc0d3e-payment-methods-tap-transparent.png","4dc0d3e-payment-methods-tap-transparent.png",1440,917,"#000000"]}],"mdxMigrationStatus":"rdmd","metrics":{"monthlyLimit":0,"thumbsEnabled":true,"usageLastChecked":"2021-05-18T11:52:25.623Z","planLimit":1000000,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"landing":true,"docs":true,"examples":true,"reference":true,"changelog":false,"discuss":false,"suggested_edits":false,"logs":false,"custompages":false,"tutorials":false,"graphql":false},"name":"Tap API Docs 1.0","nav_names":{"docs":"","reference":"","changelog":"","discuss":"","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":false,"api":true,"logs":true,"domain":true,"metricsSDK":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral"},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""}},"owner":{"id":null,"email":null,"name":null},"plan":"business2018","planOverride":"","planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"active","planTrial":"business2018","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":false,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":false,"points":15},"pageVoting":{"enabled":true,"points":1},"suggestedEdits":{"enabled":false,"points":10},"support":{"enabled":false,"points":5},"htmlLanding":{"enabled":false,"points":5},"guides":{"enabled":true,"points":10},"changelog":{"enabled":false,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"totalScore":150},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":true,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false},"seo":{"overwrite_title_tag":false},"stable":{"_id":"609181673ecbe5000fceea49","version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":true,"is_hidden":false,"is_deprecated":false,"categories":["609181673ecbe5000fceea4b","609181673ecbe5000fceea4b","6091b3f99674c400163bff89","6091b4039cd053001ccd75ca","6091b9cabd08070044290985","6091ccd39405f5003a584a51","6091cd389f45cb00560bfd03","6095b97114006a014f3f1d4f","6095bd6196b92a00118b459d","6095bd978a10e0006bc46b06","6095bde7c1dc50001c095fa9","6096df8e16bd240064459165","60983af7df1158001ef2eff9","60999756d42c46007b006a79","609a3ad9f4596b0050872a03","60a2bbf7f3adf5002a9ad72e","60b458201c9e210016124e07","60b459da24cfd70073180153","60b45b397314140071385c1f","60b45c0e1a9223001c137851","60b45c742dbc65002b1ccfa9","60c048f5bc086f006399b817","60c0493ea600cc005e71953a","60c0497796c2af0033eb3e4c","60c049c35d4d8a000f1cc810","60c511d4f4a6fa004573f9ba","60c7e530bf52a5007f7da43b","60c9451d403b6900502989a6","60c98862c86ae9000fbf55fc","60d7a1f88b948a002ae79f91","60e605d60fae0c000f2d243a","6138f44d0c99ef0056745ae3","614ae981229ec80062e09c91","614aeaa22843b7000fe98332","614b1f21292222023c90b303","614b22b70a462c0071358ecb","614b36dc0437a7005d3a27ac","614c0577816706007abd6e04","614c05e3b9b417000f0394f0","614c14bd0ed1aa0043a6b0bc","614c25dd49cf1b000f94557a","614c67015a05e4005eb0b229","614c68879cee70000f672ffc","614c6b72a2b5e50079ebc763","614c6ed3218f16018b270eb1","614c7646f73c16007a5a8aeb","614c7d2c2c92f3001eb10ea0","614cd14a5c65ab006915b506","614debc2daabc80041992905","614df6734993df0029e4c28a","61501840584f4d004a701a59","6150219595ff56000faf6692","6150257421f82e001800da63","6150275dbca0e4004298279e","615040c71995710018ff6da5","61504a794dd368011f2b767b","615051fd186f32002a3e7fe8","61505a219f352800437308a9","6153ecce49305f0036ccabe9","6153ecfaa256830074bc16ab","6153ed21f89c000077626b46","62a1cb5617d8250093bbbf92","6376b4a52ac94400030a8954","644a369fbc093f0068977db7","644a38f00df056000a1f7be9","644a3c522a4b60077da18217","644a3fbbdc577706e617bf5c","644a43f116cff60015341077","644a5a710734260047a5c1c0","644a5b4ee93098000e224bac","644a6270d93cb6001a427e3b","646f3e102383c2072331c68c","647991b6a0313a00129bd1fd","648788082dca3b006c55f1b7","648ae3732d238b18720af010","64e83253f6aaa5006b197201","64e832538f7a1b001eff2152","64e8325384659a000d0766e3","64edd6ce1724b40037e6fe1a","6522b6c8af0e280013431b5c","653823f82c69e10038a3e744","65389026e52461000dff867f","654374aead28ee079008c5dc","6568a3f3ba96d8003f9ea0fa","6568a56bc9523700546a9ef0","6568a5a787accf003276274f","6568a5aeae53490078c17a6c","6568a5b64b48fc00642149e6","6568a5d7dcc06700319d0e51","658d55099134010010d83873","65aced7eeae0c00064957786","65df3397c4edf7005ad80c7e","6668c34424783c005237566d","66694dbf87bcd400146ac4f9","668ff1aedcb1740059c46dbf","668ff71289edb900543cbec5","668ffaa3e1b39200315fc95f","668ffaf5bf6d8c007157b7c9","66a20c1a4afc0a004a9ae1d8","66acc94362fd700054bce0a7","66accb01de3aa400127c615f","66b46a6cdf2832002a032359","66cc86934be3ef0018b72d84","673d965f9a77b00010d6b174","676ad7a0cfc66e00119406e5","676c002f13121d0efc2c1414","67965682dc3afe0044f1e853","679659c59bb515808b5a1c5b","679c9509e0f3a50036b05069","67a9d8bc885ab100723ce638","67a9d9acceb469005ecf7f77","680214474bd36300611d90ad"],"project":"609181673ecbe5000fceea44","releaseDate":"2021-05-04T17:16:23.435Z","createdAt":"2021-05-04T17:16:23.435Z","__v":13,"updatedAt":"2025-06-21T11:38:59.830Z","pdfStatus":"complete","apiRegistries":[{"filename":"subscription.json","uuid":"pavp975ilhgaala8"},{"filename":"charges.json","uuid":"349ct10madzg8gg"},{"filename":"authorize.json","uuid":"19ijga10m79acoeg"},{"filename":"refunds.json","uuid":"dl82et2flwm5596msb"},{"filename":"tokens.json","uuid":"3i46r2hm9mkdhz6"},{"filename":"cards.json","uuid":"5eq312mbrnhuxf"},{"filename":"business.json","uuid":"1c8zg4gpm7vr3s3z"},{"filename":"wallet.json","uuid":"gh4j02tlgz22lcx"},{"filename":"bank-account.json","uuid":"rowbe8al4cryk27"},{"filename":"orders.json","uuid":"3q14mrl696q690"},{"filename":"products.json","uuid":"3qzzvi3tl47cu29u"},{"filename":"merchant.json","uuid":"13wqkvhm6un0ezg"},{"filename":"invoices.json","uuid":"4t7pm13h28ab"},{"filename":"fulfilment-provider.json","uuid":"3xilk24l47cva7j"},{"filename":"fulfilment-carrier.json","uuid":"9b42el47cvdg5"},{"filename":"carrier-aggregator.json","uuid":"3qzzvi1qcl47cvhog"},{"filename":"currency.json","uuid":"de0m3xl4dugc1p"},{"filename":"recurring.json","uuid":"9b416l47cvyto"},{"filename":"customers.json","uuid":"fi2jg2mc65fuxv"},{"filename":"users.json","uuid":"3qzzvi125l47cv6k8"},{"filename":"operator.json","uuid":"4wamrg9m6enzk9e"},{"filename":"developer.json","uuid":"55o0d20l47cw6g9"},{"filename":"dev-house.json","uuid":"3xilk3sl47cwei4"},{"filename":"files.json","uuid":"2lnj72plzkz7x76"},{"filename":"destinations.json","uuid":"4wama1um6euu8w3"},{"filename":"file-link.json","uuid":"9b41hl47cwqwd"},{"filename":"document.json","uuid":"18xlpjl47cwukq"},{"filename":"disputes.json","uuid":"15lscrgm6yzk5md"},{"filename":"entity.json","uuid":"12483h4rl47cup3h"},{"filename":"brand.json","uuid":"1dp2k221lgz1vs4c"},{"filename":"branch.json","uuid":"3qzzvikl47cuxrk"},{"filename":"token-apple-pay.json","uuid":"7co71om1p0df85"},{"filename":"tokens-saved-card.json","uuid":"a0rzzx1fvlm9mjg6jh"},{"filename":"lead.json","uuid":"87rx2rm49rik7x"},{"filename":"connect.json","uuid":"d1dm11m0113pp8"},{"filename":"payout.json","uuid":"w6ncd2ym059ijae"},{"filename":"statement.json","uuid":"p2ulzigigja"},{"filename":"lead-new.json","uuid":"75l1bm75sm3ja"},{"filename":"transfers.json","uuid":"4da2rm5qtchiu"},{"filename":"token-samsung-pay.json","uuid":"3v9bvivimm52n8bps"},{"filename":"bin.json","uuid":"aspw37m6kpipc4"},{"filename":"tokens-encrypted-card.json","uuid":"9kzom9mku6ag"}],"source":"readme"},"subdomain":"tappayments","subpath":"","superHubWaitlist":false,"topnav":{"left":[{"type":"home","text":"Home"}],"right":[{"type":"user","text":"User","url":"/login?redirect_uri=/docs/card-sdk-web-v1"}],"edited":true,"bottom":[]},"trial":{"trialDeadlineEnabled":true,"trialEndsAt":"2021-09-14T17:16:23.387Z"},"translate":{"provider":"transifex","show_widget":false,"key_public":"","org_name":"","project_name":"","languages":[]},"url":"https://www.tap.company/","versions":[{"_id":"609181673ecbe5000fceea49","version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":true,"is_hidden":false,"is_deprecated":false,"categories":["609181673ecbe5000fceea4b","609181673ecbe5000fceea4b","6091b3f99674c400163bff89","6091b4039cd053001ccd75ca","6091b9cabd08070044290985","6091ccd39405f5003a584a51","6091cd389f45cb00560bfd03","6095b97114006a014f3f1d4f","6095bd6196b92a00118b459d","6095bd978a10e0006bc46b06","6095bde7c1dc50001c095fa9","6096df8e16bd240064459165","60983af7df1158001ef2eff9","60999756d42c46007b006a79","609a3ad9f4596b0050872a03","60a2bbf7f3adf5002a9ad72e","60b458201c9e210016124e07","60b459da24cfd70073180153","60b45b397314140071385c1f","60b45c0e1a9223001c137851","60b45c742dbc65002b1ccfa9","60c048f5bc086f006399b817","60c0493ea600cc005e71953a","60c0497796c2af0033eb3e4c","60c049c35d4d8a000f1cc810","60c511d4f4a6fa004573f9ba","60c7e530bf52a5007f7da43b","60c9451d403b6900502989a6","60c98862c86ae9000fbf55fc","60d7a1f88b948a002ae79f91","60e605d60fae0c000f2d243a","6138f44d0c99ef0056745ae3","614ae981229ec80062e09c91","614aeaa22843b7000fe98332","614b1f21292222023c90b303","614b22b70a462c0071358ecb","614b36dc0437a7005d3a27ac","614c0577816706007abd6e04","614c05e3b9b417000f0394f0","614c14bd0ed1aa0043a6b0bc","614c25dd49cf1b000f94557a","614c67015a05e4005eb0b229","614c68879cee70000f672ffc","614c6b72a2b5e50079ebc763","614c6ed3218f16018b270eb1","614c7646f73c16007a5a8aeb","614c7d2c2c92f3001eb10ea0","614cd14a5c65ab006915b506","614debc2daabc80041992905","614df6734993df0029e4c28a","61501840584f4d004a701a59","6150219595ff56000faf6692","6150257421f82e001800da63","6150275dbca0e4004298279e","615040c71995710018ff6da5","61504a794dd368011f2b767b","615051fd186f32002a3e7fe8","61505a219f352800437308a9","6153ecce49305f0036ccabe9","6153ecfaa256830074bc16ab","6153ed21f89c000077626b46","62a1cb5617d8250093bbbf92","6376b4a52ac94400030a8954","644a369fbc093f0068977db7","644a38f00df056000a1f7be9","644a3c522a4b60077da18217","644a3fbbdc577706e617bf5c","644a43f116cff60015341077","644a5a710734260047a5c1c0","644a5b4ee93098000e224bac","644a6270d93cb6001a427e3b","646f3e102383c2072331c68c","647991b6a0313a00129bd1fd","648788082dca3b006c55f1b7","648ae3732d238b18720af010","64e83253f6aaa5006b197201","64e832538f7a1b001eff2152","64e8325384659a000d0766e3","64edd6ce1724b40037e6fe1a","6522b6c8af0e280013431b5c","653823f82c69e10038a3e744","65389026e52461000dff867f","654374aead28ee079008c5dc","6568a3f3ba96d8003f9ea0fa","6568a56bc9523700546a9ef0","6568a5a787accf003276274f","6568a5aeae53490078c17a6c","6568a5b64b48fc00642149e6","6568a5d7dcc06700319d0e51","658d55099134010010d83873","65aced7eeae0c00064957786","65df3397c4edf7005ad80c7e","6668c34424783c005237566d","66694dbf87bcd400146ac4f9","668ff1aedcb1740059c46dbf","668ff71289edb900543cbec5","668ffaa3e1b39200315fc95f","668ffaf5bf6d8c007157b7c9","66a20c1a4afc0a004a9ae1d8","66acc94362fd700054bce0a7","66accb01de3aa400127c615f","66b46a6cdf2832002a032359","66cc86934be3ef0018b72d84","673d965f9a77b00010d6b174","676ad7a0cfc66e00119406e5","676c002f13121d0efc2c1414","67965682dc3afe0044f1e853","679659c59bb515808b5a1c5b","679c9509e0f3a50036b05069","67a9d8bc885ab100723ce638","67a9d9acceb469005ecf7f77","680214474bd36300611d90ad"],"project":"609181673ecbe5000fceea44","releaseDate":"2021-05-04T17:16:23.435Z","createdAt":"2021-05-04T17:16:23.435Z","__v":13,"updatedAt":"2025-06-21T11:38:59.830Z","pdfStatus":"complete","apiRegistries":[{"filename":"subscription.json","uuid":"pavp975ilhgaala8"},{"filename":"charges.json","uuid":"349ct10madzg8gg"},{"filename":"authorize.json","uuid":"19ijga10m79acoeg"},{"filename":"refunds.json","uuid":"dl82et2flwm5596msb"},{"filename":"tokens.json","uuid":"3i46r2hm9mkdhz6"},{"filename":"cards.json","uuid":"5eq312mbrnhuxf"},{"filename":"business.json","uuid":"1c8zg4gpm7vr3s3z"},{"filename":"wallet.json","uuid":"gh4j02tlgz22lcx"},{"filename":"bank-account.json","uuid":"rowbe8al4cryk27"},{"filename":"orders.json","uuid":"3q14mrl696q690"},{"filename":"products.json","uuid":"3qzzvi3tl47cu29u"},{"filename":"merchant.json","uuid":"13wqkvhm6un0ezg"},{"filename":"invoices.json","uuid":"4t7pm13h28ab"},{"filename":"fulfilment-provider.json","uuid":"3xilk24l47cva7j"},{"filename":"fulfilment-carrier.json","uuid":"9b42el47cvdg5"},{"filename":"carrier-aggregator.json","uuid":"3qzzvi1qcl47cvhog"},{"filename":"currency.json","uuid":"de0m3xl4dugc1p"},{"filename":"recurring.json","uuid":"9b416l47cvyto"},{"filename":"customers.json","uuid":"fi2jg2mc65fuxv"},{"filename":"users.json","uuid":"3qzzvi125l47cv6k8"},{"filename":"operator.json","uuid":"4wamrg9m6enzk9e"},{"filename":"developer.json","uuid":"55o0d20l47cw6g9"},{"filename":"dev-house.json","uuid":"3xilk3sl47cwei4"},{"filename":"files.json","uuid":"2lnj72plzkz7x76"},{"filename":"destinations.json","uuid":"4wama1um6euu8w3"},{"filename":"file-link.json","uuid":"9b41hl47cwqwd"},{"filename":"document.json","uuid":"18xlpjl47cwukq"},{"filename":"disputes.json","uuid":"15lscrgm6yzk5md"},{"filename":"entity.json","uuid":"12483h4rl47cup3h"},{"filename":"brand.json","uuid":"1dp2k221lgz1vs4c"},{"filename":"branch.json","uuid":"3qzzvikl47cuxrk"},{"filename":"token-apple-pay.json","uuid":"7co71om1p0df85"},{"filename":"tokens-saved-card.json","uuid":"a0rzzx1fvlm9mjg6jh"},{"filename":"lead.json","uuid":"87rx2rm49rik7x"},{"filename":"connect.json","uuid":"d1dm11m0113pp8"},{"filename":"payout.json","uuid":"w6ncd2ym059ijae"},{"filename":"statement.json","uuid":"p2ulzigigja"},{"filename":"lead-new.json","uuid":"75l1bm75sm3ja"},{"filename":"transfers.json","uuid":"4da2rm5qtchiu"},{"filename":"token-samsung-pay.json","uuid":"3v9bvivimm52n8bps"},{"filename":"bin.json","uuid":"aspw37m6kpipc4"},{"filename":"tokens-encrypted-card.json","uuid":"9kzom9mku6ag"}],"source":"readme"},{"_id":"644a70bd812ae70050038744","version":"1.1","version_clean":"1.1.0","codename":"v1.1","is_stable":false,"is_beta":true,"is_hidden":true,"is_deprecated":false,"categories":["609181673ecbe5000fceea4b","609181673ecbe5000fceea4b","6091b3f99674c400163bff89","6091b4039cd053001ccd75ca","644a70bd812ae70050038622","644a70bd812ae70050038623","644a70bd812ae70050038624","644a70bd812ae70050038625","6095bd6196b92a00118b459d","6095bd978a10e0006bc46b06","6095bde7c1dc50001c095fa9","6096df8e16bd240064459165","644a70bd812ae70050038626","644a70bd812ae70050038627","644a70bd812ae70050038628","644a70bd812ae70050038629","60b458201c9e210016124e07","60b459da24cfd70073180153","60b45b397314140071385c1f","60b45c0e1a9223001c137851","60b45c742dbc65002b1ccfa9","60c048f5bc086f006399b817","60c0493ea600cc005e71953a","60c0497796c2af0033eb3e4c","60c049c35d4d8a000f1cc810","644a70bd812ae7005003862a","644a70bd812ae7005003862b","644a70bd812ae7005003862c","60c98862c86ae9000fbf55fc","644a70bd812ae7005003862d","60e605d60fae0c000f2d243a","644a70bd812ae7005003862e","614ae981229ec80062e09c91","644a70bd812ae7005003862f","614b1f21292222023c90b303","644a70bd812ae70050038630","644a70bd812ae70050038631","614c0577816706007abd6e04","614c05e3b9b417000f0394f0","614c14bd0ed1aa0043a6b0bc","614c25dd49cf1b000f94557a","644a70bd812ae70050038632","614c68879cee70000f672ffc","614c6b72a2b5e50079ebc763","644a70bd812ae70050038633","644a70bd812ae70050038634","614c7d2c2c92f3001eb10ea0","644a70bd812ae70050038635","614debc2daabc80041992905","614df6734993df0029e4c28a","61501840584f4d004a701a59","6150219595ff56000faf6692","6150257421f82e001800da63","644a70bd812ae70050038636","615040c71995710018ff6da5","61504a794dd368011f2b767b","615051fd186f32002a3e7fe8","61505a219f352800437308a9","6153ecce49305f0036ccabe9","6153ecfaa256830074bc16ab","6153ed21f89c000077626b46","644a70bd812ae70050038637","6376b4a52ac94400030a8954","644a369fbc093f0068977db7","644a38f00df056000a1f7be9","644a70bd812ae70050038638","644a3fbbdc577706e617bf5c","644a43f116cff60015341077","644a5a710734260047a5c1c0","644a70bd812ae70050038639","644a70bd812ae7005003863a","644a70be812ae70050038748","6489964737cd94004d8de976","6568a3be3dc23e006b7666f3"],"project":"609181673ecbe5000fceea44","releaseDate":"2021-05-04T17:16:23.435Z","createdAt":"2021-05-04T17:16:23.435Z","__v":1,"forked_from":"609181673ecbe5000fceea49","updatedAt":"2025-06-11T23:49:37.880Z","apiRegistries":[{"filename":"subscription.json","uuid":"b6gv13l47hrwt4"},{"filename":"create-a-charge.json","uuid":"3uimz3dlgyve3o1"},{"filename":"retrieve-a-charge.json","uuid":"7mu3pu1ykpvf43zg"},{"filename":"authorize.json","uuid":"2ljr53cl372tgl3"},{"filename":"list-all-charges.json","uuid":"1mld74kq6wk65u"},{"filename":"charges.json","uuid":"gh4j027ulgz0w4ja"},{"filename":"refunds.json","uuid":"3xilk1cl47csx66"},{"filename":"cards.json","uuid":"9b413l46zg22f"},{"filename":"wallet.json","uuid":"gh4j02tlgz22lcx"},{"filename":"merchant.json","uuid":"3qzzvi1pl47cuckn"},{"filename":"tokens.json","uuid":"16vcze2tlgz28gql"},{"filename":"fulfilment-provider.json","uuid":"3xilk24l47cva7j"},{"filename":"products.json","uuid":"3qzzvi3tl47cu29u"},{"filename":"bank-account.json","uuid":"rowbe8al4cryk27"},{"filename":"business.json","uuid":"j3gu10lgz3bs7h"},{"filename":"orders.json","uuid":"3q14mrl696q690"},{"filename":"fulfilment-carrier.json","uuid":"9b42el47cvdg5"},{"filename":"invoices.json","uuid":"55o0d2gl47cu610"},{"filename":"billing.json"},{"filename":"carrier-aggregator.json","uuid":"3qzzvi1qcl47cvhog"},{"filename":"currency.json","uuid":"de0m3xl4dugc1p"},{"filename":"customers.json","uuid":"sxbqhm94pl47cv1y7"},{"filename":"users.json","uuid":"3qzzvi125l47cv6k8"},{"filename":"operator.json","uuid":"3uimz1jalgz3r91f"},{"filename":"recurring.json","uuid":"9b416l47cvyto"},{"filename":"entity.json","uuid":"12483h4rl47cup3h"},{"filename":"destination.json","uuid":"55o0d4kl47cugy3"},{"filename":"token-apple-pay.json","uuid":"1dp2k22olgywf8fv"},{"filename":"file-link.json","uuid":"9b41hl47cwqwd"},{"filename":"developer.json","uuid":"55o0d20l47cw6g9"},{"filename":"document.json","uuid":"18xlpjl47cwukq"},{"filename":"branch.json","uuid":"3qzzvikl47cuxrk"},{"filename":"brand.json","uuid":"1dp2k221lgz1vs4c"},{"filename":"files.json","uuid":"gh4j02drlgz3lxkk"},{"filename":"dev-house.json","uuid":"3xilk3sl47cwei4"},{"filename":"disputes.json"},{"filename":"tokens-saved-card.json","uuid":"22qv752ylgyzzx2y"}],"pdfStatus":"","source":"readme"}],"variableDefaults":[{"source":"security","_id":"62e8bff18f830d02d6155225","name":"Authorization","type":"apiKey","default":"sk_test_oqAcdQztv84agVkCBZEup0Hh","apiSetting":"614aeaa22843b7000fe98330"},{"source":"security","_id":"646b514404003f0045ac6eda","name":"test","type":"apiKey","default":"test","apiSetting":"644a369fbc093f0068977db4"}],"webhookEnabled":false,"isHubEditable":true},"projectStore":{"data":{"allow_crawlers":"disabled","canonical_url":null,"default_version":{"name":"1.0"},"description":null,"glossary":[{"_id":"609181673ecbe5000fceea45","term":"parliament","definition":"Owls are generally solitary, but when seen together the group is called a 'parliament'!"},{"_id":"644a67ce58a5e3035857ee5f","term":"MID","definition":"Merchant ID"},{"_id":"65cb1bc0a5ae180057f5b1ac","term":"charge_id","definition":"Charge_id is the transaction id"},{"_id":"65cb1c46a5f15f002857ddb3","term":"destinations","definition":"Destinations in this context refer to specific entities or accounts where portions of a transaction amount are directed to a single/multiple accounts."}],"homepage_url":"https://www.tap.company/","id":"609181673ecbe5000fceea44","name":"Tap API Docs 1.0","parent":null,"redirects":[],"sitemap":"disabled","llms_txt":"disabled","subdomain":"tappayments","suggested_edits":"disabled","uri":"/projects/me","variable_defaults":[{"name":"Authorization","default":"sk_test_oqAcdQztv84agVkCBZEup0Hh","source":"security","type":"apiKey","id":"62e8bff18f830d02d6155225"},{"name":"test","default":"test","source":"security","type":"apiKey","id":"646b514404003f0045ac6eda"}],"webhooks":[],"api_designer":{"allow_editing":"enabled"},"custom_login":{"login_url":null,"logout_url":null},"features":{"mdx":"enabled"},"mcp":{},"onboarding_completed":{"api":true,"appearance":true,"documentation":true,"domain":true,"jwt":false,"logs":true,"metricsSDK":false},"pages":{"not_found":null},"privacy":{"openapi":"admin","password":null,"view":"public"},"refactored":{"status":"enabled","migrated":"successful"},"seo":{"overwrite_title_tag":"disabled"},"plan":{"type":"business2018","grace_period":{"enabled":false,"end_date":null},"trial":{"expired":false,"end_date":"2021-09-14T17:16:23.387Z"}},"reference":{"api_sdk_snippets":"enabled","defaults":"always_use","json_editor":"enabled","oauth_flows":"disabled","request_history":"enabled","response_examples":"collapsed","response_schemas":"collapsed","sdk_snippets":{"external":"disabled"}},"health_check":{"provider":"manual","settings":{"manual":{"status":"up","url":"http://www.tap.company/"},"statuspage":{"id":null}}},"integrations":{"aws":{"readme_webhook_login":{"region":null,"external_id":null,"role_arn":null,"usage_plan_id":null}},"bing":{"verify":null},"google":{"analytics":null,"site_verification":null},"heap":{"id":null},"koala":{"key":null},"localize":{"key":null},"postman":{"key":null,"client_id":null,"client_secret":null},"recaptcha":{"site_key":null,"secret_key":null},"segment":{"key":null,"domain":null},"speakeasy":{"key":null,"spec_url":null},"stainless":{"key":null,"name":null},"typekit":{"key":null},"zendesk":{"subdomain":null},"intercom":{"app_id":null,"secure_mode":{"key":null,"email_only":false}}},"permissions":{"appearance":{"private_label":"enabled","custom_code":{"css":"enabled","html":"enabled","js":"disabled"}},"branches":{"merge":{"admin":true}}},"appearance":{"brand":{"primary_color":"#343740","link_color":"#1F88D0","theme":"system"},"changelog":{"layout":"collapsed","show_author":true,"show_exact_date":false},"layout":{"full_width":"disabled","style":"classic"},"markdown":{"callouts":{"icon_font":"emojis"}},"table_of_contents":"enabled","whats_next_label":null,"footer":{"readme_logo":"hide"},"logo":{"size":"large","dark_mode":{"uri":null,"url":"https://files.readme.io/cc73b8e-tap-logo-white.svg","name":"cc73b8e-tap-logo-white.svg","width":300,"height":124,"color":"#000000","links":{"original_url":null}},"main":{"uri":null,"url":"https://files.readme.io/c7b8517-small-Tapcircle_gray.png","name":"c7b8517-small-Tapcircle_gray.png","width":81,"height":80,"color":"#4c4948","links":{"original_url":"https://files.readme.io/63fefd0-Tapcircle_gray.png"}},"favicon":{"uri":null,"url":"https://files.readme.io/ab5c5ff-small-Tapcircle_gray.png","name":"ab5c5ff-small-Tapcircle_gray.png","width":32,"height":32,"color":"#4c4948","links":{"original_url":"https://files.readme.io/12da5df-Tapcircle_gray.png"}}},"custom_code":{"css":"[data-color-mode=\"light\"] {\n --font-family: Roboto, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif !important;\n --font-weight-bold: 400 !important;\n}\n\n.heading-text {font-weight:400 !important;}\n\n[data-color-mode=\"dark\"] {\n--color-bg-page: #101010 !important;\n --font-family: Roboto, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif !important;\n --font-weight-bold: 400 !important;\n}","js":null,"html":{"header":null,"home_footer":null,"page_footer":null}},"header":{"type":"gradient","gradient_color":"#101010","link_style":"buttons","overlay":{"fill":"auto","type":"triangles","position":"top-left","image":{"uri":null,"url":null,"name":null,"width":null,"height":null,"color":null,"links":{"original_url":null}}}},"ai":{"dropdown":"disabled","options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","copilot":"enabled","view_as_markdown":"enabled"}},"navigation":{"first_page":"landing_page","left":[{"type":"home","title":null,"url":null,"custom_page":null}],"logo_link":"landing_page","page_icons":"enabled","right":[{"type":"user_controls","title":null,"url":null,"custom_page":null}],"sub_nav":[],"subheader_layout":"links","version":"disabled","links":{"home":{"label":"Home","visibility":"enabled"},"graphql":{"label":"GraphQL","visibility":"disabled"},"guides":{"label":"Guides","alias":null,"visibility":"enabled"},"reference":{"label":"API Reference","alias":null,"visibility":"enabled"},"recipes":{"label":"Recipes","alias":null,"visibility":"disabled"},"changelog":{"label":"Changelog","alias":null,"visibility":"disabled"},"discussions":{"label":"Discussions","alias":null,"visibility":"disabled"}}}},"git":{"connection":{"repository":{},"organization":null,"status":"inactive"}}}},"version":{"_id":"609181673ecbe5000fceea49","version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":true,"is_hidden":false,"is_deprecated":false,"categories":["609181673ecbe5000fceea4b","609181673ecbe5000fceea4b","6091b3f99674c400163bff89","6091b4039cd053001ccd75ca","6091b9cabd08070044290985","6091ccd39405f5003a584a51","6091cd389f45cb00560bfd03","6095b97114006a014f3f1d4f","6095bd6196b92a00118b459d","6095bd978a10e0006bc46b06","6095bde7c1dc50001c095fa9","6096df8e16bd240064459165","60983af7df1158001ef2eff9","60999756d42c46007b006a79","609a3ad9f4596b0050872a03","60a2bbf7f3adf5002a9ad72e","60b458201c9e210016124e07","60b459da24cfd70073180153","60b45b397314140071385c1f","60b45c0e1a9223001c137851","60b45c742dbc65002b1ccfa9","60c048f5bc086f006399b817","60c0493ea600cc005e71953a","60c0497796c2af0033eb3e4c","60c049c35d4d8a000f1cc810","60c511d4f4a6fa004573f9ba","60c7e530bf52a5007f7da43b","60c9451d403b6900502989a6","60c98862c86ae9000fbf55fc","60d7a1f88b948a002ae79f91","60e605d60fae0c000f2d243a","6138f44d0c99ef0056745ae3","614ae981229ec80062e09c91","614aeaa22843b7000fe98332","614b1f21292222023c90b303","614b22b70a462c0071358ecb","614b36dc0437a7005d3a27ac","614c0577816706007abd6e04","614c05e3b9b417000f0394f0","614c14bd0ed1aa0043a6b0bc","614c25dd49cf1b000f94557a","614c67015a05e4005eb0b229","614c68879cee70000f672ffc","614c6b72a2b5e50079ebc763","614c6ed3218f16018b270eb1","614c7646f73c16007a5a8aeb","614c7d2c2c92f3001eb10ea0","614cd14a5c65ab006915b506","614debc2daabc80041992905","614df6734993df0029e4c28a","61501840584f4d004a701a59","6150219595ff56000faf6692","6150257421f82e001800da63","6150275dbca0e4004298279e","615040c71995710018ff6da5","61504a794dd368011f2b767b","615051fd186f32002a3e7fe8","61505a219f352800437308a9","6153ecce49305f0036ccabe9","6153ecfaa256830074bc16ab","6153ed21f89c000077626b46","62a1cb5617d8250093bbbf92","6376b4a52ac94400030a8954","644a369fbc093f0068977db7","644a38f00df056000a1f7be9","644a3c522a4b60077da18217","644a3fbbdc577706e617bf5c","644a43f116cff60015341077","644a5a710734260047a5c1c0","644a5b4ee93098000e224bac","644a6270d93cb6001a427e3b","646f3e102383c2072331c68c","647991b6a0313a00129bd1fd","648788082dca3b006c55f1b7","648ae3732d238b18720af010","64e83253f6aaa5006b197201","64e832538f7a1b001eff2152","64e8325384659a000d0766e3","64edd6ce1724b40037e6fe1a","6522b6c8af0e280013431b5c","653823f82c69e10038a3e744","65389026e52461000dff867f","654374aead28ee079008c5dc","6568a3f3ba96d8003f9ea0fa","6568a56bc9523700546a9ef0","6568a5a787accf003276274f","6568a5aeae53490078c17a6c","6568a5b64b48fc00642149e6","6568a5d7dcc06700319d0e51","658d55099134010010d83873","65aced7eeae0c00064957786","65df3397c4edf7005ad80c7e","6668c34424783c005237566d","66694dbf87bcd400146ac4f9","668ff1aedcb1740059c46dbf","668ff71289edb900543cbec5","668ffaa3e1b39200315fc95f","668ffaf5bf6d8c007157b7c9","66a20c1a4afc0a004a9ae1d8","66acc94362fd700054bce0a7","66accb01de3aa400127c615f","66b46a6cdf2832002a032359","66cc86934be3ef0018b72d84","673d965f9a77b00010d6b174","676ad7a0cfc66e00119406e5","676c002f13121d0efc2c1414","67965682dc3afe0044f1e853","679659c59bb515808b5a1c5b","679c9509e0f3a50036b05069","67a9d8bc885ab100723ce638","67a9d9acceb469005ecf7f77","680214474bd36300611d90ad"],"project":"609181673ecbe5000fceea44","releaseDate":"2021-05-04T17:16:23.435Z","createdAt":"2021-05-04T17:16:23.435Z","__v":13,"updatedAt":"2025-06-21T11:38:59.830Z","pdfStatus":"complete","apiRegistries":[{"filename":"subscription.json","uuid":"pavp975ilhgaala8"},{"filename":"charges.json","uuid":"349ct10madzg8gg"},{"filename":"authorize.json","uuid":"19ijga10m79acoeg"},{"filename":"refunds.json","uuid":"dl82et2flwm5596msb"},{"filename":"tokens.json","uuid":"3i46r2hm9mkdhz6"},{"filename":"cards.json","uuid":"5eq312mbrnhuxf"},{"filename":"business.json","uuid":"1c8zg4gpm7vr3s3z"},{"filename":"wallet.json","uuid":"gh4j02tlgz22lcx"},{"filename":"bank-account.json","uuid":"rowbe8al4cryk27"},{"filename":"orders.json","uuid":"3q14mrl696q690"},{"filename":"products.json","uuid":"3qzzvi3tl47cu29u"},{"filename":"merchant.json","uuid":"13wqkvhm6un0ezg"},{"filename":"invoices.json","uuid":"4t7pm13h28ab"},{"filename":"fulfilment-provider.json","uuid":"3xilk24l47cva7j"},{"filename":"fulfilment-carrier.json","uuid":"9b42el47cvdg5"},{"filename":"carrier-aggregator.json","uuid":"3qzzvi1qcl47cvhog"},{"filename":"currency.json","uuid":"de0m3xl4dugc1p"},{"filename":"recurring.json","uuid":"9b416l47cvyto"},{"filename":"customers.json","uuid":"fi2jg2mc65fuxv"},{"filename":"users.json","uuid":"3qzzvi125l47cv6k8"},{"filename":"operator.json","uuid":"4wamrg9m6enzk9e"},{"filename":"developer.json","uuid":"55o0d20l47cw6g9"},{"filename":"dev-house.json","uuid":"3xilk3sl47cwei4"},{"filename":"files.json","uuid":"2lnj72plzkz7x76"},{"filename":"destinations.json","uuid":"4wama1um6euu8w3"},{"filename":"file-link.json","uuid":"9b41hl47cwqwd"},{"filename":"document.json","uuid":"18xlpjl47cwukq"},{"filename":"disputes.json","uuid":"15lscrgm6yzk5md"},{"filename":"entity.json","uuid":"12483h4rl47cup3h"},{"filename":"brand.json","uuid":"1dp2k221lgz1vs4c"},{"filename":"branch.json","uuid":"3qzzvikl47cuxrk"},{"filename":"token-apple-pay.json","uuid":"7co71om1p0df85"},{"filename":"tokens-saved-card.json","uuid":"a0rzzx1fvlm9mjg6jh"},{"filename":"lead.json","uuid":"87rx2rm49rik7x"},{"filename":"connect.json","uuid":"d1dm11m0113pp8"},{"filename":"payout.json","uuid":"w6ncd2ym059ijae"},{"filename":"statement.json","uuid":"p2ulzigigja"},{"filename":"lead-new.json","uuid":"75l1bm75sm3ja"},{"filename":"transfers.json","uuid":"4da2rm5qtchiu"},{"filename":"token-samsung-pay.json","uuid":"3v9bvivimm52n8bps"},{"filename":"bin.json","uuid":"aspw37m6kpipc4"},{"filename":"tokens-encrypted-card.json","uuid":"9kzom9mku6ag"}],"source":"readme"}},"is404":false,"isDetachedProductionSite":false,"lang":"en","langFull":"Default","reqUrl":"/docs/card-sdk-web-v1","version":{"_id":"609181673ecbe5000fceea49","version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":true,"is_hidden":false,"is_deprecated":false,"categories":["609181673ecbe5000fceea4b","609181673ecbe5000fceea4b","6091b3f99674c400163bff89","6091b4039cd053001ccd75ca","6091b9cabd08070044290985","6091ccd39405f5003a584a51","6091cd389f45cb00560bfd03","6095b97114006a014f3f1d4f","6095bd6196b92a00118b459d","6095bd978a10e0006bc46b06","6095bde7c1dc50001c095fa9","6096df8e16bd240064459165","60983af7df1158001ef2eff9","60999756d42c46007b006a79","609a3ad9f4596b0050872a03","60a2bbf7f3adf5002a9ad72e","60b458201c9e210016124e07","60b459da24cfd70073180153","60b45b397314140071385c1f","60b45c0e1a9223001c137851","60b45c742dbc65002b1ccfa9","60c048f5bc086f006399b817","60c0493ea600cc005e71953a","60c0497796c2af0033eb3e4c","60c049c35d4d8a000f1cc810","60c511d4f4a6fa004573f9ba","60c7e530bf52a5007f7da43b","60c9451d403b6900502989a6","60c98862c86ae9000fbf55fc","60d7a1f88b948a002ae79f91","60e605d60fae0c000f2d243a","6138f44d0c99ef0056745ae3","614ae981229ec80062e09c91","614aeaa22843b7000fe98332","614b1f21292222023c90b303","614b22b70a462c0071358ecb","614b36dc0437a7005d3a27ac","614c0577816706007abd6e04","614c05e3b9b417000f0394f0","614c14bd0ed1aa0043a6b0bc","614c25dd49cf1b000f94557a","614c67015a05e4005eb0b229","614c68879cee70000f672ffc","614c6b72a2b5e50079ebc763","614c6ed3218f16018b270eb1","614c7646f73c16007a5a8aeb","614c7d2c2c92f3001eb10ea0","614cd14a5c65ab006915b506","614debc2daabc80041992905","614df6734993df0029e4c28a","61501840584f4d004a701a59","6150219595ff56000faf6692","6150257421f82e001800da63","6150275dbca0e4004298279e","615040c71995710018ff6da5","61504a794dd368011f2b767b","615051fd186f32002a3e7fe8","61505a219f352800437308a9","6153ecce49305f0036ccabe9","6153ecfaa256830074bc16ab","6153ed21f89c000077626b46","62a1cb5617d8250093bbbf92","6376b4a52ac94400030a8954","644a369fbc093f0068977db7","644a38f00df056000a1f7be9","644a3c522a4b60077da18217","644a3fbbdc577706e617bf5c","644a43f116cff60015341077","644a5a710734260047a5c1c0","644a5b4ee93098000e224bac","644a6270d93cb6001a427e3b","646f3e102383c2072331c68c","647991b6a0313a00129bd1fd","648788082dca3b006c55f1b7","648ae3732d238b18720af010","64e83253f6aaa5006b197201","64e832538f7a1b001eff2152","64e8325384659a000d0766e3","64edd6ce1724b40037e6fe1a","6522b6c8af0e280013431b5c","653823f82c69e10038a3e744","65389026e52461000dff867f","654374aead28ee079008c5dc","6568a3f3ba96d8003f9ea0fa","6568a56bc9523700546a9ef0","6568a5a787accf003276274f","6568a5aeae53490078c17a6c","6568a5b64b48fc00642149e6","6568a5d7dcc06700319d0e51","658d55099134010010d83873","65aced7eeae0c00064957786","65df3397c4edf7005ad80c7e","6668c34424783c005237566d","66694dbf87bcd400146ac4f9","668ff1aedcb1740059c46dbf","668ff71289edb900543cbec5","668ffaa3e1b39200315fc95f","668ffaf5bf6d8c007157b7c9","66a20c1a4afc0a004a9ae1d8","66acc94362fd700054bce0a7","66accb01de3aa400127c615f","66b46a6cdf2832002a032359","66cc86934be3ef0018b72d84","673d965f9a77b00010d6b174","676ad7a0cfc66e00119406e5","676c002f13121d0efc2c1414","67965682dc3afe0044f1e853","679659c59bb515808b5a1c5b","679c9509e0f3a50036b05069","67a9d8bc885ab100723ce638","67a9d9acceb469005ecf7f77","680214474bd36300611d90ad"],"project":"609181673ecbe5000fceea44","releaseDate":"2021-05-04T17:16:23.435Z","createdAt":"2021-05-04T17:16:23.435Z","__v":13,"updatedAt":"2025-06-21T11:38:59.830Z","pdfStatus":"complete","apiRegistries":[{"filename":"subscription.json","uuid":"pavp975ilhgaala8"},{"filename":"charges.json","uuid":"349ct10madzg8gg"},{"filename":"authorize.json","uuid":"19ijga10m79acoeg"},{"filename":"refunds.json","uuid":"dl82et2flwm5596msb"},{"filename":"tokens.json","uuid":"3i46r2hm9mkdhz6"},{"filename":"cards.json","uuid":"5eq312mbrnhuxf"},{"filename":"business.json","uuid":"1c8zg4gpm7vr3s3z"},{"filename":"wallet.json","uuid":"gh4j02tlgz22lcx"},{"filename":"bank-account.json","uuid":"rowbe8al4cryk27"},{"filename":"orders.json","uuid":"3q14mrl696q690"},{"filename":"products.json","uuid":"3qzzvi3tl47cu29u"},{"filename":"merchant.json","uuid":"13wqkvhm6un0ezg"},{"filename":"invoices.json","uuid":"4t7pm13h28ab"},{"filename":"fulfilment-provider.json","uuid":"3xilk24l47cva7j"},{"filename":"fulfilment-carrier.json","uuid":"9b42el47cvdg5"},{"filename":"carrier-aggregator.json","uuid":"3qzzvi1qcl47cvhog"},{"filename":"currency.json","uuid":"de0m3xl4dugc1p"},{"filename":"recurring.json","uuid":"9b416l47cvyto"},{"filename":"customers.json","uuid":"fi2jg2mc65fuxv"},{"filename":"users.json","uuid":"3qzzvi125l47cv6k8"},{"filename":"operator.json","uuid":"4wamrg9m6enzk9e"},{"filename":"developer.json","uuid":"55o0d20l47cw6g9"},{"filename":"dev-house.json","uuid":"3xilk3sl47cwei4"},{"filename":"files.json","uuid":"2lnj72plzkz7x76"},{"filename":"destinations.json","uuid":"4wama1um6euu8w3"},{"filename":"file-link.json","uuid":"9b41hl47cwqwd"},{"filename":"document.json","uuid":"18xlpjl47cwukq"},{"filename":"disputes.json","uuid":"15lscrgm6yzk5md"},{"filename":"entity.json","uuid":"12483h4rl47cup3h"},{"filename":"brand.json","uuid":"1dp2k221lgz1vs4c"},{"filename":"branch.json","uuid":"3qzzvikl47cuxrk"},{"filename":"token-apple-pay.json","uuid":"7co71om1p0df85"},{"filename":"tokens-saved-card.json","uuid":"a0rzzx1fvlm9mjg6jh"},{"filename":"lead.json","uuid":"87rx2rm49rik7x"},{"filename":"connect.json","uuid":"d1dm11m0113pp8"},{"filename":"payout.json","uuid":"w6ncd2ym059ijae"},{"filename":"statement.json","uuid":"p2ulzigigja"},{"filename":"lead-new.json","uuid":"75l1bm75sm3ja"},{"filename":"transfers.json","uuid":"4da2rm5qtchiu"},{"filename":"token-samsung-pay.json","uuid":"3v9bvivimm52n8bps"},{"filename":"bin.json","uuid":"aspw37m6kpipc4"},{"filename":"tokens-encrypted-card.json","uuid":"9kzom9mku6ag"}],"source":"readme"},"gitVersion":{"base":null,"display_name":null,"name":"1.0","release_stage":"beta","source":"readme","state":"current","updated_at":"2025-07-17T14:59:25.000Z","uri":"/branches/1.0","privacy":{"view":"default"}},"versions":{"total":2,"page":1,"per_page":100,"paging":{"next":null,"previous":null,"first":"/tappayments/api-next/v2/branches?page=1&per_page=100","last":null},"data":[{"base":null,"display_name":null,"name":"1.0","release_stage":"beta","source":"readme","state":"current","updated_at":"2025-07-17T14:59:25.323Z","uri":"/branches/1.0","privacy":{"view":"default"}},{"base":"1.0","display_name":"v1.1","name":"1.1","release_stage":"beta","source":"readme","state":"current","updated_at":"2025-06-16T13:38:18.010Z","uri":"/branches/1.1","privacy":{"view":"hidden"}}],"type":"version"}}">