Web Card SDK V2

Integrating Card SDK (V2) in Your Website

Introducing the TAP Card JavaScript library v2, an enhanced and streamlined solution tailored for crafting seamless payment experiences. This powerful tool simplifies the integration process, empowering you to effortlessly create secure payment flows within your web applications while ensuring the utmost protection of sensitive card information.

In this guide, we will walk you through the step-by-step process of integrating the latest TAP Card JavaScript library v2, showcasing its enhanced features such as simplified integration and efficient card tokenization.

Setup your Tap Account

If you haven't done so already, please register your business in Tap Payments in order to setup your own account and get the required public keys to start the Web Card SDK v2 integration.

Integrate Web Card SDK v2

In this section we will guide you on how to implement Web Card SDK v2 using Vanilla JS.

Here is a demo page for trying out our new Card SDK in beta.

The SDK will display the available payment methods and gather payment details from your customers.


Embed the SDK Script

In your HTML file, you have to embed the Card SDK v2 as per the below:

<script src="https://tap-sdks.b-cdn.net/card/1.0.2/index.js"></script>

Create a DOM element for Card SDK v2

Create a DOM container element within your checkout page to specify where the Card SDK will be displayed, assigning it an identifier.

<div id="card-sdk-id"></div>
🚧

We highly advise not to embed the Card SDK within an iframe element to avoid potential complications.

Configure the Card SDK

For this implementation to work, initialize essential functions and constants provided within the SDK. These functions and constants facilitate the seamless integration of the Web Card SDK into your web page.

Once the initialization is complete, you can proceed to configure the Web Card SDK to tailor the checkout flow according to your specific requirements and preferences. This involves creating a comprehensive configuration setup covering various aspects of the checkout process to enhance the user experience for your customers.

In this section we will list the parameters that can be used as well as completing the configuration of the SDK.

Parameters

Here you can see all the parameters that can be passed to the Card SDK configuration.

NameTypeR/ODescription
publicKeystringrequiredThe public Key provided by Tap
merchantobjectoptionalThe merchant object
merchant.idstringoptionalThe merchant's Tap id.
transactionobjectrequiredThe transaction object
transaction.amountnumberrequiredThe transaction amount.
transaction.currencystringrequiredThe transaction currency.
customerobjectoptionalThe customer object
customer.idstringoptionalThe Tap customer ID
customer.nameArrayoptionalThe customer name object
customer.name[index].langstringoptionalThe customer name language
customer.name[index].firststringoptionalThe customer first name
customer.name[index].laststringoptionalThe customer last name
customer.name[index].middlestringoptionalThe customer middle name
customer.name.nameOnCardstringoptionalThe customer name on card
customer.name.editablebooleanoptionalTo control the name editing
customer.contactobjectoptionalThe customer contact object
customer.contact.emailstringoptionalThe customer email
customer.contact.phoneobjectoptionalThe customer phone object
customer.contact.phone.countryCodestringoptionalThe customer phone country code
customer.contact.phone.numberstringoptionalThe customer phone number
acceptanceobjectoptionalThe acceptance object
acceptance.supportedBrandsstring[]optionalThe supported brands
acceptance.supportedCardsstring[]optional

The supported cards.

Ex:

  • "ALL", to accept both Debit and Credit cards.
  • ["DEBIT"], to accept only Debit cards.
  • ["CREDIT"], to accept only Credit cards.
fieldsobjectoptionalThe fields object
fields.cardHolderbooleanoptionalTo show/hide the card holder name
addonsobjectoptionalThe addons object
addons.loaderbooleanoptionalTo show/hide the loader on the card
addons.saveCardbooleanoptionalTo show/hide the save card option
addons.displayPaymentBrandsbooleanoptionalTo show/hide the payment brands section
interfaceobjectoptionalThe interface object
interface.localestringoptionalThe card locale
interface.themestringoptionalThe card theme
interface.edgesstringoptionalThe card edges
interface.directionstringoptionalThe card direction
onReadyfunctionoptionalCallback function runs when card becomes ready
onFocusfunctionoptionalCallback function runs when card is focused
onBinIdentificationfunctionoptionalCallback function runs when bin is identified
onValidInputfunctionoptionalCallback function runs when card inputs are valid
onInvalidInputfunctionoptionalCallback function runs when card inputs are invalid
onErrorfunctionoptionalCallback function runs when card has an error
onSuccessfunctionoptionalCallback function runs when card is successfully done

Card SDK Configuration

In this section we showcase the JavaScript code needed to configure the Web Card SDK v2.

Note that it is mandatory to pass the public key linked to your Tap account, which you can find by logging in to Tap's business dashboard, as well as specifying your Tap merchant ID.

const { renderTapCard, Theme, Currencies, Direction, Edges, Locale } = window.CardSDK
const { unmount } = renderTapCard('card-sdk-id', {
  publicKey: 'pk_test_...', // Tap's public key
  merchant: {
    id: 'merchant id'
  },
  transaction: {
    amount: 1,
    currency: Currencies.SAR
  },
  customer: {
    id: 'customer id', //Tap's customer ID with syntax cus_xxx
    name: [
      {
        lang: Locale.EN,
        first: 'Test',
        last: 'Test',
        middle: 'Test'
      }
    ],
    nameOnCard: 'Test',
    editable: true,
    contact: {
      email: '[email protected]',
      phone: {
        countryCode: '971',
        number: '52999944'
      }
    }
  },
  acceptance: {
    supportedBrands: ['AMERICAN_EXPRESS', 'VISA', 'MASTERCARD', 'MADA'], //Remove the ones that are NOT enabled on your Tap account
    supportedCards: "ALL" //To accept both Debit and Credit
  },
  fields: {
    cardHolder: true
  },
  addons: {
    displayPaymentBrands: true,
    loader: true,
    saveCard: true
  },
  interface: {
    locale: Locale.EN,
    theme: Theme.LIGHT,
    edges: Edges.CURVED,
    direction: Direction.LTR
  }
})

Add the Event Handlers

To keep the payers aware of what is happening during the payment process, make sure to add the callback functions in the SDK configuration. This will allow you to know the the SDK is ready to be used, if the inputs entered are valid or not, if there is any errors and in the success flow, it will display the tokenized card that the customer has submitted.

  onReady: () => console.log('onReady'),
  onFocus: () => console.log('onFocus'),
  onBinIdentification: (data) => console.log('onBinIdentification', data),
  onValidInput: (data) => console.log('onValidInputChange', data),
  onInvalidInput: (data) => console.log('onInvalidInput', data),
  onError: (data) => console.log('onError', data),
  onSuccess: (data) => console.log('onSuccess', data),
  onChangeSaveCardLater: (isSaveCardSelected) => console.log(isSaveCardSelected, " :onChangeSaveCardLater") // isSaveCardSelected:boolean

Full HTML Code Sample

In this section you will find the full code sample of the HTML and JavaScript codes that you can use to easily test the integration. Make sure to use the correct public key linked to your Tap account.

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<script src="https://tap-sdks.b-cdn.net/card/1.0.2/index.js"></script>

		<title>card demo</title>
	</head>
	<body>
		<div id="card-sdk-id"></div>
		<script>
			const { renderTapCard, Theme, Currencies, Direction, Edges, Locale } = window.CardSDK
			const { unmount } = renderTapCard('card-sdk-id', {
				publicKey: 'pk_test_...',
				merchant: {
					id: 'merchant id'
				},
				transaction: {
					amount: 1,
					currency: Currencies.SAR
				},
				customer: {
					id: 'customer id',
					name: [
						{
							lang: Locale.EN,
							first: 'Test',
							last: 'Test',
							middle: 'Test'
						}
					],
					nameOnCard: 'Test Test',
					editable: true,
					contact: {
						email: '[email protected]',
						phone: {
							countryCode: '20',
							number: '1000000000'
						}
					}
				},
				acceptance: {
					supportedBrands: ['AMERICAN_EXPRESS', 'VISA', 'MASTERCARD', 'MADA'],
					supportedCards: "ALL"
				},
				fields: {
					cardHolder: true
				},
				addons: {
					displayPaymentBrands: true,
					loader: true,
					saveCard: true
				},
				interface: {
					locale: Locale.EN,
					theme: Theme.LIGHT,
					edges: Edges.CURVED,
					direction: Direction.LTR
				},
				onReady: () => console.log('onReady'),
				onFocus: () => console.log('onFocus'),
				onBinIdentification: (data) => console.log('onBinIdentification', data),
				onValidInput: (data) => console.log('onValidInputChange', data),
				onInvalidInput: (data) => console.log('onInvalidInput', data),
           onChangeSaveCardLater: (isSaveCardSelected) => console.log(isSaveCardSelected, " :onChangeSaveCardLater"), // isSaveCardSelected:boolean
				onError: (data) => console.log('onError', data),
				onSuccess: (data) => console.log('onSuccess', data)
			})
		</script>
	</body>
</html>

Get the Tap Token

After the Web Card SDK is fully configured and initialized, you need to create a submit button in order to submit the payment form. In order to tokenize the card added, you have to also import the tokenize method that is available within the SDK to complete this step.

In this section we will share the methods can be used within the SDK as well as calling the tokenize method to convert the raw card details to tokens.

Card Methods

To leverage the full functionality of the SDK, it's essential to comprehend the array of methods at your disposal. Here, we'll outline each method alongside its purpose, followed by guidance on incorporating them into your codebase.

Methods List

NameDescription
resetCardInputsReset the card inputs
saveCardSave the card data
tokenizeTokenize the card date
updateCardConfigurationUpdate the card configuration. For example updating the currency to show the supported payment methods ex: transaction: {currency: "USD" } will shows only the payment methods that supports USD currency
updateThemeUpdate the card theme by sending in the parameter "dark" or "light"
loadSavedCardLoad the saved card by card id

Import Methods in your Code

You can import all the required methods from the SDK as follows:

const {
  tokenize,
  resetCardInputs,
  saveCard,
  updateCardConfiguration,
  updateTheme,
  loadSavedCard } = window.CardSDK

Tokenize the Card

To submit the card details that were added in the Web Card v2, you need to create a button, and on this button you need to add the onclick event and call the tokenize method from the SDK to the Tap token.

You can either call the tokenize method in the JavaScript code or directly in the onclick event of the button, in the HTML file, as per the below.

<button id="card-v2" onclick="window.CardSDK.tokenize()">Submit</button>

Tokenize Result

In the onSucess callback you will receive the Tap token that you need pass to the source.id of the create a charge API to complete the payment with the added card.

Here is a sample of the token response that you will receive

{
    "id": "tok_xuCp45241437ANEj31F4P426",
    "status": "ACTIVE",
    "created": 1714747065426,
    "object": "token",
    "live_mode": false,
    "type": "CARD",
    "purpose": "CHARGE",
    "used": false,
    "card": {
        "id": "card_cfeU45241437Saus3j947433",
        "object": "card",
        "on_file": false,
        "address": {},
        "funding": "CREDIT",
        "fingerprint": "B1XZy88SUJkZ4%2FP%2Bn16CZO7k2l34nUHNoephQ0T94hA%3D",
        "brand": "VISA",
        "scheme": "VISA",
        "category": "",
        "exp_month": 1,
        "exp_year": 39,
        "last_four": "1111",
        "first_six": "411111",
        "first_eight": "41111111",
        "name": "Test"
    },
    "payment": {
        "id": "card_cfeU45241437Saus3j947433",
        "on_file": false,
        "card_data": {
            "exp_month": 1,
            "exp_year": 39,
            "last_four": "1111",
            "first_six": "411111",
            "first_eight": "41111111",
            "address": {}
        },
        "fingerprint": "B1XZy88SUJkZ4%2FP%2Bn16CZO7k2l34nUHNoephQ0T94hA%3D",
        "scheme": "VISA",
        "category": ""
    },
    "merchant": {
        "id": "12345"
    }
}

Before You Go Live

🚧

To work on live mode you have to use the API key related to the hosting domain.

To register the hosting domain you have to contact [email protected] to register your domain. After the integration team confirms the domain is registred then you can find the needed Keys added in your account.
Note that the API key for the registred domain can work with all the subdomains related to the registred domain.


\n```\n\n## Create a DOM element for Card SDK v2\n\nCreate a DOM container element within your checkout page to specify where the Card SDK will be displayed, assigning it an identifier.\n\n```php HTML\n
\n```\n\n> 🚧 We highly advise not to embed the Card SDK within an iframe element to avoid potential complications.\n\n## Configure the Card SDK\n\nFor this implementation to work, initialize essential functions and constants provided within the SDK. These functions and constants facilitate the seamless integration of the Web Card SDK into your web page.\n\nOnce the initialization is complete, you can proceed to configure the Web Card SDK to tailor the checkout flow according to your specific requirements and preferences. This involves creating a comprehensive configuration setup covering various aspects of the checkout process to enhance the user experience for your customers.\n\nIn this section we will list the parameters that can be used as well as completing the configuration of the SDK.\n\n### Parameters\n\nHere you can see all the parameters that can be passed to the Card SDK configuration.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeR/ODescription
publicKeystringrequiredThe public Key provided by Tap
merchantobjectoptionalThe merchant object
merchant.idstringoptionalThe merchant's Tap id.
transactionobjectrequiredThe transaction object
transaction.amountnumberrequiredThe transaction amount.
transaction.currencystringrequiredThe transaction currency.
customerobjectoptionalThe customer object
customer.idstringoptionalThe Tap customer ID
customer.nameArrayoptionalThe customer name object
customer.name[index].langstringoptionalThe customer name language
customer.name[index].firststringoptionalThe customer first name
customer.name[index].laststringoptionalThe customer last name
customer.name[index].middlestringoptionalThe customer middle name
customer.name.nameOnCardstringoptionalThe customer name on card
customer.name.editablebooleanoptionalTo control the name editing
customer.contactobjectoptionalThe customer contact object
customer.contact.emailstringoptionalThe customer email
customer.contact.phoneobjectoptionalThe customer phone object
customer.contact.phone.countryCodestringoptionalThe customer phone country code
customer.contact.phone.numberstringoptionalThe customer phone number
acceptanceobjectoptionalThe acceptance object
acceptance.supportedBrandsstring[]optionalThe supported brands
acceptance.supportedCardsstring[]optional\nThe supported cards.\n\nEx:\n\n* \"ALL\", to accept both Debit and Credit cards.\n* [\"DEBIT\"], to accept only Debit cards.\n* [\"CREDIT\"], to accept only Credit cards.\n\n
fieldsobjectoptionalThe fields object
fields.cardHolderbooleanoptionalTo show/hide the card holder name
addonsobjectoptionalThe addons object
addons.loaderbooleanoptionalTo show/hide the loader on the card
addons.saveCardbooleanoptionalTo show/hide the save card option
addons.displayPaymentBrandsbooleanoptionalTo show/hide the payment brands section
interfaceobjectoptionalThe interface object
interface.localestringoptionalThe card locale
interface.themestringoptionalThe card theme
interface.edgesstringoptionalThe card edges
interface.directionstringoptionalThe card direction
onReadyfunctionoptionalCallback function runs when card becomes ready
onFocusfunctionoptionalCallback function runs when card is focused
onBinIdentificationfunctionoptionalCallback function runs when bin is identified
onValidInputfunctionoptionalCallback function runs when card inputs are valid
onInvalidInputfunctionoptionalCallback function runs when card inputs are invalid
onErrorfunctionoptionalCallback function runs when card has an error
onSuccessfunctionoptionalCallback function runs when card is successfully done
\n\n### Card SDK Configuration\n\nIn this section we showcase the JavaScript code needed to configure the Web Card SDK v2.\n\nNote that it is mandatory to pass the public key linked to your Tap account, which you can find by logging in to Tap's [business dashboard](https://businesses.tap.company/default.aspx), as well as specifying your Tap merchant ID.\n\n```json JavaScript\nconst { renderTapCard, Theme, Currencies, Direction, Edges, Locale } = window.CardSDK\nconst { unmount } = renderTapCard('card-sdk-id', {\n publicKey: 'pk_test_...', // Tap's public key\n merchant: {\n id: 'merchant id'\n },\n transaction: {\n amount: 1,\n currency: Currencies.SAR\n },\n customer: {\n id: 'customer id', //Tap's customer ID with syntax cus_xxx\n name: [\n {\n lang: Locale.EN,\n first: 'Test',\n last: 'Test',\n middle: 'Test'\n }\n ],\n nameOnCard: 'Test',\n editable: true,\n contact: {\n email: 'test@gmail.com',\n phone: {\n countryCode: '971',\n number: '52999944'\n }\n }\n },\n acceptance: {\n supportedBrands: ['AMERICAN_EXPRESS', 'VISA', 'MASTERCARD', 'MADA'], //Remove the ones that are NOT enabled on your Tap account\n supportedCards: \"ALL\" //To accept both Debit and Credit\n },\n fields: {\n cardHolder: true\n },\n addons: {\n displayPaymentBrands: true,\n loader: true,\n saveCard: true\n },\n interface: {\n locale: Locale.EN,\n theme: Theme.LIGHT,\n edges: Edges.CURVED,\n direction: Direction.LTR\n }\n})\n```\n\n### Add the Event Handlers\n\nTo keep the payers aware of what is happening during the payment process, make sure to add the callback functions in the SDK configuration. This will allow you to know the the SDK is ready to be used, if the inputs entered are valid or not, if there is any errors and in the success flow, it will display the tokenized card that the customer has submitted.\n\n```json JavaScript\n onReady: () => console.log('onReady'),\n onFocus: () => console.log('onFocus'),\n onBinIdentification: (data) => console.log('onBinIdentification', data),\n onValidInput: (data) => console.log('onValidInputChange', data),\n onInvalidInput: (data) => console.log('onInvalidInput', data),\n onError: (data) => console.log('onError', data),\n onSuccess: (data) => console.log('onSuccess', data),\n onChangeSaveCardLater: (isSaveCardSelected) => console.log(isSaveCardSelected, \" :onChangeSaveCardLater\") // isSaveCardSelected:boolean\n```\n\n## Full HTML Code Sample\n\nIn this section you will find the full code sample of the HTML and JavaScript codes that you can use to easily test the integration. Make sure to use the correct public key linked to your Tap account.\n\n```json HTML\n\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\n\t\tcard demo\n\t\n\t\n\t\t
\n\t\t\n\t\n\n```\n\n# Get the Tap Token\n\nAfter the Web Card SDK is fully configured and initialized, you need to create a submit button in order to submit the payment form. In order to tokenize the card added, you have to also import the `tokenize` method that is available within the SDK to complete this step.\n\nIn this section we will share the methods can be used within the SDK as well as calling the tokenize method to convert the raw card details to tokens.\n\n## Card Methods\n\nTo leverage the full functionality of the SDK, it's essential to comprehend the array of methods at your disposal. Here, we'll outline each method alongside its purpose, followed by guidance on incorporating them into your codebase.\n\n### Methods List\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameDescription
resetCardInputsReset the card inputs
saveCardSave the card data
tokenizeTokenize the card date
updateCardConfigurationUpdate the card configuration. For example updating the currency to show the supported payment methods ex: transaction: \\{currency: \"USD\" } will shows only the payment methods that supports USD currency
updateThemeUpdate the card theme by sending in the parameter \"dark\" or \"light\"
loadSavedCardLoad the saved card by card id
\n\n### Import Methods in your Code\n\nYou can import all the required methods from the SDK as follows:\n\n```php JavaScript\nconst {\n tokenize,\n resetCardInputs,\n saveCard,\n updateCardConfiguration,\n updateTheme,\n loadSavedCard } = window.CardSDK\n```\n\n## Tokenize the Card\n\nTo submit the card details that were added in the Web Card v2, you need to create a button, and on this button you need to add the `onclick` event and call the `tokenize` method from the SDK to the Tap token.\n\nYou can either call the `tokenize` method in the JavaScript code or directly in the `onclick` event of the button, in the HTML file, as per the below.\n\n```Text HTML\n\n```\n\n## Tokenize Result\n\nIn the [onSucess](https://developers.tap.company/docs/web-v2#add-the-event-handlers) callback you will receive the Tap token that you need pass to the `source.id` of the [create a charge API](https://developers.tap.company/reference/create-a-charge) to complete the payment with the added card.\n\nHere is a sample of the token response that you will receive\n\n```json\n{\n \"id\": \"tok_xuCp45241437ANEj31F4P426\",\n \"status\": \"ACTIVE\",\n \"created\": 1714747065426,\n \"object\": \"token\",\n \"live_mode\": false,\n \"type\": \"CARD\",\n \"purpose\": \"CHARGE\",\n \"used\": false,\n \"card\": {\n \"id\": \"card_cfeU45241437Saus3j947433\",\n \"object\": \"card\",\n \"on_file\": false,\n \"address\": {},\n \"funding\": \"CREDIT\",\n \"fingerprint\": \"B1XZy88SUJkZ4%2FP%2Bn16CZO7k2l34nUHNoephQ0T94hA%3D\",\n \"brand\": \"VISA\",\n \"scheme\": \"VISA\",\n \"category\": \"\",\n \"exp_month\": 1,\n \"exp_year\": 39,\n \"last_four\": \"1111\",\n \"first_six\": \"411111\",\n \"first_eight\": \"41111111\",\n \"name\": \"Test\"\n },\n \"payment\": {\n \"id\": \"card_cfeU45241437Saus3j947433\",\n \"on_file\": false,\n \"card_data\": {\n \"exp_month\": 1,\n \"exp_year\": 39,\n \"last_four\": \"1111\",\n \"first_six\": \"411111\",\n \"first_eight\": \"41111111\",\n \"address\": {}\n },\n \"fingerprint\": \"B1XZy88SUJkZ4%2FP%2Bn16CZO7k2l34nUHNoephQ0T94hA%3D\",\n \"scheme\": \"VISA\",\n \"category\": \"\"\n },\n \"merchant\": {\n \"id\": \"12345\"\n }\n}\n```\n\n
\n\n## Before You Go Live\n\n> 🚧 To work on live mode you have to use the API key related to the hosting domain.\n>\n> To register the hosting domain you have to contact [integrations@tap.company](mailto:integrations@tap.company) to register your domain. After the integration team confirms the domain is registred then you can find the needed Keys added in your account.\\\n> Note that the API key for the registred domain can work with all the subdomains related to the registred domain.","excerpt":"Integrating Card SDK (V2) in Your Website","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-v2","state":"current","title":"Web Card SDK V2","type":"basic","href":{"dash":"https://dash.readme.com/project/tappayments/v1.0/docs/card-sdk-web-v2","hub":"https://developers.tap.company/docs/card-sdk-web-v2"},"links":{"project":"/projects/me"},"project":{"name":"Tap API Docs 1.0","subdomain":"tappayments","uri":"/projects/me"},"renderable":{"status":true},"updated_at":"2025-06-16T12:59:56.974Z","uri":"/branches/1.0/guides/card-sdk-web-v2"},"meta":{"baseUrl":"/","description":"Integrating Card SDK (V2) in Your Website","hidden":false,"image":[],"metaTitle":"Web Card SDK V2","robots":"index","slug":"card-sdk-web-v2","title":"Web Card SDK V2","type":"docs"},"rdmd":{"baseUrl":"/","body":"Introducing the TAP Card JavaScript library v2, an enhanced and streamlined solution tailored for crafting seamless payment experiences. This powerful tool simplifies the integration process, empowering you to effortlessly create secure payment flows within your web applications while ensuring the utmost protection of sensitive card information.\n\nIn this guide, we will walk you through the step-by-step process of integrating the latest TAP Card JavaScript library v2, showcasing its enhanced features such as simplified integration and efficient card tokenization.\n\n# Setup your Tap Account\n\nIf you haven't done so already, please [register](https://register.tap.company) your business in Tap Payments in order to setup your own account and get the required public keys to start the Web Card SDK v2 integration.\n\n# Integrate Web Card SDK v2\n\nIn this section we will guide you on how to implement Web Card SDK v2 using Vanilla JS.\n\nHere is a [demo](https://demo.beta.tap.company/v2/sdk/card) page for trying out our new Card SDK in beta.\n\nThe SDK will display the available payment methods and gather payment details from your customers.\n\n\n\n
\n\n## Embed the SDK Script\n\nIn your HTML file, you have to embed the Card SDK v2 as per the below:\n\n```php HTML\n\n```\n\n## Create a DOM element for Card SDK v2\n\nCreate a DOM container element within your checkout page to specify where the Card SDK will be displayed, assigning it an identifier.\n\n```php HTML\n
\n```\n\n> 🚧 We highly advise not to embed the Card SDK within an iframe element to avoid potential complications.\n\n## Configure the Card SDK\n\nFor this implementation to work, initialize essential functions and constants provided within the SDK. These functions and constants facilitate the seamless integration of the Web Card SDK into your web page.\n\nOnce the initialization is complete, you can proceed to configure the Web Card SDK to tailor the checkout flow according to your specific requirements and preferences. This involves creating a comprehensive configuration setup covering various aspects of the checkout process to enhance the user experience for your customers.\n\nIn this section we will list the parameters that can be used as well as completing the configuration of the SDK.\n\n### Parameters\n\nHere you can see all the parameters that can be passed to the Card SDK configuration.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameTypeR/ODescription
publicKeystringrequiredThe public Key provided by Tap
merchantobjectoptionalThe merchant object
merchant.idstringoptionalThe merchant's Tap id.
transactionobjectrequiredThe transaction object
transaction.amountnumberrequiredThe transaction amount.
transaction.currencystringrequiredThe transaction currency.
customerobjectoptionalThe customer object
customer.idstringoptionalThe Tap customer ID
customer.nameArrayoptionalThe customer name object
customer.name[index].langstringoptionalThe customer name language
customer.name[index].firststringoptionalThe customer first name
customer.name[index].laststringoptionalThe customer last name
customer.name[index].middlestringoptionalThe customer middle name
customer.name.nameOnCardstringoptionalThe customer name on card
customer.name.editablebooleanoptionalTo control the name editing
customer.contactobjectoptionalThe customer contact object
customer.contact.emailstringoptionalThe customer email
customer.contact.phoneobjectoptionalThe customer phone object
customer.contact.phone.countryCodestringoptionalThe customer phone country code
customer.contact.phone.numberstringoptionalThe customer phone number
acceptanceobjectoptionalThe acceptance object
acceptance.supportedBrandsstring[]optionalThe supported brands
acceptance.supportedCardsstring[]optional\nThe supported cards.\n\nEx:\n\n* \"ALL\", to accept both Debit and Credit cards.\n* [\"DEBIT\"], to accept only Debit cards.\n* [\"CREDIT\"], to accept only Credit cards.\n\n
fieldsobjectoptionalThe fields object
fields.cardHolderbooleanoptionalTo show/hide the card holder name
addonsobjectoptionalThe addons object
addons.loaderbooleanoptionalTo show/hide the loader on the card
addons.saveCardbooleanoptionalTo show/hide the save card option
addons.displayPaymentBrandsbooleanoptionalTo show/hide the payment brands section
interfaceobjectoptionalThe interface object
interface.localestringoptionalThe card locale
interface.themestringoptionalThe card theme
interface.edgesstringoptionalThe card edges
interface.directionstringoptionalThe card direction
onReadyfunctionoptionalCallback function runs when card becomes ready
onFocusfunctionoptionalCallback function runs when card is focused
onBinIdentificationfunctionoptionalCallback function runs when bin is identified
onValidInputfunctionoptionalCallback function runs when card inputs are valid
onInvalidInputfunctionoptionalCallback function runs when card inputs are invalid
onErrorfunctionoptionalCallback function runs when card has an error
onSuccessfunctionoptionalCallback function runs when card is successfully done
\n\n### Card SDK Configuration\n\nIn this section we showcase the JavaScript code needed to configure the Web Card SDK v2.\n\nNote that it is mandatory to pass the public key linked to your Tap account, which you can find by logging in to Tap's [business dashboard](https://businesses.tap.company/default.aspx), as well as specifying your Tap merchant ID.\n\n```json JavaScript\nconst { renderTapCard, Theme, Currencies, Direction, Edges, Locale } = window.CardSDK\nconst { unmount } = renderTapCard('card-sdk-id', {\n publicKey: 'pk_test_...', // Tap's public key\n merchant: {\n id: 'merchant id'\n },\n transaction: {\n amount: 1,\n currency: Currencies.SAR\n },\n customer: {\n id: 'customer id', //Tap's customer ID with syntax cus_xxx\n name: [\n {\n lang: Locale.EN,\n first: 'Test',\n last: 'Test',\n middle: 'Test'\n }\n ],\n nameOnCard: 'Test',\n editable: true,\n contact: {\n email: 'test@gmail.com',\n phone: {\n countryCode: '971',\n number: '52999944'\n }\n }\n },\n acceptance: {\n supportedBrands: ['AMERICAN_EXPRESS', 'VISA', 'MASTERCARD', 'MADA'], //Remove the ones that are NOT enabled on your Tap account\n supportedCards: \"ALL\" //To accept both Debit and Credit\n },\n fields: {\n cardHolder: true\n },\n addons: {\n displayPaymentBrands: true,\n loader: true,\n saveCard: true\n },\n interface: {\n locale: Locale.EN,\n theme: Theme.LIGHT,\n edges: Edges.CURVED,\n direction: Direction.LTR\n }\n})\n```\n\n### Add the Event Handlers\n\nTo keep the payers aware of what is happening during the payment process, make sure to add the callback functions in the SDK configuration. This will allow you to know the the SDK is ready to be used, if the inputs entered are valid or not, if there is any errors and in the success flow, it will display the tokenized card that the customer has submitted.\n\n```json JavaScript\n onReady: () => console.log('onReady'),\n onFocus: () => console.log('onFocus'),\n onBinIdentification: (data) => console.log('onBinIdentification', data),\n onValidInput: (data) => console.log('onValidInputChange', data),\n onInvalidInput: (data) => console.log('onInvalidInput', data),\n onError: (data) => console.log('onError', data),\n onSuccess: (data) => console.log('onSuccess', data),\n onChangeSaveCardLater: (isSaveCardSelected) => console.log(isSaveCardSelected, \" :onChangeSaveCardLater\") // isSaveCardSelected:boolean\n```\n\n## Full HTML Code Sample\n\nIn this section you will find the full code sample of the HTML and JavaScript codes that you can use to easily test the integration. Make sure to use the correct public key linked to your Tap account.\n\n```json HTML\n\n\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\n\t\tcard demo\n\t\n\t\n\t\t
\n\t\t\n\t\n\n```\n\n# Get the Tap Token\n\nAfter the Web Card SDK is fully configured and initialized, you need to create a submit button in order to submit the payment form. In order to tokenize the card added, you have to also import the `tokenize` method that is available within the SDK to complete this step.\n\nIn this section we will share the methods can be used within the SDK as well as calling the tokenize method to convert the raw card details to tokens.\n\n## Card Methods\n\nTo leverage the full functionality of the SDK, it's essential to comprehend the array of methods at your disposal. Here, we'll outline each method alongside its purpose, followed by guidance on incorporating them into your codebase.\n\n### Methods List\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameDescription
resetCardInputsReset the card inputs
saveCardSave the card data
tokenizeTokenize the card date
updateCardConfigurationUpdate the card configuration. For example updating the currency to show the supported payment methods ex: transaction: \\{currency: \"USD\" } will shows only the payment methods that supports USD currency
updateThemeUpdate the card theme by sending in the parameter \"dark\" or \"light\"
loadSavedCardLoad the saved card by card id
\n\n### Import Methods in your Code\n\nYou can import all the required methods from the SDK as follows:\n\n```php JavaScript\nconst {\n tokenize,\n resetCardInputs,\n saveCard,\n updateCardConfiguration,\n updateTheme,\n loadSavedCard } = window.CardSDK\n```\n\n## Tokenize the Card\n\nTo submit the card details that were added in the Web Card v2, you need to create a button, and on this button you need to add the `onclick` event and call the `tokenize` method from the SDK to the Tap token.\n\nYou can either call the `tokenize` method in the JavaScript code or directly in the `onclick` event of the button, in the HTML file, as per the below.\n\n```Text HTML\n\n```\n\n## Tokenize Result\n\nIn the [onSucess](https://developers.tap.company/docs/web-v2#add-the-event-handlers) callback you will receive the Tap token that you need pass to the `source.id` of the [create a charge API](https://developers.tap.company/reference/create-a-charge) to complete the payment with the added card.\n\nHere is a sample of the token response that you will receive\n\n```json\n{\n \"id\": \"tok_xuCp45241437ANEj31F4P426\",\n \"status\": \"ACTIVE\",\n \"created\": 1714747065426,\n \"object\": \"token\",\n \"live_mode\": false,\n \"type\": \"CARD\",\n \"purpose\": \"CHARGE\",\n \"used\": false,\n \"card\": {\n \"id\": \"card_cfeU45241437Saus3j947433\",\n \"object\": \"card\",\n \"on_file\": false,\n \"address\": {},\n \"funding\": \"CREDIT\",\n \"fingerprint\": \"B1XZy88SUJkZ4%2FP%2Bn16CZO7k2l34nUHNoephQ0T94hA%3D\",\n \"brand\": \"VISA\",\n \"scheme\": \"VISA\",\n \"category\": \"\",\n \"exp_month\": 1,\n \"exp_year\": 39,\n \"last_four\": \"1111\",\n \"first_six\": \"411111\",\n \"first_eight\": \"41111111\",\n \"name\": \"Test\"\n },\n \"payment\": {\n \"id\": \"card_cfeU45241437Saus3j947433\",\n \"on_file\": false,\n \"card_data\": {\n \"exp_month\": 1,\n \"exp_year\": 39,\n \"last_four\": \"1111\",\n \"first_six\": \"411111\",\n \"first_eight\": \"41111111\",\n \"address\": {}\n },\n \"fingerprint\": \"B1XZy88SUJkZ4%2FP%2Bn16CZO7k2l34nUHNoephQ0T94hA%3D\",\n \"scheme\": \"VISA\",\n \"category\": \"\"\n },\n \"merchant\": {\n \"id\": \"12345\"\n }\n}\n```\n\n
\n\n## Before You Go Live\n\n> 🚧 To work on live mode you have to use the API key related to the hosting domain.\n>\n> To register the hosting domain you have to contact [integrations@tap.company](mailto:integrations@tap.company) to register your domain. After the integration team confirms the domain is registred then you can find the needed Keys added in your account.\\\n> Note that the API key for the registred domain can work with all the subdomains related to the registred domain.","dehydrated":{"toc":"","body":"

Introducing the TAP Card JavaScript library v2, an enhanced and streamlined solution tailored for crafting seamless payment experiences. This powerful tool simplifies the integration process, empowering you to effortlessly create secure payment flows within your web applications while ensuring the utmost protection of sensitive card information.

\n

In this guide, we will walk you through the step-by-step process of integrating the latest TAP Card JavaScript library v2, showcasing its enhanced features such as simplified integration and efficient card tokenization.

\n

Setup your Tap Account

\n

If you haven't done so already, please register your business in Tap Payments in order to setup your own account and get the required public keys to start the Web Card SDK v2 integration.

\n

Integrate Web Card SDK v2

\n

In this section we will guide you on how to implement Web Card SDK v2 using Vanilla JS.

\n

Here is a demo page for trying out our new Card SDK in beta.

\n

The SDK will display the available payment methods and gather payment details from your customers.

\n\"\"\n
\n

Embed the SDK Script

\n

In your HTML file, you have to embed the Card SDK v2 as per the below:

\n
<script src="https://tap-sdks.b-cdn.net/card/1.0.2/index.js"></script>
\n

Create a DOM element for Card SDK v2

\n

Create a DOM container element within your checkout page to specify where the Card SDK will be displayed, assigning it an identifier.

\n
<div id="card-sdk-id"></div>
\n
🚧

We highly advise not to embed the Card SDK within an iframe element to avoid potential complications.

\n

Configure the Card SDK

\n

For this implementation to work, initialize essential functions and constants provided within the SDK. These functions and constants facilitate the seamless integration of the Web Card SDK into your web page.

\n

Once the initialization is complete, you can proceed to configure the Web Card SDK to tailor the checkout flow according to your specific requirements and preferences. This involves creating a comprehensive configuration setup covering various aspects of the checkout process to enhance the user experience for your customers.

\n

In this section we will list the parameters that can be used as well as completing the configuration of the SDK.

\n

Parameters

\n

Here you can see all the parameters that can be passed to the Card SDK configuration.

\n
NameTypeR/ODescription
publicKeystringrequiredThe public Key provided by Tap
merchantobjectoptionalThe merchant object
merchant.idstringoptionalThe merchant's Tap id.
transactionobjectrequiredThe transaction object
transaction.amountnumberrequiredThe transaction amount.
transaction.currencystringrequiredThe transaction currency.
customerobjectoptionalThe customer object
customer.idstringoptionalThe Tap customer ID
customer.nameArrayoptionalThe customer name object
customer.name[index].langstringoptionalThe customer name language
customer.name[index].firststringoptionalThe customer first name
customer.name[index].laststringoptionalThe customer last name
customer.name[index].middlestringoptionalThe customer middle name
customer.name.nameOnCardstringoptionalThe customer name on card
customer.name.editablebooleanoptionalTo control the name editing
customer.contactobjectoptionalThe customer contact object
customer.contact.emailstringoptionalThe customer email
customer.contact.phoneobjectoptionalThe customer phone object
customer.contact.phone.countryCodestringoptionalThe customer phone country code
customer.contact.phone.numberstringoptionalThe customer phone number
acceptanceobjectoptionalThe acceptance object
acceptance.supportedBrandsstring[]optionalThe supported brands
acceptance.supportedCardsstring[]optional

The supported cards.

Ex:

    \n
  • "ALL", to accept both Debit and Credit cards.
  • \n
  • ["DEBIT"], to accept only Debit cards.
  • \n
  • ["CREDIT"], to accept only Credit cards.
  • \n
fieldsobjectoptionalThe fields object
fields.cardHolderbooleanoptionalTo show/hide the card holder name
addonsobjectoptionalThe addons object
addons.loaderbooleanoptionalTo show/hide the loader on the card
addons.saveCardbooleanoptionalTo show/hide the save card option
addons.displayPaymentBrandsbooleanoptionalTo show/hide the payment brands section
interfaceobjectoptionalThe interface object
interface.localestringoptionalThe card locale
interface.themestringoptionalThe card theme
interface.edgesstringoptionalThe card edges
interface.directionstringoptionalThe card direction
onReadyfunctionoptionalCallback function runs when card becomes ready
onFocusfunctionoptionalCallback function runs when card is focused
onBinIdentificationfunctionoptionalCallback function runs when bin is identified
onValidInputfunctionoptionalCallback function runs when card inputs are valid
onInvalidInputfunctionoptionalCallback function runs when card inputs are invalid
onErrorfunctionoptionalCallback function runs when card has an error
onSuccessfunctionoptionalCallback function runs when card is successfully done
\n

Card SDK Configuration

\n

In this section we showcase the JavaScript code needed to configure the Web Card SDK v2.

\n

Note that it is mandatory to pass the public key linked to your Tap account, which you can find by logging in to Tap's business dashboard, as well as specifying your Tap merchant ID.

\n
const { renderTapCard, Theme, Currencies, Direction, Edges, Locale } = window.CardSDK\nconst { unmount } = renderTapCard('card-sdk-id', {\n  publicKey: 'pk_test_...', // Tap's public key\n  merchant: {\n    id: 'merchant id'\n  },\n  transaction: {\n    amount: 1,\n    currency: Currencies.SAR\n  },\n  customer: {\n    id: 'customer id', //Tap's customer ID with syntax cus_xxx\n    name: [\n      {\n        lang: Locale.EN,\n        first: 'Test',\n        last: 'Test',\n        middle: 'Test'\n      }\n    ],\n    nameOnCard: 'Test',\n    editable: true,\n    contact: {\n      email: 'test@gmail.com',\n      phone: {\n        countryCode: '971',\n        number: '52999944'\n      }\n    }\n  },\n  acceptance: {\n    supportedBrands: ['AMERICAN_EXPRESS', 'VISA', 'MASTERCARD', 'MADA'], //Remove the ones that are NOT enabled on your Tap account\n    supportedCards: "ALL" //To accept both Debit and Credit\n  },\n  fields: {\n    cardHolder: true\n  },\n  addons: {\n    displayPaymentBrands: true,\n    loader: true,\n    saveCard: true\n  },\n  interface: {\n    locale: Locale.EN,\n    theme: Theme.LIGHT,\n    edges: Edges.CURVED,\n    direction: Direction.LTR\n  }\n})
\n

Add the Event Handlers

\n

To keep the payers aware of what is happening during the payment process, make sure to add the callback functions in the SDK configuration. This will allow you to know the the SDK is ready to be used, if the inputs entered are valid or not, if there is any errors and in the success flow, it will display the tokenized card that the customer has submitted.

\n
  onReady: () => console.log('onReady'),\n  onFocus: () => console.log('onFocus'),\n  onBinIdentification: (data) => console.log('onBinIdentification', data),\n  onValidInput: (data) => console.log('onValidInputChange', data),\n  onInvalidInput: (data) => console.log('onInvalidInput', data),\n  onError: (data) => console.log('onError', data),\n  onSuccess: (data) => console.log('onSuccess', data),\n  onChangeSaveCardLater: (isSaveCardSelected) => console.log(isSaveCardSelected, " :onChangeSaveCardLater") // isSaveCardSelected:boolean
\n

Full HTML Code Sample

\n

In this section you will find the full code sample of the HTML and JavaScript codes that you can use to easily test the integration. Make sure to use the correct public key linked to your Tap account.

\n
<!DOCTYPE html>\n<html lang="en">\n\t<head>\n\t\t<meta charset="UTF-8" />\n\t\t<meta http-equiv="X-UA-Compatible" content="IE=edge" />\n\t\t<meta name="viewport" content="width=device-width, initial-scale=1.0" />\n\t\t<script src="https://tap-sdks.b-cdn.net/card/1.0.2/index.js"></script>\n\n\t\t<title>card demo</title>\n\t</head>\n\t<body>\n\t\t<div id="card-sdk-id"></div>\n\t\t<script>\n\t\t\tconst { renderTapCard, Theme, Currencies, Direction, Edges, Locale } = window.CardSDK\n\t\t\tconst { unmount } = renderTapCard('card-sdk-id', {\n\t\t\t\tpublicKey: 'pk_test_...',\n\t\t\t\tmerchant: {\n\t\t\t\t\tid: 'merchant id'\n\t\t\t\t},\n\t\t\t\ttransaction: {\n\t\t\t\t\tamount: 1,\n\t\t\t\t\tcurrency: Currencies.SAR\n\t\t\t\t},\n\t\t\t\tcustomer: {\n\t\t\t\t\tid: 'customer id',\n\t\t\t\t\tname: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlang: Locale.EN,\n\t\t\t\t\t\t\tfirst: 'Test',\n\t\t\t\t\t\t\tlast: 'Test',\n\t\t\t\t\t\t\tmiddle: 'Test'\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\tnameOnCard: 'Test Test',\n\t\t\t\t\teditable: true,\n\t\t\t\t\tcontact: {\n\t\t\t\t\t\temail: 'test@gmail.com',\n\t\t\t\t\t\tphone: {\n\t\t\t\t\t\t\tcountryCode: '20',\n\t\t\t\t\t\t\tnumber: '1000000000'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tacceptance: {\n\t\t\t\t\tsupportedBrands: ['AMERICAN_EXPRESS', 'VISA', 'MASTERCARD', 'MADA'],\n\t\t\t\t\tsupportedCards: "ALL"\n\t\t\t\t},\n\t\t\t\tfields: {\n\t\t\t\t\tcardHolder: true\n\t\t\t\t},\n\t\t\t\taddons: {\n\t\t\t\t\tdisplayPaymentBrands: true,\n\t\t\t\t\tloader: true,\n\t\t\t\t\tsaveCard: true\n\t\t\t\t},\n\t\t\t\tinterface: {\n\t\t\t\t\tlocale: Locale.EN,\n\t\t\t\t\ttheme: Theme.LIGHT,\n\t\t\t\t\tedges: Edges.CURVED,\n\t\t\t\t\tdirection: Direction.LTR\n\t\t\t\t},\n\t\t\t\tonReady: () => console.log('onReady'),\n\t\t\t\tonFocus: () => console.log('onFocus'),\n\t\t\t\tonBinIdentification: (data) => console.log('onBinIdentification', data),\n\t\t\t\tonValidInput: (data) => console.log('onValidInputChange', data),\n\t\t\t\tonInvalidInput: (data) => console.log('onInvalidInput', data),\n           onChangeSaveCardLater: (isSaveCardSelected) => console.log(isSaveCardSelected, " :onChangeSaveCardLater"), // isSaveCardSelected:boolean\n\t\t\t\tonError: (data) => console.log('onError', data),\n\t\t\t\tonSuccess: (data) => console.log('onSuccess', data)\n\t\t\t})\n\t\t</script>\n\t</body>\n</html>
\n

Get the Tap Token

\n

After the Web Card SDK is fully configured and initialized, you need to create a submit button in order to submit the payment form. In order to tokenize the card added, you have to also import the tokenize method that is available within the SDK to complete this step.

\n

In this section we will share the methods can be used within the SDK as well as calling the tokenize method to convert the raw card details to tokens.

\n

Card Methods

\n

To leverage the full functionality of the SDK, it's essential to comprehend the array of methods at your disposal. Here, we'll outline each method alongside its purpose, followed by guidance on incorporating them into your codebase.

\n

Methods List

\n
NameDescription
resetCardInputsReset the card inputs
saveCardSave the card data
tokenizeTokenize the card date
updateCardConfigurationUpdate the card configuration. For example updating the currency to show the supported payment methods ex: transaction: {currency: "USD" } will shows only the payment methods that supports USD currency
updateThemeUpdate the card theme by sending in the parameter "dark" or "light"
loadSavedCardLoad the saved card by card id
\n

Import Methods in your Code

\n

You can import all the required methods from the SDK as follows:

\n
const {\n  tokenize,\n  resetCardInputs,\n  saveCard,\n  updateCardConfiguration,\n  updateTheme,\n  loadSavedCard } = window.CardSDK
\n

Tokenize the Card

\n

To submit the card details that were added in the Web Card v2, you need to create a button, and on this button you need to add the onclick event and call the tokenize method from the SDK to the Tap token.

\n

You can either call the tokenize method in the JavaScript code or directly in the onclick event of the button, in the HTML file, as per the below.

\n
<button id="card-v2" onclick="window.CardSDK.tokenize()">Submit</button>
\n

Tokenize Result

\n

In the onSucess callback you will receive the Tap token that you need pass to the source.id of the create a charge API to complete the payment with the added card.

\n

Here is a sample of the token response that you will receive

\n
{\n    "id": "tok_xuCp45241437ANEj31F4P426",\n    "status": "ACTIVE",\n    "created": 1714747065426,\n    "object": "token",\n    "live_mode": false,\n    "type": "CARD",\n    "purpose": "CHARGE",\n    "used": false,\n    "card": {\n        "id": "card_cfeU45241437Saus3j947433",\n        "object": "card",\n        "on_file": false,\n        "address": {},\n        "funding": "CREDIT",\n        "fingerprint": "B1XZy88SUJkZ4%2FP%2Bn16CZO7k2l34nUHNoephQ0T94hA%3D",\n        "brand": "VISA",\n        "scheme": "VISA",\n        "category": "",\n        "exp_month": 1,\n        "exp_year": 39,\n        "last_four": "1111",\n        "first_six": "411111",\n        "first_eight": "41111111",\n        "name": "Test"\n    },\n    "payment": {\n        "id": "card_cfeU45241437Saus3j947433",\n        "on_file": false,\n        "card_data": {\n            "exp_month": 1,\n            "exp_year": 39,\n            "last_four": "1111",\n            "first_six": "411111",\n            "first_eight": "41111111",\n            "address": {}\n        },\n        "fingerprint": "B1XZy88SUJkZ4%2FP%2Bn16CZO7k2l34nUHNoephQ0T94hA%3D",\n        "scheme": "VISA",\n        "category": ""\n    },\n    "merchant": {\n        "id": "12345"\n    }\n}
\n
\n

Before You Go Live

\n
🚧

To work on live mode you have to use the API key related to the hosting domain.

To register the hosting domain you have to contact integrations@tap.company to register your domain. After the integration team confirms the domain is registred then you can find the needed Keys added in your account.
\nNote that the API key for the registred domain can work with all the subdomains related to the registred domain.

","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-v2","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-v2"}],"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-v2","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"}}">