Generate OAuth expiring (access and refresh) token

North America
Latin America
Global Developer Dashboard
\\n \u003cdiv class=\\\"container-reg\\\">\\n \u003cdiv class=\\\"pill-reg\\\">\\n \u003cdiv class=\\\"label-reg\\\">North America\u003c/div>\\n \u003c/div>\\n \u003c/div>\\n\\n \u003c!-- Latin America -->\\n \u003cdiv class=\\\"container-reg\\\">\\n \u003cdiv class=\\\"pill-reg\\\">\\n \u003cdiv class=\\\"label-reg\\\">Latin America\u003c/div>\\n \u003c/div>\\n \u003c/div>\\n\u003c/div>\\n\\n\u003c!-- Environment -->\\n\u003cdiv class=\\\"container-env\\\">\\n \u003cdiv class=\\\"pill-env\\\">\\n \u003cdiv class=\\\"label-env\\\">Global Developer Dashboard\u003c/div>\\n \u003c/div>\\n\u003c/div>\\n\\n\u003c!-- CSS moved to global stylesheet-->\\n\"\n}\n[/block]","tag":"GDPEnvNARegiongroup","type":"content","updated_at":"2026-03-24T12:06:39.000Z","uri":"/branches/3/custom_blocks/GDPEnvNARegiongroup","links":{"project":"/projects/clover-enterprise-group"},"usage":{"page_count":null,"project_count":null},"branch":{"uri":"/branches/3","name":"3"}},{"name":"Refresh-token-group","project":"66bb951e6ae14e005acce10e","renderable":{"status":true},"source":"In the v2/OAuth flow, an expiring authentication token consisting of an `access_token` and `refresh_token` pair is generated. The `access_token` is short-lived, while the `refresh_token` lasts longer but also expires eventually. \n\nTo maintain authorization, your app must generate a new token pair before the current one expires. To do so, send a POST request to the `/oauth/v2/refresh` endpoint with the existing `refresh_token` and `client_id` to generate a new `access_token` and `refresh_token` pair. Your app needs to handle the refreshing of access tokens to allow merchants continuous access to the app.","tag":"Refreshtokengroup","type":"content","updated_at":"2026-03-24T12:06:30.000Z","uri":"/branches/3/custom_blocks/Refreshtokengroup","links":{"project":"/projects/clover-enterprise-group"},"usage":{"page_count":null,"project_count":null},"branch":{"uri":"/branches/3","name":"3"}}],"document":{"allow_crawlers":"enabled","renderable":{"status":true},"slug":"generate-oauth-expiring-access-and-refresh-token","state":"current","title":"Generate OAuth expiring (access and refresh) token","type":"basic","updated_at":"2026-03-24T12:10:19.000Z","uri":"/branches/3/guides/generate-oauth-expiring-access-and-refresh-token","appearance":{"icon":{"name":null,"type":null}},"category":{"uri":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API"},"href":{"dash":"https://dash.readme.com/project/clover-platform/v3/docs/generate-oauth-expiring-access-and-refresh-token","hub":"https://docs.clover.com/dev/docs/generate-oauth-expiring-access-and-refresh-token","github_url":null},"links":{"project":"/projects/me"},"parent":{"uri":"/branches/3/guides/generate-an-oauth-api-token-or-access_token"},"privacy":{"view":"public"},"project":{"name":"Clover Platform Docs","subdomain":"clover-platform","uri":"/projects/me"},"content":{"body":"\u003cmeta name=\" description\" content=\"Learn how to get an OAuth token to secure communication between an app and a merchant. This topic outlines the necessary prerequisites and steps for generating an `access_token` and `refresh_token` pair using the v2/OAuth flow.\">\n\n\u003cGDPEnvNARegiongroup />\n\n[block:html]\n{\n \"html\": \"\u003c!--DS-7355 Removed reference to regions for v1/v2 - specified clearly about legacy and new apps.-->\\n\u003c!-- DS-7623 [Aneesha] 2025-Mar-17 Reorganized info and added added PDF link to legacy OAuth flow PDF -->\\n\u003c!-- DS-7762 [Aneesha] 2025-June-6 Updated information regarding Alternate Launch Path.\"\n}\n[/block]\n\n\n\u003cRefreshtokengroup />\n\nUse this topic for instructions to generate an expiring (access and refresh) token with the v2/OAuth flow. See the \u003ca href=\"https://docs.clover.com/dev/docs/generate-an-oauth-api-token-or-access_token#terminology\" target=\"_blank\">OAuth terminology\u003c/a> section to understand the key terms.\n\n# Prerequisites\n\nBefore you can get an OAuth token, you need to complete the following: \n\n1. Start your ecommerce integration with a test app on the Global Developer Dashboard. See [Get started with the Global Developer Dashboard](https://docs.clover.com/dev/docs/clover-development-basics-ecommerce#get-started-with-the-global-developer-dashboard).\n2. Set the Alternate Launch Path—Required when the app OAuth is initiated from the left navigation menu on the Merchant Dashboard or directly from the Clover App Market. See [Set app link (URL) and CORS domain](https://docs.clover.com/dev/docs/using-cors).\n\n[block:image]\n{\n \"images\": [\n {\n \"image\": [\n \"https://files.readme.io/075fedc5205803a0744aeb809213c879dc1b1420bed9cb17834d876651443d4b-NewOAuthFlowSettings.png\",\n \"\",\n \"App Settings on the Developer Dashboard: Edit REST Configuration page\"\n ],\n \"align\": \"center\",\n \"sizing\": \"80% \",\n \"border\": true,\n \"caption\": \"App Settings on the Developer Dashboard: Edit REST Configuration page\"\n }\n ]\n}\n[/block]\n\n\n# Steps\n\nThe Clover OAuth flow starts when the merchant selects your app directly from the \u003ca href=\"https://www.clover.com/appmarket/\" target=\"_blank\">Clover App Market\u003c/a> or from the left navigation on the Merchant Dashboard (More Tools > Clover App Market). Clover redirects the merchant to your app with the \u003c\u003cglossary:merchantId>> included in the \u003c\u003cglossary:Redirect URI>> as a query parameter. From there, your app must call the `/oauth/v2/authorize` endpoint to initiate the v2/OAuth flow and get an `access_token` and `refresh_token` pair.\n\nIf a merchant accesses the app from your website instead of installing or connecting to it from the Clover App Market, your app needs to redirect to the `/oauth/v2/authorize` endpoint.\n\nTo generate an expiring access and refresh token pair:\n\n1. Log in to the [Global Developer Dashboard](https://www.clover.com/global-developer-home).\n2. Navigate to the Merchant Dashboard for your test merchant.\n3. From the left navigation menu, click **More Tools**, and then select your app on the Clover App Market page. \n4. Click **Connect** to install your app for the test merchant. \n From here:\n\n 1. For merchant authorization, Clover redirects the merchant to the location specified in the Alternate Launch Path field, and the app calls `/oauth/v2/authorize` with the authorization code as a query param to initiate OAuth.\n ```Text OAuth callback format\n `https://www.example.com/oauth_callback?code={AUTHORIZATION_CODE}&merchant_id={MERCHANT_ID}`\n ```\n 2. For token exchange, your app makes a POST request with the`client_id`, `client_secret`, and `authorization_code` to `/oauth/v2/token`. The response provides an `access_token` and `refresh_token` pair that displays on the OAuth Process Results page of your app.\n\n [block:image]{\"images\":[{\"image\":[\"https://files.readme.io/09caaf6279fac7604ce580b5f01b41327eb5d0362118a6dba093a808ece51ed3-Access-Refresh-Token.png\",\"\",\"Sample: Access and Refresh token pair\"],\"align\":\"center\",\"sizing\":\"100% \",\"border\":true,\"caption\":\"Sample: Access and Refresh token pair\"}]}[/block]\n\nUse the API `access_token` to generate an \u003c\u003cglossary:Ecommerce API key>> pr `apiAccesskey` that you need to tokenize a card. See [Generate an Ecommerce API key (PAKMS key)](https://docs.clover.com/dev/docs/generate-ecommerce-api-key-or-pakms-key).\n\nFor more information, see:\n\n- [High-trust apps—Auth code flow](https://docs.clover.com/dev/docs/high-trust-app-auth-flow)\n- [Low-trust apps—Auth code flow with PKCE](https://docs.clover.com/dev/docs/oauth-flow-for-low-trust-apps-pkce)\n\n***\n\n# Request and Response example\n\n## Expiring OAuth token for high-trust app\n\n```curl Request\ncurl --request POST \\\n--url 'https://apisandbox.dev.clover.com/oauth/v2/token' \\\n--header 'content-type: application/json' \\\n--data '{\n \"client_id\": \"{APP_ID}\",\n \"client_secret\": \"{APP_SECRET}\",\n \"code\": \"{AUTHORIZATION_CODE}\"\n}'\n\n```\n```json Response\n{\n \"access_token\": \"{ACCESS_TOKEN}\",\n \"access_token_expiration\": 1677875430,\n \"refresh_token\": \"{REFRESH_TOKEN}\",\n \"refresh_token_expiration\": 1709497830\n}\n```\n\n## Expiring OAuth token for low-trust app\n\n```curl Request\ncurl --request POST \\\n--url 'https://apisandbox.dev.clover.com/oauth/v2/token' \\\n--header 'content-type: application/json' \\\n--data '{\n \"client_id\": \"{APP_ID}\",\n \"code\": \"{AUTHORIZATION_CODE}\",\n \"code_verifier\": \"{CODE_VERIFIER}\"\n}'\n```\n```json Response\n{\n\"access_token\": \"{ACCESS_TOKEN}\", \n\"access_token_expiration\": 1677875430, \n\"refresh_token\": \"{REFRESH_TOKEN}\", \n \"refresh_token_expiration\": 1709497830 \n}\n```\n\n***\n\n# Migrate to v2/OAuth expiring tokens\n\nAll Ecommerce API endpoints require an OAuth-generated `access_token` with specific permissions. Apps created before October 2023 use the legacy OAuth flow to generate an `auth_token`. For your apps to complete the Clover OAuth flow, you need to [migrate from the legacy OAuth flow to expiring authentication tokens using the v2/OAuth flow](https://docs.clover.com/dev/docs/legacy-token-migration-flow). For information on the legacy OAuth flow, see \u003ca href=\"https://clover.box.com/s/uwkv5iz3gj81shsjvy78xj5fta55kv3e\" target=\"_blank\">Generate OAuth token with the legacy OAuth flow\u003c/a>![](https://files.readme.io/2504750-image.png). \n\n***\n\n# Related topics\n\n- [Generate an OAuth expiring token](https://docs.clover.com/dev/docs/generate-an-oauth-api-token-or-access_token)\n- [Use refresh token to generate new expiring token](use-refresh-token-to-generate-new-expiring-token)\n- \u003ca href=\"https://medium.com/clover-platform-blog/expiring-oauth-tokens-securing-clover-merchant-data-16243b9c00cc\" target=\"_blank\">Blog: Expiring OAuth Tokens: Securing Clover Merchant Data\u003c/a>\n- \u003ca href=\"https://medium.com/clover-platform-blog/understanding-clover-auth-tokens-and-ecommerce-keys-4e048827afa2\" target=\"_blank\">Blog: Fiddling Through Digital Keys: Clover Auth Tokens and Ecommerce Keys\u003c/a>","excerpt":"Prerequisites and steps for generating an `access_token` and `refresh_token` pair to build Clover Ecommerce app integrations.","link":{"url":null,"new_tab":false},"next":{"description":null,"pages":[]}},"metadata":{"description":"Learn how to get an OAuth token to secure communication between an app and a merchant. This topic outlines the necessary prerequisites and steps for generating an `access_token` and `refresh_token` pair using the v2/OAuth flow.","keywords":null,"title":null,"x_import":null,"image":{"uri":null,"url":null}}},"meta":{"baseUrl":"/dev","description":"Learn how to get an OAuth token to secure communication between an app and a merchant. This topic outlines the necessary prerequisites and steps for generating an `access_token` and `refresh_token` pair using the v2/OAuth flow.","hidden":false,"image":[],"metaTitle":"Generate OAuth expiring (access and refresh) token","robots":"index","slug":"generate-oauth-expiring-access-and-refresh-token","title":"Generate OAuth expiring (access and refresh) token","type":"docs"},"rdmd":{"dehydrated":{"toc":"\u003cnav aria-label=\"Table of contents\" class=\"rm-ToC\">\u003cul class=\"toc-list\">\u003cli class=\"toc-children\">\u003cul>\u003cli>\u003ca href=\"#prerequisites\">Prerequisites\u003c/a>\u003c/li>\u003cli>\u003ca href=\"#steps\">Steps\u003c/a>\u003c/li>\u003cli>\u003ca href=\"#request-and-response-example\">Request and Response example\u003c/a>\u003c/li>\u003cli>\u003cul>\u003cli>\u003ca href=\"#expiring-oauth-token-for-high-trust-app\">Expiring OAuth token for high-trust app\u003c/a>\u003c/li>\u003cli>\u003ca href=\"#expiring-oauth-token-for-low-trust-app\">Expiring OAuth token for low-trust app\u003c/a>\u003c/li>\u003c/ul>\u003c/li>\u003cli>\u003ca href=\"#migrate-to-v2oauth-expiring-tokens\">Migrate to v2/OAuth expiring tokens\u003c/a>\u003c/li>\u003cli>\u003ca href=\"#related-topics\">Related topics\u003c/a>\u003c/li>\u003c/ul>\u003c/li>\u003c/ul>\u003c/nav>","body":"\u003cstyle>/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer theme, base, components, utilities;\n@layer utilities;\n\u003c/style>\u003cmeta name=\" description\" content=\"Learn how to get an OAuth token to secure communication between an app and a merchant. This topic outlines the necessary prerequisites and steps for generating an `access_token` and `refresh_token` pair using the v2/OAuth flow.\"/>\n\u003cdiv class=\"readme-tailwind\">\u003cdiv class=\"rdmd-html\">\u003cdiv class=\"container-top\">\n \u003c!-- North America -->\n \u003cdiv class=\"container-reg\">\n \u003cdiv class=\"pill-reg\">\n \u003cdiv class=\"label-reg\">North America\u003c/div>\n \u003c/div>\n \u003c/div>\n\n \u003c!-- Latin America -->\n \u003cdiv class=\"container-reg\">\n \u003cdiv class=\"pill-reg\">\n \u003cdiv class=\"label-reg\">Latin America\u003c/div>\n \u003c/div>\n \u003c/div>\n\u003c/div>\n\n\u003c!-- Environment -->\n\u003cdiv class=\"container-env\">\n \u003cdiv class=\"pill-env\">\n \u003cdiv class=\"label-env\">Global Developer Dashboard\u003c/div>\n \u003c/div>\n\u003c/div>\n\n\u003c!-- CSS moved to global stylesheet-->\n\u003c/div>\u003c/div>\n\u003cdiv class=\"rdmd-html\">\u003c!--DS-7355 Removed reference to regions for v1/v2 - specified clearly about legacy and new apps.-->\n\u003c!-- DS-7623 [Aneesha] 2025-Mar-17 Reorganized info and added added PDF link to legacy OAuth flow PDF -->\n\u003c!-- DS-7762 [Aneesha] 2025-June-6 Updated information regarding Alternate Launch Path.\u003c/div>\n\u003cdiv class=\"readme-tailwind\">\u003cp>In the v2/OAuth flow, an expiring authentication token consisting of an \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">access_token\u003c/code> and \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">refresh_token\u003c/code> pair is generated. The \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">access_token\u003c/code> is short-lived, while the \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">refresh_token\u003c/code> lasts longer but also expires eventually.\u003c/p>\n\u003cp>To maintain authorization, your app must generate a new token pair before the current one expires. To do so, send a POST request to the \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">/oauth/v2/refresh\u003c/code> endpoint with the existing \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">refresh_token\u003c/code> and \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">client_id\u003c/code> to generate a new \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">access_token\u003c/code> and \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">refresh_token\u003c/code> pair. Your app needs to handle the refreshing of access tokens to allow merchants continuous access to the app.\u003c/p>\u003c/div>\n\u003cp>Use this topic for instructions to generate an expiring (access and refresh) token with the v2/OAuth flow. See the \u003ca href=\"https://docs.clover.com/dev/docs/generate-an-oauth-api-token-or-access_token#terminology\" target=\"_blank\" title=\"\">OAuth terminology\u003c/a> section to understand the key terms.\u003c/p>\n\u003ch1 class=\"heading heading-1 header-scroll\">\u003cdiv class=\"heading-anchor anchor waypoint\" id=\"prerequisites\">\u003c/div>\u003cdiv class=\"heading-text\">Prerequisites\u003c/div>\u003ca aria-label=\"Skip link to Prerequisites\" class=\"heading-anchor-icon fa fa-regular fa-anchor\" href=\"#prerequisites\">\u003c/a>\u003c/h1>\n\u003cp>Before you can get an OAuth token, you need to complete the following:\u003c/p>\n\u003col>\n\u003cli>Start your ecommerce integration with a test app on the Global Developer Dashboard. See \u003ca href=\"https://docs.clover.com/dev/docs/clover-development-basics-ecommerce#get-started-with-the-global-developer-dashboard\" target=\"\" title=\"\">Get started with the Global Developer Dashboard\u003c/a>.\u003c/li>\n\u003cli>Set the Alternate Launch Path—Required when the app OAuth is initiated from the left navigation menu on the Merchant Dashboard or directly from the Clover App Market. See \u003ca href=\"https://docs.clover.com/dev/docs/using-cors\" target=\"\" title=\"\">Set app link (URL) and CORS domain\u003c/a>.\u003c/li>\n\u003c/ol>\n\u003cfigure>\u003cspan aria-label=\"Expand image\" class=\"img lightbox closed\" role=\"button\" tabindex=\"0\">\u003cspan class=\"lightbox-inner\">\u003cimg alt=\"App Settings on the Developer Dashboard: Edit REST Configuration page\" class=\"img img-align-center border\" height=\"auto\" loading=\"lazy\" src=\"https://files.readme.io/075fedc5205803a0744aeb809213c879dc1b1420bed9cb17834d876651443d4b-NewOAuthFlowSettings.png\" title=\"\" width=\"80% \"/>\u003c/span>\u003c/span>\u003cfigcaption>\u003cp>App Settings on the Developer Dashboard: Edit REST Configuration page\u003c/p>\u003c/figcaption>\u003c/figure>\n\u003ch1 class=\"heading heading-1 header-scroll\">\u003cdiv class=\"heading-anchor anchor waypoint\" id=\"steps\">\u003c/div>\u003cdiv class=\"heading-text\">Steps\u003c/div>\u003ca aria-label=\"Skip link to Steps\" class=\"heading-anchor-icon fa fa-regular fa-anchor\" href=\"#steps\">\u003c/a>\u003c/h1>\n\u003cp>The Clover OAuth flow starts when the merchant selects your app directly from the \u003ca href=\"https://www.clover.com/appmarket/\" target=\"_blank\" title=\"\">Clover App Market\u003c/a> or from the left navigation on the Merchant Dashboard (More Tools > Clover App Market). Clover redirects the merchant to your app with the \u003cspan class=\"GlossaryItem-trigger\">merchantId\u003c/span> included in the \u003cspan class=\"GlossaryItem-trigger\">Redirect URI\u003c/span> as a query parameter. From there, your app must call the \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">/oauth/v2/authorize\u003c/code> endpoint to initiate the v2/OAuth flow and get an \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">access_token\u003c/code> and \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">refresh_token\u003c/code> pair.\u003c/p>\n\u003cp>If a merchant accesses the app from your website instead of installing or connecting to it from the Clover App Market, your app needs to redirect to the \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">/oauth/v2/authorize\u003c/code> endpoint.\u003c/p>\n\u003cp>To generate an expiring access and refresh token pair:\u003c/p>\n\u003col>\n\u003cli>\n\u003cp>Log in to the \u003ca href=\"https://www.clover.com/global-developer-home\" target=\"\" title=\"\">Global Developer Dashboard\u003c/a>.\u003c/p>\n\u003c/li>\n\u003cli>\n\u003cp>Navigate to the Merchant Dashboard for your test merchant.\u003c/p>\n\u003c/li>\n\u003cli>\n\u003cp>From the left navigation menu, click \u003cstrong>More Tools\u003c/strong>, and then select your app on the Clover App Market page.\u003c/p>\n\u003c/li>\n\u003cli>\n\u003cp>Click \u003cstrong>Connect\u003c/strong> to install your app for the test merchant.\u003cbr/>\nFrom here:\u003c/p>\n\u003col>\n\u003cli>\n\u003cp>For merchant authorization, Clover redirects the merchant to the location specified in the Alternate Launch Path field, and the app calls \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">/oauth/v2/authorize\u003c/code> with the authorization code as a query param to initiate OAuth.\u003c/p>\n\u003cdiv class=\"CodeTabs CodeTabs_initial theme-undefined\">\u003cdiv class=\"CodeTabs-toolbar\">\u003cbutton type=\"button\" value=\"Text\">OAuth callback format\u003c/button>\u003c/div>\u003cdiv class=\"CodeTabs-inner\">\u003cpre>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">`https://www.example.com/oauth_callback?code={AUTHORIZATION_CODE}&merchant_id={MERCHANT_ID}`\u003c/code>\u003c/pre>\u003c/div>\u003c/div>\n\u003c/li>\n\u003cli>\n\u003cp>For token exchange, your app makes a POST request with the\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">client_id\u003c/code>, \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">client_secret\u003c/code>, and \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">authorization_code\u003c/code> to \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">/oauth/v2/token\u003c/code>. The response provides an \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">access_token\u003c/code> and \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">refresh_token\u003c/code> pair that displays on the OAuth Process Results page of your app.\u003c/p>\n\u003cfigure>\u003cspan aria-label=\"Expand image\" class=\"img lightbox closed\" role=\"button\" tabindex=\"0\">\u003cspan class=\"lightbox-inner\">\u003cimg alt=\"Sample: Access and Refresh token pair\" class=\"img img-align-center border\" height=\"auto\" loading=\"lazy\" src=\"https://files.readme.io/09caaf6279fac7604ce580b5f01b41327eb5d0362118a6dba093a808ece51ed3-Access-Refresh-Token.png\" title=\"\" width=\"100% \"/>\u003c/span>\u003c/span>\u003cfigcaption>\u003cp>Sample: Access and Refresh token pair\u003c/p>\u003c/figcaption>\u003c/figure>\n\u003c/li>\n\u003c/ol>\n\u003c/li>\n\u003c/ol>\n\u003cp>Use the API \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">access_token\u003c/code> to generate an \u003cspan class=\"GlossaryItem-trigger\">Ecommerce API key\u003c/span> pr \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">apiAccesskey\u003c/code> that you need to tokenize a card. See \u003ca href=\"https://docs.clover.com/dev/docs/generate-ecommerce-api-key-or-pakms-key\" target=\"\" title=\"\">Generate an Ecommerce API key (PAKMS key)\u003c/a>.\u003c/p>\n\u003cp>For more information, see:\u003c/p>\n\u003cul>\n\u003cli>\u003ca href=\"https://docs.clover.com/dev/docs/high-trust-app-auth-flow\" target=\"\" title=\"\">High-trust apps—Auth code flow\u003c/a>\u003c/li>\n\u003cli>\u003ca href=\"https://docs.clover.com/dev/docs/oauth-flow-for-low-trust-apps-pkce\" target=\"\" title=\"\">Low-trust apps—Auth code flow with PKCE\u003c/a>\u003c/li>\n\u003c/ul>\n\u003chr/>\n\u003ch1 class=\"heading heading-1 header-scroll\">\u003cdiv class=\"heading-anchor anchor waypoint\" id=\"request-and-response-example\">\u003c/div>\u003cdiv class=\"heading-text\">Request and Response example\u003c/div>\u003ca aria-label=\"Skip link to Request and Response example\" class=\"heading-anchor-icon fa fa-regular fa-anchor\" href=\"#request-and-response-example\">\u003c/a>\u003c/h1>\n\u003ch2 class=\"heading heading-2 header-scroll\">\u003cdiv class=\"heading-anchor anchor waypoint\" id=\"expiring-oauth-token-for-high-trust-app\">\u003c/div>\u003cdiv class=\"heading-text\">Expiring OAuth token for high-trust app\u003c/div>\u003ca aria-label=\"Skip link to Expiring OAuth token for high-trust app\" class=\"heading-anchor-icon fa fa-regular fa-anchor\" href=\"#expiring-oauth-token-for-high-trust-app\">\u003c/a>\u003c/h2>\n\u003cdiv class=\"CodeTabs CodeTabs_initial theme-undefined\">\u003cdiv class=\"CodeTabs-toolbar\">\u003cbutton type=\"button\" value=\"curl\">Request\u003c/button>\u003cbutton type=\"button\" value=\"json\">Response\u003c/button>\u003c/div>\u003cdiv class=\"CodeTabs-inner\">\u003cpre>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">curl --request POST \\\n--url 'https://apisandbox.dev.clover.com/oauth/v2/token' \\\n--header 'content-type: application/json' \\\n--data '{\n "client_id": "{APP_ID}",\n "client_secret": "{APP_SECRET}",\n "code": "{AUTHORIZATION_CODE}"\n}'\n\u003c/code>\u003c/pre>\u003cpre>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">{\n "access_token": "{ACCESS_TOKEN}",\n "access_token_expiration": 1677875430,\n "refresh_token": "{REFRESH_TOKEN}",\n "refresh_token_expiration": 1709497830\n}\u003c/code>\u003c/pre>\u003c/div>\u003c/div>\n\u003ch2 class=\"heading heading-2 header-scroll\">\u003cdiv class=\"heading-anchor anchor waypoint\" id=\"expiring-oauth-token-for-low-trust-app\">\u003c/div>\u003cdiv class=\"heading-text\">Expiring OAuth token for low-trust app\u003c/div>\u003ca aria-label=\"Skip link to Expiring OAuth token for low-trust app\" class=\"heading-anchor-icon fa fa-regular fa-anchor\" href=\"#expiring-oauth-token-for-low-trust-app\">\u003c/a>\u003c/h2>\n\u003cdiv class=\"CodeTabs CodeTabs_initial theme-undefined\">\u003cdiv class=\"CodeTabs-toolbar\">\u003cbutton type=\"button\" value=\"curl\">Request\u003c/button>\u003cbutton type=\"button\" value=\"json\">Response\u003c/button>\u003c/div>\u003cdiv class=\"CodeTabs-inner\">\u003cpre>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">curl --request POST \\\n--url 'https://apisandbox.dev.clover.com/oauth/v2/token' \\\n--header 'content-type: application/json' \\\n--data '{\n "client_id": "{APP_ID}",\n "code": "{AUTHORIZATION_CODE}",\n "code_verifier": "{CODE_VERIFIER}"\n}'\u003c/code>\u003c/pre>\u003cpre>\u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">{\n"access_token": "{ACCESS_TOKEN}", \n"access_token_expiration": 1677875430, \n"refresh_token": "{REFRESH_TOKEN}", \n "refresh_token_expiration": 1709497830 \n}\u003c/code>\u003c/pre>\u003c/div>\u003c/div>\n\u003chr/>\n\u003ch1 class=\"heading heading-1 header-scroll\">\u003cdiv class=\"heading-anchor anchor waypoint\" id=\"migrate-to-v2oauth-expiring-tokens\">\u003c/div>\u003cdiv class=\"heading-text\">Migrate to v2/OAuth expiring tokens\u003c/div>\u003ca aria-label=\"Skip link to Migrate to v2/OAuth expiring tokens\" class=\"heading-anchor-icon fa fa-regular fa-anchor\" href=\"#migrate-to-v2oauth-expiring-tokens\">\u003c/a>\u003c/h1>\n\u003cp>All Ecommerce API endpoints require an OAuth-generated \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">access_token\u003c/code> with specific permissions. Apps created before October 2023 use the legacy OAuth flow to generate an \u003ccode class=\"rdmd-code lang- theme-undefined\" data-lang=\"\">auth_token\u003c/code>. For your apps to complete the Clover OAuth flow, you need to \u003ca href=\"https://docs.clover.com/dev/docs/legacy-token-migration-flow\" target=\"\" title=\"\">migrate from the legacy OAuth flow to expiring authentication tokens using the v2/OAuth flow\u003c/a>. For information on the legacy OAuth flow, see \u003ca href=\"https://clover.box.com/s/uwkv5iz3gj81shsjvy78xj5fta55kv3e\" target=\"_blank\" title=\"\">Generate OAuth token with the legacy OAuth flow\u003c/a>\u003cspan aria-label=\"Expand image\" class=\"img lightbox closed\" role=\"button\" tabindex=\"0\">\u003cspan class=\"lightbox-inner\">\u003cimg alt=\"\" class=\"img \" height=\"auto\" loading=\"lazy\" src=\"https://files.readme.io/2504750-image.png\" title=\"\" width=\"auto\"/>\u003c/span>\u003c/span>.\u003c/p>\n\u003chr/>\n\u003ch1 class=\"heading heading-1 header-scroll\">\u003cdiv class=\"heading-anchor anchor waypoint\" id=\"related-topics\">\u003c/div>\u003cdiv class=\"heading-text\">Related topics\u003c/div>\u003ca aria-label=\"Skip link to Related topics\" class=\"heading-anchor-icon fa fa-regular fa-anchor\" href=\"#related-topics\">\u003c/a>\u003c/h1>\n\u003cul>\n\u003cli>\u003ca href=\"https://docs.clover.com/dev/docs/generate-an-oauth-api-token-or-access_token\" target=\"\" title=\"\">Generate an OAuth expiring token\u003c/a>\u003c/li>\n\u003cli>\u003ca href=\"use-refresh-token-to-generate-new-expiring-token\" target=\"\" title=\"\">Use refresh token to generate new expiring token\u003c/a>\u003c/li>\n\u003cli>\u003ca href=\"https://medium.com/clover-platform-blog/expiring-oauth-tokens-securing-clover-merchant-data-16243b9c00cc\" target=\"_blank\" title=\"\">Blog: Expiring OAuth Tokens: Securing Clover Merchant Data\u003c/a>\u003c/li>\n\u003cli>\u003ca href=\"https://medium.com/clover-platform-blog/understanding-clover-auth-tokens-and-ecommerce-keys-4e048827afa2\" target=\"_blank\" title=\"\">Blog: Fiddling Through Digital Keys: Clover Auth Tokens and Ecommerce Keys\u003c/a>\u003c/li>\n\u003c/ul>","css":"/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer theme, base, components, utilities;\n@layer utilities;\n"},"opts":{"alwaysThrow":false,"compatibilityMode":false,"copyButtons":true,"correctnewlines":false,"markdownOptions":{"fences":true,"commonmark":true,"gfm":true,"ruleSpaces":false,"listItemIndent":"1","spacedTable":true,"paddedTable":true},"normalize":true,"lazyImages":true,"reusableContent":{"tags":{},"disabled":false,"serialize":true,"wrap":true},"safeMode":false,"settings":{"position":true},"theme":"light","customBlocks":{"GDPEnvNARegiongroup":"[block:html]\n{\n \"html\": \"\u003cdiv class=\\\"container-top\\\">\\n \u003c!-- North America -->\\n \u003cdiv class=\\\"container-reg\\\">\\n \u003cdiv class=\\\"pill-reg\\\">\\n \u003cdiv class=\\\"label-reg\\\">North America\u003c/div>\\n \u003c/div>\\n \u003c/div>\\n\\n \u003c!-- Latin America -->\\n \u003cdiv class=\\\"container-reg\\\">\\n \u003cdiv class=\\\"pill-reg\\\">\\n \u003cdiv class=\\\"label-reg\\\">Latin America\u003c/div>\\n \u003c/div>\\n \u003c/div>\\n\u003c/div>\\n\\n\u003c!-- Environment -->\\n\u003cdiv class=\\\"container-env\\\">\\n \u003cdiv class=\\\"pill-env\\\">\\n \u003cdiv class=\\\"label-env\\\">Global Developer Dashboard\u003c/div>\\n \u003c/div>\\n\u003c/div>\\n\\n\u003c!-- CSS moved to global stylesheet-->\\n\"\n}\n[/block]","Refreshtokengroup":"In the v2/OAuth flow, an expiring authentication token consisting of an `access_token` and `refresh_token` pair is generated. The `access_token` is short-lived, while the `refresh_token` lasts longer but also expires eventually. \n\nTo maintain authorization, your app must generate a new token pair before the current one expires. To do so, send a POST request to the `/oauth/v2/refresh` endpoint with the existing `refresh_token` and `client_id` to generate a new `access_token` and `refresh_token` pair. Your app needs to handle the refreshing of access tokens to allow merchants continuous access to the app."},"componentTypes":{"GDPEnvNARegiongroup":"content","Refreshtokengroup":"content"},"resourceID":"/branches/3/guides/generate-oauth-expiring-access-and-refresh-token","resourceType":"page","components":{"GDPEnvNARegiongroup":"[block:html]\n{\n \"html\": \"\u003cdiv class=\\\"container-top\\\">\\n \u003c!-- North America -->\\n \u003cdiv class=\\\"container-reg\\\">\\n \u003cdiv class=\\\"pill-reg\\\">\\n \u003cdiv class=\\\"label-reg\\\">North America\u003c/div>\\n \u003c/div>\\n \u003c/div>\\n\\n \u003c!-- Latin America -->\\n \u003cdiv class=\\\"container-reg\\\">\\n \u003cdiv class=\\\"pill-reg\\\">\\n \u003cdiv class=\\\"label-reg\\\">Latin America\u003c/div>\\n \u003c/div>\\n \u003c/div>\\n\u003c/div>\\n\\n\u003c!-- Environment -->\\n\u003cdiv class=\\\"container-env\\\">\\n \u003cdiv class=\\\"pill-env\\\">\\n \u003cdiv class=\\\"label-env\\\">Global Developer Dashboard\u003c/div>\\n \u003c/div>\\n\u003c/div>\\n\\n\u003c!-- CSS moved to global stylesheet-->\\n\"\n}\n[/block]","Refreshtokengroup":"In the v2/OAuth flow, an expiring authentication token consisting of an `access_token` and `refresh_token` pair is generated. The `access_token` is short-lived, while the `refresh_token` lasts longer but also expires eventually. \n\nTo maintain authorization, your app must generate a new token pair before the current one expires. To do so, send a POST request to the `/oauth/v2/refresh` endpoint with the existing `refresh_token` and `client_id` to generate a new `access_token` and `refresh_token` pair. Your app needs to handle the refreshing of access tokens to allow merchants continuous access to the app."},"baseUrl":"/dev","terms":[{"term":"3DS","definition":"3DS protocol uses a three-domain model to add an extra layer of security between the financial authorization process and the online authentication process. The three domains are as follows: 1. Issuer domain: Financial institution (FI) or bank that issued the card used for the transaction. 2. Acquirer domain: Merchant that accepts online payments from customers. 3. Interoperability domain: 3DS infrastructure platform is the secure intermediary that facilitates communication between the customer and the merchant.","_id":"673d8fedbbac4c001027014d"},{"term":"AID","definition":"Application Identifier. An identifier stored on the chip and terminal. It is used to identify mutually supported applications.","_id":"673d8ffd54aa2a00300c8153"},{"term":"Alternate Launch Path","definition":"Link (URL) path for your app that you enter on the Edit REST Configuration page for web apps. This path uses the same base domain as the Site URL. The alternate launch path is required when OAuth is initiated from the left navigation menu in the Merchant Dashboard or directly from the Clover App Market. After Clover redirects merchants to your app, your app must initiate the OAuth flow by calling the `/v2/authorize` endpoint.","_id":"673d9020216993003780b57c"},{"term":"Android ABI","definition":"Android ABI (Application Binary Interface) defines how an application's machine code interacts with the system at runtime. It specifies details such as the CPU instruction set, endianness of memory stores and loads, conventions for passing data between applications and the system, and the format of executable binaries.","_id":"673d902cda33e30053bc5c7f"},{"term":"Android Payment API","definition":"Intent-based API used in applications running on Clover devices for executing payment transaction requests. It supports payment operations, including payments, preauthorizations, and payment reversals (void/refund), using Android Intent Builders.","_id":"673d90386bf20f006079d1dc"},{"term":"Android SDK","definition":"SDK to build apps that run on Clover devices and publish your apps on the Clover App Market. It is also used for semi-integration with a Clover device, enabling a third-party point of sale (POS) system to use Clover for processing payments.","_id":"673d9044e8d62f00431f7200"},{"term":"Android Virtual Device","definition":"AVD is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator. An AVD contains a hardware profile, system image, storage area, skin, and other properties.","_id":"673d9056ea642800216cdaaa"},{"term":"Announcements","definition":"Information on new launches, features, timelines, and notices for developers.","_id":"673d9098bbac4c001027016d"},{"term":"API changelog","definition":"Monthly updates related to API changes.","_id":"673d90aaa085000030547ef2"},{"term":"API docs and SDK guides","definition":"Resources needed to work with the Clover app and integration platforms.","_id":"673d90bd8d8ee100686ff678"},{"term":"API level","definition":"Each Android version corresponds to a specific API level. For example, Android 11 corresponds to API level 30, Android 10 to API level 29, and so on. The API level precisely identifies the version of the API set that your app can call into. It defines the combination of manifest elements, permissions, and other features that you can use as a developer.","_id":"673d90c891bf64002a9f63f7"},{"term":"Auth","definition":"Authorization (Auth) is a tip-adjusted sale. This type of transaction is typically used by restaurants and services establishments.","_id":"673d90d37bd1cf0019a275c7"},{"term":"authenticator app","definition":"Mobile or desktop application that generates time-based or counter-based one-time passwords (OTPs) for secure multi-factor authentication (MFA). You can download an authentication app, such as Google Authenticator or Microsoft Authenticator, from the relevant app store.","_id":"673d91114f9f5c0012f565a7"},{"term":"Bearer token","definition":"Type of token used in the authorization header of an API request to authenticate the client making the request. It is typically included in the request header as follows: Authorization: Bearer \u003ctoken>. This token is a string that represents the user’s identity and permissions.","_id":"673d91227bd1cf0019a2761f"},{"term":"billable merchant","definition":"Active merchant accounts with Clover. These are not test merchant or demo accounts and are not suppressed for billing.","_id":"673d91348d8ee100686ff685"},{"term":"blackhole payment gateway","definition":"Default gateway for test merchant accounts in the Clover sandbox environment. It sets all transactions to be successful and suffices for most development use cases.","_id":"673d914a91bf64002a9f6493"},{"term":"Bug fixes","definition":"Monthly updates on the latest bug fixes across the Clover developer platform.","_id":"673d9166bbac4c00102701d3"},{"term":"card-on-file","definition":"Card-on-file (COF) transactions are payments in which the cardholders have authorized merchants to store their credit or debit card information to use for future purchases or recurring payments.","_id":"673d9176da33e30053bc5dd1"},{"term":"card tokenization","definition":"Faud-prevention measure that replaces sensitive payment credentials, such as credit card numbers, cardholder names, expiration dates, and CVV codes with non-specific identifiers known as tokens. These tokens are used for subsequent transactions, allowing secure storage and processing of payment information.","_id":"673d918054aa2a00300c8180"},{"term":"Card track data","definition":"Information encoded on a payment card's magnetic stripe or chip. The data is used to authorize and process transactions.","_id":"673d919554aa2a00300c81ea"},{"term":"cash out","definition":"Process of removing the remaining balance from a gift card, bringing the account balance to zero (0). The customer may receive the remaining balance in cash, or choose to cash out and deactivate the card or close the gift card account.","_id":"673d91b3e0af860036ad2172"},{"term":"certificates","definition":"Certificates and profiles are essential for app development and distribution of the Apple Pay® service on a Clover Ecommerce integration. Certificates are digital documents that verify your identity as a developer. They are used to sign your apps and ensure they come from a trusted source.","_id":"673d91d05db0190019bd08df"},{"term":"challenge flow","definition":"For card-not-present (CNP) payments, challenge flow indicates that the financial institution (FI) or issuer requires more evidence to verify the legitimacy of the transaction. In the challenge flow, the customer must provide extra information to authenticate the payment, such as a password or a one-time code that the card issuer sends to their mobile device.","_id":"673d91e18d8ee100686ff7b1"},{"term":"Client ID","definition":"Unique identifier for your app on the Clover App Market. Used to identify your app when making API requests to Clover. It helps Clover recognize which app is making the request and ensures that the app has the necessary permissions to access the requested resources. Your Client ID is the App ID value in your app's Settings page on the Developer Dashboard.","_id":"673d920fa0a15d006035e273"},{"term":"closeout","definition":"Process of closing your open batch of transactions and submitting it for clearing, settlement, and funding.","_id":"673d9905da33e30053bc78c6"},{"term":"Clover APK","definition":"Android application package (APK) created for integration with Clover merchant services and point of sale (POS) systems. Developers must design, generate, and register their APK following Clover standards. Once approved, the APK is submitted for distribution on Clover devices, ensuring it meets the necessary guidelines for proper installation and functionality on the hardware.","_id":"673d9977bbac4c0010270eb4"},{"term":"Clover Community","definition":"Online forum for developers to ask questions and get help with the Clover API.","_id":"673d9988a08500003054a420"},{"term":"Clover Connector SDK","definition":"Provides an interface that allows external point of sale (POS) systems to access the same payment functions as PaymentConnector, such as sales and refunds. It also offers additional features like custom receipts and Android activities. The SDK is available for four platforms: Android, iOS, JavaScript, and .NET.","_id":"673d998ef090bf003e28b229"},{"term":"Clover Go reader","definition":"EMV-capable device that pairs with an Apple (iOS®) and Android smartphone or tablet. The reader allows iOS and Android mobile apps to accept swipe, NFC, or EMV transactions with no EMV certification required at the merchant's end. Clover Go reader accepts chip, dip, and contactless payments, including Tap-to-Pay on iPhone, Apple Pay®, Google Pay™ and Samsung Pay®.","_id":"673d999f98b87a00571c2cd9"},{"term":"Clover ID","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. This identifier displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and also on the Merchant Dashboard > User Settings page below the merchant name. It also displays in the URL (link) of the Clover Merchant Dashboard. Example: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. Format: 13-alphanumeric","_id":"673d99ae4529f8000fd3e1d3"},{"term":"Code and sample apps","definition":"Resources on GitHub to help get started with the Clover APIs.","_id":"673d99b8ea642800216d0571"},{"term":"code challenge","definition":"Base64-URL-encoded string derived from the code verifier using a transformation method such as SHA-256. Code challenge is sent to the authorization server during the initial authorization request. It ensures that the app that initiated the request is the same app that is completing the request.","_id":"673d99c2204ee80045357003"},{"term":"code verifier","definition":"Cryptographically random string that a low-trust app needs to generate at the beginning of the authorization process. It is used to create a code challenge and is sent to the authorization server to verify the authorization request.","_id":"673d99d191bf64002a9f8216"},{"term":"CORS","definition":"Security feature that allows web pages to request resources from different origins, controlled through HTTP headers.","_id":"673d99e1e88e42003ebe326c"},{"term":"denominated gift card","definition":"Cards with a specific value assigned to them at the time of purchase. For example, a gift card might be worth $25, $50, or $100. When a customer buys a denominated gift card, they know exactly how much value is on the card.","_id":"673d99e916f16000112f6f9b"},{"term":"Developer Dashboard","definition":"If you are creating new apps, log in to the Global Developer Dashboard. If you are managing apps previously created on the legacy developer platform, continue using the Developer Dashboard based on your merchant's region.","_id":"673d9a047053dd000f43a0f2"},{"term":"developer platform","definition":"Open platform for third-party developers to build apps and integrate external point-of-sale systems with Clover devices. Create new apps on the global developer platform through the Global Developer Dashboard.","_id":"673d9a0a7ab0410068f93c71"},{"term":"Device Manager","definition":"Android Studio tool for creating and managing an Android Virtual Device (AVD).","_id":"673d9a15216993003780ce8f"},{"term":"DPI","definition":"DPI (dots per inch) is the pixel density, that is the number of pixels within a physical area of the screen. DPI is different from the screen resolution, which is the total number of pixels on a screen.","_id":"673d9a1f5db0190019bd13dc"},{"term":"Ecommerce API key","definition":"Identifies the merchant who is tokenizing customers' cards. You can use the same static Ecommerce API key to tokenize multiple cards for that merchant. This is also known as the PAKMS key, as it is generated from the Public Access Key Management Service (PAKMS) using the [Ecommerce - PAKMS Service API](https://docs.clover.com/dev/reference/getapikey).","_id":"673d9be7e88e42003ebe330c"},{"term":"Ecommerce API","definition":"API to integrate Clover payment capabilities into your online or web-based applications. It provides endpoints for creating tokens, processing payments, and managing customer data. OAuth tokens are necessary for authentication and authorization.","_id":"673d9bf11aaaa0005430f26f"},{"term":"EMV","definition":"EMV cards are smart cards, also called chip cards, integrated circuit cards, or IC cards. They store their data on integrated circuit chips in addition to a magnetic stripe. EMV stands for Europay, Mastercard, and Visa, the three companies that created the specifications to facilitate worldwide interactions and acceptance of secure payments.","_id":"673d9bfe68c269003c38a68a"},{"term":"EMVCo","definition":"Consortium with equal control among American Express, China UnionPay, Discover, JCB, Mastercard, and Visa. EMVCo creates and manages EMV® Specifications and programs that enable seamless and secure card-based payments for businesses and consumers worldwide.","_id":"673d9c062b1c2c001fb7f364"},{"term":"Environment variables","definition":"A set of key-value pairs that a running process can access during runtime. These variables can be used to configure and adjust the behavior of the app or system, and they can vary between different execution environments.","_id":"673d9c3857fdbd003d772831"},{"term":"FAC","definition":"Foreign access code value is used to process transactions for non-native gift cards on the Clover point of sale system.","_id":"673d9c417ab0410068f93ede"},{"term":"frictionless flow","definition":"For card-not-present (CNP) payments, frictionless flow refers to a seamless process where the financial institution (FI) or issuer can verify the legitimacy of a transaction without requiring additional input from the cardholder. This behind-the-scenes verification lets customers complete their purchases without any noticeable interruptions or authentication steps.","_id":"673d9c60dcf4bc00436cef7e"},{"term":"gift card","definition":"A gift card is a prepaid payment card used to make purchases at participating restaurants, stores, or online retailers.","_id":"673d9c69cbad42003c236e58"},{"term":"global developer platform","definition":"Provides an intuitive and seamless experience to create apps and integrations for different regions. With a single developer account, you can access both sandbox and production environments and switch between them effortlessly.","_id":"673d9c71e88e42003ebe3362"},{"term":"high-trust app","definition":"Securely stores and uses the Client Secret (`app_secret`) and employs the standard authorization code flow to generate expiring authentication tokens.","_id":"673d9c7bea642800216d0794"},{"term":"hosted payment form","definition":"Secure way to accept ecommerce credit card payments without the need for a shopping cart. Clover hosts the form, so sensitive payment data does not pass through the merchant's system, reducing the PCI scope and minimizing merchant liability. You can implement payment forms using a standard template or customize it to fit the look and feel of the merchant's ecommerce website.","_id":"673d9c88204ee80045357119"},{"term":"Idempotency Key","definition":"Unique identifier used to ensure that a particular operation is performed only once, even if the request is made multiple times. This is particularly useful in scenarios where network issues or client retries might cause the same request to be sent more than once.","_id":"673d9c9f0c9f1a00368c050b"},{"term":"Incremental authorization","definition":"Allows merchants to change the original authorization amount to ensure the customer's card can still cover the higher amount.","_id":"673d9ca77053dd000f43a1a7"},{"term":"issuer","definition":"Financial institutions, such as a bank that issues a credit card to a consumer or business.","_id":"673d9caf2ab88500611e934d"},{"term":"low-trust app","definition":"Mobile or single-page apps that cannot securely store the Client Secret (`app_secret`) and use the authorization code flow with Proof Key for Code Exchange (PKCE) to enhance security during token acquisition.","_id":"673d9cc7d27f0b001991bbb0"},{"term":"LTE","definition":"LTE (Long-Term Evolution) is a fourth-generation (4G) wireless standard that provides increased network capacity and speed for mobile phones and other cellular devices compared with third-generation (3G) technology.","_id":"673d9cd6216993003780cf96"},{"term":"merchantId","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. The merchantId displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and on the Merchant Dashboard > User Settings page below the merchant’s name. It also displays in the URL (link) of the Clover Merchant Dashboard. Example: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. Format: 13-alphanumeric; Note: The merchantId is different from the MID.","_id":"673d9ce1dcf4bc00436cf043"},{"term":"MID","definition":"Merchant identifier (MID) identifies your merchant account and is the same across devices with the same merchant name. This identifier is available on the Clover device Diagnostics > Additional Details screen and also on the Merchant Dashboard > User Settings page, in the MID column. Note: The MID is different from the merchant UUID or merchantId.","_id":"673d9cf63dd0b800123c0b68"},{"term":"Minimum SDK","definition":"The minSdk specifies the minimum SDK version your app supports. For example, if your minSdk is 26, your app will only run on devices with Android 8 (API level 26) or higher. The minSdk is defined in your app's build.gradle file.","_id":"673d9cfe0c9f1a00368c0548"},{"term":"MOTO","definition":"MOTO (Mail Order/Telephone Order) transactions are merchant-initiated, card-not-present (CNP) transactions in which customers provide their order and payment details by regular mail (not email), fax, or telephone. In these transactions, card information is captured, and payment is processed with the customer’s consent, even though the card is not physically present.","_id":"673d9d084f9f5c0012f57b49"},{"term":"multi-factor authentication","definition":"Security process that requires two different forms of identification to verify a user’s identity, typically combining something you know, such as a password, with something you have, such as a mobile device.","_id":"673d9d0f994595002a60b8e4"},{"term":"multi-lock","definition":"Set aside and lock a specific amount from the available balance on a gift card for a specified time period. Multiple locks can be active simultaneously as long as there is a balance. The locked amount automatically unlocks when the specified time expires or upon request to unlock and redeem the amount.","_id":"673d9d18352c60006f15d204"},{"term":"native gift card","definition":"Gift cards that use the Clover-integrated Gift Card Solution, managed through the Fiserv payment gateway. May have a 4-8 digit security card value (SCV). These non-expiring cards are fully integrated into the Clover point of sale system, allowing for seamless transactions and management.","_id":"673d9d218effef006b1f1190"},{"term":"NFC","definition":"Near Field Communication (NFC) is a group of wireless technologies that work over a short distance, usually 4 cm or less, to establish a connection. With NFC, you can transfer small amounts of data between an Android-powered device and an NFC tag or between two Android-powered devices.","_id":"673d9d4116f16000112f72fd"},{"term":"non-denominated gift card","definition":"Cards without a preset value at the time of purchase are activated with a value determined at the time of purchase. The purchaser or recipient can choose the amount, depending on the terms set by the merchant.","_id":"673d9d6950cd900047362e83"},{"term":"non-native gift card","definition":"Gift cards managed through payment gateways other than Fiserv and do not use the Clover-integrated Gift Card Solution. May have a 4-8 digit foreign access code (FAC) for transactions and may not offer the same level of integration with the Clover point of sale system. While non-native gift cards can be used with Clover, they may require additional steps or configurations to process transactions.","_id":"673d9d82289098004b0bafa9"},{"term":"OTP","definition":"Unique, temporary code used for a single login session or transaction. A one-time password (OTP) is generated after you scan a QR code in your authenticator app during account setup or use the authenticator. You need to enter the OTP to verify your identity when logging into the Global Developer Dashboard.","_id":"673d9d969a77b00010d6b530"},{"term":"partial month","definition":"The first charge is added when a merchant installs a new app, and the installation occurs after the first of the month.","_id":"673d9db116f16000112f7352"},{"term":"Payment Connector","definition":"Java-based interface that lets you build a point of sale (POS) directly on a Clover device. It provides all of the Clover features needed for your app to make a sale, issue a refund, and perform other payment functions.","_id":"673d9dbe92944d00479e32f7"},{"term":"payment gateway","definition":"Virtual equivalent of a physical credit and debit card reader. It transfers the data between the point of entry—either a terminal, website, or mobile device—to the payment processor to continue the payment lifecycle.","_id":"673d9e995db0190019bd1553"},{"term":"payment processor","definition":"Technical intermediary, such as Fiserv or Clover that securely handle transactions between a merchant and a customer by processing card or electronic payments.","_id":"673d9ea1a08500003054a516"},{"term":"physical gift card","definition":"Tangible gift card that you can load and reload with an amount and use as a cash equivalent to make in-store and online purchases.","_id":"673d9edd50cd900047362f00"},{"term":"POS","definition":"Point of sale (POS) system enables businesses to accept customer payments and efficiently manage operations. The system consists of both hardware and software components. The software is often cloud-based, allowing access from anywhere. The hardware typically includes a register, barcode scanner, card reader, cash drawer, and receipt printer.","_id":"673d9ee650cd900047362f4d"},{"term":"promotional code","definition":"Unique values, usually alphanumeric, associated with a virtual gift card and sent by email, text, or through an app. The promotional or promo code is used to activate and redeem the virtual gift card.","_id":"673d9eef912f2c00165321a1"},{"term":"Proof Key for Code Exchange","definition":"Extension to the OAuth 2.0 authorization code flow designed to enhance security, especially for public clients like mobile and single-page applications that cannot securely store the Client Secret. PKCE ensures that even if an authorization code is intercepted, it cannot be exchanged for tokens without the original `code_verifier`.","_id":"673d9f04139f87004b4112c9"},{"term":"prorated subscription","definition":"Merchant subscription tier adjustment. When a merchant downgrades their subscription, or uninstalls an app, Clover adjusts the charge difference in the current month's advance on the merchant account.","_id":"673d9f42352c60006f15d28e"},{"term":"PSD2","definition":"Payment Service Directive 2 (PSD2) is a European Union directive that grants bank customers the ability to share their account information with third-party providers. These providers can then manage the customer’s finances, enabling services like direct payments.","_id":"673d9f48e88e42003ebe33ab"},{"term":"QR code","definition":"Quick Response (QR) code. Type of two-dimensional barcode that stores data in a pattern of black and white squares. You can scan the QR code with a camera to quickly access information like URLs, contact details, or authentication keys. The QR code typically expires after a short period, usually around 5 minutes.","_id":"673d9f52afd9bf001392273e"},{"term":"reCAPTCHA","definition":"Completely Automated Public Turing test to tell Computers and Humans Apart. reCAPTCHA is a Google service that verifies a user is human and not a bot by presenting tests that are easy for humans but difficult for automated software.","_id":"673d9f5c8082270030d0ded6"},{"term":"recovery codes","definition":"Alphanumeric backup verification codes generated when you add a new account to your authenticator app. Recovery codes let you access your account if you do not have your device.","_id":"673d9f71fd59830026abdc2c"},{"term":"Redirect URI","definition":"Link (URL) that an app uses to redirect users after authentication using the OAuth flow. The `redirect_uri` parameter is used to specify a custom post-authorization landing page. This URL must be a subpath of the set Site URL for the app.","_id":"673d9f803f79f3007604d181"},{"term":"Release notes","definition":"Monthly updates about new features and updates across the Clover developer platform.","_id":"673d9f8bcbad42003c236f28"},{"term":"Remote Pay","definition":"API that lets your point of sale (POS) system communicate with Clover payment devices. The Remote Pay SDK is used to semi-integrate a POS with a Clover device for card-present transactions. This allows merchants to process payments and perform operations through the cloud. The SDKs are available for different platforms, including Android and JavaScript.","_id":"673da0ea8d8ee10068701cd9"},{"term":"REST API","definition":"API to build a browser-based integration that creates a secure connection to your website. It redirects a merchant from the Clover Merchant Dashboard to your website URL (link).","_id":"673da0f698b87a00571c2fbf"},{"term":"REST Pay Display API","definition":"API that enables card-present payments on Clover Flex or Mini devices through cloud or local network, without requiring an embedded SDK. POS systems can use HTTP calls to initiate and complete transactions, supporting chip, swipe, and contactless payments.","_id":"673da1869a77b00010d6b6fc"},{"term":"Revenu Québec","definition":"Agency of the government of the Province of Quebec, Canada. It collects taxes to fund public services, ensures that all citizens pay their fair share, and administers programs.","_id":"673da2fa559631007d645bf3"},{"term":"SCV","definition":"Security code value is a unique code used to validate and secure transactions for Clover native gift cards.","_id":"673da33a8d8ee10068701e80"},{"term":"semi-integration","definition":"Semi-integration involves a third-party point of sale (POS) system using Clover for payment processing. In a native integration, your POS runs directly on Clover hardware as an app.","_id":"673da348216993003780d3e9"},{"term":"Site URL","definition":"Link (URL) for your app that you enter on the Edit REST Configuration page for web apps. After a merchant installs and launches your app from the Merchant Dashboard, Clover routes authenticated merchants to this URL through the `/oauth/v2/authorize` endpoint. The merchant can log in or select their merchant account before accessing your app.","_id":"673da34ee88e42003ebe36b9"},{"term":"SPI","definition":"Serial Peripheral Interface (SPI) is a widely used synchronous serial communication standard primarily employed in embedded systems. It facilitates short-distance wired communication between integrated circuits (ICs).","_id":"673da3572b1c2c001fb7f7d7"},{"term":"split tender payment","definition":"Process of dividing or splitting a single transaction into multiple payment methods. For example, a customer can pay part of their bill with cash and the remaining balance with a credit card. This feature is useful when customers want to use more than one payment method to complete a purchase.","_id":"673da361bbac4c00102711dd"},{"term":"Strong Customer Authentication","definition":"European regulatory requirement that makes online payments more secure by using biometrics to validate card-not-present (CNP) digital transactions. With the PSD2 regulations, additional information is needed from the user at the time of payment than just the card number and a card verification code (CVC). This information to verify user identities includes one of the following: 1. what the user knows: password, PIN. 2. what the user possesses: card, mobile phone. 3. what belongs to the user: fingerprints, facial recognition.","_id":"673da36fcbad42003c23718f"},{"term":"Target SDK","definition":"The targetSdk is the SDK version your app targets. It should always be the same as the compileSdk. For instance, if your targetSdk is 30, your app is designed to work optimally on Android 11 (API level 30) or higher. The targetSdk is defined in your app's build.gradle file.","_id":"673da378994595002a60be39"},{"term":"Text code","definition":"Alphanumeric secret key that you enter manually into an authenticator app to generate a one-time password (OTP) for account verification. The text code does not expire, but the OTP generated from it is time-based and usually expires every 30 seconds.","_id":"673da3844529f8000fd3e849"},{"term":"tokenization","definition":"Security measure that replaces a user's payment details, such as credit card numbers, expiration dates, and card verification values or codes, with non-specific IDs called tokens. Tokens are randomly generated when a customer provides their payment information at the point of sale (POS) or on an ecommerce website.","_id":"673da394ee19c10031477e4e"},{"term":"TransArmor token","definition":"Provides an additional layer of security to protect cardholder data during transactions and reduce the regeneration of payment tokens.","_id":"673da39caccb100010a8594f"},{"term":"UART","definition":"Universal Asynchronous Receiver-Transmitter (UART) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable.","_id":"673da3ae4529f8000fd3e8f4"},{"term":"USB","definition":"Universal Serial Bus (USB) is an industry connection standard that allows data exchange and delivery of power between many various types of electronics.","_id":"673da3b8139f87004b411594"},{"term":"vaulted card","definition":"Securely stored card token that can be used for future transactions. It lets merchants process recurring payments or quickly complete in-person transactions for returning customers. The card token is one-way encrypted and can be stored outside the Payment Card Industry Data Security Standard (PCI DSS) scope.","_id":"673da3c716f16000112f75e4"},{"term":"verification code","definition":"Time-based one-time password (OTP) generated after you scan a QR code or enter a text code in your authenticator app. You need to enter this 6-digit OTP to verify your identity when logging into the Global Developer Dashboard. The OTP usually expires every 30 seconds.","_id":"673da3d13dd0b20066375797"},{"term":"virtual gift card","definition":"Unique code or number delivered to a recipient by email, text, or through an app. The virtual card number or promotional code is used for making purchases at online or brick-and-mortar retailers.","_id":"673da3e3352c60006f15d5b3"},{"term":"webhooks","definition":"HTTP-based callback function allows for lightweight, event-driven communication between two application programming interfaces (APIs). When an event, such as a new user registration or a completed purchase, happens in one application, that application sends an HTTP POST request to a specific URL (the webhook) along with relevant data. The receiving application, which has the webhook, processes this data and takes appropriate actions based on the event.","_id":"673da3f9bbcdda0036911d51"},{"term":"custom tender","definition":"Flexible payment method on Clover devices for tailored payment experiences, such as loyalty programs or QR code scanning. Custom tenders can be configured for both customer-facing and merchant-facing interactions.","_id":"673ed307f1cb57004b2c2fae"},{"term":"single-pay token","definition":"Tokens used for a one-time payment, such as creating a charge or paying for an order. Follow-up actions like capturing a charge or issuing a refund don't require a token, as they are linked to the original transaction through the `chargeId` from the initial response. The token is alphanumeric and begins with `clv_`, such as clv_1ABCDefgHI23jKL4m5nOPqR.","_id":"674ed570fec10b0024ef6a92"},{"term":"multi-pay token","definition":"Payment tokens that can be used multiple times to create charges, pay for orders, and handle recurring payments. Examples of multi-pay tokens are TransArmor (TA) and card-on-file (COF).\n\nMulti-pay tokens are generated by using a single-use token as the `source` parameter when creating or updating a customer record. Both card and ACH tokens can be converted into multi-pay tokens.","_id":"674ed65d7cc93a004673affb"},{"term":"liability shift","definition":"Applies only to chargebacks related to fraud and does not cover non-fraudulent customer claims.","_id":"675297637923be3297a6d50f"},{"term":"blocks","definition":"Modular units in the WordPress Editor used to create and customize online store content. With blocks, you can add, remove, or rearrange elements such as product descriptions, images, videos, call-to-action buttons, and text on the store's webpage.","_id":"675fa7e67731ac46571de14c"},{"term":"object","definition":"Collection of key-value pairs. Each key is a string, and the value can be any data type, including strings, numbers, arrays, booleans, null, or another JSON object.","_id":"6777683e3aa647b32217274f"},{"term":"Clover Inventory app","definition":"App to help merchants manage their inventory, including menus, merchandise, and service offerings. It allows for easy updates, bulk editing, and tracking of inventory levels, making it simpler to manage both online and in-store transactions.","_id":"677b467a4bfc2927d78817aa"},{"term":"Clover Register app","definition":"App used for processing transactions and customizing the point-of-sale (POS) experience. It allows merchants to organize items, apply discounts, and manage orders efficiently.","_id":"677b46946917b427bd15de13"},{"term":"inventory","definition":"Collection of items that a merchant sells, manages, and tracks using the Clover system.","_id":"677b46a03bb287005772e5c0"},{"term":"item","definition":"Individual product or service that is part of the merchant's inventory.","_id":"677b46b0dc4a7b002a986d1e"},{"term":"item group","definition":"Groups of related items, such as different sizes or colors of a product, managed together.","_id":"677b46bfb0952e003d78fffb"},{"term":"variants","definition":"Different versions of an item, such as sizes or colors, managed under the same item group.","_id":"677b46cf6f74850068c286d7"},{"term":"attributes","definition":"Characteristics of an item group, like size or color, that define its variants.","_id":"677b46dd1186ed22f8381972"},{"term":"options","definition":"Specific values for an attribute, such as Small or Large for the size attribute.","_id":"677b46f28afafb00635aef3d"},{"term":"item stock","definition":"Quantity of a specific item available in the inventory.","_id":"677b46fd011bf3001ceaa30a"},{"term":"modifier","definition":"Option added to an item to customize it, such as extra toppings on a pizza.","_id":"677b470f1ad2840070ab1382"},{"term":"modifier groups","definition":"Collections of related modifiers that can be applied to items, such as a group of salad add-ins.","_id":"677b471c4bfc2927d788181a"},{"term":"categories","definition":"Used to visually organize items in the Clover Register app, like grouping all appetizers together.","_id":"677b472a2c10ae464d662135"},{"term":"tags","definition":"Labels used for identifying and organizing items within the inventory.","_id":"677b4735742c90001115c4f5"},{"term":"association","definition":"Relationship between different objects within the inventory system, such as by linking items to categories, modifier groups, options, tax rates, or labels.","_id":"677b474265ea31000f6d36f5"},{"term":"revenue class","definition":"Categories used to track and compare revenue streams and sales of items taxed at variable rates. Items tagged with a revenue class can be monitored as part of a specific revenue stream.","_id":"677b474ffa5037bd9b6b41a6"},{"term":"API tokens","definition":"API tokens are used to authenticate requests to Clover REST APIs. Generating an API token is a fundamental part of the OAuth flow to enable secure, controlled, and auditable access to APIs.","_id":"6780a8af549130000f384e35"},{"term":"OAuth","definition":"Clover uses the OAuth 2.0 security framework for third-party developers to authenticate their apps with merchant accounts and lets them use Clover public REST APIs on behalf of the merchant. Clover developers use expiring access and refresh tokens in the production environment to secure merchant data.","_id":"6780a8c295475c001160b4f4"},{"term":"App ID","definition":"Unique identifier assigned to Clover apps created in the Clover App Market. It is used to authenticate and authorize the app to interact with Clover APIs and devices. Also known as Client ID.","_id":"6780a9982cdb17001e1ed570"},{"term":"App Secret","definition":"Private key associated with your Clover app, used along with the App ID to authenticate the app during OAuth flows. It ensures that the app, Clover, and the merchant are all authorized to interoperate. Also known as Client Secret. Do not share the key publicly.","_id":"6780a9ba3cd127005354655b"},{"term":"Semi-integrated app","definition":"Point-of-sale (POS) solution that integrates a third-party point of sale (POS) system to use Clover for processing payments. This setup allows the POS software to accept EMV-ready, PCI-compliant payments without handling sensitive cardholder data directly.","_id":"6780aa757b05280026a4de52"},{"term":"RAID","definition":"Remote App ID. Unique identifier generated for your Clover app to facilitate semi-integrated solutions. It is used to log payments and expedite support requests for your app. Format: {developerId}.{appId}.","_id":"6780aa81f46ed4002f2838d4"},{"term":"Client Secret","definition":"Private key assigned to your Clover app. It is used along with the Client ID during the OAuth authentication process to verify the identity of your app. Your Client Secret is the Client ID value in your app's Settings page on the Developer Dashboard.","_id":"6780ac0d7ad41400246e97b0"},{"term":"manual refund","definition":"Occurs when a merchant refunds an amount without an associated sale or order. This type of refund is also known as credit, unmatched refund, unreferenced refund, or naked refund.","_id":"6788b9a0dffa5100601bb7bf"},{"term":"QSA","definition":"Individual or organization certified to assess and audit an organization's compliance with the Payment Card Industry Data Security Standards (PCI DSS).","_id":"67a1d33be4c6c40037900083"},{"term":"Magecart","definition":"Group of hackers that target online shopping cart systems to steal payment card information using malicious code.","_id":"67a1d3601df9064a5af766ab"},{"term":"card skimming","definition":"Using a device called a skimmer to steal card information directly from the magnetic stripe (magstripe) of a physical card. Skimmers are small, malicious card readers concealed within legitimate card readers to capture data from every card that is swiped.","_id":"67a1d39fbc84d0006be97405"},{"term":"card token","definition":"Unique, single-use code that represents a customer’s credit card details. It securely processes payments without exposing the actual card information.","_id":"682317018426a90059f1a215"},{"term":"production developer account","definition":"An approved Clover developer account that you use to submit apps to the Clover App Market. Clover must verify and approve this account before the app approval process can begin. Approval is not required for sandbox development.","_id":"69732acbf5124ede40a6b8d3"},{"term":"prorated subscription","definition":"A merchant subscription tier adjustment, when a merchant downgrades their subscription, or uninstalls an app, and Clover adjusts the charge difference in the current month's advance on the merchant account.","_id":"5f469d85c01cfd0de57b733c"},{"term":"partial month","definition":"The first charge is added when a merchant installs a new app and the installation occurs after the first of the month.","_id":"5fa5f5af0544dd002ae86eee"},{"term":"Auth","definition":"Authorization (Auth) is a tip-adjusted sale. This type of transaction is typically used by restaurants and services establishments.","_id":"649d3869b0358b0018203a82"},{"term":"billable merchant","definition":"Active merchant accounts with Clover. These are not test merchant or demo accounts, and are not suppressed for billing.","_id":"65420a1c3639880059d6c862"},{"term":"LTE","definition":"LTE (Long-Term Evolution) is a fourth-generation (4G) wireless standard that provides increased network capacity and speed for mobile phones and other cellular devices compared with third-generation (3G) technology.","_id":"661647a5e965fe0049f6d8f7"},{"term":"USB","definition":"Universal Serial Bus (USB) is an industry connection standard that allows data exchange and delivery of power between many various types of electronics.","_id":"6616562dbbacf5005644286c"},{"term":"NFC","definition":"Near Field Communication (NFC) is a group of wireless technologies that work over a short distance, usually 4 cm or less, to establish a connection. With NFC, you can transfer small amounts of data between an Android-powered device and an NFC tag or between two Android-powered devices.","_id":"66165f787392b500281d879b"},{"term":"SPI","definition":"Serial Peripheral Interface (SPI) is a widely used synchronous serial communication standard primarily employed in embedded systems. It facilitates short-distance wired communication between integrated circuits (ICs).","_id":"6616602c2f58ae0030b9e0b9"},{"term":"Android ABI","definition":"Android ABI (Application Binary Interface) defines how an application's machine code interacts with the system at runtime. It specifies details such as the CPU instruction set, endianness of memory stores and loads, conventions for passing data between applications and the system, and the format of executable binaries.","_id":"663480a9586d280012ffa5c7"},{"term":"UART","definition":"Universal Asynchronous Receiver-Transmitter (UART) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable.","_id":"6634c2cc21173a00853683de"},{"term":"Android Virtual Device","definition":"Android Virtual Device (AVD) is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator. An AVD contains a hardware profile, system image, storage area, skin, and other properties.","_id":"6634c647f44e150034a81e8f"},{"term":"API level","definition":"Each Android version corresponds to a specific API level. For example, Android 11 corresponds to API level 30, Android 10 to API level 29, and so on. The API level precisely identifies the version of the API set that your app can call into. It defines the combination of manifest elements, permissions, and other features that you can use as a developer.","_id":"6634c7d40a25a7005195a4c9"},{"term":"DPI","definition":"DPI (dots per inch) is the pixel density, that is the number of pixels within a physical area of the screen. DPI is different from the screen resolution, which is the total number of pixels on a screen.","_id":"6634cc35af2922003f0ae0c7"},{"term":"CORS","definition":"Security feature that allows web pages to request resources from different origins, controlled through HTTP headers.","_id":"663b440a27b57b0051ef9a8f"},{"term":"Clover APK","definition":"Android application package (APK) created for integration with Clover merchant services and point of sale (POS) systems. Developers must design, generate, and register their APK following Clover standards. Once approved, the APK is submitted for distribution on Clover devices, ensuring it meets the necessary guidelines for proper installation and functionality on the hardware.","_id":"663b4b305eca4200256ecda6"},{"term":"Clover ID","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. \nThis identifier displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and also on the Merchant Dashboard > User Settings page below the merchant name. It also displays in the URL (link) of the Clover Merchant Dashboard.\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId.\nFormat: 13-alphanumeric","_id":"663dcf4edeb40d00180a5b76"},{"term":"MID","definition":"Merchant identifier (MID) identifies your merchant account and is the same across devices with the same merchant name. This identifier is available on the Clover device Diagnostics > Additional Details screen and also on the Merchant Dashboard > User Settings page, in the MID column.\nNote: The MID is different from the merchant UUID or merchantId.","_id":"663dd341cec219002bb270ec"},{"term":"merchantId","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId.\nThe merchantId displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and on the Merchant Dashboard > User Settings page below the merchant’s name. It also displays in the URL (link) of the Clover Merchant Dashboard.\n\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. \nFormat: 13-alphanumeric; Note: The merchantId is different from the MID.","_id":"6641eb054a33e700319e8fad"},{"term":"blackhole payment gateway","definition":"Default gateway for test merchant accounts in the Clover sandbox environment. It sets all transactions to be successful and suffices for most development use cases.","_id":"66447e6e653fa90018e2afb5"},{"term":"vaulted card","definition":"Securely stored card token that can be used for future transactions. It lets merchants process recurring payments or quickly complete in-person transactions for returning customers. The card token is one-way encrypted and can be stored outside the Payment Card Industry Data Security Standard (PCI DSS) scope.","_id":"665024515cb512003d87936b"},{"term":"card tokenization","definition":"Faud-prevention measure that replaces sensitive payment credentials, such as credit card numbers, cardholder names, expiration dates, and CVV codes with non-specific identifiers known as tokens. These tokens are used for subsequent transactions, allowing secure storage and processing of payment information.","_id":"6650245bc4047b006129c46e"},{"term":"REST Pay Display API","definition":"Provides a simple interface for point of sale (POS) applications to accept payments on Clover Flex or Clover Mini devices. Developers can connect their apps to Clover devices using cloud or local network connections without requiring an embedded software development kit (SDK). It minimizes effort for handling on-device activities and states.","_id":"665024a633a4ef004cea5907"},{"term":"PSD2","definition":"Payment Service Directive 2 (PSD2) is a European Union directive that grants bank customers the ability to share their account information with third-party providers. These providers can then manage the customer’s finances, enabling services like direct payments.","_id":"665431a4b21564006f6b8c05"},{"term":"EMV","definition":"EMV cards are smart cards, also called chip cards, integrated circuit cards, or IC cards. They store their data on integrated circuit chips in addition to a magnetic stripe. EMV stands for Europay, Mastercard, and Visa, the three companies that created the specifications to facilitate worldwide interactions and acceptance of secure payments.","_id":"66544b3f1bccff0031b78365"},{"term":"EMVCo","definition":"Consortium with equal control among American Express, China UnionPay, Discover, JCB, Mastercard, and Visa. EMVCo creates and manages EMV® Specifications and programs that enable seamless and secure card-based payments for businesses and consumers worldwide.","_id":"66544e518f53e8002b8cf6c6"},{"term":"3DS","definition":"3DS protocol uses a three-domain model to add an extra layer of security between the financial authorization process and the online authentication process. The three domains are: 1. Issuer domain: Financial institution (FI) or bank that issued the card used for the transaction. 2. Acquirer domain: Merchant that accepts online payments from customers. 3. Interoperability domain: 3DS infrastructure platform that is the secure intermediary facilitating communication between the customer and the merchant.","_id":"66544eb4e0f4d500690f5ccd"},{"term":"Strong Customer Authentication","definition":"European regulatory requirement that makes online payments more secure by using biometrics to validate card-not-present (CNP) digital transactions. With the PSD2 regulations, additional information is needed from the user at the time of payment than just the card number and a card verification code (CVC). This information to verify user identities includes one of the following: 1. what the user knows: password, PIN. 2. what the user possesses: card, mobile phone. 3. what belongs to the user: fingerprints, facial recognition.","_id":"66544f82555ae8001177e275"},{"term":"AID","definition":"Application Identifier. An identifier stored on the chip and terminal. It is used to identify mutually supported applications.","_id":"6657019455ddd9002b624bd4"},{"term":"webhooks","definition":"HTTP-based callback function allows for lightweight, event-driven communication between two application programming interfaces (APIs). When an event, such as a new user registration or a completed purchase, happens in one application, that application sends an HTTP POST request to a specific URL (the webhook) along with relevant data. The receiving application, which has the webhook, processes this data and takes appropriate actions based on the event.","_id":"6657f154ca069c002bd8e14b"},{"term":"developer platform","definition":"Open platform for third-party developers to build apps and integrate external point-of-sale systems with Clover devices.","_id":"665856f0f4f292004bed1660"},{"term":"Release notes","definition":"Monthly updates about new features and updates across the Clover developer platform.","_id":"6658571d250efe0030376d3a"},{"term":"Bug fixes","definition":"Monthly updates on the latest bug fixes across the Clover developer platform.","_id":"66585726f46d7600517c38b4"},{"term":"API changelog","definition":"Monthly updates related to API changes.","_id":"66585736ab2c5b0057f78516"},{"term":"Announcements","definition":"Messages that are sent in the developer communications emails.","_id":"6658574f1f2ad700769fd4ca"},{"term":"API docs and SDK guides","definition":"Resources needed to work with the Clover app and integration platforms.","_id":"665857b5b5c13a006581ef42"},{"term":"Code and sample apps","definition":"Resources on GitHub to help get started with the Clover APIs.","_id":"66585809f0013f005829dfed"},{"term":"semi-integration","definition":"Semi-integration involves a third-party point of sale (POS) system using Clover for payment processing. In a native integration, your POS runs directly on Clover hardware as an app.","_id":"6659bd2d2f7dfe00117cc3f2"},{"term":"Android Payment API","definition":"Intent-based API used in applications running on Clover devices for executing payment transaction requests. It supports payment operations, including payments, preauthorizations, and payment reversals (void/refund), using Android Intent Builders.","_id":"665d3aad49f7e10014c6ec18"},{"term":"Clover Connector SDK","definition":"Provides an interface that allows external point of sale (POS) systems to access the same payment functions as PaymentConnector, such as sales and refunds. It also offers additional features like custom receipts and Android activities. The SDK is available for four platforms: Android, iOS, JavaScript, and .NET.","_id":"665d3ad3a40a010010ae9b1d"},{"term":"Payment Connector","definition":"Java-based interface that lets you build a point of sale (POS) directly on a Clover device. It provides all of the Clover features needed for your app to make a sale, issue a refund, and perform other payment functions.","_id":"665d3af204832a002afc719f"},{"term":"card on file","definition":"Card on file (COF) transactions are payments in which the cardholders have authorized merchants to store their credit or debit card information to use for future purchases or recurring payments.","_id":"665ff984f6928a0011b2597c"},{"term":"frictionless flow","definition":"For card-not-present (CNP) payments, frictionless flow refers to a seamless process where the financial institution (FI) or issuer can verify the legitimacy of a transaction without requiring additional input from the cardholder. This behind-the-scenes verification lets customers complete their purchases without any noticeable interruptions or authentication steps.","_id":"6660077fed8e620058cba957"},{"term":"challenge flow","definition":"For card-not-present (CNP) payments, challenge flow indicates that the financial institution (FI) or issuer requires more evidence to verify the legitimacy of the transaction. In the challenge flow, the customer must provide extra information to authenticate the payment, such as a password or a one-time code that the card issuer sends to their mobile device.","_id":"6660082bb0c450004a3d7cd3"},{"term":"Minimum SDK","definition":"The minSdk specifies the minimum SDK version your app supports. For example, if your minSdk is 26, your app will only run on devices with Android 8 (API level 26) or higher. The minSdk is defined in your app's build.gradle file.","_id":"6666dc0bda9518005ad0f2c4"},{"term":"Target SDK","definition":"The targetSdk is the SDK version your app targets. It should always be the same as the compileSdk. For instance, if your targetSdk is 30, your app is designed to work optimally on Android 11 (API level 30) or higher. The targetSdk is defined in your app's build.gradle file.","_id":"6666dc4a3ad9e6001902ee93"},{"term":"Clover Go reader","definition":"EMV-capable device that pairs with an Apple (iOS®) and Android smartphone or tablet. The reader allows iOS and Android mobile apps to accept swipe, NFC, or EMV transactions with no EMV certification required at the merchant's end. Clover Go reader accepts chip, dip, and contactless payments, including Tap-to-Pay on iPhone, Apple Pay®, Google Pay® and Samsung Pay®.","_id":"66694ec3f70d380056818491"},{"term":"reCAPTCHA","definition":"Completely Automated Public Turing test to tell Computers and Humans Apart. reCAPTCHA is a Google service that verifies a user is human and not a bot by presenting tests that are easy for humans but difficult for automated software.","_id":"666c33157d8b4a00100763cd"},{"term":"closeout","definition":"Process of closing your open batch of transactions and submitting it for clearing, settlement, and funding.","_id":"66b1e05f8cc1e80036f755f1"},{"term":"Idempotency Key","definition":"Unique identifier used to ensure that a particular operation is performed only once, even if the request is made multiple times. This is particularly useful in scenarios where network issues or client retries might cause the same request to be sent more than once.","_id":"66b1e081070411006f242a41"},{"term":"Card track data","definition":"Information encoded on a payment card's magnetic stripe or chip. The data is used to authorize and process transactions.","_id":"66b1e092d989a500309e106f"},{"term":"POS","definition":"Point of sale (POS) system enables businesses to accept customer payments and efficiently manage operations. The system consists of both hardware and software components. The software is often cloud-based, allowing access from anywhere. The hardware typically includes a register, barcode scanner, card reader, cash drawer, and receipt printer.","_id":"66b1e0d73facec0061549d33"},{"term":"Environment variables","definition":"A set of key-value pairs that a running process can access during runtime. These variables can be used to configure and adjust the behavior of the app or system, and they can vary between different execution environments.","_id":"66b1e0e7c9a0630026e33d8a"},{"term":"Device Manager","definition":"Android Studio tool for creating and managing an Android Virtual Device (AVD).","_id":"66b1e1012f4fbd0012bc9ec5"},{"term":"REST Pay Display API","definition":"API that lets point of sale (POS) applications accept payments on Clover Flex or Clover Mini devices. Your apps can connect to Clover devices using cloud or local network connections without needing an embedded software development kit (SDK).","_id":"66b1e1598ab3d40024a6fb42"},{"term":"Incremental authorization","definition":"Allows merchants to change the original authorization amount to ensure the customer's card can still cover the higher amount.","_id":"66b1e1691318ca0024ab4e71"},{"term":"Android SDK","definition":"SDK to build apps that run on Clover devices and publish your apps on the Clover App Market. It is also used for semi-integration with a Clover device, enabling a third-party point of sale (POS) system to use Clover for processing payments.","_id":"66b1e20a42125e00248c4a47"},{"term":"Ecommerce API","definition":"API to integrate Clover payment capabilities into your online or web-based applications. It provides endpoints for creating tokens, processing payments, and managing customer data. OAuth tokens are necessary for authentication and authorization.","_id":"66b1e216070411006f2430f7"},{"term":"REST API","definition":"API to build a browser-based integration that creates a secure connection to your website. It redirects a merchant from the Clover Merchant Dashboard to your website URL (link).","_id":"66b1e220501830000ff1fe30"},{"term":"Remote Pay","definition":"API that lets your point of sale (POS) system communicate with Clover payment devices. The Remote Pay SDK is used to semi-integrate a POS with a Clover device for card-present transactions. This allows merchants to process payments and perform operations through the cloud. The SDKs are available for different platforms, including Android and JavaScript.","_id":"66b1e2478171f6004bf55916"},{"term":"authenticator app","definition":"Mobile or desktop application that generates time-based or counter-based one-time passwords (OTPs) for secure two-factor authentication (2FA). You can download an authentication app from the relevant app store. Popular authenticator apps include Google Authenticator and Microsoft Authenticator.","_id":"66b1e2a2eb2473005274f428"},{"term":"QR code","definition":"Quick Response (QR) code. Type of two-dimensional barcode that stores data in a pattern of black and white squares. You can scan the QR code with a camera to quickly access information like URLs, contact details, or authentication keys. The QR code typically expires after a short period, usually around 5 minutes.","_id":"66b1e2d12ecf960059e5efed"},{"term":"Text code","definition":"Alphanumeric secret key that you enter manually into an authenticator app to generate a one-time password (OTP) for account verification. The text code does not expire, but the OTP generated from it is time-based and usually expires every 30 seconds.","_id":"66b1e2f761fda7001c880966"},{"term":"verification code","definition":"Time-based one-time password (OTP) generated after you scan a QR code or enter a text code in your authenticator app. You need to enter this 6-digit OTP to verify your identity when logging into the Global Developer Dashboard. The OTP usually expires every 30 seconds.","_id":"66b1e3324a8ed4000f0daec7"},{"term":"recovery codes","definition":"Alphanumeric backup verification codes generated when you add a new account to your authenticator app. Recovery codes let you access your account if you do not have your device.","_id":"66b1e3602a764500122160e0"},{"term":"Bearer token","definition":"Type of token used in the authorization header of an API request to authenticate the client making the request. It is typically included in the request header as follows: Authorization: Bearer \u003ctoken>. This token is a string that represents the user’s identity and permissions.","_id":"66b5d42a7b9c96003cfdd893"},{"term":"issuer","definition":"Financial institutions, such as a bank that issues a credit card to a consumer or business.","_id":"66cc08fa653916002083ca5e"},{"term":"payment processor","definition":"Technical intermediary, such as Fiserv or Clover, that securely handles transactions between a merchant and a customer by processing card or electronic payments.","_id":"66cc0bc88f93620042dd0995"},{"term":"OTP","definition":"Unique, temporary code used for a single login session or transaction. A one-time password (OTP) is generated after you scan a QR code in your authenticator app during account setup or use the authenticator. You need to enter the OTP to verify your identity when logging into the Global Developer Dashboard.","_id":"66cee8a5c5ffef0068e4d2e6"},{"term":"Ecommerce API key","definition":"Identifies the merchant who is tokenizing customers' cards. You can use the same static Ecommerce API key to tokenize multiple cards for that merchant. This is also known as the PAKMS key, as it is generated from the Public Access Key Management Service (PAKMS) using the [Ecommerce - PAKMS Service API](https://docs.clover.com/dev/reference/getapikey).","_id":"66d14c2122903b002598a48e"},{"term":"certificates","definition":"Certificates and profiles are essential for app development and distribution of the Apple Pay® service on a Clover Ecommerce integration. Certificates are digital documents that verify your identity as a developer. They are used to sign your apps and ensure they come from a trusted source.","_id":"66d5643fc8122b003172dd2b"},{"term":"payment gateway","definition":"Virtual equivalent of a physical credit and debit card reader. It transfers the data between the point of entry—either a terminal, website, or mobile device—to the payment processor to continue the payment lifecycle.","_id":"66e2bcaff0da2a006234a6ec"},{"term":"SCV","definition":"Security code value is a unique code used to validate and secure transactions for Clover native gift cards.","_id":"66e2bdb31e8238004781d0d9"},{"term":"hosted payment form","definition":"Secure way to accept ecommerce credit card payments without the need for a shopping cart. Clover hosts the form, so sensitive payment data does not pass through the merchant's system, reducing the PCI scope and minimizing merchant liability. You can implement payment forms using a standard template or customize it to fit the look and feel of the merchant's ecommerce website.","_id":"66e2bfa3053af00011eed401"},{"term":"non-native gift card","definition":"Gift cards managed through payment gateways other than Fiserv and do not use the Clover-integrated Gift Card Solution. May have a 4-8 digit foreign access code (FAC) for transactions and may not offer the same level of integration with the Clover POS system. While non-native gift cards can be used with Clover, they may require additional steps or configurations to process transactions.","_id":"66e7fe4fa9dfdf006733e303"},{"term":"FAC","definition":"Foreign access code value is used to process transactions for non-native gift cards on the Clover POS system.","_id":"66e800edfa09a8002580c72a"},{"term":"native gift card","definition":"Gift cards that use the Clover-integrated Gift Card Solution, managed through the Fiserv payment gateway. May have a 4-8 digit security card value (SCV). These non-expiring cards are fully integrated into the Clover POS system, allowing for seamless transactions and management.","_id":"66ea5afc09450f003cb42c5b"},{"term":"global developer platform","definition":"Provides an intuitive and seamless experience to create apps and integrations for different regions. With a single developer account, you can access both sandbox and production environments and switch between them effortlessly.","_id":"66f4d1d2cb8a1b005b10dc6c"},{"term":"promotional code","definition":"Unique values, usually alphanumeric, associated with a virtual gift card and sent by email, text, or through an app. The promotional or promo code is used to activate and redeem the virtual gift card.","_id":"66f4f3b6f110bb0025a0a546"},{"term":"denominated gift card","definition":"Cards with a specific value assigned to them at the time of purchase. For example, a gift card might be worth $25, $50, or $100. When a customer buys a denominated gift card, they know exactly how much value is on the card.","_id":"66f4f3ea859e85000f9ed42f"},{"term":"non-denominated gift card","definition":"Cards without a preset value at the time of purchase. The value is determined at the time of activation. The purchaser or recipient can choose the amount, depending on the terms set by the merchant.","_id":"66f4f4046297ad0045acd3d6"},{"term":"physical gift card","definition":"Tangible gift card that you can load and reload with an amount and use as a cash equivalent to make in-store and online purchases.","_id":"66f4f7abaf58cc002b79b897"},{"term":"Client ID","definition":"Uniquely identifies your app on the Clover App Market. This ID confirms that your app is participating in the OAuth 2.0 flow. Your client ID is the App ID value in your app's Settings page on the Developer Dashboard.\nUsage: type \u003c\u003cglossary:client ID>> in your documentation","_id":"66f4facbbbd52700616a927b"},{"term":"multi-factor authentication","definition":"Security process that requires two different forms of identification to verify a user’s identity, typically combining something you know, such as a password, with something you have, such as a mobile device.","_id":"66f4fafe5a175000440a84ad"},{"term":"multi-lock","definition":"Set aside and lock a specific amount from the available balance on a gift card for a specified time period. Multiple locks can be active simultaneously as long as there is a balance. The locked amount automatically unlocks when the specified time expires or upon request to unlock and redeem the amount.","_id":"66f4fb8c5a175000440a8522"},{"term":"cash out","definition":"Process of removing the remaining balance from a gift card, bringing the account balance to zero (0). The customer may receive the remaining balance in cash, or choose to cash out and deactivate the card or close the gift card account.","_id":"66f4fbe75a175000440a8626"},{"term":"virtual gift card","definition":"Unique code or number delivered to a recipient by email, text, or through an app. The virtual card number or promotional code is used for making purchases at online or brick-and-mortar retailers.","_id":"66f533e214205c0013756446"},{"term":"gift card","definition":"A gift card is a prepaid payment card used to make purchases at participating restaurants, stores, or online retailers.","_id":"67035f89dfe5db0036fe25c0"},{"term":"tokenization","definition":"Security measure that replaces a user's payment details, such as credit card numbers, expiration dates, and card verification values or codes, with non-specific IDs called tokens. Tokens are randomly generated when a customer provides their payment information at the point of sale (POS) or on an ecommerce website.","_id":"6703600f788acb004914bf49"},{"term":"split tender payment","definition":"Process of dividing or splitting a single transaction into multiple payment methods. For example, a customer can pay part of their bill with cash and the remaining balance with a credit card. This feature is useful when customers want to use more than one payment method to complete a purchase.","_id":"6704a45f98ee1b001138b598"},{"term":"Alternate Launch Path","definition":"Link (URL) or subpath for your app that you set on the Edit REST Configuration page for web apps. When a merchant accesses your app without installing it, the app redirects the merchant to this Alternate Launch Path, which then directs them to the Clover App Market to initiate the v2/OAuth flow. This Alternate Launch Path URL is required for the `/oauth/v2/authorize` flow, as it uses expiring tokens to authenticate with APIs, ensuring the merchant is properly authenticated and connected to your app.","_id":"670ca43ff504a7006e24bf8f"},{"term":"Site URL","definition":"Link (URL) for your app that you set on the Edit REST Configuration page for web apps. After a merchant installs your app and launches it from the Merchant Dashboard, they are redirected to the Site URL. The Clover server sends authenticated merchants to the Site URL through the `/oauth/authorize` flow, where they can log in or select their merchant account.","_id":"670cea1f32a444001e3c6c28"},{"term":"Redirect URI","definition":"Link (URL) that an app uses to redirect users after authentication using the OAuth flow. The `redirect_uri` parameter is used to specify a custom post-authorization landing page. This URL must be a subpath of the set Site URL for the app.","_id":"670de4f72e9c8d0054159324"},{"term":"code verifier","definition":"Cryptographically random string that a low-trust app needs to generate at the beginning of the authorization process. It is used to create a code challenge and is sent to the authorization server to verify the authorization request.","_id":"6710ce4aac89460069e91d4d"},{"term":"code challenge","definition":"Base64-URL-encoded string derived from the code verifier using a transformation method such as SHA-256. Code challenge is sent to the authorization server during the initial authorization request. It ensures that the app that initiated the request is the same app that is completing the request.","_id":"6710d1df81cc1d0010747535"},{"term":"Proof Key for Code Exchange","definition":"Extension to the OAuth 2.0 authorization code flow designed to enhance security, especially for public clients like mobile and single-page applications that cannot securely store the Client Secret. PKCE ensures that even if an authorization code is intercepted, it cannot be exchanged for tokens without the original `code_verifier`.","_id":"6710d771f898df00102583cc"},{"term":"MOTO","definition":"MOTO (Mail Order/Telephone Order) transactions are merchant-initiated, card-not-present (CNP) transactions in which customers provide their order and payment details by regular mail (not email), fax, or telephone. In these transactions, card information is captured, and payment is processed with the customer’s consent, even though the card is not physically present.","_id":"6719dd13e584590033ba710a"},{"term":"TransArmor token","definition":"Provides an additional layer of security to protect cardholder data during transactions and reduce the regeneration of payment tokens.","_id":"671a081299f628005be483be"},{"term":"high-trust app","definition":"Securely stores and uses the Client Secret (`app_secret`) and employs the standard authorization code flow to generate expiring authentication tokens.","_id":"6732ec60a401bd0010b56e4f"},{"term":"low-trust app","definition":"Mobile or single-page apps that cannot securely store the Client Secret (`app_secret`) and uses the authorization code flow with Proof Key for Code Exchange (PKCE) to enhance security during token acquisition.","_id":"6732ec9383f7fa0076fa09c1"},{"term":"Revenu Québec","definition":"Agency of the government of the Province of Quebec, Canada. It collects taxes to fund public services, ensures that all citizens pay their fair share, and administers programs.","_id":"673d5d38d27f0b00199187cb"},{"term":"Developer Dashboard","definition":"All new apps for merchants in North America, Europe, and Latin America, and Asia Pacific are created on the Global Developer Dashboard.","_id":"68b817c046898ec8f853f343"}],"variables":{"user":{},"defaults":[{"source":"security","_id":"62e9b1eea177a30276e94d80","name":"BearerAuth","type":"http","apiSetting":"62e2b636fa1eee00872167ef"},{"source":"security","_id":"62ebf0918a8c490783ba3e62","name":"bearerAuth","type":"http","apiSetting":"62d70a619e87be00146d7d6e"},{"type":"","source":"","_id":"631109ebe868a2002148959f","name":"","default":""},{"source":"security","_id":"63fdd5805f536e0d5a8e0335","name":"OAuth2","type":"oauth2","apiSetting":"63fdd57f5f536e0d5a8e032d"},{"source":"security","_id":"6452212ec5886b14a0588915","name":"access_token","type":"apiKey","apiSetting":"6452212dc5886b14a0588913"},{"type":"","source":"server","_id":"64d3fc6b8dba8a005f24000b","name":"protocol","default":"https","apiSetting":"64c40c6f0a747f006a6f42a6"},{"type":"","source":"server","_id":"64d3fc6b8dba8a005f24000a","name":"environment","default":"sandbox.dev.clover.com","apiSetting":"64c40c6f0a747f006a6f42a6"},{"source":"security","_id":"65080d1adfa92402085ec8a6","name":"sessionToken","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"65080d1adfa92402085ec8a5","name":"X-Clover-Auth-Token","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"65080d1adfa92402085ec8a4","name":"internalSession","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"66600d4d0c47bb0012000998","name":"oauth2","type":"oauth2","apiSetting":"66600d4c0c47bb0012000995"},{"apiSetting":"695423821925250441ae7c29","name":"Authorization","source":"security","type":"apiKey","_id":"695423831925250441ae7caf"},{"apiSetting":"695423821925250441ae7c29","name":"X-Session-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb0"},{"apiSetting":"695423821925250441ae7c29","name":"X-Device-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb1"},{"apiSetting":"695423821925250441ae7c29","name":"X-Internal-Session-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb2"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Session-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24041"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Device-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24042"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Internal-Session-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24043"}]}}},"sidebar":[{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"home","title":"Home","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-documentation","title":"Developer documentation for Clover","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/developer-documentation","category":"/branches/3/categories/guides/INTRODUCTION","parent":"/branches/3/guides/home"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"text-formatting-conventions","title":"Text formats and notational conventions","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/text-formatting-conventions","category":"/branches/3/categories/guides/INTRODUCTION","parent":"/branches/3/guides/home"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-technical-support","title":"Developer support","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/developer-technical-support","category":"/branches/3/categories/guides/INTRODUCTION","parent":"/branches/3/guides/home"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"your-feedback-matters","title":"Your feedback matters","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/your-feedback-matters","category":"/branches/3/categories/guides/INTRODUCTION","parent":"/branches/3/guides/home"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"pci-security-guidance-for-app-developers","title":"Payment Card Industry security guidance for app developers","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/pci-security-guidance-for-app-developers","category":"/branches/3/categories/guides/INTRODUCTION","parent":"/branches/3/guides/home"}],"uri":"/branches/3/guides/home","category":"/branches/3/categories/guides/INTRODUCTION","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"monetizing-your-apps","title":"Monetize your apps","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/monetizing-your-apps","category":"/branches/3/categories/guides/INTRODUCTION","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"meet-our-merchants","title":"Meet our merchants","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"merchant-needs","title":"Build apps for merchant needs: examples","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/merchant-needs","category":"/branches/3/categories/guides/INTRODUCTION","parent":"/branches/3/guides/meet-our-merchants"}],"uri":"/branches/3/guides/meet-our-merchants","category":"/branches/3/categories/guides/INTRODUCTION","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-architecture","title":"Clover architecture","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-data-model","title":"Clover data model","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/clover-data-model","category":"/branches/3/categories/guides/INTRODUCTION","parent":"/branches/3/guides/clover-architecture"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sdks-doc-resources","title":"SDKs and sample code","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/sdks-doc-resources","category":"/branches/3/categories/guides/INTRODUCTION","parent":"/branches/3/guides/clover-architecture"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"data-types-in-clover-apis","title":"Data types in Clover APIs","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/data-types-in-clover-apis","category":"/branches/3/categories/guides/INTRODUCTION","parent":"/branches/3/guides/clover-architecture"}],"uri":"/branches/3/guides/clover-architecture","category":"/branches/3/categories/guides/INTRODUCTION","parent":null}],"title":"INTRODUCTION","uri":"/branches/3/categories/guides/INTRODUCTION"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-devices","title":"Clover devices","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-devices-tech-specs","title":"Clover devices—Technical specifications","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/clover-devices-tech-specs","category":"/branches/3/categories/guides/CLOVER DEVICES AND DEV KITS","parent":"/branches/3/guides/clover-devices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"device-diagnostics","title":"Use device diagnostics","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/device-diagnostics","category":"/branches/3/categories/guides/CLOVER DEVICES AND DEV KITS","parent":"/branches/3/guides/clover-devices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"fix-server-trust-issues-on-clover-devices","title":"Fix server trust issues on Clover devices","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/fix-server-trust-issues-on-clover-devices","category":"/branches/3/categories/guides/CLOVER DEVICES AND DEV KITS","parent":"/branches/3/guides/clover-devices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"device-lifecycle-and-support","title":"Device lifecycle and support","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/device-lifecycle-and-support","category":"/branches/3/categories/guides/CLOVER DEVICES AND DEV KITS","parent":"/branches/3/guides/clover-devices"}],"uri":"/branches/3/guides/clover-devices","category":"/branches/3/categories/guides/CLOVER DEVICES AND DEV KITS","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-dev-kits","title":"Clover Developer Kits (Dev Kits)","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"order-a-dev-kit-us-address","title":"Order a Dev Kit in the United States","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/order-a-dev-kit-us-address","category":"/branches/3/categories/guides/CLOVER DEVICES AND DEV KITS","parent":"/branches/3/guides/clover-dev-kits"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-kit-faqs","title":"Receive a Dev Kit outside the United States","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/developer-kit-faqs","category":"/branches/3/categories/guides/CLOVER DEVICES AND DEV KITS","parent":"/branches/3/guides/clover-dev-kits"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"set-up-and-use-a-dev-kit","title":"Set up and use a Clover Dev Kit","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/set-up-and-use-a-dev-kit","category":"/branches/3/categories/guides/CLOVER DEVICES AND DEV KITS","parent":"/branches/3/guides/clover-dev-kits"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"use-android-debug-bridge-adb","title":"Use Android Debug Bridge over USB or Wi-Fi","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/use-android-debug-bridge-adb","category":"/branches/3/categories/guides/CLOVER DEVICES AND DEV KITS","parent":"/branches/3/guides/clover-dev-kits"}],"uri":"/branches/3/guides/clover-dev-kits","category":"/branches/3/categories/guides/CLOVER DEVICES AND DEV KITS","parent":null}],"title":"CLOVER DEVICES AND DEV KITS","uri":"/branches/3/categories/guides/CLOVER DEVICES AND DEV KITS"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"region-specific-features","title":"Region-specific features and limitations","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"argentine-merchants","title":"Argentina merchants","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/argentine-merchants","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":"/branches/3/guides/region-specific-features"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"canadian-merchants","title":"Canada merchants","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/canadian-merchants","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":"/branches/3/guides/region-specific-features"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"german-austrian-merchants","title":"Germany and Austria merchants","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/german-austrian-merchants","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":"/branches/3/guides/region-specific-features"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"netherland-merchants","title":"Netherlands merchants","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/netherland-merchants","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":"/branches/3/guides/region-specific-features"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ukireland-merchants","title":"United Kingdom and Ireland merchants","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/ukireland-merchants","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":"/branches/3/guides/region-specific-features"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"us-merchants","title":"United States merchants","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/us-merchants","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":"/branches/3/guides/region-specific-features"}],"uri":"/branches/3/guides/region-specific-features","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"quick-reference-guides-latam-developers","title":"Developer guides—LATAM Argentina","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"regional-extras","title":"Regional payment flows: Argentina","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/regional-extras","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":"/branches/3/guides/quick-reference-guides-latam-developers"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"integrate-with-argentina-pfac-and-non-bank-networks","title":"Integrate with PFAC and Non-Bank Networks for Argentina","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/integrate-with-argentina-pfac-and-non-bank-networks","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":"/branches/3/guides/quick-reference-guides-latam-developers"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"latam-mifare-contactless-card-on-a-device","title":"Use MiFare contactless card on a device","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/latam-mifare-contactless-card-on-a-device","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":"/branches/3/guides/quick-reference-guides-latam-developers"}],"uri":"/branches/3/guides/quick-reference-guides-latam-developers","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-guides-for-latam-brazil","title":"Developer guides—LATAM Brazil","type":"basic","updatedAt":"2026-06-10T13:38:18.000Z","pages":[],"uri":"/branches/3/guides/developer-guides-for-latam-brazil","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-guides-for-latam-mexico","title":"Developer guides—LATAM Mexico","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/developer-guides-for-latam-mexico","category":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS","parent":null}],"title":"CLOVER INTERNATIONAL MARKETS","uri":"/branches/3/categories/guides/CLOVER INTERNATIONAL MARKETS"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-environments","title":"Clover developer environments","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/clover-environments","category":"/branches/3/categories/guides/CLOVER DEVELOPER ENVIRONMENTS","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"global-developer-platform-quick-steps","title":"Global developer platform—Quick steps","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/global-developer-platform-quick-steps","category":"/branches/3/categories/guides/CLOVER DEVELOPER ENVIRONMENTS","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-platform-quick-steps","title":"[Legacy] Developer platform—Quick steps","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/developer-platform-quick-steps","category":"/branches/3/categories/guides/CLOVER DEVELOPER ENVIRONMENTS","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"readme-limitations","title":"Limitations by environment","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/readme-limitations","category":"/branches/3/categories/guides/CLOVER DEVELOPER ENVIRONMENTS","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"select-an-integration","title":"Select an integration and Clover developer tools","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"from-sandbox-to-app-launch-checklist","title":"From sandbox to app launch checklist","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/from-sandbox-to-app-launch-checklist","category":"/branches/3/categories/guides/CLOVER DEVELOPER ENVIRONMENTS","parent":"/branches/3/guides/select-an-integration"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"post-app-launch-checklist","title":"Post app launch checklist","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/post-app-launch-checklist","category":"/branches/3/categories/guides/CLOVER DEVELOPER ENVIRONMENTS","parent":"/branches/3/guides/select-an-integration"}],"uri":"/branches/3/guides/select-an-integration","category":"/branches/3/categories/guides/CLOVER DEVELOPER ENVIRONMENTS","parent":null}],"title":"CLOVER DEVELOPER ENVIRONMENTS","uri":"/branches/3/categories/guides/CLOVER DEVELOPER ENVIRONMENTS"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"global-developer-platform-get-started","title":"Get started with the global developer platform","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/global-developer-platform-get-started","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-create-global-developer-account","title":"Create global developer account","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/gdp-create-global-developer-account","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"set-up-multi-factor-authentication","title":"Set up multi-factor authentication (MFA)","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/set-up-multi-factor-authentication","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"understand-merchant-service-plans","title":"Understand merchant service plans","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/understand-merchant-service-plans","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-create-new-app","title":"Create new app","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-manage-app-settings","title":"Manage app settings","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/gdp-manage-app-settings","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/gdp-create-new-app"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-set-app-permissions","title":"Set app permissions","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/gdp-set-app-permissions","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/gdp-create-new-app"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gde-set-modules-availability-for-your-app","title":"Set modules availability for your app","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/gde-set-modules-availability-for-your-app","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/gdp-create-new-app"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-manage-android-app-releases","title":"Manage Android app releases","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/gdp-manage-android-app-releases","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/gdp-create-new-app"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-install-your-app-to-a-test-merchant","title":"Install your app to a test merchant","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/gdp-install-your-app-to-a-test-merchant","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/gdp-create-new-app"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-set-up-pricing-tiers","title":"Set up pricing tiers","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/gdp-set-up-pricing-tiers","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/gdp-create-new-app"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-set-clover-app-market-listing","title":"Set Clover App Market listing","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/gdp-set-clover-app-market-listing","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/gdp-create-new-app"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-submit-your-app-for-approval","title":"Submit your app for approval","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/gdp-submit-your-app-for-approval","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/gdp-create-new-app"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-work-with-private-apps","title":"Work with private apps","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/gdp-work-with-private-apps","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/gdp-create-new-app"}],"uri":"/branches/3/guides/gdp-create-new-app","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-manage-test-merchants-accounts","title":"Manage test merchant accounts and information","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/gdp-manage-test-merchants-accounts","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-create-merchant-specific-api-token","title":"Create merchant-specific API token","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/gdp-create-merchant-specific-api-token","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"manage-global-developer-account","title":"Manage global developer account","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"manage-global-developer-roles","title":"Manage global developer roles","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/manage-global-developer-roles","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/manage-global-developer-account"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"manage-global-developer-permissions","title":"Manage global developer permissions","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/manage-global-developer-permissions","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/manage-global-developer-account"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-transfer-developer-account-ownership","title":"Transfer global developer account ownership","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/gdp-transfer-developer-account-ownership","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/manage-global-developer-account"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"submit-global-developer-account-for-approval","title":"Submit global developer account for approval","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/submit-global-developer-account-for-approval","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/manage-global-developer-account"}],"uri":"/branches/3/guides/manage-global-developer-account","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"manage-developer-bank-account-information-gde","title":"Manage developer bank account information","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"add-developer-bank-account-information-gde","title":"Add developer bank account information","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/add-developer-bank-account-information-gde","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/manage-developer-bank-account-information-gde"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"update-developer-bank-account-information-gde","title":"Update developer bank account information","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/update-developer-bank-account-information-gde","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":"/branches/3/guides/manage-developer-bank-account-information-gde"}],"uri":"/branches/3/guides/manage-developer-bank-account-information-gde","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gdp-known-issues-and-workarounds","title":"Global developer platform: Known issues and workarounds","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/gdp-known-issues-and-workarounds","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-global-developer-platform-faqs","title":"Global developer platform FAQs","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/clover-global-developer-platform-faqs","category":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM","parent":null}],"title":"GLOBAL DEVELOPER PLATFORM","uri":"/branches/3/categories/guides/GLOBAL DEVELOPER PLATFORM"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"launch-overview","title":"Launch your apps","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-app-approval-archive","title":"Understand the app approval process","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/developer-app-approval-archive","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-functional-review-playbook","title":"Functional review playbook for Clover app approval","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"basic-app-configuration","title":"Basic app configuration","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","uri":"/branches/3/guides/basic-app-configuration","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/clover-functional-review-playbook","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-onboarding-for-merchants","title":"App onboarding for merchants","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/app-onboarding-for-merchants","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/clover-functional-review-playbook","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-design-requirements","title":"App design requirements","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/app-design-requirements","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/clover-functional-review-playbook","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"full-app-functionality-tests","title":"Full app functionality tests","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/full-app-functionality-tests","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/clover-functional-review-playbook","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-administration-checklist","title":"App administration checklist","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/app-administration-checklist","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/clover-functional-review-playbook","pages":[]}],"uri":"/branches/3/guides/clover-functional-review-playbook","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"navigating-the-clover-app-market","title":"Navigate the Clover App Market","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/navigating-the-clover-app-market","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"multiple-markets","title":"Launch app in international markets","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/multiple-markets","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"international-app-market-readiness","title":"Launch in the Canadian App Market","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/international-app-market-readiness","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"draft_revising-and-reviewing-approved-or-published-apps","title":"Revise and review approved or published apps","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/draft_revising-and-reviewing-approved-or-published-apps","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"billing","title":"View billing transactions and lifecycle","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"billing-status","title":"View billing status","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/billing-status","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/billing","pages":[]}],"uri":"/branches/3/guides/billing","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"showcase-your-app","title":"Showcase apps","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/showcase-your-app","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"providing-support-resources","title":"Provide support resources","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/providing-support-resources","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"transaction-data","title":"Transaction data: Charges and fees","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/transaction-data","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gain-performance-insights","title":"Gain insights into your app's performance","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"reviewing-app-installs","title":"Review app installs","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/reviewing-app-installs","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/gain-performance-insights","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-ratings-reviews","title":"Use app ratings and reviews","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/app-ratings-reviews","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/gain-performance-insights","pages":[]}],"uri":"/branches/3/guides/gain-performance-insights","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-policies","title":"Clover policies for app developers","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/clover-policies","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"legal-templates","title":"Legal templates","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-privacy-policy-template","title":"Template—Clover Privacy Policy","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/clover-privacy-policy-template","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/legal-templates","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-eulaterms-of-service-template","title":"Template—Clover EULA/Terms of Service","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","uri":"/branches/3/guides/clover-eulaterms-of-service-template","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/legal-templates","pages":[]}],"uri":"/branches/3/guides/legal-templates","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":"/branches/3/guides/launch-overview"}],"uri":"/branches/3/guides/launch-overview","category":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS","parent":null}],"title":"LAUNCH YOUR CLOVER APPS","uri":"/branches/3/categories/guides/LAUNCH YOUR CLOVER APPS"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"oauth-flows-in-clover","title":"Clover OAuth flow overview","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"merchant-interaction","title":"Redirect merchants to your app","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/merchant-interaction","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":"/branches/3/guides/oauth-flows-in-clover"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-cors","title":"Set app link (URL) and CORS domain","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/using-cors","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":"/branches/3/guides/oauth-flows-in-clover"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"oauth-intro","title":"Clover v2/OAuth flow overview","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"high-trust-app-auth-flow","title":"High-trust apps—Auth code flow","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/high-trust-app-auth-flow","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":"/branches/3/guides/oauth-intro","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"oauth-flow-for-low-trust-apps-pkce","title":"Low-trust apps—Auth code flow with PKCE","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","uri":"/branches/3/guides/oauth-flow-for-low-trust-apps-pkce","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":"/branches/3/guides/oauth-intro","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"merchant-dashboard-left-navigation-oauth-flow","title":"Initiate v2/OAuth flow from the Clover App Market","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","uri":"/branches/3/guides/merchant-dashboard-left-navigation-oauth-flow","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":"/branches/3/guides/oauth-intro","pages":[]}],"uri":"/branches/3/guides/oauth-intro","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":"/branches/3/guides/oauth-flows-in-clover"}],"uri":"/branches/3/guides/oauth-flows-in-clover","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"use-oauth","title":"Authenticate with the v2/OAuth flow","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"generate-expiring-tokens-using-v2-oauth-flow","title":"Generate OAuth expiring (access and refresh) token","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/generate-expiring-tokens-using-v2-oauth-flow","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":"/branches/3/guides/use-oauth"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"refresh-access-tokens","title":"Use refresh token to generate new expiring token","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/refresh-access-tokens","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":"/branches/3/guides/use-oauth"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"legacy-token-migration-flow","title":"Migrate legacy OAuth tokens to v2/OAuth expiring tokens","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/legacy-token-migration-flow","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":"/branches/3/guides/use-oauth"}],"uri":"/branches/3/guides/use-oauth","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-oauth-20","title":"[For Reference only] Authenticate with the legacy OAuth flow","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/using-oauth-20","category":"/branches/3/categories/guides/CLOVER OAUTH","parent":null}],"title":"CLOVER OAUTH","uri":"/branches/3/categories/guides/CLOVER OAUTH"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-ecommerce-homepage","title":"Clover Ecommerce","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/clover-ecommerce-homepage","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-integration-types","title":"Ecommerce integration types","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-integration-and-payment-flows-use-cases","title":"Ecommerce integration and payment flows—Use cases","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/ecommerce-integration-and-payment-flows-use-cases","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-integration-types"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-api-payments-flow","title":"Ecommerce API—Accept payments flow","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/ecommerce-api-payments-flow","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-integration-types"}],"uri":"/branches/3/guides/ecommerce-integration-types","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-development-basics-ecommerce","title":"Ecommerce settings and permissions","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-data-model","title":"Ecommerce data model","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/ecommerce-data-model","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/clover-development-basics-ecommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-app-permissions","title":"Set app permissions for endpoints and integrations","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/ecommerce-app-permissions","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/clover-development-basics-ecommerce"}],"uri":"/branches/3/guides/clover-development-basics-ecommerce","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-api-tokens-and-oauth-api-tokens","title":"API keys and OAuth tokens for secure ecommerce","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"create-ecommerce-api-tokens","title":"Generate Ecommerce API tokens (public and private keys)","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/create-ecommerce-api-tokens","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-api-tokens-and-oauth-api-tokens"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"generate-an-oauth-api-token-or-access_token","title":"OAuth expiring token overview","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"generate-oauth-expiring-access-and-refresh-token","title":"Generate OAuth expiring (access and refresh) token","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","uri":"/branches/3/guides/generate-oauth-expiring-access-and-refresh-token","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/generate-an-oauth-api-token-or-access_token","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"use-refresh-token-to-generate-new-expiring-token","title":"Use refresh token to generate new expiring token","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/use-refresh-token-to-generate-new-expiring-token","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/generate-an-oauth-api-token-or-access_token","pages":[]}],"uri":"/branches/3/guides/generate-an-oauth-api-token-or-access_token","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-api-tokens-and-oauth-api-tokens"}],"uri":"/branches/3/guides/ecommerce-api-tokens-and-oauth-api-tokens","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-tokenization-overview","title":"Ecommerce tokenization","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"generate-ecommerce-api-key-or-pakms-key","title":"Generate a public API access key or PAKMS key","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/generate-ecommerce-api-key-or-pakms-key","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-tokenization-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"create-a-card-token","title":"Create a card token","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/create-a-card-token","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-tokenization-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"use-transarmor-token","title":"Use external multi-pay tokens with Clover Ecommerce APIs","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"create-a-transarmor-token","title":"Create a multi-pay token","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/create-a-transarmor-token","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/use-transarmor-token","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"use-existing-transarmor-tokens","title":"Use existing multi-pay tokens","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/use-existing-transarmor-tokens","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/use-transarmor-token","pages":[]}],"uri":"/branches/3/guides/use-transarmor-token","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-tokenization-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"save-a-card-for-future-transactions","title":"Save a card for future transactions","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/save-a-card-for-future-transactions","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-tokenization-overview"}],"uri":"/branches/3/guides/ecommerce-tokenization-overview","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-api-tutorials","title":"Ecommerce services APIs","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"create-a-charge","title":"Create a charge","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"use-3ds","title":"Use 3D Secure for ecommerce transactions","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/use-3ds","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/create-a-charge","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"create-pre-authorization","title":"Pre-authorize card transactions","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","uri":"/branches/3/guides/create-pre-authorization","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/create-a-charge","pages":[]}],"uri":"/branches/3/guides/create-a-charge","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"get-a-charge-tutorial","title":"Get charges endpoints","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"get-a-charge","title":"Get a charge","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/get-a-charge","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/get-a-charge-tutorial","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"get-charges","title":"Get charges","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/get-charges","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/get-a-charge-tutorial","pages":[]}],"uri":"/branches/3/guides/get-a-charge-tutorial","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"capture-a-charge-tutorial","title":"Capture a charge","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/capture-a-charge-tutorial","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"capture-charge-for-split-shipment","title":"Capture charge for split shipment","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/capture-charge-for-split-shipment","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-accepting-payments","title":"Accept payments and tips","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/ecommerce-accepting-payments","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-refunding-payments","title":"Refund payments and void transactions","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/ecommerce-refunding-payments","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"recurring-payments-and-subscriptions-apis","title":"Recurring payments with plans and subscriptions","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"working-with-recurring-payments-and-subscriptions","title":"Recurring payments API—Configure Plans","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","uri":"/branches/3/guides/working-with-recurring-payments-and-subscriptions","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/recurring-payments-and-subscriptions-apis","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"recurring-apis-subscriptions","title":"Recurring payments API—Configure subscriptions for plans","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/recurring-apis-subscriptions","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/recurring-payments-and-subscriptions-apis","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"card-account-updater","title":"[Pilot] Card Account Updater to support recurring payments","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/card-account-updater","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/recurring-payments-and-subscriptions-apis","pages":[]}],"uri":"/branches/3/guides/recurring-payments-and-subscriptions-apis","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"gift-card-api","title":"Ecommerce Gift Card API","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"create-a-gift-card-token","title":"Create a gift card token","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/create-a-gift-card-token","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/gift-card-api","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecomm-activate-a-gift-card","title":"Activate a gift card","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/ecomm-activate-a-gift-card","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/gift-card-api","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecomm-redeem-gift-card","title":"Redeem a gift card","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/ecomm-redeem-gift-card","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/gift-card-api","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecomm-check-and-use-gift-card-balance","title":"Check and use gift card balance","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/ecomm-check-and-use-gift-card-balance","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/gift-card-api","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecomm-reload-an-active-gift-card","title":"Reload an active gift card","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","uri":"/branches/3/guides/ecomm-reload-an-active-gift-card","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/gift-card-api","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecomm-void-and-refund-for-a-gift-card","title":"Void and refund for a gift card","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/ecomm-void-and-refund-for-a-gift-card","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/gift-card-api","pages":[]}],"uri":"/branches/3/guides/gift-card-api","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-api-tutorials"}],"uri":"/branches/3/guides/ecommerce-api-tutorials","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-services-apis-learn-more","title":"Ecommerce services APIs—Learn more","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"pci-dss-version-40-requirements-643-and-1161","title":"PCI DSS version 4.0 Requirements 6.4.3 and 11.6.1","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/pci-dss-version-40-requirements-643-and-1161","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-services-apis-learn-more"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"protect-ecommerce-merchants-from-card-testing-fraud","title":"Protect Ecommerce merchants from card testing fraud","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/protect-ecommerce-merchants-from-card-testing-fraud","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-services-apis-learn-more"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"confirming-customer-information-with-ecommerce-fraud-tools","title":"Confirm customer information with fraud tools","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/confirming-customer-information-with-ecommerce-fraud-tools","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-services-apis-learn-more"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"l3-l2-support","title":"Purchasing cards","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"accepting-purchase-cards","title":"Levels and processing of purchasing cards","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","uri":"/branches/3/guides/accepting-purchase-cards","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/l3-l2-support","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"understanding-level-3-data","title":"Level 3 data","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/understanding-level-3-data","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/l3-l2-support","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"understanding-level-2-data","title":"Level 2 data","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/understanding-level-2-data","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/l3-l2-support","pages":[]}],"uri":"/branches/3/guides/l3-l2-support","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-services-apis-learn-more"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-paginating-requests","title":"Paginate requests","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/ecommerce-paginating-requests","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-services-apis-learn-more"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"setting-soft-descriptors","title":"Set soft descriptors","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/setting-soft-descriptors","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-services-apis-learn-more"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-error-codes","title":"Ecommerce API error codes","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/ecommerce-error-codes","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-services-apis-learn-more"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-api-response-codes-descriptions","title":"Ecommerce API response codes and descriptions","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/ecommerce-api-response-codes-descriptions","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-services-apis-learn-more"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"units-of-measurement-codes","title":"Units of measurement codes","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/units-of-measurement-codes","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ecommerce-services-apis-learn-more"}],"uri":"/branches/3/guides/ecommerce-services-apis-learn-more","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"hosted-checkout-api","title":"Hosted Checkout integration","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-a-hosted-checkout-session","title":"Create a Hosted Checkout session request","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/creating-a-hosted-checkout-session","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/hosted-checkout-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"making-a-checkout-request","title":"Customize a Hosted Checkout page","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/making-a-checkout-request","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/hosted-checkout-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecomm-hosted-checkout-webhook","title":"Configure Hosted Checkout webhooks","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/ecomm-hosted-checkout-webhook","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/hosted-checkout-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"redirecting-customers","title":"Redirect customers to another URL","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/redirecting-customers","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/hosted-checkout-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"testing-your-hosted-checkout-integration-macoslinux","title":"Test your Hosted Checkout integration (macOS/Linux)","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/testing-your-hosted-checkout-integration-macoslinux","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/hosted-checkout-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"testing-your-hosted-checkout-integration-windows","title":"Test your Hosted Checkout integration (Windows)","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/testing-your-hosted-checkout-integration-windows","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/hosted-checkout-api"}],"uri":"/branches/3/guides/hosted-checkout-api","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-iframe-integrations","title":"Iframe integrations","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-the-clover-hosted-iframe","title":"Iframe—Create a payment form","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/using-the-clover-hosted-iframe","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/clover-iframe-integrations"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-iframe-features","title":"Iframe—Use card and page elements","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-iframe-features-apple-pay","title":"Add Apple Pay button to the Clover iframe","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/clover-iframe-features-apple-pay","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/clover-iframe-features","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-iframe-features-google-pay","title":"Add Google Pay button to the Clover iframe","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/clover-iframe-features-google-pay","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/clover-iframe-features","pages":[]}],"uri":"/branches/3/guides/clover-iframe-features","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/clover-iframe-integrations"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"customizing-iframe-elements-with-css","title":"Iframe—Customize iframe elements with CSS","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/customizing-iframe-elements-with-css","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/clover-iframe-integrations"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iframe-customize-ach-elements-with-css","title":"Iframe—Customize ACH elements with CSS","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/iframe-customize-ach-elements-with-css","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/clover-iframe-integrations"}],"uri":"/branches/3/guides/clover-iframe-integrations","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ach-telecheck","title":"TeleCheck ACH for online payments","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"create-an-ach-token","title":"Create an ACH token","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/create-an-ach-token","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ach-telecheck"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"accepting-checks-by-telephone","title":"Accept checks by telephone","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/accepting-checks-by-telephone","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ach-telecheck"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"internet-check-acceptance","title":"Use internet check acceptance","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/internet-check-acceptance","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ach-telecheck"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sales-decline-disclosure-templates","title":"Sales decline disclosure templates","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/sales-decline-disclosure-templates","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ach-telecheck"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"state-abbreviation-for-telecheck","title":"State abbreviations for TeleCheck","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/state-abbreviation-for-telecheck","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/ach-telecheck"}],"uri":"/branches/3/guides/ach-telecheck","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"apple-pay-implementation-options","title":"Apple Pay integration—Implementation options","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"create-applepaywallet-token","title":"Create an Apple Pay payment token","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/create-applepaywallet-token","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/apple-pay-implementation-options"}],"uri":"/branches/3/guides/apple-pay-implementation-options","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-samsung-pay-implementation","title":"Samsung Pay integration for Clover Ecommerce","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/ecommerce-samsung-pay-implementation","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"3d-secure-authentication-overview","title":"3D Secure (3DS) authentication overview","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"enable-3ds-on-merchant-dashboard","title":"Select a provider and enable 3DS","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/enable-3ds-on-merchant-dashboard","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/3d-secure-authentication-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"3d-secure-deep-dive","title":"3D Secure deep dive—How it works for CNP transactions","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/3d-secure-deep-dive","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/3d-secure-authentication-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"test-3ds-integration","title":"Test 3DS integration in the sandbox","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/test-3ds-integration","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/3d-secure-authentication-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"configure-3d-secure-sdk-with-iframe-and-api-integration","title":"Configure 3D Secure SDK with iframe and API integration","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"initiate-3ds-sdk-with-the-create-a-charge-endpoint","title":"Initiate 3DS SDK with the `Create a charge` endpoint","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/initiate-3ds-sdk-with-the-create-a-charge-endpoint","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/configure-3d-secure-sdk-with-iframe-and-api-integration","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"initiate-3ds-sdk-with-the-pay-for-order-endpoint","title":"Initiate 3DS SDK with the `Pay for an order` endpoint","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","uri":"/branches/3/guides/initiate-3ds-sdk-with-the-pay-for-order-endpoint","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/configure-3d-secure-sdk-with-iframe-and-api-integration","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"add-3ds-authentication-to-create-a-charge-endpoint","title":"Add 3DS authentication to `Create a charge` endpoint","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","uri":"/branches/3/guides/add-3ds-authentication-to-create-a-charge-endpoint","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/configure-3d-secure-sdk-with-iframe-and-api-integration","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"add-3ds-authentication-to-pay-for-an-order-endpoint","title":"Add 3DS authentication to 'Pay for an order' endpoint","type":"basic","updatedAt":"2026-06-08T16:43:06.000Z","uri":"/branches/3/guides/add-3ds-authentication-to-pay-for-an-order-endpoint","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/configure-3d-secure-sdk-with-iframe-and-api-integration","pages":[]}],"uri":"/branches/3/guides/configure-3d-secure-sdk-with-iframe-and-api-integration","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/3d-secure-authentication-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"3d-secure-faqs","title":"3D Secure—Frequently asked questions","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/3d-secure-faqs","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":"/branches/3/guides/3d-secure-authentication-overview"}],"uri":"/branches/3/guides/3d-secure-authentication-overview","category":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API","parent":null}],"title":"BUILD WITH ECOMMERCE API","uri":"/branches/3/categories/guides/BUILD WITH ECOMMERCE API"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"making-rest-api-calls","title":"Use Clover REST API","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-development-basics-web-app","title":"Clover REST API basics","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/clover-development-basics-web-app","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/making-rest-api-calls"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-api-tokens","title":"Use test API tokens in sandbox","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/using-api-tokens","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/making-rest-api-calls"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"merchant-id-and-api-token-for-development","title":"Use test merchant identifier and API token","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/merchant-id-and-api-token-for-development","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/making-rest-api-calls"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"make-a-rest-api-call","title":"Make a sample REST API call","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/make-a-rest-api-call","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/making-rest-api-calls"}],"uri":"/branches/3/guides/making-rest-api-calls","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-rest-api-index","title":"Clover REST API tutorials","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"applying-filters","title":"Apply filters to API requests","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/applying-filters","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-filters-to-retrieve-multiple-results-from-an-endpoint","title":"Use filters to retrieve multiple results from an endpoint","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/using-filters-to-retrieve-multiple-results-from-an-endpoint","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"expanding-fields","title":"Use expandable fields for API responses","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/expanding-fields","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"api-usage-rate-limits","title":"Work with API usage and rate limits","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/api-usage-rate-limits","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sorting-collections","title":"Sort collections","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/sorting-collections","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"paginating-elements","title":"Add pagination requests","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/paginating-elements","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-object-associations","title":"Use object associations","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/using-object-associations","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"webhooks","title":"Use webhooks","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/webhooks","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"displaying-null-fields","title":"Display null fields","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/displaying-null-fields","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"convert-timestamps-to-unix-time","title":"Convert Clover timestamps to Unix time","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/convert-timestamps-to-unix-time","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"troubleshooting-api-errors","title":"Troubleshoot API errors","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"400-bad-request","title":"400 Bad Request","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/400-bad-request","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/troubleshooting-api-errors","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"401-unauthorized","title":"401 Unauthorized","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/401-unauthorized","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/troubleshooting-api-errors","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"404-not-found","title":"404 Not Found","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/404-not-found","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/troubleshooting-api-errors","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"429-too-many-requests","title":"429 Too Many Requests","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/429-too-many-requests","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/troubleshooting-api-errors","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"500-internal-server-error","title":"500 Internal Server Error","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/500-internal-server-error","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/troubleshooting-api-errors","pages":[]}],"uri":"/branches/3/guides/troubleshooting-api-errors","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"exporting-merchant-data","title":"Export merchant data","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/exporting-merchant-data","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/clover-rest-api-index"}],"uri":"/branches/3/guides/clover-rest-api-index","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"working-with-transaction-data-rest","title":"Manage transaction data (REST API)","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/working-with-transaction-data-rest","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"customers-api-eu-permissions","title":"Customers API permissions in Europe","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/customers-api-eu-permissions","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"deprecated-apis","title":"Deprecated APIs","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-pay-api","title":"Payments with Developer Pay API","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/developer-pay-api","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":"/branches/3/guides/deprecated-apis"}],"uri":"/branches/3/guides/deprecated-apis","category":"/branches/3/categories/guides/BUILD WITH REST API","parent":null}],"title":"BUILD WITH REST API","uri":"/branches/3/categories/guides/BUILD WITH REST API"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"working-with-inventory","title":"Manage inventory and items","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"importing-inventory","title":"Bulk import inventory","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/importing-inventory","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-inventory"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"managing-items-item-groups","title":"Manage items and item groups","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/managing-items-item-groups","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-inventory"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"managing-item-availability","title":"Manage item availability and low stock alerts","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/managing-item-availability","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-inventory"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"managing-modifier-groups-modifiers","title":"Manage modifier groups and modifiers","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/managing-modifier-groups-modifiers","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-inventory"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"manage-item-modifiers-availability","title":"Manage item modifiers availability","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/manage-item-modifiers-availability","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-inventory"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"managing-categories","title":"Manage categories","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/managing-categories","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-inventory"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"manage-subcategories","title":"Manage subcategories","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/manage-subcategories","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-inventory"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"managing-tags","title":"Manage tags","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/managing-tags","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-inventory"}],"uri":"/branches/3/guides/working-with-inventory","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"working-with-orders","title":"Manage orders data","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"create-an-atomic-order","title":"Create an atomic order","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/create-an-atomic-order","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-orders"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-custom-orders","title":"Create custom orders","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/creating-custom-orders","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-orders"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"calculating-order-totals","title":"Calculate order totals","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/calculating-order-totals","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-orders"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"tax-reports-examples","title":"Tax Reports: Examples","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/tax-reports-examples","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-orders"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"printing-orders-rest-api","title":"Print orders with the REST API","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/printing-orders-rest-api","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-orders"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"get-all-payments","title":"Get all payments","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/get-all-payments","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/working-with-orders"}],"uri":"/branches/3/guides/working-with-orders","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"msc-overview","title":"(MSC Pilot) Multiple service charges overview","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"msc-web-apps","title":"(MSC Pilot) Manage service charges for Web apps","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/msc-web-apps","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/msc-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"msc-set-up-and-test-your-app","title":"(MSC Pilot) Set up and test your app for service charges","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/msc-set-up-and-test-your-app","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/msc-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"msc-faqs","title":"(MSC Pilot) Frequently asked questions (FAQ)","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/msc-faqs","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/msc-overview"}],"uri":"/branches/3/guides/msc-overview","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"manage-age-restricted-items","title":"Manage age-restricted items","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"manage-age-restricted-items-inventory-api","title":"Manage age-restricted items in the Inventory API","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/manage-age-restricted-items-inventory-api","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/manage-age-restricted-items"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"manage-age-restricted-items-orders-api","title":"Manage age-restricted items in the Orders API","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/manage-age-restricted-items-orders-api","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":"/branches/3/guides/manage-age-restricted-items"}],"uri":"/branches/3/guides/manage-age-restricted-items","category":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS","parent":null}],"title":"POINT-OF-SALE INTEGRATIONS","uri":"/branches/3/categories/guides/POINT-OF-SALE INTEGRATIONS"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-development-basics-android","title":"Custom Android basics for Clover devices","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/clover-development-basics-android","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-emulator-overview","title":"Android Emulator for Clover devices","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"setting-up-an-android-emulator","title":"Set up emulator in Android Studio","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/setting-up-an-android-emulator","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/android-emulator-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"troubleshooting-emulators","title":"Troubleshoot Android Emulator for Clover devices","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/troubleshooting-emulators","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/android-emulator-overview"},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"link_url":"https://sandbox.dev.clover.com/developers/dev-apks","link_external":true,"renderable":{"status":true},"slug":"important-clover-apps","title":"Clover development APKs","type":"link","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/important-clover-apps","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/android-emulator-overview"}],"uri":"/branches/3/guides/android-emulator-overview","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"working-with-apks","title":"Work with APKs","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"setting-android-sdk-versions","title":"Set up Android SDK versions","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/setting-android-sdk-versions","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/working-with-apks"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"generating-a-signed-apk","title":"Generate a signed APK","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/generating-a-signed-apk","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/working-with-apks"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"adding-an-apk-to-your-app","title":"Upload an APK to your app","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/adding-an-apk-to-your-app","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/working-with-apks"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"submitting-an-apk-for-approval","title":"Submit an APK for approval","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/submitting-an-apk-for-approval","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/working-with-apks"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sideloading-an-apk","title":"Sideload an APK","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/sideloading-an-apk","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/working-with-apks"}],"uri":"/branches/3/guides/working-with-apks","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-submission","title":"Manage approved APKs","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"beta-releases-staged-rollouts","title":"Manage release groups","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/beta-releases-staged-rollouts","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/app-submission"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"adding-release-notes","title":"Add release notes to APKs","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/adding-release-notes","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/app-submission"}],"uri":"/branches/3/guides/app-submission","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"integrate-with-clover-android-sdk","title":"Integrate with Clover Android SDK","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/integrate-with-clover-android-sdk","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"msc-android-apps","title":"(MSC Pilot) Manage service charges for Android apps","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/msc-android-apps","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"advanced-topics","title":"Advanced information to build with Android","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"oauth-for-web-views-non-clover-devices","title":"OAuth for web views and non-Clover devices","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/oauth-for-web-views-non-clover-devices","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/advanced-topics"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"query-web-services","title":"Query web services","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/query-web-services","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/advanced-topics"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"intents-and-broadcasts","title":"Set up broadcasts and intents","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/intents-and-broadcasts","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/advanced-topics"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-notifications","title":"Send app notifications","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/app-notifications","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/advanced-topics"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"external-usb-devices","title":"Use external USB devices","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/external-usb-devices","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/advanced-topics"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"testing-with-printer-receipt-images","title":"Test with printer receipt images","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/testing-with-printer-receipt-images","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/advanced-topics"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"building-with-android-nfc","title":"Build with Android NFC (support ended July 2023)","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/building-with-android-nfc","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/advanced-topics"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"build-apps-for-station-duo-2","title":"Build apps for Clover Station Duo 2: Dual touch screen device","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/build-apps-for-station-duo-2","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/advanced-topics"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"building-apps-for-station-pro","title":"Build apps for Clover Station Duo 1 — Dual touch screen device","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/building-apps-for-station-pro","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/advanced-topics"}],"uri":"/branches/3/guides/advanced-topics","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"build-payment-solutions","title":"Build payment solutions","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"custom-tenders","title":"Custom tender—Use cases and design requirements","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/custom-tenders","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/build-payment-solutions"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-custom-tender-apps","title":"Create a custom tender app","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/creating-custom-tender-apps","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/build-payment-solutions"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-payment-connector","title":"Payment Connector","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/using-payment-connector","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/build-payment-solutions"}],"uri":"/branches/3/guides/build-payment-solutions","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"expand-merchant-business","title":"Expand merchant business","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-order-connector","title":"Use the Order Connector","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/using-order-connector","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/expand-merchant-business"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-merchant-connector","title":"Use Merchant Connector","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/using-merchant-connector","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/expand-merchant-business"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"working-with-transaction-data-android","title":"Work with transaction data: Clover Android SDK","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/working-with-transaction-data-android","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":"/branches/3/guides/expand-merchant-business"}],"uri":"/branches/3/guides/expand-merchant-business","category":"/branches/3/categories/guides/BUILD WITH ANDROID","parent":null}],"title":"BUILD WITH ANDROID","uri":"/branches/3/categories/guides/BUILD WITH ANDROID"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"semi-integration-introduction","title":"Introduction","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/semi-integration-introduction","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payments-integration-overview","title":"Payment integration overview","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/payments-integration-overview","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-device-configurations","title":"Clover device configurations","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-quick-start-clover-kiosk-integration","title":"Developer quick start: Clover Kiosk integration","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/developer-quick-start-clover-kiosk-integration","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/clover-device-configurations"}],"uri":"/branches/3/guides/clover-device-configurations","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-development-basics-semi","title":"Clover semi-integration basics","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"paas-integration-options","title":"Payments integration options","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/paas-integration-options","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/clover-development-basics-semi"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"transaction-flow-examples","title":"Examples of transaction flows","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/transaction-flow-examples","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/clover-development-basics-semi"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"create-your-remote-app-id","title":"Create your Remote App ID (RAID)","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/create-your-remote-app-id","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/clover-development-basics-semi"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"private-semi-integrated-apps","title":"Private semi-integrated apps","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/private-semi-integrated-apps","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/clover-development-basics-semi"}],"uri":"/branches/3/guides/clover-development-basics-semi","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"semi-integration-process","title":"Integration development and approval process","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"application","title":"Step 1: Application","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/application","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/semi-integration-process"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"integration-education","title":"Step 2: Education","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/integration-education","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/semi-integration-process"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"integration-development","title":"Step 3: Development","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/integration-development","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/semi-integration-process"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"approval","title":"Step 4: Approval","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/approval","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/semi-integration-process"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"integration-maintenance","title":"Step 5: Maintenance","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/integration-maintenance","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/semi-integration-process"}],"uri":"/branches/3/guides/semi-integration-process","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"testing-payment-flows","title":"Test region-based payment flows","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"testing-us-payment-flows","title":"Test US payment flows","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/testing-us-payment-flows","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/testing-payment-flows"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"testing-canadian-payment-flows","title":"Test Canadian payment flows","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/testing-canadian-payment-flows","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/testing-payment-flows"}],"uri":"/branches/3/guides/testing-payment-flows","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"customer-transactions","title":"Customer transactions","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"transaction-types","title":"Transaction types","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/transaction-types","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/customer-transactions"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-per-transaction-settings","title":"Per-transaction settings","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/using-per-transaction-settings","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/customer-transactions"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"working-with-transaction-data-remote-pay-sdks","title":"Use Remote Pay SDKs for surcharging","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/working-with-transaction-data-remote-pay-sdks","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/customer-transactions"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"working-with-transaction-data-payment-connector","title":"Use Payment Connector for surcharging","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/working-with-transaction-data-payment-connector","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/customer-transactions"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"voids-and-refunds","title":"Handle voids and refunds","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/voids-and-refunds","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/customer-transactions"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-custom-receipts","title":"Create custom receipts with CloverConnector","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/creating-custom-receipts","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/customer-transactions"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"reprinting-transaction-receipts","title":"Reprint transaction receipts","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/reprinting-transaction-receipts","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/customer-transactions"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"vaulting-cards","title":"Vault cards for future transactions","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/vaulting-cards","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/customer-transactions"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"working-with-challenges","title":"Handle challenges during payment processing","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/working-with-challenges","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/customer-transactions"}],"uri":"/branches/3/guides/customer-transactions","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"electronic-benefit-transfer-ebt-cards","title":"Electronic benefit transfer (EBT) transactions","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ebt-overview","title":"Electronic benefit transfer (EBT) overview","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/ebt-overview","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/electronic-benefit-transfer-ebt-cards"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-support-for-ebt","title":"Clover support for EBT","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/clover-support-for-ebt","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":"/branches/3/guides/electronic-benefit-transfer-ebt-cards"}],"uri":"/branches/3/guides/electronic-benefit-transfer-ebt-cards","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"semi-integration-glossary","title":"Semi-Integration glossary","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/semi-integration-glossary","category":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW","parent":null}],"title":"SEMI-INTEGRATION OVERVIEW","uri":"/branches/3/categories/guides/SEMI-INTEGRATION OVERVIEW"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"rest-pay-overview","title":"REST Pay Display API overview","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/rest-pay-overview","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"rest-pay-intro","title":"REST Pay Display API introduction","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/rest-pay-intro","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"rest-pay-architecture","title":"REST Pay Display integration requirement","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/rest-pay-architecture","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"security","title":"REST Pay Display Security","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/security","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"rest-pay-development-basics","title":"Get started with REST Pay Display","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-a-sandbox-app","title":"Create a semi-integrated app","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/creating-a-sandbox-app","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/rest-pay-development-basics"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"obtaining-an-oauth-token","title":"Get an OAuth token","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/obtaining-an-oauth-token","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/rest-pay-development-basics"}],"uri":"/branches/3/guides/rest-pay-development-basics","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"rest-pay-connection","title":"Connect point of sale app to the Clover device","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"build-a-cloud-connection-request","title":"Build a cloud connection request","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/build-a-cloud-connection-request","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/rest-pay-connection"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"configuring-a-cloud-connection","title":"Configure a cloud connection","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/configuring-a-cloud-connection","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/rest-pay-connection"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"build-a-local-connection-connection","title":"Build a local connection request","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/build-a-local-connection-connection","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/rest-pay-connection"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"install-rest-pay-display-app-on-merchant-device","title":"Install REST Pay Display app on merchant device","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/install-rest-pay-display-app-on-merchant-device","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/rest-pay-connection"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"configuring-a-local-connection","title":"Configure a local connection","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/configuring-a-local-connection","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/rest-pay-connection"}],"uri":"/branches/3/guides/rest-pay-connection","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"workflows-and-best-practices","title":"Workflows and best practices","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"rest-pay-transaction-types","title":"Transaction types","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/rest-pay-transaction-types","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/workflows-and-best-practices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"rest-pay-payment-flows","title":"REST Pay payment flows","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/rest-pay-payment-flows","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/workflows-and-best-practices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"interoperability-with-ecommerce-api","title":"REST Pay Display interoperability with Ecommerce API","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/interoperability-with-ecommerce-api","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/workflows-and-best-practices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"tracking-transactions-with-idempotency-keys","title":"Track transactions with idempotency keys","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/tracking-transactions-with-idempotency-keys","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/workflows-and-best-practices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payment-reconciliation-and-recovery-rest-pay","title":"Payment reconciliation and recovery","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/payment-reconciliation-and-recovery-rest-pay","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/workflows-and-best-practices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"card-on-file-compliance-for-rest-pay-display","title":"Card on File compliance for REST Pay Display","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/card-on-file-compliance-for-rest-pay-display","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/workflows-and-best-practices"}],"uri":"/branches/3/guides/workflows-and-best-practices","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"issues-and-errors","title":"Issues and errors","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"checking-for-duplicate-payments","title":"Check for duplicate payments","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/checking-for-duplicate-payments","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/issues-and-errors"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"handling-offline-payments","title":"Handle offline payments","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/handling-offline-payments","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/issues-and-errors"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"handling-partial-payment-issues","title":"Handle partial payment issues","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/handling-partial-payment-issues","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/issues-and-errors"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"handling-signature-issues","title":"Handle signature issues","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/handling-signature-issues","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/issues-and-errors"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"handling-communication-issues","title":"Handle communication issues","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/handling-communication-issues","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/issues-and-errors"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"status-code-and-error-reference","title":"Status codes and errors reference","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/status-code-and-error-reference","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/issues-and-errors"}],"uri":"/branches/3/guides/issues-and-errors","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"api-tutorials","title":"REST Pay Display API tutorials","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"verifying-connectivity","title":"Verify device connectivity","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/verifying-connectivity","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"displaying-a-message-to-the-customer","title":"Display a message to the customer","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/displaying-a-message-to-the-customer","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"showing-the-welcome-screen","title":"Display the welcome screen","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/showing-the-welcome-screen","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"showing-the-thank-you-screen","title":"Display the thank you screen","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/showing-the-thank-you-screen","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"canceling-the-current-action","title":"Cancel the current action","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/canceling-the-current-action","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"getting-a-signature","title":"Get a signature","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/getting-a-signature","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"getting-customer-confirmation","title":"Get customer confirmation","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/getting-customer-confirmation","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"getting-customer-input","title":"Get customer input","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/getting-customer-input","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"requesting-a-tip","title":"Request a tip","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/requesting-a-tip","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"printing-a-receipt","title":"Print a receipt","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/printing-a-receipt","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"opening-the-cash-drawer","title":"Open the cash drawer","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/opening-the-cash-drawer","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"resetting-the-device","title":"Reset the device","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/resetting-the-device","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"making-a-sale","title":"Make a sale","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/making-a-sale","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"authorizing-a-tip-adjusted-payment-on-paper","title":"Authorize and capture a tip-adjusted payment on paper","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/authorizing-a-tip-adjusted-payment-on-paper","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"authorizing-a-tipped-payment-on-screen","title":"Authorize and capture a tipped payment on screen","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/authorizing-a-tipped-payment-on-screen","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"preauth-payments","title":"Capture pre-authorized payments","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/preauth-payments","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"refunding-a-charge","title":"Refund a payment","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/refunding-a-charge","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"issuing-a-credit","title":"Issue a credit","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/issuing-a-credit","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-a-card-token","title":"Tokenize and vault a card with REST Pay Display","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/creating-a-card-token","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"getting-a-customers-card-data","title":"Get a customer's card data","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/getting-a-customers-card-data","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-custom-activities-with-rest-pay-display","title":"Use Custom Activities with REST Pay Display","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/using-custom-activities-with-rest-pay-display","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"displaying-an-order","title":"Display an order","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/displaying-an-order","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/api-tutorials"}],"uri":"/branches/3/guides/api-tutorials","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-review-and-approval","title":"App review and approval","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-a-production-app","title":"Create an app in the production environment","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/creating-a-production-app","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/app-review-and-approval"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"testing-rest-pay-flows-canada","title":"Test REST Pay flows (Canada)","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/testing-rest-pay-flows-canada","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/app-review-and-approval"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"test-rest-pay-flows-european-region","title":"Test REST Pay flows (Europe)","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/test-rest-pay-flows-european-region","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/app-review-and-approval"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"testing-rest-pay-flows-us","title":"Test REST Pay flows (US)","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/testing-rest-pay-flows-us","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":"/branches/3/guides/app-review-and-approval"}],"uri":"/branches/3/guides/app-review-and-approval","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY","parent":null}],"title":"SEMI-INTEGRATE WITH REST PAY","uri":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REST PAY"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-clover-android-payments-api","title":"Use the Clover Android Payments APIs","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-payments-api-payment-tutorial","title":"Android Payments API tutorial","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/android-payments-api-payment-tutorial","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-pay-payment","title":"Accept a payment","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/android-pay-payment","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payment-retrieval-operations","title":"Retrieve a payment","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/payment-retrieval-operations","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-pay-reverse","title":"Reverse a payment","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/android-pay-reverse","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-pay-tokenize","title":"Tokenize a card","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/android-pay-tokenize","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-pay-preauth","title":"Accept a pre-authorization","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/android-pay-preauth","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-pay-capture","title":"Capture a pre-auth","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/android-pay-capture","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-payments-api-manual-refund","title":"Issue a manual refund","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/android-payments-api-manual-refund","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-payments-api-read-a-card","title":"Read a card","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/android-payments-api-read-a-card","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-payments-api-incremental-auths","title":"Incremental authorization","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/android-payments-api-incremental-auths","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-payments-api-request-a-tip","title":"Request a tip","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/android-payments-api-request-a-tip","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-payments-api-select-a-receipt","title":"Select a receipt","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/android-payments-api-select-a-receipt","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-payments-api-tip-adjust","title":"Adjust a tip","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/android-payments-api-tip-adjust","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-payments-api-closeout","title":"Closeout","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/android-payments-api-closeout","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/using-clover-android-payments-api"}],"uri":"/branches/3/guides/using-clover-android-payments-api","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"take-a-payment-with-payment-connector","title":"Take a payment with Payment Connector","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"supported-methods-by-device","title":"Supported methods by device","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/supported-methods-by-device","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/take-a-payment-with-payment-connector"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payment-connector-activity-example","title":"Payment Connector example activity","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/payment-connector-activity-example","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":"/branches/3/guides/take-a-payment-with-payment-connector"}],"uri":"/branches/3/guides/take-a-payment-with-payment-connector","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID","parent":null}],"title":"SEMI-INTEGRATE WITH CLOVER ANDROID","uri":"/branches/3/categories/guides/SEMI-INTEGRATE WITH CLOVER ANDROID"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"support-timelines-remote-pay","title":"Support timelines (Remote Pay SDKs)","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/support-timelines-remote-pay","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-clover-connector","title":"Use Clover Connector","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"windows","title":"On Windows using .NET","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/windows","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/using-clover-connector"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"on-windows-using-rest","title":"On Windows using REST","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/on-windows-using-rest","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/using-clover-connector"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"on-windows-using-websockets","title":"On Windows using WebSockets","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/on-windows-using-websockets","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/using-clover-connector"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"cloud-sdk-v3","title":"In the Cloud","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/cloud-sdk-v3","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/using-clover-connector"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"semi-integrated-android-apps","title":"On Android","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/semi-integrated-android-apps","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/using-clover-connector"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios","title":"On iOS","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/ios","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/using-clover-connector"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ui-state-messages","title":"Work with user interface state messages","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/ui-state-messages","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/using-clover-connector"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ui-state-reference","title":"User interface (UI) state reference","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/ui-state-reference","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/using-clover-connector"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payment-response-reference","title":"Payment response reference","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/payment-response-reference","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/using-clover-connector"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"refund-response-reference","title":"Refund response reference","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/refund-response-reference","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/using-clover-connector"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"credit-response-reference","title":"Credit response reference","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/credit-response-reference","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/using-clover-connector"}],"uri":"/branches/3/guides/using-clover-connector","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"remote-pay-sdk-best-practices","title":"Remote Pay SDK best practices","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"device-connection-and-disposal","title":"Device connection and disposal","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/device-connection-and-disposal","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/remote-pay-sdk-best-practices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"monitoring-device-connection-status","title":"Monitor device connection status","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/monitoring-device-connection-status","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/remote-pay-sdk-best-practices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payment-reconciliation-and-recovery","title":"Payment reconciliation and recovery","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/payment-reconciliation-and-recovery","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/remote-pay-sdk-best-practices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"retrieving-device-state","title":"Retrieve the device state","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/retrieving-device-state","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/remote-pay-sdk-best-practices"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"tracking-transactions-with-external-ids","title":"Track transactions with external identifiers (Ids)","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/tracking-transactions-with-external-ids","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/remote-pay-sdk-best-practices"}],"uri":"/branches/3/guides/remote-pay-sdk-best-practices","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"using-customer-facing-platform","title":"Use customer-facing platform","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/using-customer-facing-platform","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"zvt-ecr-interface-on-clover-terminal-1","title":"ZVT ECR interface on Clover terminal","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/zvt-ecr-interface-on-clover-terminal-1","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"integration-repositories","title":"Integration repositories","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/integration-repositories","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"pay-display-apps","title":"Pay Display apps","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"pay-display-apps-support-matrix-by-devices-and-regions","title":"Pay Display apps support matrix by devices and regions","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/pay-display-apps-support-matrix-by-devices-and-regions","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/pay-display-apps"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"installing-a-pay-display-app","title":"Install a Pay Display app","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/installing-a-pay-display-app","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/pay-display-apps"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"configuring-secure-network-pay-display","title":"Configure Secure Network Pay Display","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/configuring-secure-network-pay-display","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/pay-display-apps"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"connecting-your-pos-to-clover","title":"Connect the example point of sale (POS) for Clover Windows SDK","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/connecting-your-pos-to-clover","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/pay-display-apps"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"example-apps","title":"Example apps for the Clover Connector SDKs","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/example-apps","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":"/branches/3/guides/pay-display-apps"}],"uri":"/branches/3/guides/pay-display-apps","category":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY","parent":null}],"title":"SEMI-INTEGRATE WITH REMOTE PAY","uri":"/branches/3/categories/guides/SEMI-INTEGRATE WITH REMOTE PAY"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-payment-plugins","title":"Clover Payments plugins and extensions","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/clover-payment-plugins","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-payments-plugin-for-shopify-online-shop","title":"Clover Payments plugin for Shopify Online Shop","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"integrate-clover-payments-plugin-with-shopify-online-shop","title":"Integrate Clover Payments plugin with Shopify Online Shop","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/integrate-clover-payments-plugin-with-shopify-online-shop","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/clover-payments-plugin-for-shopify-online-shop"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"accept-and-process-moto-payments","title":"Accept and process MOTO payments","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/accept-and-process-moto-payments","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/clover-payments-plugin-for-shopify-online-shop"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"get-help-clover-payments-plugin","title":"Get help—Clover Payments plugin for Shopify Online Shop","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/get-help-clover-payments-plugin","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/clover-payments-plugin-for-shopify-online-shop"}],"uri":"/branches/3/guides/clover-payments-plugin-for-shopify-online-shop","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"woocommerce","title":"Clover Payments for WooCommerce","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"installing-upgrading-and-uninstalling-payment-extension","title":"Install the Clover Payments for WooCommerce plugin","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/installing-upgrading-and-uninstalling-payment-extension","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"configuring-the-clover-payment-extension","title":"Configure the Clover Payments for WooCommerce plugin","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/configuring-the-clover-payment-extension","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"multilingual-support-1","title":"Update multi-lingual support","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/multilingual-support-1","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"locating-merchant-id-1","title":"Locate the merchant identifier (merchantId)","type":"basic","updatedAt":"2026-06-10T13:38:18.000Z","pages":[],"uri":"/branches/3/guides/locating-merchant-id-1","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"setting-up-an-api-token","title":"Set up an Ecommerce API token","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/setting-up-an-api-token","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"processing-an-authorization","title":"Process an authorization","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/processing-an-authorization","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"authorizing-and-verifying-orders","title":"Authorize and verify orders","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/authorizing-and-verifying-orders","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"capturing-an-authorization","title":"Capture an authorization","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/capturing-an-authorization","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"processing-a-sales-transaction","title":"Process a sale transaction","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/processing-a-sales-transaction","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"verifying-order-processing-and-transaction","title":"Verify order processing and transaction","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/verifying-order-processing-and-transaction","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"refunding-an-order","title":"Refund an order","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/refunding-an-order","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"voiding-an-authorized-order","title":"Void an authorized order","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/voiding-an-authorized-order","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"viewing-surcharges","title":"View surcharges","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/viewing-surcharges","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"woocommerce-apple-pay-integration","title":"Apple Pay integration for WooCommerce","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/woocommerce-apple-pay-integration","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"appendix-1","title":"HTTP Status and Error codes","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/appendix-1","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/woocommerce"}],"uri":"/branches/3/guides/woocommerce","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"magento","title":"Adobe Commerce (Magento 2) Clover Payments plugin","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"prerequisites","title":"Prerequisites","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/prerequisites","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"installing-magento","title":"Install, upgrade, and uninstall the Clover Payment extension","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/installing-magento","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"multilingual-support","title":"Update multi-lingual support","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/multilingual-support","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"configuration","title":"Configure the Clover Payment extension","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/configuration","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"locating-merchant-id","title":"Locate the merchant identifier (merchantId)","type":"basic","updatedAt":"2026-06-10T13:38:18.000Z","pages":[],"uri":"/branches/3/guides/locating-merchant-id","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"configuration-1","title":"Set up an Ecommerce API token","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/configuration-1","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"authorization-flow","title":"Process an authorization transaction","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/authorization-flow","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"capturing-authorized-transactions-invoice-generation","title":"Capture an authorized transaction","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/capturing-authorized-transactions-invoice-generation","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"order-status-verification","title":"Process a sales flow","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/order-status-verification","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"refunding-a-captured-order","title":"Refund a captured order","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/refunding-a-captured-order","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"void-order-request","title":"Void an authorization","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/void-order-request","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"surcharge","title":"View surcharges","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/surcharge","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"appendix","title":"HTTP Status and Error codes","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/appendix","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":"/branches/3/guides/magento"}],"uri":"/branches/3/guides/magento","category":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)","parent":null}],"title":"CLOVER PAYMENTS PLUGINS (US and Canada only)","uri":"/branches/3/categories/guides/CLOVER PAYMENTS PLUGINS (US and Canada only)"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"legacy-developer-platform","title":"[Legacy] Developer Platform","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/legacy-developer-platform","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"get-started-developer-platform","title":"[Legacy] Get started with the developer platform","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/get-started-developer-platform","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"get-started-with-sandbox-environment","title":"[Legacy] Get started with the sandbox environment","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"create-a-sandbox-account","title":"Create a sandbox developer account","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/create-a-sandbox-account","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/get-started-with-sandbox-environment"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"use-test-merchants-dashboard","title":"Work with test merchants in sandbox","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/use-test-merchants-dashboard","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/get-started-with-sandbox-environment"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"generate-a-test-api-token","title":"Generate a merchant-specific test API token","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/generate-a-test-api-token","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/get-started-with-sandbox-environment"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"creating-an-app","title":"Create an app","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/creating-an-app","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/get-started-with-sandbox-environment"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"installing-your-app-to-your-test-merchant","title":"Install your app to a test merchant","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/installing-your-app-to-your-test-merchant","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/get-started-with-sandbox-environment"}],"uri":"/branches/3/guides/get-started-with-sandbox-environment","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-app-approval-process","title":"[Legacy] Get started with the production environment","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-accounts","title":"Create a production developer account","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/developer-accounts","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/clover-app-approval-process"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"set-up-two-factor-authentication-2fa","title":"Set up two-factor authentication (2FA)","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/set-up-two-factor-authentication-2fa","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/clover-app-approval-process"}],"uri":"/branches/3/guides/clover-app-approval-process","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"managing-developer-accounts","title":"[Legacy] Manage developer accounts","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"add-business-account-details","title":"Add business account details","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/add-business-account-details","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/managing-developer-accounts"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"transfer-developer-ownership","title":"Transfer developer account ownership","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/transfer-developer-ownership","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/managing-developer-accounts"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-account-approval","title":"Submit developer account for approval","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/developer-account-approval","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/managing-developer-accounts"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-account-roles","title":"Manage developer account roles and permissions","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/developer-account-roles","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/managing-developer-accounts"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"working-with-test-merchants","title":"Manage test merchants in production","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/working-with-test-merchants","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/managing-developer-accounts"}],"uri":"/branches/3/guides/managing-developer-accounts","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"submit-app-for-approval","title":"[Legacy] Submit your app for approval","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/submit-app-for-approval","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"billing-information-approval","title":"[Legacy] Manage developer bank account information","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"add-developer-bank-account-information","title":"Add developer bank account information","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/add-developer-bank-account-information","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/billing-information-approval"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"update-developer-bank-account-information","title":"Update developer bank account information","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/update-developer-bank-account-information","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/billing-information-approval"}],"uri":"/branches/3/guides/billing-information-approval","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-info-mgmt","title":"[Legacy] Manage your apps","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-settings","title":"Manage app settings","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/app-settings","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/app-info-mgmt"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"private-apps","title":"Work with private apps","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/private-apps","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/app-info-mgmt"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"permissions","title":"Set app permissions","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/permissions","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/app-info-mgmt"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"understanding-modules","title":"Set modules availability for your app","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/understanding-modules","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/app-info-mgmt"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"test-an-app-with-different-merchant-service-plans","title":"Test an app with different merchant service plans","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/test-an-app-with-different-merchant-service-plans","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/app-info-mgmt"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"smart-receipts","title":"Customize receipts","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/smart-receipts","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/app-info-mgmt"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"managing-app-releases","title":"Manage Android app releases","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/managing-app-releases","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/app-info-mgmt"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"billing-for-apps","title":"Handle app billing","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/billing-for-apps","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/app-info-mgmt"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"configuring-billing","title":"Set up pricing tiers","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/configuring-billing","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/app-info-mgmt"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"managing-app-details","title":"Set Clover App Market listing","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/managing-app-details","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":"/branches/3/guides/app-info-mgmt"}],"uri":"/branches/3/guides/app-info-mgmt","category":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM","parent":null}],"title":"[LEGACY] DEVELOPER PLATFORM","uri":"/branches/3/categories/guides/[LEGACY] DEVELOPER PLATFORM"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"whats-new","title":"New and latest: Information for developers","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"whats-new-2025","title":"What's new: 2025","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/whats-new-2025","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/whats-new"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"whats-new-2024","title":"What's new: 2024","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/whats-new-2024","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/whats-new"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"whats-new-2023","title":"What's new: 2023","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/whats-new-2023","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/whats-new"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"whats-new-2022","title":"What's new: 2022","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/whats-new-2022","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/whats-new"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"whats-new-2021","title":"What's new: 2021","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/whats-new-2021","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/whats-new"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"whats-new-2020","title":"What's new: 2020","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/whats-new-2020","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/whats-new"}],"uri":"/branches/3/guides/whats-new","category":"/branches/3/categories/guides/RELEASE NOTES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"bug-fixes","title":"Bug fixes","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/bug-fixes","category":"/branches/3/categories/guides/RELEASE NOTES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"release-notes-announcements","title":"Announcements","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"test-merchants-get-the-new-clover-dashboard","title":"Test merchants get the new Clover dashboard","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/test-merchants-get-the-new-clover-dashboard","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"new-server-side-limits-for-line-items-and-bulk-inventory-updates","title":"New server-side limits for line items and bulk inventory updates","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/new-server-side-limits-for-line-items-and-bulk-inventory-updates","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"announcement-clover-developer-round-up-2025-year-in-review","title":"Clover developer round-up 2025: Year in review","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/announcement-clover-developer-round-up-2025-year-in-review","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"announcement-end-of-app-update-gen-1-devices","title":"End-of-App-Update (EOAU) | Clover 1st Gen devices","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/announcement-end-of-app-update-gen-1-devices","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"announcing-clover-compact-for-semi-integration-in-us","title":"Clover Compact available for Semi-Integration | US","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/announcing-clover-compact-for-semi-integration-in-us","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"announcing-2025-clover-code-freeze","title":"Announcing 2025 Clover code freeze","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/announcing-2025-clover-code-freeze","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"announcement-woocommerce-plugin-updates","title":"Ecommerce: Updates to WooCommerce plugin","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/announcement-woocommerce-plugin-updates","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"expiring-tokens-required-in-all-regions","title":"Expiring access tokens required for apps in all regions","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/expiring-tokens-required-in-all-regions","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"announcement-launch-new-apps-on-the-global-developer-platform","title":"Launch new apps on the global developer platform","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/announcement-launch-new-apps-on-the-global-developer-platform","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"arriving-soon-clover-flex-pocket-for-uk-merchants","title":"Arriving soon! Clover Flex Pocket for UK merchants","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/arriving-soon-clover-flex-pocket-for-uk-merchants","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"announcing-3d-secure-authentication-services","title":"Elevating payment security with 3D Secure authentication","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/announcing-3d-secure-authentication-services","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"available-soon-clover-flex-4-for-merchants-in-uk","title":"Available now! Clover Flex 4 for merchants in the UK","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/available-soon-clover-flex-4-for-merchants-in-uk","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"available-now-clover-flex-4-for-merchants-in-canada","title":"Available now! Clover Flex 4 for merchants in Canada","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/available-now-clover-flex-4-for-merchants-in-canada","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"pci-dss-v40-requirements-643-and-1161","title":"PCI DSS v4.0 Requirements 6.4.3 and 11.6.1","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/pci-dss-v40-requirements-643-and-1161","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"expiring-access-tokens-coming-in-october-2023-1","title":"Update—Expiring access tokens required in US and Canada","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/expiring-access-tokens-coming-in-october-2023-1","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"decommissioning-of-payeezy-payments-plugin","title":"Update—Decommissioning of Payeezy Payments plugin on Shopify","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/decommissioning-of-payeezy-payments-plugin","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-android-rom-updates-2025","title":"Clover Android ROM updates","type":"basic","updatedAt":"2026-06-08T20:15:18.000Z","pages":[],"uri":"/branches/3/guides/clover-android-rom-updates-2025","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"2024-announcements","title":"2024 Announcements","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-clover-plugin-supports-wordpress-6-7-1","title":"Ecommerce: Clover plugin now supports WordPress 6.7.1","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/ecommerce-clover-plugin-supports-wordpress-6-7-1","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"arriving-soon-clover-flex-4-for-merchants-in-europe","title":"Arriving soon! Clover Flex 4 for merchants in Europe","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","uri":"/branches/3/guides/arriving-soon-clover-flex-4-for-merchants-in-europe","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"test-apps-for-variable-length-oauth-tokens","title":"Test apps for variable length OAuth tokens","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/test-apps-for-variable-length-oauth-tokens","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sandbox-maintenance-updates-november-2024","title":"Sandbox maintenance updates | November 2024","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/sandbox-maintenance-updates-november-2024","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"available-now-clover-flex-4-for-us-merchants","title":"Available now! Clover Flex 4 for US merchants","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/available-now-clover-flex-4-for-us-merchants","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"arriving-soon-clover-flex-4-for-merchants-in-canada","title":"Arriving soon! Clover Flex 4 for merchants in Canada","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/arriving-soon-clover-flex-4-for-merchants-in-canada","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"arriving-soon-clover-flex4-for-us-merchants","title":"Arriving soon! Clover Flex 4 for US merchants","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/arriving-soon-clover-flex4-for-us-merchants","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"announcing-2024-clover-code-freeze","title":"Announcing 2024 Clover code freeze","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/announcing-2024-clover-code-freeze","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"advance-notice-latin-america-clover-platform-maintenance-october-29","title":"[Latin America] Clover Platform maintenance | October 29","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/advance-notice-latin-america-clover-platform-maintenance-october-29","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"available-now-clover-flex-pocket-for-canada-merchants","title":"Available now! Clover Flex Pocket for Canada merchants","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/available-now-clover-flex-pocket-for-canada-merchants","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"advanced-notice-europe-platform-maint-ip-address-change","title":"[Europe] Clover Platform maintenance | October 15","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/advanced-notice-europe-platform-maint-ip-address-change","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"announcement-global-developer-dashboard-new-user-interface","title":"Global developer platform: Enhanced user experience","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/announcement-global-developer-dashboard-new-user-interface","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"arriving-soon-clover-flex-pocket-for-canada-merchants","title":"Arriving soon! Clover Flex Pocket for Canada merchants","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/arriving-soon-clover-flex-pocket-for-canada-merchants","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"mfa-reset-for-global-developer-accounts","title":"Action required: Multi-factor authentication (MFA) set up","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/mfa-reset-for-global-developer-accounts","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"available-now-clover-flex-pocket-for-us-merchants","title":"Available now! Clover Flex Pocket for US merchants","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/available-now-clover-flex-pocket-for-us-merchants","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"arriving-soon-clover-flex-pocket-for-us-merchants","title":"Arriving soon! Clover Flex Pocket for US merchants","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/arriving-soon-clover-flex-pocket-for-us-merchants","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"suppport-credit-card-surcharging-canada","title":"Support for credit card surcharging in Canada","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","uri":"/branches/3/guides/suppport-credit-card-surcharging-canada","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"alert-remove-iframe-references-to-polyfillio","title":"Secure your site: Remove Polyfill references from iframe settings","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/alert-remove-iframe-references-to-polyfillio","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"update-app-to-support-multiple-service-charges","title":"Announcing multiple service charges feature for new apps","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/update-app-to-support-multiple-service-charges","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"europe-developers-app-charges-pdf-invoice","title":"Updated app charges monthly invoice format and delivery method","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/europe-developers-app-charges-pdf-invoice","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"upgraded-merchant-dashboard-for-test-merchants","title":"Upgraded Merchant Dashboard for US test merchants","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","uri":"/branches/3/guides/upgraded-merchant-dashboard-for-test-merchants","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"sandbox-update-planned-january-4-2024","title":"Sandbox update planned | January 4, 2024","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/sandbox-update-planned-january-4-2024","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-android-rom-2024-update","title":"Clover Android ROM 2024 updates","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","uri":"/branches/3/guides/clover-android-rom-2024-update","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/2024-announcements","pages":[]}],"uri":"/branches/3/guides/2024-announcements","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/release-notes-announcements"}],"uri":"/branches/3/guides/release-notes-announcements","category":"/branches/3/categories/guides/RELEASE NOTES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"link_url":"https://docs.clover.com/changelog","link_external":true,"renderable":{"status":true},"slug":"api-changelog-1","title":"API Changelog","type":"link","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/api-changelog-1","category":"/branches/3/categories/guides/RELEASE NOTES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-android-sdk","title":"Clover Android SDK release notes","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"v306-release-notes","title":"v306 release notes","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/v306-release-notes","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/clover-android-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-android-rn-v304","title":"v304 release notes","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/clover-android-rn-v304","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/clover-android-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"v293","title":"v293 release notes","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/v293","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/clover-android-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"v292","title":"v292 release notes","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/v292","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/clover-android-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"v288","title":"v288 release notes","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/v288","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/clover-android-sdk"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-android-sdk-v284-release-notes","title":"v284 release notes","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/clover-android-sdk-v284-release-notes","category":"/branches/3/categories/guides/RELEASE NOTES","parent":"/branches/3/guides/clover-android-sdk"}],"uri":"/branches/3/guides/clover-android-sdk","category":"/branches/3/categories/guides/RELEASE NOTES","parent":null}],"title":"RELEASE NOTES","uri":"/branches/3/categories/guides/RELEASE NOTES"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-go-sdk-contents","title":"Clover Go SDK contents","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/clover-go-sdk-contents","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-go-sdk","title":"Clover Go SDK","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/clover-go-sdk","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-go-sdk-release-notes","title":"Clover Go SDK release notes","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"androidclover-go-sdk-release-notes","title":"Android—Clover Go SDK release notes","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/androidclover-go-sdk-release-notes","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/clover-go-sdk-release-notes"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-go-ios-sdk-release-notes","title":"iOS—Clover Go SDK release notes (v1.0.0)","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/clover-go-ios-sdk-release-notes","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/clover-go-sdk-release-notes"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iosclover-go-sdk-release-notes-v110","title":"iOS—Clover Go SDK release notes (v1.1.0)","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/iosclover-go-sdk-release-notes-v110","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/clover-go-sdk-release-notes"}],"uri":"/branches/3/guides/clover-go-sdk-release-notes","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-go-sdk-quick-start-guides","title":"Clover Go SDK quick start guides","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-clover-go-sdk-quick-start","title":"Android—Clover Go SDK quick start guide","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/android-clover-go-sdk-quick-start","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/clover-go-sdk-quick-start-guides"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-clover-go-sdk-quick-start","title":"iOS—Clover Go SDK quick start guide","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/ios-clover-go-sdk-quick-start","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/clover-go-sdk-quick-start-guides"}],"uri":"/branches/3/guides/clover-go-sdk-quick-start-guides","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-oauth-on-mobile","title":"Clover OAuth on Mobile","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"go-sdk-terminology","title":"OAuth terminology for mobile","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/go-sdk-terminology","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/clover-oauth-on-mobile"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-oauth-on-mobile","title":"Android—OAuth on mobile","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/android-oauth-on-mobile","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/clover-oauth-on-mobile"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"iosoauth-on-mobile","title":"iOS—OAuth on mobile","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-full-oauth","title":"iOS—Full OAuth implementation","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","uri":"/branches/3/guides/ios-full-oauth","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/iosoauth-on-mobile","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-partial-oauth","title":"iOS—Partial OAuth implementation","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/ios-partial-oauth","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/iosoauth-on-mobile","pages":[]},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-no-oauth","title":"iOS—No OAuth implementation","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","uri":"/branches/3/guides/ios-no-oauth","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/iosoauth-on-mobile","pages":[]}],"uri":"/branches/3/guides/iosoauth-on-mobile","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/clover-oauth-on-mobile"}],"uri":"/branches/3/guides/clover-oauth-on-mobile","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"device-connection","title":"Device connection","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-device-connection","title":"Android—Device connection","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/android-device-connection","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/device-connection"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ios-device-connection","title":"iOS—Device connection","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/ios-device-connection","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/device-connection"}],"uri":"/branches/3/guides/device-connection","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"go-sdk-reference","title":"Clover Go SDK reference","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"card-present-payments","title":"Card present payments","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/card-present-payments","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/go-sdk-reference"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"manual-entry-payments","title":"Manual entry payments","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/manual-entry-payments","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/go-sdk-reference"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payment-reversal","title":"Payment reversal","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/payment-reversal","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/go-sdk-reference"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"capture-and-tip-adjust","title":"Capture and tip adjust","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/capture-and-tip-adjust","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/go-sdk-reference"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"closeout","title":"Closeout","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/closeout","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/go-sdk-reference"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"receipts","title":"Receipts","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/receipts","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/go-sdk-reference"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"turn-on-logs-for-ios-sdk","title":"Turn on logs for iOS SDK","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/turn-on-logs-for-ios-sdk","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/go-sdk-reference"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"clover-go-offline-payments","title":"Offline payments","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/clover-go-offline-payments","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/go-sdk-reference"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"go-sdk-tokenization","title":"Card-present tokenization","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/go-sdk-tokenization","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":"/branches/3/guides/go-sdk-reference"}],"uri":"/branches/3/guides/go-sdk-reference","category":"/branches/3/categories/guides/CLOVER GO SDK","parent":null}],"title":"CLOVER GO SDK","uri":"/branches/3/categories/guides/CLOVER GO SDK"},{"pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"design-resources","title":"Design resources","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/design-resources","category":"/branches/3/categories/guides/RESOURCES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"supported-barcode-formats-on-clover-devices","title":"Supported barcode formats","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/supported-barcode-formats-on-clover-devices","category":"/branches/3/categories/guides/RESOURCES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"test-card-numbers","title":"Test card numbers","type":"basic","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/test-card-numbers","category":"/branches/3/categories/guides/RESOURCES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"country-code-reference","title":"Country code reference","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/country-code-reference","category":"/branches/3/categories/guides/RESOURCES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"link_url":"https://connect.firstdata.com/DevRelSubscribe.html","link_external":true,"renderable":{"status":true},"slug":"developer-mailing-list","title":"Developer mailing list","type":"link","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/developer-mailing-list","category":"/branches/3/categories/guides/RESOURCES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"link_url":"https://sandbox.dev.clover.com/developers","link_external":true,"renderable":{"status":true},"slug":"developer-dashboard-2","title":"Developer Dashboard","type":"link","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/developer-dashboard-2","category":"/branches/3/categories/guides/RESOURCES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"link_url":"https://docs.clover.com/reference","link_external":true,"renderable":{"status":true},"slug":"rest-api-reference","title":"REST API Reference","type":"link","updatedAt":"2026-05-29T17:37:27.000Z","pages":[],"uri":"/branches/3/guides/rest-api-reference","category":"/branches/3/categories/guides/RESOURCES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"link_url":"https://docs.clover.com/docs/sdks-doc-resources","link_external":true,"renderable":{"status":true},"slug":"sdks-sample-code","title":"SDKs & sample code","type":"link","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/sdks-sample-code","category":"/branches/3/categories/guides/RESOURCES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":true,"link_url":"https://sandbox.dev.clover.com/developers/dev-apks","link_external":true,"renderable":{"status":true},"slug":"clover-development-apks","title":"Clover Development APKs","type":"link","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/clover-development-apks","category":"/branches/3/categories/guides/RESOURCES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"faqs","title":"Frequently asked questions (FAQs)","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/faqs","category":"/branches/3/categories/guides/RESOURCES","parent":null},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-support-faqs","title":"Developer support: Frequently asked questions","type":"basic","updatedAt":"2026-04-29T01:23:40.000Z","pages":[{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"developer-account-set-up-faqs","title":"Developer account set up FAQs","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/developer-account-set-up-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"app-approval-and-app-market-faqs","title":"App approval and App Market FAQs","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/app-approval-and-app-market-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"devices-and-dev-kits-faqs","title":"Devices and Dev Kits FAQs","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/devices-and-dev-kits-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"oauth-and-tokens-faqs","title":"OAuth and tokens FAQs","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/oauth-and-tokens-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"android-sdk-faqs","title":"Android SDK FAQs","type":"basic","updatedAt":"2026-06-09T17:23:34.000Z","pages":[],"uri":"/branches/3/guides/android-sdk-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ecommerce-faqs","title":"Ecommerce FAQs","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/ecommerce-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"inventory-faqs","title":"Inventory FAQs","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/inventory-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"orders-faqs","title":"Orders FAQs","type":"basic","updatedAt":"2026-06-08T09:12:16.000Z","pages":[],"uri":"/branches/3/guides/orders-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payments-and-refunds-faqs","title":"Payments and Refunds FAQs","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/payments-and-refunds-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"payments-semi-integration-faqs","title":"Payments (semi) integration FAQs","type":"basic","updatedAt":"2026-06-03T18:12:03.000Z","pages":[],"uri":"/branches/3/guides/payments-semi-integration-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"ach-faqs","title":"Automated Clearing House (ACH) FAQs","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/ach-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"merchant-dashboard-and-reports-faqs","title":"Merchant dashboard and Reports FAQs","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/merchant-dashboard-and-reports-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"},{"deprecated":false,"hidden":false,"isBodyEmpty":false,"renderable":{"status":true},"slug":"general-faqs","title":"General FAQs","type":"basic","updatedAt":"2026-06-09T17:13:20.000Z","pages":[],"uri":"/branches/3/guides/general-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":"/branches/3/guides/developer-support-faqs"}],"uri":"/branches/3/guides/developer-support-faqs","category":"/branches/3/categories/guides/RESOURCES","parent":null}],"title":"RESOURCES","uri":"/branches/3/categories/guides/RESOURCES"}],"aiConfig":{"enabled":false,"settings":{"errors":null,"styleguide":null,"warnings":null}},"config":{"algoliaIndex":"readme_search_v2","amplitude":{"apiKey":"8b550cf334a130e3d6ea41a88b894d8","enabled":"true","sessionReplay":{"enabled":"true","sampleRate":"0.1"}},"api":{"upload":{"fileSizeLimit":10485760,"fileSizeLimitFormatted":"10MB"}},"asset_url":"https://cdn.readme.io","dashDomain":"dash.readme.com","domain":"readme.io","domainFull":"https://dash.readme.com","encryptedLocalStorageKey":"ekfls-2025-03-27","fullstory":{"enabled":true,"orgId":"FSV9A"},"git":{"preview":"https://githug-prod.gitto.rdme.io","sync":{"bitbucket":{"installationLink":"https://developer.atlassian.com/console/install/310151e6-ca1a-4a44-9af6-1b523fea0561?signature=AYABeMn9vqFkrg%2F1DrJAQxSyVf4AAAADAAdhd3Mta21zAEthcm46YXdzOmttczp1cy13ZXN0LTI6NzA5NTg3ODM1MjQzOmtleS83MDVlZDY3MC1mNTdjLTQxYjUtOWY5Yi1lM2YyZGNjMTQ2ZTcAuAECAQB4IOp8r3eKNYw8z2v%2FEq3%2FfvrZguoGsXpNSaDveR%2FF%2Fo0BHUxIjSWx71zNK2RycuMYSgAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDOJgARbqndU9YM%2FRdQIBEIA7unpCah%2BIu53NA72LkkCDhNHOv%2BgRD7agXAO3jXqw0%2FAcBOB0%2F5LmpzB5f6B1HpkmsAN2i2SbsFL30nkAB2F3cy1rbXMAS2Fybjphd3M6a21zOmV1LXdlc3QtMTo3MDk1ODc4MzUyNDM6a2V5LzQ2MzBjZTZiLTAwYzMtNGRlMi04NzdiLTYyN2UyMDYwZTVjYwC4AQICAHijmwVTMt6Oj3F%2B0%2B0cVrojrS8yZ9ktpdfDxqPMSIkvHAGT%2FMTvCxC3XwnwlulZe975AAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMMUUe9d1YmFOo373TAgEQgDuJo7TayM6NL19Sj9RPooRrl8rYxwKgvu9gkLNc3GuyyovWI1xA2qTr0LQzMRsf3imrAWsywzPcsjnvuAAHYXdzLWttcwBLYXJuOmF3czprbXM6dXMtZWFzdC0xOjcwOTU4NzgzNTI0MzprZXkvNmMxMjBiYTAtNGNkNS00OTg1LWI4MmUtNDBhMDQ5NTJjYzU3ALgBAgIAeLKa7Dfn9BgbXaQmJGrkKztjV4vrreTkqr7wGwhqIYs5AZR28Sibv2eBxSIg2MydtvEAAAB%2BMHwGCSqGSIb3DQEHBqBvMG0CAQAwaAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAzzWhThsIgJwrr%2FY2ECARCAOxoaW9pob21lweyAfrIm6Fw7gd8D%2B%2F8LHk4rl3jjULDM35%2FVPuqBrqKunYZSVCCGNGB3RqpQJr%2FasASiAgAAAAAMAAAQAAAAAAAAAAAAAAAAAEokowLKsF1tMABEq%2BKNyJP%2F%2F%2F%2F%2FAAAAAQAAAAAAAAAAAAAAAQAAADJLzRcp6MkqKR43PUjOiRxxbxXYhLc6vFXEutK3%2BQ71yuPq4dC8pAHruOVQpvVcUSe8dptV8c7wR8BTJjv%2F%2FNe8r0g%3D&product=bitbucket"}}},"metrics":{"billingCronEnabled":"true","dashUrl":"https://m.readme.io","defaultUrl":"https://m.readme.io","exportMaxRetries":12,"wsUrl":"wss://m.readme.io"},"micro":{"baseUrl":"https://micro-beta.readme.com"},"novuNotification":{"appId":"ob_MiAPOPqgP"},"proxyUrl":"https://try.readme.io","readmeRecaptchaSiteKey":"6LesVBYpAAAAAESOCHOyo2kF9SZXPVb54Nwf3i2x","releaseVersion":"5.766.1","reservedWords":{"tools":["execute-request","get-endpoint","get-server-variables","list-endpoints","list-specs","search-endpoints","search","fetch"]},"sentry":{"dsn":"https://[email protected]/2052166","enabled":true},"shMigration":{"promoVideo":"","forceWaitlist":false,"migrationPreview":false},"sslBaseDomain":"readmessl.com","sslGenerationService":"ssl.readmessl.com","superHub":{"newProjectsEnabled":true},"wootric":{"accountToken":"NPS-122b75a4","enabled":true}},"context":{"labs":{},"user":{"isAuthenticated":false,"notifications":{}},"terms":[{"term":"3DS","definition":"3DS protocol uses a three-domain model to add an extra layer of security between the financial authorization process and the online authentication process. The three domains are as follows: 1. Issuer domain: Financial institution (FI) or bank that issued the card used for the transaction. 2. Acquirer domain: Merchant that accepts online payments from customers. 3. Interoperability domain: 3DS infrastructure platform is the secure intermediary that facilitates communication between the customer and the merchant.","_id":"673d8fedbbac4c001027014d"},{"term":"AID","definition":"Application Identifier. An identifier stored on the chip and terminal. It is used to identify mutually supported applications.","_id":"673d8ffd54aa2a00300c8153"},{"term":"Alternate Launch Path","definition":"Link (URL) path for your app that you enter on the Edit REST Configuration page for web apps. This path uses the same base domain as the Site URL. The alternate launch path is required when OAuth is initiated from the left navigation menu in the Merchant Dashboard or directly from the Clover App Market. After Clover redirects merchants to your app, your app must initiate the OAuth flow by calling the `/v2/authorize` endpoint.","_id":"673d9020216993003780b57c"},{"term":"Android ABI","definition":"Android ABI (Application Binary Interface) defines how an application's machine code interacts with the system at runtime. It specifies details such as the CPU instruction set, endianness of memory stores and loads, conventions for passing data between applications and the system, and the format of executable binaries.","_id":"673d902cda33e30053bc5c7f"},{"term":"Android Payment API","definition":"Intent-based API used in applications running on Clover devices for executing payment transaction requests. It supports payment operations, including payments, preauthorizations, and payment reversals (void/refund), using Android Intent Builders.","_id":"673d90386bf20f006079d1dc"},{"term":"Android SDK","definition":"SDK to build apps that run on Clover devices and publish your apps on the Clover App Market. It is also used for semi-integration with a Clover device, enabling a third-party point of sale (POS) system to use Clover for processing payments.","_id":"673d9044e8d62f00431f7200"},{"term":"Android Virtual Device","definition":"AVD is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator. An AVD contains a hardware profile, system image, storage area, skin, and other properties.","_id":"673d9056ea642800216cdaaa"},{"term":"Announcements","definition":"Information on new launches, features, timelines, and notices for developers.","_id":"673d9098bbac4c001027016d"},{"term":"API changelog","definition":"Monthly updates related to API changes.","_id":"673d90aaa085000030547ef2"},{"term":"API docs and SDK guides","definition":"Resources needed to work with the Clover app and integration platforms.","_id":"673d90bd8d8ee100686ff678"},{"term":"API level","definition":"Each Android version corresponds to a specific API level. For example, Android 11 corresponds to API level 30, Android 10 to API level 29, and so on. The API level precisely identifies the version of the API set that your app can call into. It defines the combination of manifest elements, permissions, and other features that you can use as a developer.","_id":"673d90c891bf64002a9f63f7"},{"term":"Auth","definition":"Authorization (Auth) is a tip-adjusted sale. This type of transaction is typically used by restaurants and services establishments.","_id":"673d90d37bd1cf0019a275c7"},{"term":"authenticator app","definition":"Mobile or desktop application that generates time-based or counter-based one-time passwords (OTPs) for secure multi-factor authentication (MFA). You can download an authentication app, such as Google Authenticator or Microsoft Authenticator, from the relevant app store.","_id":"673d91114f9f5c0012f565a7"},{"term":"Bearer token","definition":"Type of token used in the authorization header of an API request to authenticate the client making the request. It is typically included in the request header as follows: Authorization: Bearer \u003ctoken>. This token is a string that represents the user’s identity and permissions.","_id":"673d91227bd1cf0019a2761f"},{"term":"billable merchant","definition":"Active merchant accounts with Clover. These are not test merchant or demo accounts and are not suppressed for billing.","_id":"673d91348d8ee100686ff685"},{"term":"blackhole payment gateway","definition":"Default gateway for test merchant accounts in the Clover sandbox environment. It sets all transactions to be successful and suffices for most development use cases.","_id":"673d914a91bf64002a9f6493"},{"term":"Bug fixes","definition":"Monthly updates on the latest bug fixes across the Clover developer platform.","_id":"673d9166bbac4c00102701d3"},{"term":"card-on-file","definition":"Card-on-file (COF) transactions are payments in which the cardholders have authorized merchants to store their credit or debit card information to use for future purchases or recurring payments.","_id":"673d9176da33e30053bc5dd1"},{"term":"card tokenization","definition":"Faud-prevention measure that replaces sensitive payment credentials, such as credit card numbers, cardholder names, expiration dates, and CVV codes with non-specific identifiers known as tokens. These tokens are used for subsequent transactions, allowing secure storage and processing of payment information.","_id":"673d918054aa2a00300c8180"},{"term":"Card track data","definition":"Information encoded on a payment card's magnetic stripe or chip. The data is used to authorize and process transactions.","_id":"673d919554aa2a00300c81ea"},{"term":"cash out","definition":"Process of removing the remaining balance from a gift card, bringing the account balance to zero (0). The customer may receive the remaining balance in cash, or choose to cash out and deactivate the card or close the gift card account.","_id":"673d91b3e0af860036ad2172"},{"term":"certificates","definition":"Certificates and profiles are essential for app development and distribution of the Apple Pay® service on a Clover Ecommerce integration. Certificates are digital documents that verify your identity as a developer. They are used to sign your apps and ensure they come from a trusted source.","_id":"673d91d05db0190019bd08df"},{"term":"challenge flow","definition":"For card-not-present (CNP) payments, challenge flow indicates that the financial institution (FI) or issuer requires more evidence to verify the legitimacy of the transaction. In the challenge flow, the customer must provide extra information to authenticate the payment, such as a password or a one-time code that the card issuer sends to their mobile device.","_id":"673d91e18d8ee100686ff7b1"},{"term":"Client ID","definition":"Unique identifier for your app on the Clover App Market. Used to identify your app when making API requests to Clover. It helps Clover recognize which app is making the request and ensures that the app has the necessary permissions to access the requested resources. Your Client ID is the App ID value in your app's Settings page on the Developer Dashboard.","_id":"673d920fa0a15d006035e273"},{"term":"closeout","definition":"Process of closing your open batch of transactions and submitting it for clearing, settlement, and funding.","_id":"673d9905da33e30053bc78c6"},{"term":"Clover APK","definition":"Android application package (APK) created for integration with Clover merchant services and point of sale (POS) systems. Developers must design, generate, and register their APK following Clover standards. Once approved, the APK is submitted for distribution on Clover devices, ensuring it meets the necessary guidelines for proper installation and functionality on the hardware.","_id":"673d9977bbac4c0010270eb4"},{"term":"Clover Community","definition":"Online forum for developers to ask questions and get help with the Clover API.","_id":"673d9988a08500003054a420"},{"term":"Clover Connector SDK","definition":"Provides an interface that allows external point of sale (POS) systems to access the same payment functions as PaymentConnector, such as sales and refunds. It also offers additional features like custom receipts and Android activities. The SDK is available for four platforms: Android, iOS, JavaScript, and .NET.","_id":"673d998ef090bf003e28b229"},{"term":"Clover Go reader","definition":"EMV-capable device that pairs with an Apple (iOS®) and Android smartphone or tablet. The reader allows iOS and Android mobile apps to accept swipe, NFC, or EMV transactions with no EMV certification required at the merchant's end. Clover Go reader accepts chip, dip, and contactless payments, including Tap-to-Pay on iPhone, Apple Pay®, Google Pay™ and Samsung Pay®.","_id":"673d999f98b87a00571c2cd9"},{"term":"Clover ID","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. This identifier displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and also on the Merchant Dashboard > User Settings page below the merchant name. It also displays in the URL (link) of the Clover Merchant Dashboard. Example: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. Format: 13-alphanumeric","_id":"673d99ae4529f8000fd3e1d3"},{"term":"Code and sample apps","definition":"Resources on GitHub to help get started with the Clover APIs.","_id":"673d99b8ea642800216d0571"},{"term":"code challenge","definition":"Base64-URL-encoded string derived from the code verifier using a transformation method such as SHA-256. Code challenge is sent to the authorization server during the initial authorization request. It ensures that the app that initiated the request is the same app that is completing the request.","_id":"673d99c2204ee80045357003"},{"term":"code verifier","definition":"Cryptographically random string that a low-trust app needs to generate at the beginning of the authorization process. It is used to create a code challenge and is sent to the authorization server to verify the authorization request.","_id":"673d99d191bf64002a9f8216"},{"term":"CORS","definition":"Security feature that allows web pages to request resources from different origins, controlled through HTTP headers.","_id":"673d99e1e88e42003ebe326c"},{"term":"denominated gift card","definition":"Cards with a specific value assigned to them at the time of purchase. For example, a gift card might be worth $25, $50, or $100. When a customer buys a denominated gift card, they know exactly how much value is on the card.","_id":"673d99e916f16000112f6f9b"},{"term":"Developer Dashboard","definition":"If you are creating new apps, log in to the Global Developer Dashboard. If you are managing apps previously created on the legacy developer platform, continue using the Developer Dashboard based on your merchant's region.","_id":"673d9a047053dd000f43a0f2"},{"term":"developer platform","definition":"Open platform for third-party developers to build apps and integrate external point-of-sale systems with Clover devices. Create new apps on the global developer platform through the Global Developer Dashboard.","_id":"673d9a0a7ab0410068f93c71"},{"term":"Device Manager","definition":"Android Studio tool for creating and managing an Android Virtual Device (AVD).","_id":"673d9a15216993003780ce8f"},{"term":"DPI","definition":"DPI (dots per inch) is the pixel density, that is the number of pixels within a physical area of the screen. DPI is different from the screen resolution, which is the total number of pixels on a screen.","_id":"673d9a1f5db0190019bd13dc"},{"term":"Ecommerce API key","definition":"Identifies the merchant who is tokenizing customers' cards. You can use the same static Ecommerce API key to tokenize multiple cards for that merchant. This is also known as the PAKMS key, as it is generated from the Public Access Key Management Service (PAKMS) using the [Ecommerce - PAKMS Service API](https://docs.clover.com/dev/reference/getapikey).","_id":"673d9be7e88e42003ebe330c"},{"term":"Ecommerce API","definition":"API to integrate Clover payment capabilities into your online or web-based applications. It provides endpoints for creating tokens, processing payments, and managing customer data. OAuth tokens are necessary for authentication and authorization.","_id":"673d9bf11aaaa0005430f26f"},{"term":"EMV","definition":"EMV cards are smart cards, also called chip cards, integrated circuit cards, or IC cards. They store their data on integrated circuit chips in addition to a magnetic stripe. EMV stands for Europay, Mastercard, and Visa, the three companies that created the specifications to facilitate worldwide interactions and acceptance of secure payments.","_id":"673d9bfe68c269003c38a68a"},{"term":"EMVCo","definition":"Consortium with equal control among American Express, China UnionPay, Discover, JCB, Mastercard, and Visa. EMVCo creates and manages EMV® Specifications and programs that enable seamless and secure card-based payments for businesses and consumers worldwide.","_id":"673d9c062b1c2c001fb7f364"},{"term":"Environment variables","definition":"A set of key-value pairs that a running process can access during runtime. These variables can be used to configure and adjust the behavior of the app or system, and they can vary between different execution environments.","_id":"673d9c3857fdbd003d772831"},{"term":"FAC","definition":"Foreign access code value is used to process transactions for non-native gift cards on the Clover point of sale system.","_id":"673d9c417ab0410068f93ede"},{"term":"frictionless flow","definition":"For card-not-present (CNP) payments, frictionless flow refers to a seamless process where the financial institution (FI) or issuer can verify the legitimacy of a transaction without requiring additional input from the cardholder. This behind-the-scenes verification lets customers complete their purchases without any noticeable interruptions or authentication steps.","_id":"673d9c60dcf4bc00436cef7e"},{"term":"gift card","definition":"A gift card is a prepaid payment card used to make purchases at participating restaurants, stores, or online retailers.","_id":"673d9c69cbad42003c236e58"},{"term":"global developer platform","definition":"Provides an intuitive and seamless experience to create apps and integrations for different regions. With a single developer account, you can access both sandbox and production environments and switch between them effortlessly.","_id":"673d9c71e88e42003ebe3362"},{"term":"high-trust app","definition":"Securely stores and uses the Client Secret (`app_secret`) and employs the standard authorization code flow to generate expiring authentication tokens.","_id":"673d9c7bea642800216d0794"},{"term":"hosted payment form","definition":"Secure way to accept ecommerce credit card payments without the need for a shopping cart. Clover hosts the form, so sensitive payment data does not pass through the merchant's system, reducing the PCI scope and minimizing merchant liability. You can implement payment forms using a standard template or customize it to fit the look and feel of the merchant's ecommerce website.","_id":"673d9c88204ee80045357119"},{"term":"Idempotency Key","definition":"Unique identifier used to ensure that a particular operation is performed only once, even if the request is made multiple times. This is particularly useful in scenarios where network issues or client retries might cause the same request to be sent more than once.","_id":"673d9c9f0c9f1a00368c050b"},{"term":"Incremental authorization","definition":"Allows merchants to change the original authorization amount to ensure the customer's card can still cover the higher amount.","_id":"673d9ca77053dd000f43a1a7"},{"term":"issuer","definition":"Financial institutions, such as a bank that issues a credit card to a consumer or business.","_id":"673d9caf2ab88500611e934d"},{"term":"low-trust app","definition":"Mobile or single-page apps that cannot securely store the Client Secret (`app_secret`) and use the authorization code flow with Proof Key for Code Exchange (PKCE) to enhance security during token acquisition.","_id":"673d9cc7d27f0b001991bbb0"},{"term":"LTE","definition":"LTE (Long-Term Evolution) is a fourth-generation (4G) wireless standard that provides increased network capacity and speed for mobile phones and other cellular devices compared with third-generation (3G) technology.","_id":"673d9cd6216993003780cf96"},{"term":"merchantId","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. The merchantId displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and on the Merchant Dashboard > User Settings page below the merchant’s name. It also displays in the URL (link) of the Clover Merchant Dashboard. Example: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. Format: 13-alphanumeric; Note: The merchantId is different from the MID.","_id":"673d9ce1dcf4bc00436cf043"},{"term":"MID","definition":"Merchant identifier (MID) identifies your merchant account and is the same across devices with the same merchant name. This identifier is available on the Clover device Diagnostics > Additional Details screen and also on the Merchant Dashboard > User Settings page, in the MID column. Note: The MID is different from the merchant UUID or merchantId.","_id":"673d9cf63dd0b800123c0b68"},{"term":"Minimum SDK","definition":"The minSdk specifies the minimum SDK version your app supports. For example, if your minSdk is 26, your app will only run on devices with Android 8 (API level 26) or higher. The minSdk is defined in your app's build.gradle file.","_id":"673d9cfe0c9f1a00368c0548"},{"term":"MOTO","definition":"MOTO (Mail Order/Telephone Order) transactions are merchant-initiated, card-not-present (CNP) transactions in which customers provide their order and payment details by regular mail (not email), fax, or telephone. In these transactions, card information is captured, and payment is processed with the customer’s consent, even though the card is not physically present.","_id":"673d9d084f9f5c0012f57b49"},{"term":"multi-factor authentication","definition":"Security process that requires two different forms of identification to verify a user’s identity, typically combining something you know, such as a password, with something you have, such as a mobile device.","_id":"673d9d0f994595002a60b8e4"},{"term":"multi-lock","definition":"Set aside and lock a specific amount from the available balance on a gift card for a specified time period. Multiple locks can be active simultaneously as long as there is a balance. The locked amount automatically unlocks when the specified time expires or upon request to unlock and redeem the amount.","_id":"673d9d18352c60006f15d204"},{"term":"native gift card","definition":"Gift cards that use the Clover-integrated Gift Card Solution, managed through the Fiserv payment gateway. May have a 4-8 digit security card value (SCV). These non-expiring cards are fully integrated into the Clover point of sale system, allowing for seamless transactions and management.","_id":"673d9d218effef006b1f1190"},{"term":"NFC","definition":"Near Field Communication (NFC) is a group of wireless technologies that work over a short distance, usually 4 cm or less, to establish a connection. With NFC, you can transfer small amounts of data between an Android-powered device and an NFC tag or between two Android-powered devices.","_id":"673d9d4116f16000112f72fd"},{"term":"non-denominated gift card","definition":"Cards without a preset value at the time of purchase are activated with a value determined at the time of purchase. The purchaser or recipient can choose the amount, depending on the terms set by the merchant.","_id":"673d9d6950cd900047362e83"},{"term":"non-native gift card","definition":"Gift cards managed through payment gateways other than Fiserv and do not use the Clover-integrated Gift Card Solution. May have a 4-8 digit foreign access code (FAC) for transactions and may not offer the same level of integration with the Clover point of sale system. While non-native gift cards can be used with Clover, they may require additional steps or configurations to process transactions.","_id":"673d9d82289098004b0bafa9"},{"term":"OTP","definition":"Unique, temporary code used for a single login session or transaction. A one-time password (OTP) is generated after you scan a QR code in your authenticator app during account setup or use the authenticator. You need to enter the OTP to verify your identity when logging into the Global Developer Dashboard.","_id":"673d9d969a77b00010d6b530"},{"term":"partial month","definition":"The first charge is added when a merchant installs a new app, and the installation occurs after the first of the month.","_id":"673d9db116f16000112f7352"},{"term":"Payment Connector","definition":"Java-based interface that lets you build a point of sale (POS) directly on a Clover device. It provides all of the Clover features needed for your app to make a sale, issue a refund, and perform other payment functions.","_id":"673d9dbe92944d00479e32f7"},{"term":"payment gateway","definition":"Virtual equivalent of a physical credit and debit card reader. It transfers the data between the point of entry—either a terminal, website, or mobile device—to the payment processor to continue the payment lifecycle.","_id":"673d9e995db0190019bd1553"},{"term":"payment processor","definition":"Technical intermediary, such as Fiserv or Clover that securely handle transactions between a merchant and a customer by processing card or electronic payments.","_id":"673d9ea1a08500003054a516"},{"term":"physical gift card","definition":"Tangible gift card that you can load and reload with an amount and use as a cash equivalent to make in-store and online purchases.","_id":"673d9edd50cd900047362f00"},{"term":"POS","definition":"Point of sale (POS) system enables businesses to accept customer payments and efficiently manage operations. The system consists of both hardware and software components. The software is often cloud-based, allowing access from anywhere. The hardware typically includes a register, barcode scanner, card reader, cash drawer, and receipt printer.","_id":"673d9ee650cd900047362f4d"},{"term":"promotional code","definition":"Unique values, usually alphanumeric, associated with a virtual gift card and sent by email, text, or through an app. The promotional or promo code is used to activate and redeem the virtual gift card.","_id":"673d9eef912f2c00165321a1"},{"term":"Proof Key for Code Exchange","definition":"Extension to the OAuth 2.0 authorization code flow designed to enhance security, especially for public clients like mobile and single-page applications that cannot securely store the Client Secret. PKCE ensures that even if an authorization code is intercepted, it cannot be exchanged for tokens without the original `code_verifier`.","_id":"673d9f04139f87004b4112c9"},{"term":"prorated subscription","definition":"Merchant subscription tier adjustment. When a merchant downgrades their subscription, or uninstalls an app, Clover adjusts the charge difference in the current month's advance on the merchant account.","_id":"673d9f42352c60006f15d28e"},{"term":"PSD2","definition":"Payment Service Directive 2 (PSD2) is a European Union directive that grants bank customers the ability to share their account information with third-party providers. These providers can then manage the customer’s finances, enabling services like direct payments.","_id":"673d9f48e88e42003ebe33ab"},{"term":"QR code","definition":"Quick Response (QR) code. Type of two-dimensional barcode that stores data in a pattern of black and white squares. You can scan the QR code with a camera to quickly access information like URLs, contact details, or authentication keys. The QR code typically expires after a short period, usually around 5 minutes.","_id":"673d9f52afd9bf001392273e"},{"term":"reCAPTCHA","definition":"Completely Automated Public Turing test to tell Computers and Humans Apart. reCAPTCHA is a Google service that verifies a user is human and not a bot by presenting tests that are easy for humans but difficult for automated software.","_id":"673d9f5c8082270030d0ded6"},{"term":"recovery codes","definition":"Alphanumeric backup verification codes generated when you add a new account to your authenticator app. Recovery codes let you access your account if you do not have your device.","_id":"673d9f71fd59830026abdc2c"},{"term":"Redirect URI","definition":"Link (URL) that an app uses to redirect users after authentication using the OAuth flow. The `redirect_uri` parameter is used to specify a custom post-authorization landing page. This URL must be a subpath of the set Site URL for the app.","_id":"673d9f803f79f3007604d181"},{"term":"Release notes","definition":"Monthly updates about new features and updates across the Clover developer platform.","_id":"673d9f8bcbad42003c236f28"},{"term":"Remote Pay","definition":"API that lets your point of sale (POS) system communicate with Clover payment devices. The Remote Pay SDK is used to semi-integrate a POS with a Clover device for card-present transactions. This allows merchants to process payments and perform operations through the cloud. The SDKs are available for different platforms, including Android and JavaScript.","_id":"673da0ea8d8ee10068701cd9"},{"term":"REST API","definition":"API to build a browser-based integration that creates a secure connection to your website. It redirects a merchant from the Clover Merchant Dashboard to your website URL (link).","_id":"673da0f698b87a00571c2fbf"},{"term":"REST Pay Display API","definition":"API that enables card-present payments on Clover Flex or Mini devices through cloud or local network, without requiring an embedded SDK. POS systems can use HTTP calls to initiate and complete transactions, supporting chip, swipe, and contactless payments.","_id":"673da1869a77b00010d6b6fc"},{"term":"Revenu Québec","definition":"Agency of the government of the Province of Quebec, Canada. It collects taxes to fund public services, ensures that all citizens pay their fair share, and administers programs.","_id":"673da2fa559631007d645bf3"},{"term":"SCV","definition":"Security code value is a unique code used to validate and secure transactions for Clover native gift cards.","_id":"673da33a8d8ee10068701e80"},{"term":"semi-integration","definition":"Semi-integration involves a third-party point of sale (POS) system using Clover for payment processing. In a native integration, your POS runs directly on Clover hardware as an app.","_id":"673da348216993003780d3e9"},{"term":"Site URL","definition":"Link (URL) for your app that you enter on the Edit REST Configuration page for web apps. After a merchant installs and launches your app from the Merchant Dashboard, Clover routes authenticated merchants to this URL through the `/oauth/v2/authorize` endpoint. The merchant can log in or select their merchant account before accessing your app.","_id":"673da34ee88e42003ebe36b9"},{"term":"SPI","definition":"Serial Peripheral Interface (SPI) is a widely used synchronous serial communication standard primarily employed in embedded systems. It facilitates short-distance wired communication between integrated circuits (ICs).","_id":"673da3572b1c2c001fb7f7d7"},{"term":"split tender payment","definition":"Process of dividing or splitting a single transaction into multiple payment methods. For example, a customer can pay part of their bill with cash and the remaining balance with a credit card. This feature is useful when customers want to use more than one payment method to complete a purchase.","_id":"673da361bbac4c00102711dd"},{"term":"Strong Customer Authentication","definition":"European regulatory requirement that makes online payments more secure by using biometrics to validate card-not-present (CNP) digital transactions. With the PSD2 regulations, additional information is needed from the user at the time of payment than just the card number and a card verification code (CVC). This information to verify user identities includes one of the following: 1. what the user knows: password, PIN. 2. what the user possesses: card, mobile phone. 3. what belongs to the user: fingerprints, facial recognition.","_id":"673da36fcbad42003c23718f"},{"term":"Target SDK","definition":"The targetSdk is the SDK version your app targets. It should always be the same as the compileSdk. For instance, if your targetSdk is 30, your app is designed to work optimally on Android 11 (API level 30) or higher. The targetSdk is defined in your app's build.gradle file.","_id":"673da378994595002a60be39"},{"term":"Text code","definition":"Alphanumeric secret key that you enter manually into an authenticator app to generate a one-time password (OTP) for account verification. The text code does not expire, but the OTP generated from it is time-based and usually expires every 30 seconds.","_id":"673da3844529f8000fd3e849"},{"term":"tokenization","definition":"Security measure that replaces a user's payment details, such as credit card numbers, expiration dates, and card verification values or codes, with non-specific IDs called tokens. Tokens are randomly generated when a customer provides their payment information at the point of sale (POS) or on an ecommerce website.","_id":"673da394ee19c10031477e4e"},{"term":"TransArmor token","definition":"Provides an additional layer of security to protect cardholder data during transactions and reduce the regeneration of payment tokens.","_id":"673da39caccb100010a8594f"},{"term":"UART","definition":"Universal Asynchronous Receiver-Transmitter (UART) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable.","_id":"673da3ae4529f8000fd3e8f4"},{"term":"USB","definition":"Universal Serial Bus (USB) is an industry connection standard that allows data exchange and delivery of power between many various types of electronics.","_id":"673da3b8139f87004b411594"},{"term":"vaulted card","definition":"Securely stored card token that can be used for future transactions. It lets merchants process recurring payments or quickly complete in-person transactions for returning customers. The card token is one-way encrypted and can be stored outside the Payment Card Industry Data Security Standard (PCI DSS) scope.","_id":"673da3c716f16000112f75e4"},{"term":"verification code","definition":"Time-based one-time password (OTP) generated after you scan a QR code or enter a text code in your authenticator app. You need to enter this 6-digit OTP to verify your identity when logging into the Global Developer Dashboard. The OTP usually expires every 30 seconds.","_id":"673da3d13dd0b20066375797"},{"term":"virtual gift card","definition":"Unique code or number delivered to a recipient by email, text, or through an app. The virtual card number or promotional code is used for making purchases at online or brick-and-mortar retailers.","_id":"673da3e3352c60006f15d5b3"},{"term":"webhooks","definition":"HTTP-based callback function allows for lightweight, event-driven communication between two application programming interfaces (APIs). When an event, such as a new user registration or a completed purchase, happens in one application, that application sends an HTTP POST request to a specific URL (the webhook) along with relevant data. The receiving application, which has the webhook, processes this data and takes appropriate actions based on the event.","_id":"673da3f9bbcdda0036911d51"},{"term":"custom tender","definition":"Flexible payment method on Clover devices for tailored payment experiences, such as loyalty programs or QR code scanning. Custom tenders can be configured for both customer-facing and merchant-facing interactions.","_id":"673ed307f1cb57004b2c2fae"},{"term":"single-pay token","definition":"Tokens used for a one-time payment, such as creating a charge or paying for an order. Follow-up actions like capturing a charge or issuing a refund don't require a token, as they are linked to the original transaction through the `chargeId` from the initial response. The token is alphanumeric and begins with `clv_`, such as clv_1ABCDefgHI23jKL4m5nOPqR.","_id":"674ed570fec10b0024ef6a92"},{"term":"multi-pay token","definition":"Payment tokens that can be used multiple times to create charges, pay for orders, and handle recurring payments. Examples of multi-pay tokens are TransArmor (TA) and card-on-file (COF).\n\nMulti-pay tokens are generated by using a single-use token as the `source` parameter when creating or updating a customer record. Both card and ACH tokens can be converted into multi-pay tokens.","_id":"674ed65d7cc93a004673affb"},{"term":"liability shift","definition":"Applies only to chargebacks related to fraud and does not cover non-fraudulent customer claims.","_id":"675297637923be3297a6d50f"},{"term":"blocks","definition":"Modular units in the WordPress Editor used to create and customize online store content. With blocks, you can add, remove, or rearrange elements such as product descriptions, images, videos, call-to-action buttons, and text on the store's webpage.","_id":"675fa7e67731ac46571de14c"},{"term":"object","definition":"Collection of key-value pairs. Each key is a string, and the value can be any data type, including strings, numbers, arrays, booleans, null, or another JSON object.","_id":"6777683e3aa647b32217274f"},{"term":"Clover Inventory app","definition":"App to help merchants manage their inventory, including menus, merchandise, and service offerings. It allows for easy updates, bulk editing, and tracking of inventory levels, making it simpler to manage both online and in-store transactions.","_id":"677b467a4bfc2927d78817aa"},{"term":"Clover Register app","definition":"App used for processing transactions and customizing the point-of-sale (POS) experience. It allows merchants to organize items, apply discounts, and manage orders efficiently.","_id":"677b46946917b427bd15de13"},{"term":"inventory","definition":"Collection of items that a merchant sells, manages, and tracks using the Clover system.","_id":"677b46a03bb287005772e5c0"},{"term":"item","definition":"Individual product or service that is part of the merchant's inventory.","_id":"677b46b0dc4a7b002a986d1e"},{"term":"item group","definition":"Groups of related items, such as different sizes or colors of a product, managed together.","_id":"677b46bfb0952e003d78fffb"},{"term":"variants","definition":"Different versions of an item, such as sizes or colors, managed under the same item group.","_id":"677b46cf6f74850068c286d7"},{"term":"attributes","definition":"Characteristics of an item group, like size or color, that define its variants.","_id":"677b46dd1186ed22f8381972"},{"term":"options","definition":"Specific values for an attribute, such as Small or Large for the size attribute.","_id":"677b46f28afafb00635aef3d"},{"term":"item stock","definition":"Quantity of a specific item available in the inventory.","_id":"677b46fd011bf3001ceaa30a"},{"term":"modifier","definition":"Option added to an item to customize it, such as extra toppings on a pizza.","_id":"677b470f1ad2840070ab1382"},{"term":"modifier groups","definition":"Collections of related modifiers that can be applied to items, such as a group of salad add-ins.","_id":"677b471c4bfc2927d788181a"},{"term":"categories","definition":"Used to visually organize items in the Clover Register app, like grouping all appetizers together.","_id":"677b472a2c10ae464d662135"},{"term":"tags","definition":"Labels used for identifying and organizing items within the inventory.","_id":"677b4735742c90001115c4f5"},{"term":"association","definition":"Relationship between different objects within the inventory system, such as by linking items to categories, modifier groups, options, tax rates, or labels.","_id":"677b474265ea31000f6d36f5"},{"term":"revenue class","definition":"Categories used to track and compare revenue streams and sales of items taxed at variable rates. Items tagged with a revenue class can be monitored as part of a specific revenue stream.","_id":"677b474ffa5037bd9b6b41a6"},{"term":"API tokens","definition":"API tokens are used to authenticate requests to Clover REST APIs. Generating an API token is a fundamental part of the OAuth flow to enable secure, controlled, and auditable access to APIs.","_id":"6780a8af549130000f384e35"},{"term":"OAuth","definition":"Clover uses the OAuth 2.0 security framework for third-party developers to authenticate their apps with merchant accounts and lets them use Clover public REST APIs on behalf of the merchant. Clover developers use expiring access and refresh tokens in the production environment to secure merchant data.","_id":"6780a8c295475c001160b4f4"},{"term":"App ID","definition":"Unique identifier assigned to Clover apps created in the Clover App Market. It is used to authenticate and authorize the app to interact with Clover APIs and devices. Also known as Client ID.","_id":"6780a9982cdb17001e1ed570"},{"term":"App Secret","definition":"Private key associated with your Clover app, used along with the App ID to authenticate the app during OAuth flows. It ensures that the app, Clover, and the merchant are all authorized to interoperate. Also known as Client Secret. Do not share the key publicly.","_id":"6780a9ba3cd127005354655b"},{"term":"Semi-integrated app","definition":"Point-of-sale (POS) solution that integrates a third-party point of sale (POS) system to use Clover for processing payments. This setup allows the POS software to accept EMV-ready, PCI-compliant payments without handling sensitive cardholder data directly.","_id":"6780aa757b05280026a4de52"},{"term":"RAID","definition":"Remote App ID. Unique identifier generated for your Clover app to facilitate semi-integrated solutions. It is used to log payments and expedite support requests for your app. Format: {developerId}.{appId}.","_id":"6780aa81f46ed4002f2838d4"},{"term":"Client Secret","definition":"Private key assigned to your Clover app. It is used along with the Client ID during the OAuth authentication process to verify the identity of your app. Your Client Secret is the Client ID value in your app's Settings page on the Developer Dashboard.","_id":"6780ac0d7ad41400246e97b0"},{"term":"manual refund","definition":"Occurs when a merchant refunds an amount without an associated sale or order. This type of refund is also known as credit, unmatched refund, unreferenced refund, or naked refund.","_id":"6788b9a0dffa5100601bb7bf"},{"term":"QSA","definition":"Individual or organization certified to assess and audit an organization's compliance with the Payment Card Industry Data Security Standards (PCI DSS).","_id":"67a1d33be4c6c40037900083"},{"term":"Magecart","definition":"Group of hackers that target online shopping cart systems to steal payment card information using malicious code.","_id":"67a1d3601df9064a5af766ab"},{"term":"card skimming","definition":"Using a device called a skimmer to steal card information directly from the magnetic stripe (magstripe) of a physical card. Skimmers are small, malicious card readers concealed within legitimate card readers to capture data from every card that is swiped.","_id":"67a1d39fbc84d0006be97405"},{"term":"card token","definition":"Unique, single-use code that represents a customer’s credit card details. It securely processes payments without exposing the actual card information.","_id":"682317018426a90059f1a215"},{"term":"production developer account","definition":"An approved Clover developer account that you use to submit apps to the Clover App Market. Clover must verify and approve this account before the app approval process can begin. Approval is not required for sandbox development.","_id":"69732acbf5124ede40a6b8d3"},{"term":"prorated subscription","definition":"A merchant subscription tier adjustment, when a merchant downgrades their subscription, or uninstalls an app, and Clover adjusts the charge difference in the current month's advance on the merchant account.","_id":"5f469d85c01cfd0de57b733c"},{"term":"partial month","definition":"The first charge is added when a merchant installs a new app and the installation occurs after the first of the month.","_id":"5fa5f5af0544dd002ae86eee"},{"term":"Auth","definition":"Authorization (Auth) is a tip-adjusted sale. This type of transaction is typically used by restaurants and services establishments.","_id":"649d3869b0358b0018203a82"},{"term":"billable merchant","definition":"Active merchant accounts with Clover. These are not test merchant or demo accounts, and are not suppressed for billing.","_id":"65420a1c3639880059d6c862"},{"term":"LTE","definition":"LTE (Long-Term Evolution) is a fourth-generation (4G) wireless standard that provides increased network capacity and speed for mobile phones and other cellular devices compared with third-generation (3G) technology.","_id":"661647a5e965fe0049f6d8f7"},{"term":"USB","definition":"Universal Serial Bus (USB) is an industry connection standard that allows data exchange and delivery of power between many various types of electronics.","_id":"6616562dbbacf5005644286c"},{"term":"NFC","definition":"Near Field Communication (NFC) is a group of wireless technologies that work over a short distance, usually 4 cm or less, to establish a connection. With NFC, you can transfer small amounts of data between an Android-powered device and an NFC tag or between two Android-powered devices.","_id":"66165f787392b500281d879b"},{"term":"SPI","definition":"Serial Peripheral Interface (SPI) is a widely used synchronous serial communication standard primarily employed in embedded systems. It facilitates short-distance wired communication between integrated circuits (ICs).","_id":"6616602c2f58ae0030b9e0b9"},{"term":"Android ABI","definition":"Android ABI (Application Binary Interface) defines how an application's machine code interacts with the system at runtime. It specifies details such as the CPU instruction set, endianness of memory stores and loads, conventions for passing data between applications and the system, and the format of executable binaries.","_id":"663480a9586d280012ffa5c7"},{"term":"UART","definition":"Universal Asynchronous Receiver-Transmitter (UART) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable.","_id":"6634c2cc21173a00853683de"},{"term":"Android Virtual Device","definition":"Android Virtual Device (AVD) is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator. An AVD contains a hardware profile, system image, storage area, skin, and other properties.","_id":"6634c647f44e150034a81e8f"},{"term":"API level","definition":"Each Android version corresponds to a specific API level. For example, Android 11 corresponds to API level 30, Android 10 to API level 29, and so on. The API level precisely identifies the version of the API set that your app can call into. It defines the combination of manifest elements, permissions, and other features that you can use as a developer.","_id":"6634c7d40a25a7005195a4c9"},{"term":"DPI","definition":"DPI (dots per inch) is the pixel density, that is the number of pixels within a physical area of the screen. DPI is different from the screen resolution, which is the total number of pixels on a screen.","_id":"6634cc35af2922003f0ae0c7"},{"term":"CORS","definition":"Security feature that allows web pages to request resources from different origins, controlled through HTTP headers.","_id":"663b440a27b57b0051ef9a8f"},{"term":"Clover APK","definition":"Android application package (APK) created for integration with Clover merchant services and point of sale (POS) systems. Developers must design, generate, and register their APK following Clover standards. Once approved, the APK is submitted for distribution on Clover devices, ensuring it meets the necessary guidelines for proper installation and functionality on the hardware.","_id":"663b4b305eca4200256ecda6"},{"term":"Clover ID","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. \nThis identifier displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and also on the Merchant Dashboard > User Settings page below the merchant name. It also displays in the URL (link) of the Clover Merchant Dashboard.\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId.\nFormat: 13-alphanumeric","_id":"663dcf4edeb40d00180a5b76"},{"term":"MID","definition":"Merchant identifier (MID) identifies your merchant account and is the same across devices with the same merchant name. This identifier is available on the Clover device Diagnostics > Additional Details screen and also on the Merchant Dashboard > User Settings page, in the MID column.\nNote: The MID is different from the merchant UUID or merchantId.","_id":"663dd341cec219002bb270ec"},{"term":"merchantId","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId.\nThe merchantId displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and on the Merchant Dashboard > User Settings page below the merchant’s name. It also displays in the URL (link) of the Clover Merchant Dashboard.\n\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. \nFormat: 13-alphanumeric; Note: The merchantId is different from the MID.","_id":"6641eb054a33e700319e8fad"},{"term":"blackhole payment gateway","definition":"Default gateway for test merchant accounts in the Clover sandbox environment. It sets all transactions to be successful and suffices for most development use cases.","_id":"66447e6e653fa90018e2afb5"},{"term":"vaulted card","definition":"Securely stored card token that can be used for future transactions. It lets merchants process recurring payments or quickly complete in-person transactions for returning customers. The card token is one-way encrypted and can be stored outside the Payment Card Industry Data Security Standard (PCI DSS) scope.","_id":"665024515cb512003d87936b"},{"term":"card tokenization","definition":"Faud-prevention measure that replaces sensitive payment credentials, such as credit card numbers, cardholder names, expiration dates, and CVV codes with non-specific identifiers known as tokens. These tokens are used for subsequent transactions, allowing secure storage and processing of payment information.","_id":"6650245bc4047b006129c46e"},{"term":"REST Pay Display API","definition":"Provides a simple interface for point of sale (POS) applications to accept payments on Clover Flex or Clover Mini devices. Developers can connect their apps to Clover devices using cloud or local network connections without requiring an embedded software development kit (SDK). It minimizes effort for handling on-device activities and states.","_id":"665024a633a4ef004cea5907"},{"term":"PSD2","definition":"Payment Service Directive 2 (PSD2) is a European Union directive that grants bank customers the ability to share their account information with third-party providers. These providers can then manage the customer’s finances, enabling services like direct payments.","_id":"665431a4b21564006f6b8c05"},{"term":"EMV","definition":"EMV cards are smart cards, also called chip cards, integrated circuit cards, or IC cards. They store their data on integrated circuit chips in addition to a magnetic stripe. EMV stands for Europay, Mastercard, and Visa, the three companies that created the specifications to facilitate worldwide interactions and acceptance of secure payments.","_id":"66544b3f1bccff0031b78365"},{"term":"EMVCo","definition":"Consortium with equal control among American Express, China UnionPay, Discover, JCB, Mastercard, and Visa. EMVCo creates and manages EMV® Specifications and programs that enable seamless and secure card-based payments for businesses and consumers worldwide.","_id":"66544e518f53e8002b8cf6c6"},{"term":"3DS","definition":"3DS protocol uses a three-domain model to add an extra layer of security between the financial authorization process and the online authentication process. The three domains are: 1. Issuer domain: Financial institution (FI) or bank that issued the card used for the transaction. 2. Acquirer domain: Merchant that accepts online payments from customers. 3. Interoperability domain: 3DS infrastructure platform that is the secure intermediary facilitating communication between the customer and the merchant.","_id":"66544eb4e0f4d500690f5ccd"},{"term":"Strong Customer Authentication","definition":"European regulatory requirement that makes online payments more secure by using biometrics to validate card-not-present (CNP) digital transactions. With the PSD2 regulations, additional information is needed from the user at the time of payment than just the card number and a card verification code (CVC). This information to verify user identities includes one of the following: 1. what the user knows: password, PIN. 2. what the user possesses: card, mobile phone. 3. what belongs to the user: fingerprints, facial recognition.","_id":"66544f82555ae8001177e275"},{"term":"AID","definition":"Application Identifier. An identifier stored on the chip and terminal. It is used to identify mutually supported applications.","_id":"6657019455ddd9002b624bd4"},{"term":"webhooks","definition":"HTTP-based callback function allows for lightweight, event-driven communication between two application programming interfaces (APIs). When an event, such as a new user registration or a completed purchase, happens in one application, that application sends an HTTP POST request to a specific URL (the webhook) along with relevant data. The receiving application, which has the webhook, processes this data and takes appropriate actions based on the event.","_id":"6657f154ca069c002bd8e14b"},{"term":"developer platform","definition":"Open platform for third-party developers to build apps and integrate external point-of-sale systems with Clover devices.","_id":"665856f0f4f292004bed1660"},{"term":"Release notes","definition":"Monthly updates about new features and updates across the Clover developer platform.","_id":"6658571d250efe0030376d3a"},{"term":"Bug fixes","definition":"Monthly updates on the latest bug fixes across the Clover developer platform.","_id":"66585726f46d7600517c38b4"},{"term":"API changelog","definition":"Monthly updates related to API changes.","_id":"66585736ab2c5b0057f78516"},{"term":"Announcements","definition":"Messages that are sent in the developer communications emails.","_id":"6658574f1f2ad700769fd4ca"},{"term":"API docs and SDK guides","definition":"Resources needed to work with the Clover app and integration platforms.","_id":"665857b5b5c13a006581ef42"},{"term":"Code and sample apps","definition":"Resources on GitHub to help get started with the Clover APIs.","_id":"66585809f0013f005829dfed"},{"term":"semi-integration","definition":"Semi-integration involves a third-party point of sale (POS) system using Clover for payment processing. In a native integration, your POS runs directly on Clover hardware as an app.","_id":"6659bd2d2f7dfe00117cc3f2"},{"term":"Android Payment API","definition":"Intent-based API used in applications running on Clover devices for executing payment transaction requests. It supports payment operations, including payments, preauthorizations, and payment reversals (void/refund), using Android Intent Builders.","_id":"665d3aad49f7e10014c6ec18"},{"term":"Clover Connector SDK","definition":"Provides an interface that allows external point of sale (POS) systems to access the same payment functions as PaymentConnector, such as sales and refunds. It also offers additional features like custom receipts and Android activities. The SDK is available for four platforms: Android, iOS, JavaScript, and .NET.","_id":"665d3ad3a40a010010ae9b1d"},{"term":"Payment Connector","definition":"Java-based interface that lets you build a point of sale (POS) directly on a Clover device. It provides all of the Clover features needed for your app to make a sale, issue a refund, and perform other payment functions.","_id":"665d3af204832a002afc719f"},{"term":"card on file","definition":"Card on file (COF) transactions are payments in which the cardholders have authorized merchants to store their credit or debit card information to use for future purchases or recurring payments.","_id":"665ff984f6928a0011b2597c"},{"term":"frictionless flow","definition":"For card-not-present (CNP) payments, frictionless flow refers to a seamless process where the financial institution (FI) or issuer can verify the legitimacy of a transaction without requiring additional input from the cardholder. This behind-the-scenes verification lets customers complete their purchases without any noticeable interruptions or authentication steps.","_id":"6660077fed8e620058cba957"},{"term":"challenge flow","definition":"For card-not-present (CNP) payments, challenge flow indicates that the financial institution (FI) or issuer requires more evidence to verify the legitimacy of the transaction. In the challenge flow, the customer must provide extra information to authenticate the payment, such as a password or a one-time code that the card issuer sends to their mobile device.","_id":"6660082bb0c450004a3d7cd3"},{"term":"Minimum SDK","definition":"The minSdk specifies the minimum SDK version your app supports. For example, if your minSdk is 26, your app will only run on devices with Android 8 (API level 26) or higher. The minSdk is defined in your app's build.gradle file.","_id":"6666dc0bda9518005ad0f2c4"},{"term":"Target SDK","definition":"The targetSdk is the SDK version your app targets. It should always be the same as the compileSdk. For instance, if your targetSdk is 30, your app is designed to work optimally on Android 11 (API level 30) or higher. The targetSdk is defined in your app's build.gradle file.","_id":"6666dc4a3ad9e6001902ee93"},{"term":"Clover Go reader","definition":"EMV-capable device that pairs with an Apple (iOS®) and Android smartphone or tablet. The reader allows iOS and Android mobile apps to accept swipe, NFC, or EMV transactions with no EMV certification required at the merchant's end. Clover Go reader accepts chip, dip, and contactless payments, including Tap-to-Pay on iPhone, Apple Pay®, Google Pay® and Samsung Pay®.","_id":"66694ec3f70d380056818491"},{"term":"reCAPTCHA","definition":"Completely Automated Public Turing test to tell Computers and Humans Apart. reCAPTCHA is a Google service that verifies a user is human and not a bot by presenting tests that are easy for humans but difficult for automated software.","_id":"666c33157d8b4a00100763cd"},{"term":"closeout","definition":"Process of closing your open batch of transactions and submitting it for clearing, settlement, and funding.","_id":"66b1e05f8cc1e80036f755f1"},{"term":"Idempotency Key","definition":"Unique identifier used to ensure that a particular operation is performed only once, even if the request is made multiple times. This is particularly useful in scenarios where network issues or client retries might cause the same request to be sent more than once.","_id":"66b1e081070411006f242a41"},{"term":"Card track data","definition":"Information encoded on a payment card's magnetic stripe or chip. The data is used to authorize and process transactions.","_id":"66b1e092d989a500309e106f"},{"term":"POS","definition":"Point of sale (POS) system enables businesses to accept customer payments and efficiently manage operations. The system consists of both hardware and software components. The software is often cloud-based, allowing access from anywhere. The hardware typically includes a register, barcode scanner, card reader, cash drawer, and receipt printer.","_id":"66b1e0d73facec0061549d33"},{"term":"Environment variables","definition":"A set of key-value pairs that a running process can access during runtime. These variables can be used to configure and adjust the behavior of the app or system, and they can vary between different execution environments.","_id":"66b1e0e7c9a0630026e33d8a"},{"term":"Device Manager","definition":"Android Studio tool for creating and managing an Android Virtual Device (AVD).","_id":"66b1e1012f4fbd0012bc9ec5"},{"term":"REST Pay Display API","definition":"API that lets point of sale (POS) applications accept payments on Clover Flex or Clover Mini devices. Your apps can connect to Clover devices using cloud or local network connections without needing an embedded software development kit (SDK).","_id":"66b1e1598ab3d40024a6fb42"},{"term":"Incremental authorization","definition":"Allows merchants to change the original authorization amount to ensure the customer's card can still cover the higher amount.","_id":"66b1e1691318ca0024ab4e71"},{"term":"Android SDK","definition":"SDK to build apps that run on Clover devices and publish your apps on the Clover App Market. It is also used for semi-integration with a Clover device, enabling a third-party point of sale (POS) system to use Clover for processing payments.","_id":"66b1e20a42125e00248c4a47"},{"term":"Ecommerce API","definition":"API to integrate Clover payment capabilities into your online or web-based applications. It provides endpoints for creating tokens, processing payments, and managing customer data. OAuth tokens are necessary for authentication and authorization.","_id":"66b1e216070411006f2430f7"},{"term":"REST API","definition":"API to build a browser-based integration that creates a secure connection to your website. It redirects a merchant from the Clover Merchant Dashboard to your website URL (link).","_id":"66b1e220501830000ff1fe30"},{"term":"Remote Pay","definition":"API that lets your point of sale (POS) system communicate with Clover payment devices. The Remote Pay SDK is used to semi-integrate a POS with a Clover device for card-present transactions. This allows merchants to process payments and perform operations through the cloud. The SDKs are available for different platforms, including Android and JavaScript.","_id":"66b1e2478171f6004bf55916"},{"term":"authenticator app","definition":"Mobile or desktop application that generates time-based or counter-based one-time passwords (OTPs) for secure two-factor authentication (2FA). You can download an authentication app from the relevant app store. Popular authenticator apps include Google Authenticator and Microsoft Authenticator.","_id":"66b1e2a2eb2473005274f428"},{"term":"QR code","definition":"Quick Response (QR) code. Type of two-dimensional barcode that stores data in a pattern of black and white squares. You can scan the QR code with a camera to quickly access information like URLs, contact details, or authentication keys. The QR code typically expires after a short period, usually around 5 minutes.","_id":"66b1e2d12ecf960059e5efed"},{"term":"Text code","definition":"Alphanumeric secret key that you enter manually into an authenticator app to generate a one-time password (OTP) for account verification. The text code does not expire, but the OTP generated from it is time-based and usually expires every 30 seconds.","_id":"66b1e2f761fda7001c880966"},{"term":"verification code","definition":"Time-based one-time password (OTP) generated after you scan a QR code or enter a text code in your authenticator app. You need to enter this 6-digit OTP to verify your identity when logging into the Global Developer Dashboard. The OTP usually expires every 30 seconds.","_id":"66b1e3324a8ed4000f0daec7"},{"term":"recovery codes","definition":"Alphanumeric backup verification codes generated when you add a new account to your authenticator app. Recovery codes let you access your account if you do not have your device.","_id":"66b1e3602a764500122160e0"},{"term":"Bearer token","definition":"Type of token used in the authorization header of an API request to authenticate the client making the request. It is typically included in the request header as follows: Authorization: Bearer \u003ctoken>. This token is a string that represents the user’s identity and permissions.","_id":"66b5d42a7b9c96003cfdd893"},{"term":"issuer","definition":"Financial institutions, such as a bank that issues a credit card to a consumer or business.","_id":"66cc08fa653916002083ca5e"},{"term":"payment processor","definition":"Technical intermediary, such as Fiserv or Clover, that securely handles transactions between a merchant and a customer by processing card or electronic payments.","_id":"66cc0bc88f93620042dd0995"},{"term":"OTP","definition":"Unique, temporary code used for a single login session or transaction. A one-time password (OTP) is generated after you scan a QR code in your authenticator app during account setup or use the authenticator. You need to enter the OTP to verify your identity when logging into the Global Developer Dashboard.","_id":"66cee8a5c5ffef0068e4d2e6"},{"term":"Ecommerce API key","definition":"Identifies the merchant who is tokenizing customers' cards. You can use the same static Ecommerce API key to tokenize multiple cards for that merchant. This is also known as the PAKMS key, as it is generated from the Public Access Key Management Service (PAKMS) using the [Ecommerce - PAKMS Service API](https://docs.clover.com/dev/reference/getapikey).","_id":"66d14c2122903b002598a48e"},{"term":"certificates","definition":"Certificates and profiles are essential for app development and distribution of the Apple Pay® service on a Clover Ecommerce integration. Certificates are digital documents that verify your identity as a developer. They are used to sign your apps and ensure they come from a trusted source.","_id":"66d5643fc8122b003172dd2b"},{"term":"payment gateway","definition":"Virtual equivalent of a physical credit and debit card reader. It transfers the data between the point of entry—either a terminal, website, or mobile device—to the payment processor to continue the payment lifecycle.","_id":"66e2bcaff0da2a006234a6ec"},{"term":"SCV","definition":"Security code value is a unique code used to validate and secure transactions for Clover native gift cards.","_id":"66e2bdb31e8238004781d0d9"},{"term":"hosted payment form","definition":"Secure way to accept ecommerce credit card payments without the need for a shopping cart. Clover hosts the form, so sensitive payment data does not pass through the merchant's system, reducing the PCI scope and minimizing merchant liability. You can implement payment forms using a standard template or customize it to fit the look and feel of the merchant's ecommerce website.","_id":"66e2bfa3053af00011eed401"},{"term":"non-native gift card","definition":"Gift cards managed through payment gateways other than Fiserv and do not use the Clover-integrated Gift Card Solution. May have a 4-8 digit foreign access code (FAC) for transactions and may not offer the same level of integration with the Clover POS system. While non-native gift cards can be used with Clover, they may require additional steps or configurations to process transactions.","_id":"66e7fe4fa9dfdf006733e303"},{"term":"FAC","definition":"Foreign access code value is used to process transactions for non-native gift cards on the Clover POS system.","_id":"66e800edfa09a8002580c72a"},{"term":"native gift card","definition":"Gift cards that use the Clover-integrated Gift Card Solution, managed through the Fiserv payment gateway. May have a 4-8 digit security card value (SCV). These non-expiring cards are fully integrated into the Clover POS system, allowing for seamless transactions and management.","_id":"66ea5afc09450f003cb42c5b"},{"term":"global developer platform","definition":"Provides an intuitive and seamless experience to create apps and integrations for different regions. With a single developer account, you can access both sandbox and production environments and switch between them effortlessly.","_id":"66f4d1d2cb8a1b005b10dc6c"},{"term":"promotional code","definition":"Unique values, usually alphanumeric, associated with a virtual gift card and sent by email, text, or through an app. The promotional or promo code is used to activate and redeem the virtual gift card.","_id":"66f4f3b6f110bb0025a0a546"},{"term":"denominated gift card","definition":"Cards with a specific value assigned to them at the time of purchase. For example, a gift card might be worth $25, $50, or $100. When a customer buys a denominated gift card, they know exactly how much value is on the card.","_id":"66f4f3ea859e85000f9ed42f"},{"term":"non-denominated gift card","definition":"Cards without a preset value at the time of purchase. The value is determined at the time of activation. The purchaser or recipient can choose the amount, depending on the terms set by the merchant.","_id":"66f4f4046297ad0045acd3d6"},{"term":"physical gift card","definition":"Tangible gift card that you can load and reload with an amount and use as a cash equivalent to make in-store and online purchases.","_id":"66f4f7abaf58cc002b79b897"},{"term":"Client ID","definition":"Uniquely identifies your app on the Clover App Market. This ID confirms that your app is participating in the OAuth 2.0 flow. Your client ID is the App ID value in your app's Settings page on the Developer Dashboard.\nUsage: type \u003c\u003cglossary:client ID>> in your documentation","_id":"66f4facbbbd52700616a927b"},{"term":"multi-factor authentication","definition":"Security process that requires two different forms of identification to verify a user’s identity, typically combining something you know, such as a password, with something you have, such as a mobile device.","_id":"66f4fafe5a175000440a84ad"},{"term":"multi-lock","definition":"Set aside and lock a specific amount from the available balance on a gift card for a specified time period. Multiple locks can be active simultaneously as long as there is a balance. The locked amount automatically unlocks when the specified time expires or upon request to unlock and redeem the amount.","_id":"66f4fb8c5a175000440a8522"},{"term":"cash out","definition":"Process of removing the remaining balance from a gift card, bringing the account balance to zero (0). The customer may receive the remaining balance in cash, or choose to cash out and deactivate the card or close the gift card account.","_id":"66f4fbe75a175000440a8626"},{"term":"virtual gift card","definition":"Unique code or number delivered to a recipient by email, text, or through an app. The virtual card number or promotional code is used for making purchases at online or brick-and-mortar retailers.","_id":"66f533e214205c0013756446"},{"term":"gift card","definition":"A gift card is a prepaid payment card used to make purchases at participating restaurants, stores, or online retailers.","_id":"67035f89dfe5db0036fe25c0"},{"term":"tokenization","definition":"Security measure that replaces a user's payment details, such as credit card numbers, expiration dates, and card verification values or codes, with non-specific IDs called tokens. Tokens are randomly generated when a customer provides their payment information at the point of sale (POS) or on an ecommerce website.","_id":"6703600f788acb004914bf49"},{"term":"split tender payment","definition":"Process of dividing or splitting a single transaction into multiple payment methods. For example, a customer can pay part of their bill with cash and the remaining balance with a credit card. This feature is useful when customers want to use more than one payment method to complete a purchase.","_id":"6704a45f98ee1b001138b598"},{"term":"Alternate Launch Path","definition":"Link (URL) or subpath for your app that you set on the Edit REST Configuration page for web apps. When a merchant accesses your app without installing it, the app redirects the merchant to this Alternate Launch Path, which then directs them to the Clover App Market to initiate the v2/OAuth flow. This Alternate Launch Path URL is required for the `/oauth/v2/authorize` flow, as it uses expiring tokens to authenticate with APIs, ensuring the merchant is properly authenticated and connected to your app.","_id":"670ca43ff504a7006e24bf8f"},{"term":"Site URL","definition":"Link (URL) for your app that you set on the Edit REST Configuration page for web apps. After a merchant installs your app and launches it from the Merchant Dashboard, they are redirected to the Site URL. The Clover server sends authenticated merchants to the Site URL through the `/oauth/authorize` flow, where they can log in or select their merchant account.","_id":"670cea1f32a444001e3c6c28"},{"term":"Redirect URI","definition":"Link (URL) that an app uses to redirect users after authentication using the OAuth flow. The `redirect_uri` parameter is used to specify a custom post-authorization landing page. This URL must be a subpath of the set Site URL for the app.","_id":"670de4f72e9c8d0054159324"},{"term":"code verifier","definition":"Cryptographically random string that a low-trust app needs to generate at the beginning of the authorization process. It is used to create a code challenge and is sent to the authorization server to verify the authorization request.","_id":"6710ce4aac89460069e91d4d"},{"term":"code challenge","definition":"Base64-URL-encoded string derived from the code verifier using a transformation method such as SHA-256. Code challenge is sent to the authorization server during the initial authorization request. It ensures that the app that initiated the request is the same app that is completing the request.","_id":"6710d1df81cc1d0010747535"},{"term":"Proof Key for Code Exchange","definition":"Extension to the OAuth 2.0 authorization code flow designed to enhance security, especially for public clients like mobile and single-page applications that cannot securely store the Client Secret. PKCE ensures that even if an authorization code is intercepted, it cannot be exchanged for tokens without the original `code_verifier`.","_id":"6710d771f898df00102583cc"},{"term":"MOTO","definition":"MOTO (Mail Order/Telephone Order) transactions are merchant-initiated, card-not-present (CNP) transactions in which customers provide their order and payment details by regular mail (not email), fax, or telephone. In these transactions, card information is captured, and payment is processed with the customer’s consent, even though the card is not physically present.","_id":"6719dd13e584590033ba710a"},{"term":"TransArmor token","definition":"Provides an additional layer of security to protect cardholder data during transactions and reduce the regeneration of payment tokens.","_id":"671a081299f628005be483be"},{"term":"high-trust app","definition":"Securely stores and uses the Client Secret (`app_secret`) and employs the standard authorization code flow to generate expiring authentication tokens.","_id":"6732ec60a401bd0010b56e4f"},{"term":"low-trust app","definition":"Mobile or single-page apps that cannot securely store the Client Secret (`app_secret`) and uses the authorization code flow with Proof Key for Code Exchange (PKCE) to enhance security during token acquisition.","_id":"6732ec9383f7fa0076fa09c1"},{"term":"Revenu Québec","definition":"Agency of the government of the Province of Quebec, Canada. It collects taxes to fund public services, ensures that all citizens pay their fair share, and administers programs.","_id":"673d5d38d27f0b00199187cb"},{"term":"Developer Dashboard","definition":"All new apps for merchants in North America, Europe, and Latin America, and Asia Pacific are created on the Global Developer Dashboard.","_id":"68b817c046898ec8f853f343"}],"variables":{"user":{},"defaults":[{"source":"security","_id":"62e9b1eea177a30276e94d80","name":"BearerAuth","type":"http","apiSetting":"62e2b636fa1eee00872167ef"},{"source":"security","_id":"62ebf0918a8c490783ba3e62","name":"bearerAuth","type":"http","apiSetting":"62d70a619e87be00146d7d6e"},{"type":"","source":"","_id":"631109ebe868a2002148959f","name":"","default":""},{"source":"security","_id":"63fdd5805f536e0d5a8e0335","name":"OAuth2","type":"oauth2","apiSetting":"63fdd57f5f536e0d5a8e032d"},{"source":"security","_id":"6452212ec5886b14a0588915","name":"access_token","type":"apiKey","apiSetting":"6452212dc5886b14a0588913"},{"type":"","source":"server","_id":"64d3fc6b8dba8a005f24000b","name":"protocol","default":"https","apiSetting":"64c40c6f0a747f006a6f42a6"},{"type":"","source":"server","_id":"64d3fc6b8dba8a005f24000a","name":"environment","default":"sandbox.dev.clover.com","apiSetting":"64c40c6f0a747f006a6f42a6"},{"source":"security","_id":"65080d1adfa92402085ec8a6","name":"sessionToken","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"65080d1adfa92402085ec8a5","name":"X-Clover-Auth-Token","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"65080d1adfa92402085ec8a4","name":"internalSession","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"66600d4d0c47bb0012000998","name":"oauth2","type":"oauth2","apiSetting":"66600d4c0c47bb0012000995"},{"apiSetting":"695423821925250441ae7c29","name":"Authorization","source":"security","type":"apiKey","_id":"695423831925250441ae7caf"},{"apiSetting":"695423821925250441ae7c29","name":"X-Session-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb0"},{"apiSetting":"695423821925250441ae7c29","name":"X-Device-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb1"},{"apiSetting":"695423821925250441ae7c29","name":"X-Internal-Session-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb2"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Session-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24041"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Device-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24042"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Internal-Session-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24043"}]},"project":{"_id":"5b05c1655f9a0d00039a8ae4","accessRules":{"branch_merge":{"admin":true,"editor":false},"branch_approve":{"admin":true,"editor":false}},"ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":true},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"nextStepsLabel":"Related topics","hideTableOfContents":false,"showVersion":false,"html_hidelinks":false,"global_landing_page":{"redirect":"","html":""},"html_footer_meta":"\u003cscript src=\"https://3s40xjwbpcq5.statuspage.io/embed/script.js\">\u003c/script>","html_head":"\u003cmeta name=\"google-site-verification\" content=\"V22G0oF_f8MnFXS2AtrN6KEg8X2BNVFWqg8I2QHeW-Y\" />\n\n\u003cscript>\n const hash = window.location.hash;\n window.location.hash = \"\";\n const checkExist = setInterval(function() {\n if ($(hash).length === 0) { return }\n clearInterval(checkExist);\n setTimeout(function() {\n window.location.hash = hash;\n }, 1000);\n }, 100);\n\u003c/script>","html_footer":"\u003cscript src=\"https://3s40xjwbpcq5.statuspage.io/embed/script.js\">\u003c/script>","html_body":"","html_promo":"","javascript_hub2":"// Event Handlers - outside the pageLoad function\n// Handle keyboard navigation for Enter key\n$(document).on('keydown', '.rm-Sidebar-heading', function (e) {\n if (e.key === 'Enter') {\n // Prevent the default action of the Enter key\n e.preventDefault();\n\n // Toggle classes for the clicked heading and its next element\n $(this).toggleClass(\"section-expanded\");\n $(this).next().toggleClass(\"section-list-expanded\");\n }\n});\n\n// Handle click events on sidebar headings\n$(document).on('click', '.rm-Sidebar-heading', function () {\n if ($(this).hasClass('section-expanded')) {\n // Do nothing if the heading is already expanded\n } else {\n // Collapse all expanded sections\n $('.section-expanded, .section-list-expanded').removeClass('section-expanded section-list-expanded');\n }\n\n // Toggle classes for the clicked heading and its next element\n $(this).toggleClass(\"section-expanded\");\n $(this).next().toggleClass(\"section-list-expanded\");\n});\n\n// Expand/Collapse Content\nlet hidden = true; // Initialize outside to maintain state across page loads\n$('.expand-trigger').on('click', function () {\n $('.expand-content').toggle();\n hidden = !hidden;\n $(this).find('span').text(hidden ? 'Show' : 'Hide');\n});\n\n// pageLoad Function - Keep DOM manipulations here\n$(window).on('pageLoad', function(e, state) {\n // Collapse navigation in the sidebar initially\n $('.rm-Sidebar-section > .rm-Sidebar-list').addClass(\"section-collapsed\");\n\n // Append icon only if it doesn't already exist\n $('.rm-Sidebar-heading').each(function() {\n if ($(this).find('.icon-chevron').length === 0) {\n $(this).append(\"\u003cspan class='icon-chevron'>\u003c/span>\");\n }\n });\n\n // Check if any sidebar link is active and expand its section\n if ($('.rm-Sidebar-link.active').length > 0) {\n $('.rm-Sidebar-link.active').parents('.rm-Sidebar-list').addClass(\"section-list-expanded\");\n $('.rm-Sidebar-link.active').parents('.rm-Sidebar-section').children('.rm-Sidebar-heading').addClass(\"section-expanded\");\n }\n\n // Fix issue with sub-items getting stuck expanded\n $('.subpages').removeClass('section-list-expanded');\n\n // Auto-expand first category (for landing)\n // $('.rm-Sidebar-heading').first().next().addClass(\"section-list-expanded\");\n\n // Add tabindex attribute to each heading\n $('.rm-Sidebar-heading').attr('tabindex', '0');\n\n // Hide expand content initially\n $('.expand-content').hide();\n});\n\n\n\n// Show or hide private link based on logged-in status\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n showButtonBasedOnPermission();\n});\n\n//interval count\nfunction showButtonBasedOnPermission() {\n var intervalCount = 0;\n var maxIntervalCount = 5;\n\n // Parse JSON data to check if user is logged in\n function updateButtonVisibility() {\n var hubMeScript = document.getElementById(\"hub-me\");\n var jsonData = JSON.parse(hubMeScript.dataset.json);\n\n // If the user is not logged in, hide the button\n if (jsonData.loggedIn === false) {\n var styleElement = document.createElement(\"style\");\n styleElement.innerHTML = \".suggestEdits { display: none !important; }\";\n document.head.appendChild(styleElement);\n } else {\n // If logged in, show the button\n var styleElement = document.createElement(\"style\");\n styleElement.innerHTML = \".suggestEdits { display: flex !important; }\";\n document.head.appendChild(styleElement);\n }\n }\n\n // Ensure the visibility logic runs periodically\n function runInterval() {\n updateButtonVisibility();\n intervalCount++;\n\n if (intervalCount >= maxIntervalCount) {\n clearInterval(intervalId);\n }\n }\n\n updateButtonVisibility();\n var intervalId = setInterval(runInterval, 800);\n}\n","javascript":"","stylesheet_hub2":"/* =========================================================\n Font face declarations\n ========================================================= */\n\n@font-face {\n font-display: swap;\n font-family: Graphik;\n font-stretch: normal;\n font-style: normal;\n font-weight: 400;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Graphik-Light;\n font-stretch: normal;\n font-style: normal;\n font-weight: 300;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Graphik-Medium;\n font-stretch: normal;\n font-style: normal;\n font-weight: 500;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Graphik-Semibold;\n font-stretch: normal;\n font-style: normal;\n font-weight: 600;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 400;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-Regular.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-Regular.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 300;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-Light.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-Light.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 600;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-SemiBold.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-SemiBold.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 700;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-Bold.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-Bold.woff) format(\"woff\");\n}\n\n/* =========================================================\n Global theme variables\n Replaced invalid `style attribute` block with :root vars\n ========================================================= */\n\n:root {\n --color-primary: #228800;\n --color-primary-inverse: #fff;\n --color-primary-darken-20: #004400;\n --color-link-primary: #228800;\n --color-link-primary-darken-20: #004400;\n --color-link-background: #ddffdd;\n --color-link-text: #fff;\n\n --Sidebar-link: #5a5a5a;\n --Sidebar-link-background: rgba(34, 136, 0, 0.03);\n}\n\n/* =========================================================\n ReadMe menu updates (Guides only)\n ========================================================= */\n\n.rm-Guides .rm-Sidebar-heading {\n cursor: pointer;\n position: relative;\n text-transform: none !important;\n font-weight: 500 !important;\n margin-block-start: 0.4em;\n margin-block-end: 0.4em;\n font-family: var(--font-family-title);\n color: #040;\n font-size: 14px;\n}\n\n.rm-Guides .rm-Sidebar-heading.section-expanded::after {\n transform: rotate(90deg);\n}\n\n/* fixed issue with drop down arrow on right vertical positioning */\n.rm-Guides .rm-Sidebar-heading::after {\n content: \"\\203A\";\n transition: transform 0.2s;\n position: absolute;\n bottom: -6px;\n margin-left: 10px;\n color: #280;\n font-size: 26px;\n opacity: 1;\n}\n\n.rm-Guides .rm-Sidebar-section > .rm-Sidebar-list {\n display: none !important;\n}\n\n.rm-Guides .rm-Sidebar-list.section-list-expanded {\n display: flex !important;\n}\n\n.reference-redesign.Nav3C5f8FcjkaHj.rm-Sidebar_guides .rm-Sidebar {\n padding-top: 20px;\n margin-right: 10px;\n}\n\n/* =========================================================\n Core project typography + layout variables\n ========================================================= */\n\n.App {\n --font-family: Graphik, sans-serif;\n --font-family-title: Altform, sans-serif;\n --font-size: 16px;\n --font-weight: 400;\n}\n\np,\nli {\n font-size: 16px;\n font-weight: 400;\n}\n\n.App .rm-LandingPage,\n.App .rm-SuggestedEdits,\n.App .rm-SuggestionDiff,\n.App .rm-Guides,\n.App .rm-Recipes,\n.App .rm-Recipes-modal,\n.App .rm-ReferenceMain,\n.App .rm-Changelog,\n.App .rm-Discuss,\n.App .rm-CustomPage {\n --markdown-font: var(--font-family);\n --markdown-font-size: 15px;\n --markdown-line-height: 1.5;\n --markdown-title-font: var(--font-family-title);\n}\n\n/* top nav buttons */\n.Button {\n font-family: var(--font-family-title);\n}\n\n/* make font readable -- up from too tiny @14px */\n.field-description,\n.markdown-body {\n font-size: var(--markdown-font-size, 16px);\n font-family: var(--font-family);\n font-weight: 400;\n}\n\na {\n color: #280;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/* =========================================================\n TOC styles\n Refactored from invalid nested syntax into valid CSS\n ========================================================= */\n\n.content-toc,\n.content-toc a {\n font-size: 14px;\n}\n\n.content-toc .tocHeader {\n font-size: 12px;\n font-weight: 700;\n}\n\n/* Fix issue with the API Ref method buttons */\n.APIMethod_fixedWidth {\n padding-left: 0;\n padding-right: 0;\n width: 50px;\n}\n\n/* =========================================================\n Tables / forms / API reference\n ========================================================= */\n\n/* Fix for ordered list padding and text color in tables - DC 09-24-2018 */\n.magic-block-parameters ol {\n color: #747c84;\n padding-left: 10px;\n}\n\n/* Fix for unordered list text color in tables - DC 09-24-2018 */\n.magic-block-parameters ul {\n color: #747c84;\n}\n\n/* API reference text box color fix (DS-279) - DC 02-27-2019 */\nform.rjsf input.form-control {\n border-top-color: #4c555a !important;\n border-bottom-color: #4c555a !important;\n border-left-color: #4c555a !important;\n border-right-color: #4c555a !important;\n}\n\n/* Modify the percentage to change the width of the response/model column\n on the API reference page. If enabled, be sure to also enable the\n following style for hub-reference-results-slider. */\n#hub-reference .hub-reference .hub-reference-section .hub-reference-right {\n width: 40% !important;\n}\n\n/* Modifies the bit above the API response object to keep everything purdy.\n Keep it at 200%. */\n#hub-reference .hub-api .hub-reference-right.hub-reference-results .hub-reference-results-slider,\n#hub-reference .hub-api .hub-reference-results .hub-reference-results-slider {\n width: 200% !important;\n}\n\n.mfp-img {\n background: #ffffff;\n}\n\n/* =========================================================\n Color tweaks / legacy hub selectors\n ========================================================= */\n\nsection#hub-content #content-container section.content-toc a {\n color: #5d5d5d;\n}\n\nnav#hub-sidebar ul a {\n color: #280;\n font-weight: 500;\n font-size: 15px;\n font-family: var(--font-family);\n}\n\nheader#hub-header #header-top #header-nav-left li a,\nheader#hub-header #header-top #header-nav-right li a {\n color: #5d5d5d;\n}\n\n/* Normalize code markup in headings DS-640 */\nh1 code,\nh2 code,\nh3 code,\nh4 code,\nh5 code,\nh6 code {\n background: rgba(96, 105, 113, 0.1);\n padding: 3px 5px;\n border-radius: 3px;\n font-family: var(--font-family);\n font-size: inherit;\n color: #5d5d5d;\n font-style: normal;\n}\n\n/* text alignment fix for flag SVGs */\nimg.flag {\n vertical-align: text-bottom;\n}\n\n/* override code style in right mini ToC */\n.toc-list code {\n font-family: inherit;\n background: inherit;\n padding: 0;\n border-radius: inherit;\n font-size: inherit;\n color: inherit;\n}\n\n/* =========================================================\n React app typography / sidebar\n ========================================================= */\n\nhtml.useReactApp .markdown-body {\n --markdown-font: Graphik, sans-serif;\n --color: #5d5d5d;\n}\n\nhtml.useReactApp .rm-Article header {\n color: #280;\n font-family: var(--font-family-title);\n}\n\nhtml.useReactApp ul.toc-list {\n color: var(--color-text-muted);\n}\n\n/* attempt to improve readability (size, font, contrast) of side nav and body */\nhtml.useReactApp .rm-Sidebar-link {\n color: #280 !important;\n font-family: Graphik, sans-serif;\n font-size: 15px;\n}\n\nhtml.useReactApp .rm-Sidebar-link:hover {\n background-color: var(--color-link-background) !important;\n color: #040 !important;\n}\n\n.reference-redesign .Sidebar-link-iconnjiqEiZlPn0W {\n /* icon in lower level left nav */\n opacity: 0.9 !important;\n}\n\nhtml.Sidebar-headingTRQyOa2pk0gh {\n font-family: var(--font-family-title);\n font-size: 15px;\n font-weight: var(--font-weight-bold) !important;\n margin: 2px 0;\n padding-left: 15px;\n text-transform: uppercase;\n}\n\n.reference-redesign .Sidebar-listWrapper6Q9_yUrG906C + .Sidebar-listWrapper6Q9_yUrG906C {\n margin-top: 10px;\n}\n\n/* =========================================================\n Recipes\n ========================================================= */\n\n.TutorialTile1EmZZwscc8UV {\n background: var(--gray90) !important;\n border: 3px solid var(--green40) !important;\n min-width: 300px !important;\n align: center !important;\n --TutorialTile-text-color: var(--color-primary) !important;\n}\n\n.TutorialTile-Body1X3Rmz9bMZKI {\n padding: 20px !important;\n}\n\n.TutorialTile-Body-Text-TitleOyQYvfYa_PEo {\n color: var(--TutorialTile-text-color) !important;\n font-size: var(--markdown-title-size, 1.25em) !important;\n font-weight: var(--markdown-title-weight, 600) !important;\n line-height: 1.35 !important;\n}\n\n.TutorialTile-Body-Text-Action1lbXk8Bdpeol {\n color: var(--TutorialTile-link-color);\n font-size: 13px !important;\n}\n\n.TutorialTile1EmZZwscc8UV:hover {\n background: var(--butter) !important;\n}\n\n/* =========================================================\n Sidebar indent tweaks\n ========================================================= */\n\n.Sidebar-item23D-2Kd61_k3 {\n margin-left: 2px;\n}\n\n/*\n.reference-redesign .Sidebar-link-buttonWrapper3hnFHNku8_BJ {\n padding: 0 3px 0 12px;\n}\n*/\n\n.reference-redesign .Sidebar-link-textLuTE1ySm4Kqn {\n align-items: baseline;\n}\n\n/* =========================================================\n Callouts\n ========================================================= */\n\n/* Info note */\n.callout_info h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n/* Warn note */\n.callout_warn h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n/* OK note */\n.callout_okay h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n/* Error note */\n.callout_error h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n.callout.callout .callout-heading {\n font-weight: 600 !important;\n font-family: var(--font-family-title);\n}\n\n/* Enforce Callout heading size and weight */\n.callout-heading h2,\n.callout-heading p {\n font-size: 1em !important;\n font-weight: 600 !important;\n}\n\n/* =========================================================\n Pill icons for region and environment\n Updated + hardened for more consistent rendering\n ========================================================= */\n\n/* \"container-top\" is for the first-appearing block on the page.\n Typically reserved for the Menu option when it appears flush with the right-side TOC. */\n.container-top {\n position: relative;\n top: -20px;\n margin-bottom: -15px;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n}\n\n/* container-reg is for the region icons, defined singularly and in sets.\n removed margin-top and added container-env and related env styles (cd, May 16) */\n.container-reg,\n.container-env {\n position: relative;\n display: inline-flex;\n align-items: center;\n min-width: auto;\n width: fit-content;\n max-width: 100%;\n text-align: left;\n overflow: visible;\n margin-top: 5px;\n margin-bottom: -5px;\n box-sizing: border-box;\n}\n\n/* Pill format - general (both reg and env) */\n.pill-reg,\n.pill-env {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: 5px;\n padding: 0 10px;\n min-height: 1.8rem;\n border-radius: 10px;\n overflow: visible;\n box-sizing: border-box;\n white-space: nowrap;\n}\n\n/* Pill format - REG changed margin top from 3px to .5px 7/10/2026, cd */\n.pill-reg {\n background: #44bb44;\n border: 0.5px solid #44bb44;\n margin-top: 0.5px;\n margin-bottom: 1px;\n}\n\n/* Pill format - ENV */\n.pill-env {\n background: #2e8bc9;\n border: 0.5px solid #2e8bc9;\n margin-top: 0.5px;\n margin-bottom: 0.5px;\n}\n\n/* Text format inside REG / ENV pills */\n.pill-reg .label-reg,\n.pill-reg__addon .label-reg,\n.pill-env .label-env {\n display: block;\n margin: 0;\n padding: 5px 0;\n font-style: normal;\n font-weight: normal;\n font-size: 12px;\n line-height: 1.2;\n color: #fff;\n vertical-align: middle;\n white-space: nowrap;\n}\n\n/* Extra hardening so pills still render cleanly in varying wrappers */\n.rdmd-html .container-top,\n.rdmd-html .container-reg,\n.rdmd-html .container-env,\n.rdmd-html .pill-reg,\n.rdmd-html .pill-env,\n.rdmd-html .label-reg,\n.rdmd-html .label-env {\n box-sizing: border-box;\n}\n\n/* =========================================================\n Navigation boxes\n (like on Ecommerce Integration Types page)\n ========================================================= */\n\n.navbox-wrapper {\n width: 90%;\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n}\n\n.navbox-box {\n flex: 1 1 calc(50% - 10px);\n min-height: 150px;\n text-align: left;\n margin-bottom: 4px;\n overflow: hidden;\n border: 1px solid #d8d8d8;\n padding: 10pt;\n box-sizing: border-box;\n transition: box-shadow 0.3s ease;\n}\n\n.navbox-box:hover {\n box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.4);\n}\n\nh2.g {\n font-size: 17px;\n color: #228800;\n margin: 2px 0 8px 0;\n}\n\nh2.w {\n font-size: 20px;\n color: #fff;\n margin: 2px 0 8px 0;\n}\n\np.small-text {\n font-size: 15px;\n color: #5a5a5a;\n}\n\n.navbox-btn {\n font-family: Altform, sans-serif;\n border: none;\n background-color: inherit;\n font-size: 15px;\n color: #228800;\n text-align: left;\n cursor: pointer;\n display: block;\n margin-bottom: 4px;\n}\n\n.navbox-btn:hover {\n color: #5d5d5d;\n}\n\n.navbox-btn a {\n text-decoration: none;\n color: inherit;\n}\n\n.navbox-btn::before {\n content: \"➔ \";\n color: #228800;\n}\n\n/* Responsive styles */\n@media (max-width: 1200px) {\n .navbox-box {\n flex: 1 1 calc(50% - 10px);\n }\n}\n\n@media (max-width: 768px) {\n .navbox-box {\n flex: 1 1 calc(100% - 10px);\n }\n}\n\n@media (max-width: 480px) {\n .navbox-box {\n flex: 1 1 100%;\n }\n}\n\n/* =========================================================\n Flip-card boxes\n ========================================================= */\n\n.flip-card-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 10px;\n max-width: 100%;\n}\n\n.flip-card {\n flex: 1 1 calc(50% - 10px);\n max-width: 300px;\n height: 300px;\n perspective: 1000px;\n box-sizing: border-box;\n}\n\n.flip-card-inner {\n position: relative;\n width: 100%;\n height: 100%;\n transition: transform 0.6s, box-shadow 0.3s;\n transform-style: preserve-3d;\n cursor: pointer;\n}\n\n.flip-card:hover .flip-card-inner {\n transform: rotateY(180deg);\n box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.3);\n}\n\n.flip-card-front,\n.flip-card-back {\n position: absolute;\n width: 100%;\n height: 100%;\n backface-visibility: hidden;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 10px;\n box-sizing: border-box;\n font-family: Altform, sans-serif;\n overflow-wrap: break-word;\n word-break: break-word;\n}\n\n.flip-card-front {\n color: #fff;\n font-size: 18px;\n font-weight: 500;\n text-align: center;\n}\n\n.front-green {\n background-color: #280;\n}\n\n.front-darkgreen {\n background-color: #040;\n}\n\n.flip-card-back {\n background-color: white;\n color: #5d5d5d;\n font-size: 16px;\n border: 2px solid #d5d5d5;\n transform: rotateY(180deg);\n text-align: left;\n}\n\n.btn {\n font-family: Altform, sans-serif;\n border: none;\n background-color: inherit;\n font-size: 16px;\n color: #228800;\n text-align: right;\n cursor: pointer;\n display: block;\n margin-top: 10px;\n align-self: flex-end;\n}\n\n.btn:hover {\n color: #5d5d5d;\n}\n\n.btn a {\n text-decoration: none;\n color: inherit;\n}\n\n.btn::before {\n content: \"➔ \";\n color: #228800;\n}\n\n@media (max-width: 768px) {\n .flip-card {\n flex: 1 1 100%;\n max-width: 100%;\n }\n}\n\n@media (max-width: 480px) {\n .flip-card-front,\n .flip-card-back {\n font-size: 12px;\n padding: 2px;\n }\n\n .btn {\n font-size: 12px;\n }\n}\n/* Style classes for reviewer comments for use in DRAFTs only \n/* Use in paragraphs or span tags like \u003cspan class=\"reviewer\">text\u003c/span>\n/* \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t*/\n\n.reviewer { \ncolor: red;\n} \n.highlight { \nbackground-color: #FFFFED;\n /*(light-yellow)*/\n}\n.strike {\n color: red;\n text-decoration: line-through;\n}\n\n/* * * * * * * * * * * * * * * * * * * * */\n/* The remainder of this file is omitted */\n/* * * * * * * * * * * * * * * * * * * * */\n/*\n/*\n/* root color scheme */\n/* Change note: --color-border-default was (--green50); changed to (--gray80) */\n/* 10/29/2024: hid all project-level style changes. See enterprise level for details. */\n/*\n:root {\n --color-bg-page: var(--white);\n --color-bg-page-rgb: var(--white-rgb);\n --color-text-default: var(--gray20);\n --color-text-muted: var(--gray30);\n --color-text-minimum: var(--gray40);\n --color-text-minimum-hover: var(--gray30);\n --color-text-minimum-icon: rgba(99,114,136,0.6);\n --color-border-default: var(--gray80); \n --color-skeleton: var(--gray90);\n --color-input-background: var(--white);\n --color-input-text: var(--gray20);\n --color-input-border: #e5e5e5;\n --color-input-border-hover: #ccc;\n --color-input-border-active: var(--blue);\n --color-input-border-focus: rgba(17,140,253,0.25);\n --color-input-placeholder: var(--gray60);\n --black: #000;\n --blue: #118cfd;\n --blue-rgb: 17,140,253;\n --chalk: #c6cbd3;\n --graphite: #4f5a66;\n --green: #12ca93;\n --green-rgb: 18,202,147;\n --ivory: #f0f0f0;\n --light-gray: #f8f8f8;\n --minimum-gray: #637288;\n --purple: #8470be;\n --red: #e95f6a;\n --red-rgb: 233,95,106;\n --shale: #939eae;\n --slate: #384248;\n --white: #fff;\n --off-white: #fdfdfd;\n --yellow: #f7c543;\n --yellow-rgb: 247,197,67;\n --border-width: 1px;\n --border-radius: 5px;\n --border-radius-lg: calc(var(--border-radius) * 1.5);\n --box-shadow-menu-dark: 0 1px 3px rgba(0, 0, 0, 0.025), 0 2px 6px rgba(0, 0, 0, 0.025), 0 5px 10px rgba(0, 0, 0, 0.05);\n --box-shadow-menu-light: 0 5px 10px rgba(0, 0, 0, .05), 0 2px 6px rgba(0, 0, 0,.025), 0 1px 3px rgba(0, 0, 0, .025);\n --box-shadow-pill: inset 0 1px 1px 0 rgba(255, 255, 255, .2), inset 0 -1px 2px 0 rgba(0, 0, 0, .2), 0 1px 2px 0 rgba(0, 0, 0, .05);\n --box-shadow-request: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -1px 2px rgba(0, 0, 0, .1);\n --box-shadow-status: inset 0 1px 0 rgba(255, 255, 255, .5), inset 0 -1px 2px rgba(0, 0, 0, .1), 0 1px 3px rgba(0, 0, 0, .1);\n --font-family: Graphik, san-serif,-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue;\n --font-family-mono: \"SF Mono\", SFMono-Regular, ui-monospace, \"DejaVu Sans Mono\", Menlo, Consolas, monospace;\n --font-weight-normal: 400;\n --font-weight: 500;\n --font-weight-bold: 600;\n --button-xs: 20px;\n --button-sm: 30px;\n --button-md: 40px;\n --button-lg: 50px;\n --icon-sm: 12px;\n --icon-md: 16px;\n --icon-lg: 20px;\n --transition-fast: .15s;\n --transition-slow: .3s;\n --transition-timing: cubic-bezier(0.16, 1, 0.3, 1);\n --header-logo-height: 24px;\n --container: 1100px;\n --container-lg: 1440px;\n --hub-main-max-width: 800px;\n --hub-playground-width: 480px;\n --hub-sidebar-width: 280px;\n --hub-toc-width: 280px;\n --param-form-width: 140px;\n --dash-container-md: 1100px;\n --dash-container-lg: 1260px;\n --dash-container-xl: 1536px;\n --xxl: 120px;\n --xl: 80px;\n --lg: 40px;\n --md: 20px;\n --sm: 10px;\n --xs: 5px;\n --z-banner: 10001;\n --z-toolbar: 10002;\n --z-modal: 10003;\n --blue0: #002077;\n --blue10: #003290;\n --blue20: #0047aa;\n --blue30: #005dc5;\n --blue40: #0074e1;\n --blue50: #118cfd;\n --blue60: #619efe;\n --blue70: #8ab0ff;\n --blue80: #abc3ff;\n --blue90: #c8d7ff;\n --blue100: #e4ebff;\n --green0: #002e02;\n --green10: #00491f;\n --green20: #00683a;\n --green30: #008756;\n --green40: #00a874;\n --green50: #12ca93;\n --green60: #59d4a4;\n --green70: #81ddb6;\n --green80: #a3e6c8;\n --green90: #c3efda;\n --green100: #e1f7ec;\n --gray0: #12181b;\n --gray10: #242e34;\n --gray15: #303b42;\n --gray20: #384248;\n --gray30: #4f5a66;\n --gray40: #637288;\n --gray50: #7b889b;\n --gray60: #939eae;\n --gray70: #adb4c1;\n --gray80: #c6cbd3;\n --gray90: #f0f0f0;\n --gray100: #f8f8f8;\n --gray10-rgb: 36,46,52;\n --gray15-rgb: 48,59,66;\n --gray20-rgb: 56,66,72;\n --gray100-rgb: 248,248,248;\n --purple0: #110e4d;\n --purple10: #2a1f63;\n --purple20: #403278;\n --purple30: #56468f;\n --purple40: #6d5ba6;\n --purple50: #8470be;\n --purple60: #9987c9;\n --purple70: #ae9ed4;\n --purple80: #c2b5df;\n --purple90: #d6cdea;\n --purple100: #ebe6f4;\n --red0: #570000;\n --red10: #730014;\n --red20: #900027;\n --red30: #ad273c;\n --red40: #cb4452;\n --red50: #e95f6a;\n --red60: #f17c81;\n --red70: #f79799;\n --red80: #fcb1b2;\n --red90: #ffcbcb;\n --red100: #ffe5e5;\n --yellow0: #3e1d00;\n --yellow10: #5a3c00;\n --yellow20: #7d5b00;\n --yellow30: #a57d00;\n --yellow40: #cda017;\n --yellow50: #f7c543;\n --yellow60: #fcce66;\n --yellow70: #ffd885;\n --yellow80: #ffe1a4;\n --yellow90: #ffebc2;\n --yellow100: #fff5e0;\n --butter: #fdfccc;\n --brown: #7a461c;\n --coral: #ff758c;\n --fuchsia: #cf66c3;\n --gold: #9d8714;\n --indigo: #6b7ede;\n --lavender: #abc3ff;\n --lime: #9ace5a;\n --olive: #837400;\n --orange: #fe8e4f;\n --pink: #e15ca5;\n --teal: #00b6e6;\n --tiffany: #00beaa;\n --blue-pastel: #a8edff;\n --green-pastel: #9bfff6;\n --orange-pastel: #f5bc90;\n --purple-pastel: #e8d0ff;\n --red-pastel: #ffc4c9;\n --yellow-pastel: #ffffa7;\n --white-rgb: 255,255,255;\n --lightGray: var(--light-gray);\n --minimumGray: var(--minimum-gray)\n}\n*/","stylesheet":"","favicon":["https://files.readme.io/6f06232-clover-icon1.svg","clover-icon(1).svg",22,22,"#228800"],"logo_white_use":false,"logo_white":["https://files.readme.io/d3d63d72e208436c6125dfaedbf9f6c45842d353540da8cf557bc1c37ca9c275-white-logo.png","d3d63d72e208436c6125dfaedbf9f6c45842d353540da8cf557bc1c37ca9c275-white-logo.png",418,48,"#ffffff","67ec563f89e4bc00118a1fdf"],"logo":["https://files.readme.io/4e2d7ae48c03777bb9262ad99f875e762a1ed10d75880cf9d7840343485c1ffa-small-clover-dev-docs-logo.png","4e2d7ae48c03777bb9262ad99f875e762a1ed10d75880cf9d7840343485c1ffa-small-clover-dev-docs-logo.png",418,48,"#5c5c5c","https://files.readme.io/c503c513266ab362750b99680730baf0f8e32035369aec33ddae8cfab6f3f9fb-clover-dev-docs-logo.png","67f01b49e9fe6e006406bce3"],"promos":[{"extras":{"type":"search","buttonPrimary":"get-started","buttonSecondary":"docs"},"title":"Clover Platform Documentation","text":"Welcome to the Clover Platform developer hub. What can we help you build?","_id":"5b05c1655f9a0d00039a8ae5"}],"body":{"style":"none"},"header":{"img_pos":"tl","img_size":"auto","img":[],"style":"overlay","linkStyle":"buttons"},"typography":{"tk_body":"","tk_headline":"","tk_key":"","typekit":false,"body":"Open+Sans:400:sans-serif","headline":"Open+Sans:400:sans-serif","code":"","custom_heading":null,"custom_body":null,"custom_code":null,"spacing":null},"colors":{"body_highlight":"","header_text":"","main_alt":"","main":"#228800","highlight":"","custom_login_link_color":"","body_highlight_dark":""},"main_body":{"type":"links"},"categoriesAsDropdown":false,"hide_logo":true,"sticky":false,"landing":true,"overlay":"triangles","notheme":false,"theme":"line","link_logo_to_url":false,"referenceLayout":"row","splitReferenceDocs":false,"childrenAsPills":false,"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":""}},"subheaderStyle":"links","showMetricsInReference":true,"referenceSimpleMode":true,"stylesheet_hub3":"","loginLogo":[],"logo_large":false,"colorScheme":"light","changelog":{"layoutExpanded":true,"showAuthor":false,"showExactDate":false},"allowApiExplorerJsonEditor":false,"ai_dropdown":"enabled","ai_options":{"chatgpt":"disabled","claude":"disabled","clipboard":"enabled","view_as_markdown":"enabled","copilot":"enabled","perplexity":"enabled","ask_ai":"disabled","mcp":{"command":"enabled","config":"enabled","cursor":"enabled","vscode":"enabled"}},"showPageIcons":true,"layout":{"full_width":false,"style":"classic"},"methodBadgeStyle":"classic","showMethodInSidebar":true,"showBreadcrumbs":false,"collapsibleCategories":false,"oneOfLayout":"dropdown"},"child":{"_id":"5b05c1655f9a0d00039a8ae4","accessRules":{"branch_merge":{"admin":true,"editor":false},"branch_approve":{"admin":true,"editor":false}},"ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":true},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"nextStepsLabel":"Related topics","hideTableOfContents":false,"showVersion":false,"html_hidelinks":false,"global_landing_page":{"redirect":"","html":""},"html_footer_meta":"\u003cscript src=\"https://3s40xjwbpcq5.statuspage.io/embed/script.js\">\u003c/script>","html_head":"\u003cmeta name=\"google-site-verification\" content=\"V22G0oF_f8MnFXS2AtrN6KEg8X2BNVFWqg8I2QHeW-Y\" />\n\n\u003cscript>\n const hash = window.location.hash;\n window.location.hash = \"\";\n const checkExist = setInterval(function() {\n if ($(hash).length === 0) { return }\n clearInterval(checkExist);\n setTimeout(function() {\n window.location.hash = hash;\n }, 1000);\n }, 100);\n\u003c/script>","html_footer":"\u003cscript src=\"https://3s40xjwbpcq5.statuspage.io/embed/script.js\">\u003c/script>","html_body":"","html_promo":"","javascript_hub2":"","javascript":"","stylesheet_hub2":"/* Style classes for reviewer comments for use in DRAFTs only \n/* Use in paragraphs or span tags like \u003cspan class=\"reviewer\">text\u003c/span>\n/* \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t*/\n\n.reviewer { \ncolor: red;\n} \n.highlight { \nbackground-color: #FFFFED;\n /*(light-yellow)*/\n}\n.strike {\n color: red;\n text-decoration: line-through;\n}\n\n/* * * * * * * * * * * * * * * * * * * * */\n/* The remainder of this file is omitted */\n/* * * * * * * * * * * * * * * * * * * * */\n/*\n/*\n/* root color scheme */\n/* Change note: --color-border-default was (--green50); changed to (--gray80) */\n/* 10/29/2024: hid all project-level style changes. See enterprise level for details. */\n/*\n:root {\n --color-bg-page: var(--white);\n --color-bg-page-rgb: var(--white-rgb);\n --color-text-default: var(--gray20);\n --color-text-muted: var(--gray30);\n --color-text-minimum: var(--gray40);\n --color-text-minimum-hover: var(--gray30);\n --color-text-minimum-icon: rgba(99,114,136,0.6);\n --color-border-default: var(--gray80); \n --color-skeleton: var(--gray90);\n --color-input-background: var(--white);\n --color-input-text: var(--gray20);\n --color-input-border: #e5e5e5;\n --color-input-border-hover: #ccc;\n --color-input-border-active: var(--blue);\n --color-input-border-focus: rgba(17,140,253,0.25);\n --color-input-placeholder: var(--gray60);\n --black: #000;\n --blue: #118cfd;\n --blue-rgb: 17,140,253;\n --chalk: #c6cbd3;\n --graphite: #4f5a66;\n --green: #12ca93;\n --green-rgb: 18,202,147;\n --ivory: #f0f0f0;\n --light-gray: #f8f8f8;\n --minimum-gray: #637288;\n --purple: #8470be;\n --red: #e95f6a;\n --red-rgb: 233,95,106;\n --shale: #939eae;\n --slate: #384248;\n --white: #fff;\n --off-white: #fdfdfd;\n --yellow: #f7c543;\n --yellow-rgb: 247,197,67;\n --border-width: 1px;\n --border-radius: 5px;\n --border-radius-lg: calc(var(--border-radius) * 1.5);\n --box-shadow-menu-dark: 0 1px 3px rgba(0, 0, 0, 0.025), 0 2px 6px rgba(0, 0, 0, 0.025), 0 5px 10px rgba(0, 0, 0, 0.05);\n --box-shadow-menu-light: 0 5px 10px rgba(0, 0, 0, .05), 0 2px 6px rgba(0, 0, 0,.025), 0 1px 3px rgba(0, 0, 0, .025);\n --box-shadow-pill: inset 0 1px 1px 0 rgba(255, 255, 255, .2), inset 0 -1px 2px 0 rgba(0, 0, 0, .2), 0 1px 2px 0 rgba(0, 0, 0, .05);\n --box-shadow-request: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -1px 2px rgba(0, 0, 0, .1);\n --box-shadow-status: inset 0 1px 0 rgba(255, 255, 255, .5), inset 0 -1px 2px rgba(0, 0, 0, .1), 0 1px 3px rgba(0, 0, 0, .1);\n --font-family: Graphik, san-serif,-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue;\n --font-family-mono: \"SF Mono\", SFMono-Regular, ui-monospace, \"DejaVu Sans Mono\", Menlo, Consolas, monospace;\n --font-weight-normal: 400;\n --font-weight: 500;\n --font-weight-bold: 600;\n --button-xs: 20px;\n --button-sm: 30px;\n --button-md: 40px;\n --button-lg: 50px;\n --icon-sm: 12px;\n --icon-md: 16px;\n --icon-lg: 20px;\n --transition-fast: .15s;\n --transition-slow: .3s;\n --transition-timing: cubic-bezier(0.16, 1, 0.3, 1);\n --header-logo-height: 24px;\n --container: 1100px;\n --container-lg: 1440px;\n --hub-main-max-width: 800px;\n --hub-playground-width: 480px;\n --hub-sidebar-width: 280px;\n --hub-toc-width: 280px;\n --param-form-width: 140px;\n --dash-container-md: 1100px;\n --dash-container-lg: 1260px;\n --dash-container-xl: 1536px;\n --xxl: 120px;\n --xl: 80px;\n --lg: 40px;\n --md: 20px;\n --sm: 10px;\n --xs: 5px;\n --z-banner: 10001;\n --z-toolbar: 10002;\n --z-modal: 10003;\n --blue0: #002077;\n --blue10: #003290;\n --blue20: #0047aa;\n --blue30: #005dc5;\n --blue40: #0074e1;\n --blue50: #118cfd;\n --blue60: #619efe;\n --blue70: #8ab0ff;\n --blue80: #abc3ff;\n --blue90: #c8d7ff;\n --blue100: #e4ebff;\n --green0: #002e02;\n --green10: #00491f;\n --green20: #00683a;\n --green30: #008756;\n --green40: #00a874;\n --green50: #12ca93;\n --green60: #59d4a4;\n --green70: #81ddb6;\n --green80: #a3e6c8;\n --green90: #c3efda;\n --green100: #e1f7ec;\n --gray0: #12181b;\n --gray10: #242e34;\n --gray15: #303b42;\n --gray20: #384248;\n --gray30: #4f5a66;\n --gray40: #637288;\n --gray50: #7b889b;\n --gray60: #939eae;\n --gray70: #adb4c1;\n --gray80: #c6cbd3;\n --gray90: #f0f0f0;\n --gray100: #f8f8f8;\n --gray10-rgb: 36,46,52;\n --gray15-rgb: 48,59,66;\n --gray20-rgb: 56,66,72;\n --gray100-rgb: 248,248,248;\n --purple0: #110e4d;\n --purple10: #2a1f63;\n --purple20: #403278;\n --purple30: #56468f;\n --purple40: #6d5ba6;\n --purple50: #8470be;\n --purple60: #9987c9;\n --purple70: #ae9ed4;\n --purple80: #c2b5df;\n --purple90: #d6cdea;\n --purple100: #ebe6f4;\n --red0: #570000;\n --red10: #730014;\n --red20: #900027;\n --red30: #ad273c;\n --red40: #cb4452;\n --red50: #e95f6a;\n --red60: #f17c81;\n --red70: #f79799;\n --red80: #fcb1b2;\n --red90: #ffcbcb;\n --red100: #ffe5e5;\n --yellow0: #3e1d00;\n --yellow10: #5a3c00;\n --yellow20: #7d5b00;\n --yellow30: #a57d00;\n --yellow40: #cda017;\n --yellow50: #f7c543;\n --yellow60: #fcce66;\n --yellow70: #ffd885;\n --yellow80: #ffe1a4;\n --yellow90: #ffebc2;\n --yellow100: #fff5e0;\n --butter: #fdfccc;\n --brown: #7a461c;\n --coral: #ff758c;\n --fuchsia: #cf66c3;\n --gold: #9d8714;\n --indigo: #6b7ede;\n --lavender: #abc3ff;\n --lime: #9ace5a;\n --olive: #837400;\n --orange: #fe8e4f;\n --pink: #e15ca5;\n --teal: #00b6e6;\n --tiffany: #00beaa;\n --blue-pastel: #a8edff;\n --green-pastel: #9bfff6;\n --orange-pastel: #f5bc90;\n --purple-pastel: #e8d0ff;\n --red-pastel: #ffc4c9;\n --yellow-pastel: #ffffa7;\n --white-rgb: 255,255,255;\n --lightGray: var(--light-gray);\n --minimumGray: var(--minimum-gray)\n}\n*/","stylesheet":"","favicon":["https://files.readme.io/6f06232-clover-icon1.svg","clover-icon(1).svg",22,22,"#228800"],"logo_white_use":false,"logo_white":["https://files.readme.io/d3d63d72e208436c6125dfaedbf9f6c45842d353540da8cf557bc1c37ca9c275-white-logo.png","d3d63d72e208436c6125dfaedbf9f6c45842d353540da8cf557bc1c37ca9c275-white-logo.png",418,48,"#ffffff","67ec563f89e4bc00118a1fdf"],"logo":["https://files.readme.io/4e2d7ae48c03777bb9262ad99f875e762a1ed10d75880cf9d7840343485c1ffa-small-clover-dev-docs-logo.png","4e2d7ae48c03777bb9262ad99f875e762a1ed10d75880cf9d7840343485c1ffa-small-clover-dev-docs-logo.png",418,48,"#5c5c5c","https://files.readme.io/c503c513266ab362750b99680730baf0f8e32035369aec33ddae8cfab6f3f9fb-clover-dev-docs-logo.png","67f01b49e9fe6e006406bce3"],"promos":[{"extras":{"type":"search","buttonPrimary":"get-started","buttonSecondary":"docs"},"title":"Clover Platform Documentation","text":"Welcome to the Clover Platform developer hub. What can we help you build?","_id":"5b05c1655f9a0d00039a8ae5"}],"body":{"style":"none"},"header":{"img_pos":"tl","img_size":"auto","img":[],"style":"overlay","linkStyle":"buttons"},"typography":{"tk_body":"","tk_headline":"","tk_key":"","typekit":false,"body":"Open+Sans:400:sans-serif","headline":"Open+Sans:400:sans-serif","code":"","custom_heading":null,"custom_body":null,"custom_code":null,"spacing":null},"colors":{"body_highlight":"","header_text":"","main_alt":"","main":"#228800","highlight":"","custom_login_link_color":"","body_highlight_dark":""},"main_body":{"type":"links"},"categoriesAsDropdown":false,"hide_logo":true,"sticky":false,"landing":true,"overlay":"triangles","notheme":false,"theme":"line","link_logo_to_url":false,"referenceLayout":"row","splitReferenceDocs":false,"childrenAsPills":false,"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":""}},"subheaderStyle":"links","showMetricsInReference":true,"referenceSimpleMode":true,"stylesheet_hub3":"","loginLogo":[],"logo_large":false,"colorScheme":"light","changelog":{"layoutExpanded":true,"showAuthor":false,"showExactDate":false},"allowApiExplorerJsonEditor":false,"ai_dropdown":"enabled","ai_options":{"chatgpt":"disabled","claude":"disabled","clipboard":"enabled","view_as_markdown":"enabled","copilot":"enabled","perplexity":"enabled","ask_ai":"disabled","mcp":{"command":"enabled","config":"enabled","cursor":"enabled","vscode":"enabled"}},"showPageIcons":true,"layout":{"full_width":false,"style":"classic"},"methodBadgeStyle":"classic","showMethodInSidebar":true,"showBreadcrumbs":false,"collapsibleCategories":false,"oneOfLayout":"dropdown"},"custom_domain":"","childrenProjects":[],"derivedPlan":"enterprise","description":"","hstsIncludeSubdomains":false,"planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"canceled","shouldGateDash":false,"isExternalSnippetActive":false,"error404":"","first_page":"landing","flags":{"allowXFrame":false,"allow_hub2":false,"alwaysShowDocPublishStatus":false,"cookieAuthentication":false,"correctnewlines":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"enterprise":true,"hideGoogleAnalytics":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"newApiExplorer":true,"newEditor":true,"newMarkdownBetaProgram":true,"newSearch":true,"oauth":false,"oldMarkdown":false,"rdmdCompatibilityMode":false,"speedyRender":false,"staging":false,"swagger":false,"translation":false,"tutorials":true,"allowApiExplorerJsonEditor":false,"useReactApp":true,"newHeader":false,"referenceRedesign":false,"auth0Oauth":false,"graphql":false,"singleProjectEnterprise":false,"dashReact":false,"allowReferenceUpgrade":true,"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":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"dryRunMigration":false,"aiDocsAudit":false,"aiPageLinting":false,"githubCloudSync":false,"disableAiChat":false,"enableSuggestedEdits":false,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"bidiSyncGitlabSelfServe":false,"gitTranslations":false,"gitlabCloudSync":false,"bidiSyncBitbucketSelfServe":false,"superHubPlanManagement":false,"mdxSanitizeComments":false,"disableSuperframe":false,"hideAiFeatures":false,"mdxish":true,"gittoUseNewIndexer":true,"mdxishEditor":true,"prefetch":false,"aiWriter":false,"superHubBranchReviewDashboard":false,"bidiSyncUseOdbAlternates":true,"mcpMetrics":false,"newDereferencer":false,"googleAuthEnabled":false,"newIframeStructure":false,"streamingSsr":false,"superHubNotifications":false,"superHubTypography":false,"newExplorerReducer":false,"gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"askAiOverride":"","superHubSlack":false,"customDomainAdminBypass":false,"aiDiscovery":false,"aiTranslation":false,"branchTaggedReviewers":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"superHubUiTesting":true},"fullBaseUrl":"https://clover-platform.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:25.037Z","start":"2026-03-24T12:06:24.573Z","status":"successful"},"transformation":{"end":"2026-03-24T12:07:17.857Z","start":"2026-03-24T12:06:48.955Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:07:22.849Z","start":"2026-03-24T12:07:22.373Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T23:43:04.952Z","status":"successful","end":"2026-03-24T23:43:04.953Z"}},"sync":{"linked_repository":{"provider_type":"github","linked_at":"2026-05-01T18:52:05.943Z","linked_by":"[email protected]","error":{},"privacy":{"visibility":"private","private":true},"name":"clover-devdocs","full_name":"clover/clover-devdocs","url":"https://github.com/clover/clover-devdocs","id":"1226709745","connection":"69f4f43d8ffa1312ca26e6cf"},"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"glossaryTerms":[{"term":"prorated subscription","definition":"A merchant subscription tier adjustment, when a merchant downgrades their subscription, or uninstalls an app, and Clover adjusts the charge difference in the current month's advance on the merchant account.","_id":"5f469d85c01cfd0de57b733c"},{"term":"partial month","definition":"The first charge is added when a merchant installs a new app and the installation occurs after the first of the month.","_id":"5fa5f5af0544dd002ae86eee"},{"term":"Auth","definition":"Authorization (Auth) is a tip-adjusted sale. This type of transaction is typically used by restaurants and services establishments.","_id":"649d3869b0358b0018203a82"},{"term":"billable merchant","definition":"Active merchant accounts with Clover. These are not test merchant or demo accounts, and are not suppressed for billing.","_id":"65420a1c3639880059d6c862"},{"term":"LTE","definition":"LTE (Long-Term Evolution) is a fourth-generation (4G) wireless standard that provides increased network capacity and speed for mobile phones and other cellular devices compared with third-generation (3G) technology.","_id":"661647a5e965fe0049f6d8f7"},{"term":"USB","definition":"Universal Serial Bus (USB) is an industry connection standard that allows data exchange and delivery of power between many various types of electronics.","_id":"6616562dbbacf5005644286c"},{"term":"NFC","definition":"Near Field Communication (NFC) is a group of wireless technologies that work over a short distance, usually 4 cm or less, to establish a connection. With NFC, you can transfer small amounts of data between an Android-powered device and an NFC tag or between two Android-powered devices.","_id":"66165f787392b500281d879b"},{"term":"SPI","definition":"Serial Peripheral Interface (SPI) is a widely used synchronous serial communication standard primarily employed in embedded systems. It facilitates short-distance wired communication between integrated circuits (ICs).","_id":"6616602c2f58ae0030b9e0b9"},{"term":"Android ABI","definition":"Android ABI (Application Binary Interface) defines how an application's machine code interacts with the system at runtime. It specifies details such as the CPU instruction set, endianness of memory stores and loads, conventions for passing data between applications and the system, and the format of executable binaries.","_id":"663480a9586d280012ffa5c7"},{"term":"UART","definition":"Universal Asynchronous Receiver-Transmitter (UART) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable.","_id":"6634c2cc21173a00853683de"},{"term":"Android Virtual Device","definition":"Android Virtual Device (AVD) is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator. An AVD contains a hardware profile, system image, storage area, skin, and other properties.","_id":"6634c647f44e150034a81e8f"},{"term":"API level","definition":"Each Android version corresponds to a specific API level. For example, Android 11 corresponds to API level 30, Android 10 to API level 29, and so on. The API level precisely identifies the version of the API set that your app can call into. It defines the combination of manifest elements, permissions, and other features that you can use as a developer.","_id":"6634c7d40a25a7005195a4c9"},{"term":"DPI","definition":"DPI (dots per inch) is the pixel density, that is the number of pixels within a physical area of the screen. DPI is different from the screen resolution, which is the total number of pixels on a screen.","_id":"6634cc35af2922003f0ae0c7"},{"term":"CORS","definition":"Security feature that allows web pages to request resources from different origins, controlled through HTTP headers.","_id":"663b440a27b57b0051ef9a8f"},{"term":"Clover APK","definition":"Android application package (APK) created for integration with Clover merchant services and point of sale (POS) systems. Developers must design, generate, and register their APK following Clover standards. Once approved, the APK is submitted for distribution on Clover devices, ensuring it meets the necessary guidelines for proper installation and functionality on the hardware.","_id":"663b4b305eca4200256ecda6"},{"term":"Clover ID","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. \nThis identifier displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and also on the Merchant Dashboard > User Settings page below the merchant name. It also displays in the URL (link) of the Clover Merchant Dashboard.\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId.\nFormat: 13-alphanumeric","_id":"663dcf4edeb40d00180a5b76"},{"term":"MID","definition":"Merchant identifier (MID) identifies your merchant account and is the same across devices with the same merchant name. This identifier is available on the Clover device Diagnostics > Additional Details screen and also on the Merchant Dashboard > User Settings page, in the MID column.\nNote: The MID is different from the merchant UUID or merchantId.","_id":"663dd341cec219002bb270ec"},{"term":"merchantId","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId.\nThe merchantId displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and on the Merchant Dashboard > User Settings page below the merchant’s name. It also displays in the URL (link) of the Clover Merchant Dashboard.\n\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. \nFormat: 13-alphanumeric; Note: The merchantId is different from the MID.","_id":"6641eb054a33e700319e8fad"},{"term":"blackhole payment gateway","definition":"Default gateway for test merchant accounts in the Clover sandbox environment. It sets all transactions to be successful and suffices for most development use cases.","_id":"66447e6e653fa90018e2afb5"},{"term":"vaulted card","definition":"Securely stored card token that can be used for future transactions. It lets merchants process recurring payments or quickly complete in-person transactions for returning customers. The card token is one-way encrypted and can be stored outside the Payment Card Industry Data Security Standard (PCI DSS) scope.","_id":"665024515cb512003d87936b"},{"term":"card tokenization","definition":"Faud-prevention measure that replaces sensitive payment credentials, such as credit card numbers, cardholder names, expiration dates, and CVV codes with non-specific identifiers known as tokens. These tokens are used for subsequent transactions, allowing secure storage and processing of payment information.","_id":"6650245bc4047b006129c46e"},{"term":"REST Pay Display API","definition":"Provides a simple interface for point of sale (POS) applications to accept payments on Clover Flex or Clover Mini devices. Developers can connect their apps to Clover devices using cloud or local network connections without requiring an embedded software development kit (SDK). It minimizes effort for handling on-device activities and states.","_id":"665024a633a4ef004cea5907"},{"term":"PSD2","definition":"Payment Service Directive 2 (PSD2) is a European Union directive that grants bank customers the ability to share their account information with third-party providers. These providers can then manage the customer’s finances, enabling services like direct payments.","_id":"665431a4b21564006f6b8c05"},{"term":"EMV","definition":"EMV cards are smart cards, also called chip cards, integrated circuit cards, or IC cards. They store their data on integrated circuit chips in addition to a magnetic stripe. EMV stands for Europay, Mastercard, and Visa, the three companies that created the specifications to facilitate worldwide interactions and acceptance of secure payments.","_id":"66544b3f1bccff0031b78365"},{"term":"EMVCo","definition":"Consortium with equal control among American Express, China UnionPay, Discover, JCB, Mastercard, and Visa. EMVCo creates and manages EMV® Specifications and programs that enable seamless and secure card-based payments for businesses and consumers worldwide.","_id":"66544e518f53e8002b8cf6c6"},{"term":"3DS","definition":"3DS protocol uses a three-domain model to add an extra layer of security between the financial authorization process and the online authentication process. The three domains are: 1. Issuer domain: Financial institution (FI) or bank that issued the card used for the transaction. 2. Acquirer domain: Merchant that accepts online payments from customers. 3. Interoperability domain: 3DS infrastructure platform that is the secure intermediary facilitating communication between the customer and the merchant.","_id":"66544eb4e0f4d500690f5ccd"},{"term":"Strong Customer Authentication","definition":"European regulatory requirement that makes online payments more secure by using biometrics to validate card-not-present (CNP) digital transactions. With the PSD2 regulations, additional information is needed from the user at the time of payment than just the card number and a card verification code (CVC). This information to verify user identities includes one of the following: 1. what the user knows: password, PIN. 2. what the user possesses: card, mobile phone. 3. what belongs to the user: fingerprints, facial recognition.","_id":"66544f82555ae8001177e275"},{"term":"AID","definition":"Application Identifier. An identifier stored on the chip and terminal. It is used to identify mutually supported applications.","_id":"6657019455ddd9002b624bd4"},{"term":"webhooks","definition":"HTTP-based callback function allows for lightweight, event-driven communication between two application programming interfaces (APIs). When an event, such as a new user registration or a completed purchase, happens in one application, that application sends an HTTP POST request to a specific URL (the webhook) along with relevant data. The receiving application, which has the webhook, processes this data and takes appropriate actions based on the event.","_id":"6657f154ca069c002bd8e14b"},{"term":"developer platform","definition":"Open platform for third-party developers to build apps and integrate external point-of-sale systems with Clover devices.","_id":"665856f0f4f292004bed1660"},{"term":"Release notes","definition":"Monthly updates about new features and updates across the Clover developer platform.","_id":"6658571d250efe0030376d3a"},{"term":"Bug fixes","definition":"Monthly updates on the latest bug fixes across the Clover developer platform.","_id":"66585726f46d7600517c38b4"},{"term":"API changelog","definition":"Monthly updates related to API changes.","_id":"66585736ab2c5b0057f78516"},{"term":"Announcements","definition":"Messages that are sent in the developer communications emails.","_id":"6658574f1f2ad700769fd4ca"},{"term":"API docs and SDK guides","definition":"Resources needed to work with the Clover app and integration platforms.","_id":"665857b5b5c13a006581ef42"},{"term":"Code and sample apps","definition":"Resources on GitHub to help get started with the Clover APIs.","_id":"66585809f0013f005829dfed"},{"term":"semi-integration","definition":"Semi-integration involves a third-party point of sale (POS) system using Clover for payment processing. In a native integration, your POS runs directly on Clover hardware as an app.","_id":"6659bd2d2f7dfe00117cc3f2"},{"term":"Android Payment API","definition":"Intent-based API used in applications running on Clover devices for executing payment transaction requests. It supports payment operations, including payments, preauthorizations, and payment reversals (void/refund), using Android Intent Builders.","_id":"665d3aad49f7e10014c6ec18"},{"term":"Clover Connector SDK","definition":"Provides an interface that allows external point of sale (POS) systems to access the same payment functions as PaymentConnector, such as sales and refunds. It also offers additional features like custom receipts and Android activities. The SDK is available for four platforms: Android, iOS, JavaScript, and .NET.","_id":"665d3ad3a40a010010ae9b1d"},{"term":"Payment Connector","definition":"Java-based interface that lets you build a point of sale (POS) directly on a Clover device. It provides all of the Clover features needed for your app to make a sale, issue a refund, and perform other payment functions.","_id":"665d3af204832a002afc719f"},{"term":"card on file","definition":"Card on file (COF) transactions are payments in which the cardholders have authorized merchants to store their credit or debit card information to use for future purchases or recurring payments.","_id":"665ff984f6928a0011b2597c"},{"term":"frictionless flow","definition":"For card-not-present (CNP) payments, frictionless flow refers to a seamless process where the financial institution (FI) or issuer can verify the legitimacy of a transaction without requiring additional input from the cardholder. This behind-the-scenes verification lets customers complete their purchases without any noticeable interruptions or authentication steps.","_id":"6660077fed8e620058cba957"},{"term":"challenge flow","definition":"For card-not-present (CNP) payments, challenge flow indicates that the financial institution (FI) or issuer requires more evidence to verify the legitimacy of the transaction. In the challenge flow, the customer must provide extra information to authenticate the payment, such as a password or a one-time code that the card issuer sends to their mobile device.","_id":"6660082bb0c450004a3d7cd3"},{"term":"Minimum SDK","definition":"The minSdk specifies the minimum SDK version your app supports. For example, if your minSdk is 26, your app will only run on devices with Android 8 (API level 26) or higher. The minSdk is defined in your app's build.gradle file.","_id":"6666dc0bda9518005ad0f2c4"},{"term":"Target SDK","definition":"The targetSdk is the SDK version your app targets. It should always be the same as the compileSdk. For instance, if your targetSdk is 30, your app is designed to work optimally on Android 11 (API level 30) or higher. The targetSdk is defined in your app's build.gradle file.","_id":"6666dc4a3ad9e6001902ee93"},{"term":"Clover Go reader","definition":"EMV-capable device that pairs with an Apple (iOS®) and Android smartphone or tablet. The reader allows iOS and Android mobile apps to accept swipe, NFC, or EMV transactions with no EMV certification required at the merchant's end. Clover Go reader accepts chip, dip, and contactless payments, including Tap-to-Pay on iPhone, Apple Pay®, Google Pay® and Samsung Pay®.","_id":"66694ec3f70d380056818491"},{"term":"reCAPTCHA","definition":"Completely Automated Public Turing test to tell Computers and Humans Apart. reCAPTCHA is a Google service that verifies a user is human and not a bot by presenting tests that are easy for humans but difficult for automated software.","_id":"666c33157d8b4a00100763cd"},{"term":"closeout","definition":"Process of closing your open batch of transactions and submitting it for clearing, settlement, and funding.","_id":"66b1e05f8cc1e80036f755f1"},{"term":"Idempotency Key","definition":"Unique identifier used to ensure that a particular operation is performed only once, even if the request is made multiple times. This is particularly useful in scenarios where network issues or client retries might cause the same request to be sent more than once.","_id":"66b1e081070411006f242a41"},{"term":"Card track data","definition":"Information encoded on a payment card's magnetic stripe or chip. The data is used to authorize and process transactions.","_id":"66b1e092d989a500309e106f"},{"term":"POS","definition":"Point of sale (POS) system enables businesses to accept customer payments and efficiently manage operations. The system consists of both hardware and software components. The software is often cloud-based, allowing access from anywhere. The hardware typically includes a register, barcode scanner, card reader, cash drawer, and receipt printer.","_id":"66b1e0d73facec0061549d33"},{"term":"Environment variables","definition":"A set of key-value pairs that a running process can access during runtime. These variables can be used to configure and adjust the behavior of the app or system, and they can vary between different execution environments.","_id":"66b1e0e7c9a0630026e33d8a"},{"term":"Device Manager","definition":"Android Studio tool for creating and managing an Android Virtual Device (AVD).","_id":"66b1e1012f4fbd0012bc9ec5"},{"term":"REST Pay Display API","definition":"API that lets point of sale (POS) applications accept payments on Clover Flex or Clover Mini devices. Your apps can connect to Clover devices using cloud or local network connections without needing an embedded software development kit (SDK).","_id":"66b1e1598ab3d40024a6fb42"},{"term":"Incremental authorization","definition":"Allows merchants to change the original authorization amount to ensure the customer's card can still cover the higher amount.","_id":"66b1e1691318ca0024ab4e71"},{"term":"Android SDK","definition":"SDK to build apps that run on Clover devices and publish your apps on the Clover App Market. It is also used for semi-integration with a Clover device, enabling a third-party point of sale (POS) system to use Clover for processing payments.","_id":"66b1e20a42125e00248c4a47"},{"term":"Ecommerce API","definition":"API to integrate Clover payment capabilities into your online or web-based applications. It provides endpoints for creating tokens, processing payments, and managing customer data. OAuth tokens are necessary for authentication and authorization.","_id":"66b1e216070411006f2430f7"},{"term":"REST API","definition":"API to build a browser-based integration that creates a secure connection to your website. It redirects a merchant from the Clover Merchant Dashboard to your website URL (link).","_id":"66b1e220501830000ff1fe30"},{"term":"Remote Pay","definition":"API that lets your point of sale (POS) system communicate with Clover payment devices. The Remote Pay SDK is used to semi-integrate a POS with a Clover device for card-present transactions. This allows merchants to process payments and perform operations through the cloud. The SDKs are available for different platforms, including Android and JavaScript.","_id":"66b1e2478171f6004bf55916"},{"term":"authenticator app","definition":"Mobile or desktop application that generates time-based or counter-based one-time passwords (OTPs) for secure two-factor authentication (2FA). You can download an authentication app from the relevant app store. Popular authenticator apps include Google Authenticator and Microsoft Authenticator.","_id":"66b1e2a2eb2473005274f428"},{"term":"QR code","definition":"Quick Response (QR) code. Type of two-dimensional barcode that stores data in a pattern of black and white squares. You can scan the QR code with a camera to quickly access information like URLs, contact details, or authentication keys. The QR code typically expires after a short period, usually around 5 minutes.","_id":"66b1e2d12ecf960059e5efed"},{"term":"Text code","definition":"Alphanumeric secret key that you enter manually into an authenticator app to generate a one-time password (OTP) for account verification. The text code does not expire, but the OTP generated from it is time-based and usually expires every 30 seconds.","_id":"66b1e2f761fda7001c880966"},{"term":"verification code","definition":"Time-based one-time password (OTP) generated after you scan a QR code or enter a text code in your authenticator app. You need to enter this 6-digit OTP to verify your identity when logging into the Global Developer Dashboard. The OTP usually expires every 30 seconds.","_id":"66b1e3324a8ed4000f0daec7"},{"term":"recovery codes","definition":"Alphanumeric backup verification codes generated when you add a new account to your authenticator app. Recovery codes let you access your account if you do not have your device.","_id":"66b1e3602a764500122160e0"},{"term":"Bearer token","definition":"Type of token used in the authorization header of an API request to authenticate the client making the request. It is typically included in the request header as follows: Authorization: Bearer \u003ctoken>. This token is a string that represents the user’s identity and permissions.","_id":"66b5d42a7b9c96003cfdd893"},{"term":"issuer","definition":"Financial institutions, such as a bank that issues a credit card to a consumer or business.","_id":"66cc08fa653916002083ca5e"},{"term":"payment processor","definition":"Technical intermediary, such as Fiserv or Clover, that securely handles transactions between a merchant and a customer by processing card or electronic payments.","_id":"66cc0bc88f93620042dd0995"},{"term":"OTP","definition":"Unique, temporary code used for a single login session or transaction. A one-time password (OTP) is generated after you scan a QR code in your authenticator app during account setup or use the authenticator. You need to enter the OTP to verify your identity when logging into the Global Developer Dashboard.","_id":"66cee8a5c5ffef0068e4d2e6"},{"term":"Ecommerce API key","definition":"Identifies the merchant who is tokenizing customers' cards. You can use the same static Ecommerce API key to tokenize multiple cards for that merchant. This is also known as the PAKMS key, as it is generated from the Public Access Key Management Service (PAKMS) using the [Ecommerce - PAKMS Service API](https://docs.clover.com/dev/reference/getapikey).","_id":"66d14c2122903b002598a48e"},{"term":"certificates","definition":"Certificates and profiles are essential for app development and distribution of the Apple Pay® service on a Clover Ecommerce integration. Certificates are digital documents that verify your identity as a developer. They are used to sign your apps and ensure they come from a trusted source.","_id":"66d5643fc8122b003172dd2b"},{"term":"payment gateway","definition":"Virtual equivalent of a physical credit and debit card reader. It transfers the data between the point of entry—either a terminal, website, or mobile device—to the payment processor to continue the payment lifecycle.","_id":"66e2bcaff0da2a006234a6ec"},{"term":"SCV","definition":"Security code value is a unique code used to validate and secure transactions for Clover native gift cards.","_id":"66e2bdb31e8238004781d0d9"},{"term":"hosted payment form","definition":"Secure way to accept ecommerce credit card payments without the need for a shopping cart. Clover hosts the form, so sensitive payment data does not pass through the merchant's system, reducing the PCI scope and minimizing merchant liability. You can implement payment forms using a standard template or customize it to fit the look and feel of the merchant's ecommerce website.","_id":"66e2bfa3053af00011eed401"},{"term":"non-native gift card","definition":"Gift cards managed through payment gateways other than Fiserv and do not use the Clover-integrated Gift Card Solution. May have a 4-8 digit foreign access code (FAC) for transactions and may not offer the same level of integration with the Clover POS system. While non-native gift cards can be used with Clover, they may require additional steps or configurations to process transactions.","_id":"66e7fe4fa9dfdf006733e303"},{"term":"FAC","definition":"Foreign access code value is used to process transactions for non-native gift cards on the Clover POS system.","_id":"66e800edfa09a8002580c72a"},{"term":"native gift card","definition":"Gift cards that use the Clover-integrated Gift Card Solution, managed through the Fiserv payment gateway. May have a 4-8 digit security card value (SCV). These non-expiring cards are fully integrated into the Clover POS system, allowing for seamless transactions and management.","_id":"66ea5afc09450f003cb42c5b"},{"term":"global developer platform","definition":"Provides an intuitive and seamless experience to create apps and integrations for different regions. With a single developer account, you can access both sandbox and production environments and switch between them effortlessly.","_id":"66f4d1d2cb8a1b005b10dc6c"},{"term":"promotional code","definition":"Unique values, usually alphanumeric, associated with a virtual gift card and sent by email, text, or through an app. The promotional or promo code is used to activate and redeem the virtual gift card.","_id":"66f4f3b6f110bb0025a0a546"},{"term":"denominated gift card","definition":"Cards with a specific value assigned to them at the time of purchase. For example, a gift card might be worth $25, $50, or $100. When a customer buys a denominated gift card, they know exactly how much value is on the card.","_id":"66f4f3ea859e85000f9ed42f"},{"term":"non-denominated gift card","definition":"Cards without a preset value at the time of purchase. The value is determined at the time of activation. The purchaser or recipient can choose the amount, depending on the terms set by the merchant.","_id":"66f4f4046297ad0045acd3d6"},{"term":"physical gift card","definition":"Tangible gift card that you can load and reload with an amount and use as a cash equivalent to make in-store and online purchases.","_id":"66f4f7abaf58cc002b79b897"},{"term":"Client ID","definition":"Uniquely identifies your app on the Clover App Market. This ID confirms that your app is participating in the OAuth 2.0 flow. Your client ID is the App ID value in your app's Settings page on the Developer Dashboard.\nUsage: type \u003c\u003cglossary:client ID>> in your documentation","_id":"66f4facbbbd52700616a927b"},{"term":"multi-factor authentication","definition":"Security process that requires two different forms of identification to verify a user’s identity, typically combining something you know, such as a password, with something you have, such as a mobile device.","_id":"66f4fafe5a175000440a84ad"},{"term":"multi-lock","definition":"Set aside and lock a specific amount from the available balance on a gift card for a specified time period. Multiple locks can be active simultaneously as long as there is a balance. The locked amount automatically unlocks when the specified time expires or upon request to unlock and redeem the amount.","_id":"66f4fb8c5a175000440a8522"},{"term":"cash out","definition":"Process of removing the remaining balance from a gift card, bringing the account balance to zero (0). The customer may receive the remaining balance in cash, or choose to cash out and deactivate the card or close the gift card account.","_id":"66f4fbe75a175000440a8626"},{"term":"virtual gift card","definition":"Unique code or number delivered to a recipient by email, text, or through an app. The virtual card number or promotional code is used for making purchases at online or brick-and-mortar retailers.","_id":"66f533e214205c0013756446"},{"term":"gift card","definition":"A gift card is a prepaid payment card used to make purchases at participating restaurants, stores, or online retailers.","_id":"67035f89dfe5db0036fe25c0"},{"term":"tokenization","definition":"Security measure that replaces a user's payment details, such as credit card numbers, expiration dates, and card verification values or codes, with non-specific IDs called tokens. Tokens are randomly generated when a customer provides their payment information at the point of sale (POS) or on an ecommerce website.","_id":"6703600f788acb004914bf49"},{"term":"split tender payment","definition":"Process of dividing or splitting a single transaction into multiple payment methods. For example, a customer can pay part of their bill with cash and the remaining balance with a credit card. This feature is useful when customers want to use more than one payment method to complete a purchase.","_id":"6704a45f98ee1b001138b598"},{"term":"Alternate Launch Path","definition":"Link (URL) or subpath for your app that you set on the Edit REST Configuration page for web apps. When a merchant accesses your app without installing it, the app redirects the merchant to this Alternate Launch Path, which then directs them to the Clover App Market to initiate the v2/OAuth flow. This Alternate Launch Path URL is required for the `/oauth/v2/authorize` flow, as it uses expiring tokens to authenticate with APIs, ensuring the merchant is properly authenticated and connected to your app.","_id":"670ca43ff504a7006e24bf8f"},{"term":"Site URL","definition":"Link (URL) for your app that you set on the Edit REST Configuration page for web apps. After a merchant installs your app and launches it from the Merchant Dashboard, they are redirected to the Site URL. The Clover server sends authenticated merchants to the Site URL through the `/oauth/authorize` flow, where they can log in or select their merchant account.","_id":"670cea1f32a444001e3c6c28"},{"term":"Redirect URI","definition":"Link (URL) that an app uses to redirect users after authentication using the OAuth flow. The `redirect_uri` parameter is used to specify a custom post-authorization landing page. This URL must be a subpath of the set Site URL for the app.","_id":"670de4f72e9c8d0054159324"},{"term":"code verifier","definition":"Cryptographically random string that a low-trust app needs to generate at the beginning of the authorization process. It is used to create a code challenge and is sent to the authorization server to verify the authorization request.","_id":"6710ce4aac89460069e91d4d"},{"term":"code challenge","definition":"Base64-URL-encoded string derived from the code verifier using a transformation method such as SHA-256. Code challenge is sent to the authorization server during the initial authorization request. It ensures that the app that initiated the request is the same app that is completing the request.","_id":"6710d1df81cc1d0010747535"},{"term":"Proof Key for Code Exchange","definition":"Extension to the OAuth 2.0 authorization code flow designed to enhance security, especially for public clients like mobile and single-page applications that cannot securely store the Client Secret. PKCE ensures that even if an authorization code is intercepted, it cannot be exchanged for tokens without the original `code_verifier`.","_id":"6710d771f898df00102583cc"},{"term":"MOTO","definition":"MOTO (Mail Order/Telephone Order) transactions are merchant-initiated, card-not-present (CNP) transactions in which customers provide their order and payment details by regular mail (not email), fax, or telephone. In these transactions, card information is captured, and payment is processed with the customer’s consent, even though the card is not physically present.","_id":"6719dd13e584590033ba710a"},{"term":"TransArmor token","definition":"Provides an additional layer of security to protect cardholder data during transactions and reduce the regeneration of payment tokens.","_id":"671a081299f628005be483be"},{"term":"high-trust app","definition":"Securely stores and uses the Client Secret (`app_secret`) and employs the standard authorization code flow to generate expiring authentication tokens.","_id":"6732ec60a401bd0010b56e4f"},{"term":"low-trust app","definition":"Mobile or single-page apps that cannot securely store the Client Secret (`app_secret`) and uses the authorization code flow with Proof Key for Code Exchange (PKCE) to enhance security during token acquisition.","_id":"6732ec9383f7fa0076fa09c1"},{"term":"Revenu Québec","definition":"Agency of the government of the Province of Quebec, Canada. It collects taxes to fund public services, ensures that all citizens pay their fair share, and administers programs.","_id":"673d5d38d27f0b00199187cb"},{"term":"Developer Dashboard","definition":"All new apps for merchants in North America, Europe, and Latin America, and Asia Pacific are created on the Global Developer Dashboard.","_id":"68b817c046898ec8f853f343"}],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"healthCheck":{"provider":"statusPage","settings":{"page":"3s40xjwbpcq5","status":false,"url":""}},"i18n":{"defaultLanguage":"en","languages":["en"],"state":"enabled"},"intercom":"","is_active":true,"internal":"","jwtExpirationTime":0,"landing_bottom":[{"text":"Create an Android app or web app that uses Clover's REST API to provide merchants with help to run their business.","title":"Assist merchants with their business","alignment":"left","type":"text"},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"Partner Integration","text":"Clover hardware is world class. Use it to create a custom, end-to-end payment and POS solution that showcases your brand.\n\nSee [clover connect](https://integrate.clover.com/) for more information.","mediaImage":["https://files.readme.io/cd3c926-clover_partner_solutions.png","clover partner solutions.png",1892,1380,"#cdcccb"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"","mediaImage":["https://files.readme.io/f2b3e2d-clover_connect.png","clover connect.png",2382,1654,"#d8d8d1"],"text":"Elevate your application with efficient integrations, support — and now even devices to complete your platform.\n\nSee [clover connect](https://integrate.clover.com/) to learn more."},{"type":"text","alignment":"left","title":"Integrate with Clover's payments platform","text":"If your app needs to process payments, choose one of the following options as your starting point."},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"First steps","text":"If your app just needs to take a payment, this tutorial will show you how.\nhttps://youtu.be/H5um4biZbaw\n\nThe REST Pay API allows developers familiar with the Ecommerce API to quickly add an in-person payment option to their app.\n\n* REST Pay Display provides a simple bridge between your point-of-sale system and a Clover Flex or Clover Mini. \n* A REST integration is the quickest way to begin taking payments on a Clover device. \n* Any POS application capable of making HTTP requests can use REST Pay to take card-present payments. \n* A retailer can take any type of standard card-present payments after your POS app is integrated with REST Pay.","mediaImage":["https://files.readme.io/663c6d7-REST_Pay_API.png","REST Pay API.png",2000,1216,"#dcdddc"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"Semi-integration","text":"Your POS is already used and loved by your merchants, and you want to add a Clover device to make the customer experience great too.\n\nCheck out [Semi-integration basics](docs/clover-development-basics-semi) to learn more.","mediaImage":["https://files.readme.io/a0968e7-semi_integration.png","semi integration.png",2144,1452,"#f1f1f1"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"Full integration","text":"Use Clover hardware to build a fully featured payments app with Android.\n\nCheck out [Build with Android](https://docs.clover.com/docs/clover-development-basics-android) to learn more.","mediaImage":["https://files.readme.io/2ef6aa5-clover-full_integration.png","clover-full integration.png",2744,718,"#d5cba1"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","mediaImage":["https://files.readme.io/f908719-Clover_REST_API.png","Clover REST API.png",2462,1602,"#c3c5c6"],"title":"Build","text":"Use the REST API to convert everyday business data into insights merchants can use."},{"type":"links","alignment":"left"},{"type":"docs","alignment":"left","pageType":"Documentation"}],"mcp":{"state":"disabled"},"mdxishMigrationStatus":{"migratedFrom":"rdmd"},"metrics":{"thumbsEnabled":true,"enabled":false,"monthlyLimit":0,"planLimit":1000000,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"suggested_edits":false,"discuss":false,"reference":true,"examples":true,"docs":true,"landing":false,"changelog":true,"logs":false,"custompages":false,"tutorials":true,"graphql":false},"name":"Clover Platform Docs","nav_names":{"discuss":"","reference":"","docs":"","changelog":"API Changelog","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":true,"api":true,"logs":true,"domain":true,"metricsSDK":false,"aiReady":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"id":"614230303827d8006b4d2e55","email":null,"name":null},"plan":"enterprise","planOverride":"enterprise","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":true,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":true,"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":true,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"percentScore":50,"totalScore":180},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":true,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"seo":{"overwrite_title_tag":false},"ssl":{"minTLS":"1.0"},"stable":{"_id":"5b315d5518ee180003969187","project":"5b05c1655f9a0d00039a8ae4","createdAt":"2018-06-25T21:23:33.924Z","releaseDate":"2018-06-25T21:23:33.924Z","categories":["5b315d5518ee180003969188","5b315d5518ee180003969189","5b315d5518ee18000396918a","5b315d5518ee18000396918b","5b315d5518ee18000396918c","5b315d5518ee18000396918d","5b315d5518ee18000396918e","5b6a2983402b32000336c433","5b7c743ca6bfa600037d807d","5b920d510cb605000312f572","5ba55fbec7336b000348ef9b","5ba5e53e6ddff700030be197","5ba906d998ba74000325844b","5ba909a895e6a30003c43428","5ba94fb746fe180003bbb640","5ba94fd846fe180003bbb644","5ba950de99f4820003bf49ae","5baab11602675500038e2cf6","5baab179dddbf3000332189d","5baab2c402675500038e2d18","5baab3581bbaed0003fee9d9","5bc76bae647467004ac970e3","5bc786c3b194b9002b521599","5bc786f74e0881001303f675","5bc7871a4ca7da015b699655","5bc78751cb227e0032208d61","5bc7972ab40831004fe09345","5bc79768046ef7001ede489f","5bc797927cf8fa00447c9344","5bc798bd1a96c100f4f4cd58","5bc798d69eaf14000dfe9fa9","5bc7c5baa5dd63003781c73b","5bdcbda991e8780018ab3117","5bdcbdc25fb4b50031cebc31","5bdcbe015fb4b50031cebcfc","5bdcc2f8ea37cd003e8b0148","5bdd2382e87c650062d948bb","5bdd23ac7fdf64001e389a99","5bdd24896f3ba90013ee8342","5bde03277fdf64001e38bcba","5bde03456ff3e8000d1b5695","5be49270f2a711038ea38f9c","5be49672089736002930b4f9","5bff0bf8aed5310175fc418f","5bff0c938d5b6a0049e4708a","5bff0d02aed5310175fc4262","5bff13b48f0af00385bed700","5cbff29efb86e10042827418","5cbff3459590bd002c9ffb89","5cbff35facc2840051a7f40e","5cbff3a7eff4f6000eb97a3c","5cbff4e6c4a1750045c8ef63","5cbff511a5c99200195e7cc1","5cc0cad88b6f7e003d13090d","5cc0cb24cee7c30063e37a0e","5e0fc06313523805823744ac","5e3da5c5266513029cc26f9b","5e3da603b50f81001259966f","5e3da65404ccd2004599354f","6046893c88c08001162aee5b","606c6b057e15e6027b80e4a2","60c8c6b6992f70000ffd1974","6111600e25224f0023d837fe","61a6bc3df9bbeb005f32fa22","61e06692c0a24206af5e0fc9","61e067d7a66fb8003ebf4ea6","61fc1dbd3aee840039bd34d0","61fc48d8289d1400100cf03c","61fd687398a6f5003fa245a0","61fd744da94a8800297e8a25","61fd74adf9bc83002970437c","61fd75023f98c500506ab1a6","61fdc4809f8d98028fa96159","623deea3d5f1f6058a4471a1","62ab5f9a0af2ca001c53228c","62f13db0c7cd4c09510ebf40","62f31b0e4d5a30001d46678f","62f31ef6834269002714d163","62f3249e02e948005e8a7dec","62f3251361526f0013b12af2","62f53e548a47c900373b8030","62f54ed763f320008dc93292","62f550209876a5001d0c9810","62fa8207df8921002abb6684","6368ac3ce65560007edf57d3","636b7d3a65af28002db3d4e8","636b7f1b458073004dc7ec83","636b7fb877f20f055459041b","636b8087162e8502403161a8","636b80eb0daf6c04c689398a","636b8184cd162105f6a24117","6376b401081e400003bab66e","6380c915c536c100469c95ec","638727e2b0b670000f59e2db","638aa2c176938300348551e3","638aa31084ff7a003375961c","638aa37a90a346003a6d80cb","638aaec6c6522e00242133b0","639a544141b44e00184c3c04","639afeb42afa3e004dd3de02","63e5e3e58de7b50057f48c9b","64078c8a54e610001147f64d","64c74fe80040d20040043972","64d363fd3090ff0050815bf3","6513b6dc1ec71f004b75c24e","659637d3dfae32002385514f","659638b759408a000ff5edfb","65bb718d07848d000f10506a","66062cf584f7da005bb516b0","6619db326b9040002909faa0","66221400e36088005157de0c","66ac1e906adcda0010d5ce02","66ac2519485c6000126ac403","66b33df521c3760050a8f16a","66b33e726c773d0025da8602","66b3409196a12b00196e031c","66b354359c0de0001e2f09a0","66b38e62c98322002576ed67","66b5b0c041d427001927f7be","66b5b0c141d427001927f7c0","66b63c35b1557b0070f77916","66db3ddaf9963b006395838b","66db41183fba840019b0ca75","66e00f9085df450014a2d147","66f10cf5374b01004f942899","66f2d4d9d5d737001020a923","66f3a9ba322cea0018fde133","66f3a9d154d17c0062d78d84","66f3a9f5d706bf002ac39a95","66f3aa067fb26f0030dacac0","6715eb8f33aaba003dbbf9c6","672874814d4f0d005f65ad4a","67296b897da80800413ba43d","675665f2f780f952a053fb9e","67625efe27a579002c113240","678ace9ea52e05003d80b7a4","67ad85632688620055ac4da9","67ecc36c2cb13d0052056a6c","682adeeceb4a24004bdf3f28","68406c700891dd001901da4b","68407bbbea761f0012f3c5ae","684134b3ceba690045132640"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"published","version_clean":"3.0.0","version":"3","__v":59,"updatedAt":"2026-04-27T21:13:20.358Z","pdfStatus":"complete","apiRegistries":[{"filename":"ecommerce-service-api.json","uuid":"1ghuo735mo0c7s9y"},{"filename":"pakms-service-api.json","uuid":"1rx21cm17gb4hi"},{"filename":"clover-card-present-rest-api.json","uuid":"adhg9modeou8f"},{"filename":"ecommerce-recurring-apis.json","uuid":"6xtc173lp73m9ra"},{"filename":"platform-api.json","uuid":"1836s2z4smohp2458"},{"filename":"multiple-service-charge-msc-pilot-apis-k3c.json","uuid":"17440ljmod6cyth"},{"filename":"card-tokenization-service-api.json","uuid":"rna2jl2qm22yvxhu"},{"filename":"transarmor-tokenization-api.json","uuid":"6cii1vmebu3a6t"},{"filename":"ach-tokenization-service-api.json","uuid":"26fy2892fm22ymtc3"},{"filename":"gift-card-tokenization-service-api.json","uuid":"3yii2i91jm22yqbyg"},{"filename":"apple-pay-tokenization-api.json","uuid":"4qb8um38pn2nj"},{"filename":"invoiceapi.json","uuid":"jqf81pm61abo6f"}],"source":"readme"},"subdomain":"clover-platform","subpath":"dev","topnav":{"edited":true,"right":[{"type":"user"}],"left":[{"type":"url","text":"Release Notes","url":"https://docs.clover.com/docs/whats-new"},{"type":"url","text":"Announcements","url":"https://docs.clover.com/dev/docs/release-notes-announcements"},{"type":"url","text":"Blog","url":"https://medium.com/clover-platform-blog"},{"type":"url","text":"FAQ","url":"https://docs.clover.com/dev/docs/faqs"},{"type":"url","url":"https://docs.clover.com/dev/docs/developer-technical-support","text":"Support"}],"bottom":[]},"trial":{"trialDeadlineEnabled":false,"trialEndsAt":"2024-08-15T16:40:46.201Z"},"translate":{"languages":[],"provider":"transifex","key_public":"","org_name":"","project_name":"","show_widget":false},"url":"docs.clover.com","versions":[{"_id":"5b315d5518ee180003969187","project":"5b05c1655f9a0d00039a8ae4","createdAt":"2018-06-25T21:23:33.924Z","releaseDate":"2018-06-25T21:23:33.924Z","categories":["5b315d5518ee180003969188","5b315d5518ee180003969189","5b315d5518ee18000396918a","5b315d5518ee18000396918b","5b315d5518ee18000396918c","5b315d5518ee18000396918d","5b315d5518ee18000396918e","5b6a2983402b32000336c433","5b7c743ca6bfa600037d807d","5b920d510cb605000312f572","5ba55fbec7336b000348ef9b","5ba5e53e6ddff700030be197","5ba906d998ba74000325844b","5ba909a895e6a30003c43428","5ba94fb746fe180003bbb640","5ba94fd846fe180003bbb644","5ba950de99f4820003bf49ae","5baab11602675500038e2cf6","5baab179dddbf3000332189d","5baab2c402675500038e2d18","5baab3581bbaed0003fee9d9","5bc76bae647467004ac970e3","5bc786c3b194b9002b521599","5bc786f74e0881001303f675","5bc7871a4ca7da015b699655","5bc78751cb227e0032208d61","5bc7972ab40831004fe09345","5bc79768046ef7001ede489f","5bc797927cf8fa00447c9344","5bc798bd1a96c100f4f4cd58","5bc798d69eaf14000dfe9fa9","5bc7c5baa5dd63003781c73b","5bdcbda991e8780018ab3117","5bdcbdc25fb4b50031cebc31","5bdcbe015fb4b50031cebcfc","5bdcc2f8ea37cd003e8b0148","5bdd2382e87c650062d948bb","5bdd23ac7fdf64001e389a99","5bdd24896f3ba90013ee8342","5bde03277fdf64001e38bcba","5bde03456ff3e8000d1b5695","5be49270f2a711038ea38f9c","5be49672089736002930b4f9","5bff0bf8aed5310175fc418f","5bff0c938d5b6a0049e4708a","5bff0d02aed5310175fc4262","5bff13b48f0af00385bed700","5cbff29efb86e10042827418","5cbff3459590bd002c9ffb89","5cbff35facc2840051a7f40e","5cbff3a7eff4f6000eb97a3c","5cbff4e6c4a1750045c8ef63","5cbff511a5c99200195e7cc1","5cc0cad88b6f7e003d13090d","5cc0cb24cee7c30063e37a0e","5e0fc06313523805823744ac","5e3da5c5266513029cc26f9b","5e3da603b50f81001259966f","5e3da65404ccd2004599354f","6046893c88c08001162aee5b","606c6b057e15e6027b80e4a2","60c8c6b6992f70000ffd1974","6111600e25224f0023d837fe","61a6bc3df9bbeb005f32fa22","61e06692c0a24206af5e0fc9","61e067d7a66fb8003ebf4ea6","61fc1dbd3aee840039bd34d0","61fc48d8289d1400100cf03c","61fd687398a6f5003fa245a0","61fd744da94a8800297e8a25","61fd74adf9bc83002970437c","61fd75023f98c500506ab1a6","61fdc4809f8d98028fa96159","623deea3d5f1f6058a4471a1","62ab5f9a0af2ca001c53228c","62f13db0c7cd4c09510ebf40","62f31b0e4d5a30001d46678f","62f31ef6834269002714d163","62f3249e02e948005e8a7dec","62f3251361526f0013b12af2","62f53e548a47c900373b8030","62f54ed763f320008dc93292","62f550209876a5001d0c9810","62fa8207df8921002abb6684","6368ac3ce65560007edf57d3","636b7d3a65af28002db3d4e8","636b7f1b458073004dc7ec83","636b7fb877f20f055459041b","636b8087162e8502403161a8","636b80eb0daf6c04c689398a","636b8184cd162105f6a24117","6376b401081e400003bab66e","6380c915c536c100469c95ec","638727e2b0b670000f59e2db","638aa2c176938300348551e3","638aa31084ff7a003375961c","638aa37a90a346003a6d80cb","638aaec6c6522e00242133b0","639a544141b44e00184c3c04","639afeb42afa3e004dd3de02","63e5e3e58de7b50057f48c9b","64078c8a54e610001147f64d","64c74fe80040d20040043972","64d363fd3090ff0050815bf3","6513b6dc1ec71f004b75c24e","659637d3dfae32002385514f","659638b759408a000ff5edfb","65bb718d07848d000f10506a","66062cf584f7da005bb516b0","6619db326b9040002909faa0","66221400e36088005157de0c","66ac1e906adcda0010d5ce02","66ac2519485c6000126ac403","66b33df521c3760050a8f16a","66b33e726c773d0025da8602","66b3409196a12b00196e031c","66b354359c0de0001e2f09a0","66b38e62c98322002576ed67","66b5b0c041d427001927f7be","66b5b0c141d427001927f7c0","66b63c35b1557b0070f77916","66db3ddaf9963b006395838b","66db41183fba840019b0ca75","66e00f9085df450014a2d147","66f10cf5374b01004f942899","66f2d4d9d5d737001020a923","66f3a9ba322cea0018fde133","66f3a9d154d17c0062d78d84","66f3a9f5d706bf002ac39a95","66f3aa067fb26f0030dacac0","6715eb8f33aaba003dbbf9c6","672874814d4f0d005f65ad4a","67296b897da80800413ba43d","675665f2f780f952a053fb9e","67625efe27a579002c113240","678ace9ea52e05003d80b7a4","67ad85632688620055ac4da9","67ecc36c2cb13d0052056a6c","682adeeceb4a24004bdf3f28","68406c700891dd001901da4b","68407bbbea761f0012f3c5ae","684134b3ceba690045132640"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"published","version_clean":"3.0.0","version":"3","__v":59,"updatedAt":"2026-04-27T21:13:20.358Z","pdfStatus":"complete","apiRegistries":[{"filename":"ecommerce-service-api.json","uuid":"1ghuo735mo0c7s9y"},{"filename":"pakms-service-api.json","uuid":"1rx21cm17gb4hi"},{"filename":"clover-card-present-rest-api.json","uuid":"adhg9modeou8f"},{"filename":"ecommerce-recurring-apis.json","uuid":"6xtc173lp73m9ra"},{"filename":"platform-api.json","uuid":"1836s2z4smohp2458"},{"filename":"multiple-service-charge-msc-pilot-apis-k3c.json","uuid":"17440ljmod6cyth"},{"filename":"card-tokenization-service-api.json","uuid":"rna2jl2qm22yvxhu"},{"filename":"transarmor-tokenization-api.json","uuid":"6cii1vmebu3a6t"},{"filename":"ach-tokenization-service-api.json","uuid":"26fy2892fm22ymtc3"},{"filename":"gift-card-tokenization-service-api.json","uuid":"3yii2i91jm22yqbyg"},{"filename":"apple-pay-tokenization-api.json","uuid":"4qb8um38pn2nj"},{"filename":"invoiceapi.json","uuid":"jqf81pm61abo6f"}],"source":"readme"}],"variableDefaults":[{"source":"security","_id":"62e9b1eea177a30276e94d80","name":"BearerAuth","type":"http","apiSetting":"62e2b636fa1eee00872167ef"},{"source":"security","_id":"62ebf0918a8c490783ba3e62","name":"bearerAuth","type":"http","apiSetting":"62d70a619e87be00146d7d6e"},{"type":"","source":"","_id":"631109ebe868a2002148959f","name":"","default":""},{"source":"security","_id":"63fdd5805f536e0d5a8e0335","name":"OAuth2","type":"oauth2","apiSetting":"63fdd57f5f536e0d5a8e032d"},{"source":"security","_id":"6452212ec5886b14a0588915","name":"access_token","type":"apiKey","apiSetting":"6452212dc5886b14a0588913"},{"type":"","source":"server","_id":"64d3fc6b8dba8a005f24000b","name":"protocol","default":"https","apiSetting":"64c40c6f0a747f006a6f42a6"},{"type":"","source":"server","_id":"64d3fc6b8dba8a005f24000a","name":"environment","default":"sandbox.dev.clover.com","apiSetting":"64c40c6f0a747f006a6f42a6"},{"source":"security","_id":"65080d1adfa92402085ec8a6","name":"sessionToken","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"65080d1adfa92402085ec8a5","name":"X-Clover-Auth-Token","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"65080d1adfa92402085ec8a4","name":"internalSession","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"66600d4d0c47bb0012000998","name":"oauth2","type":"oauth2","apiSetting":"66600d4c0c47bb0012000995"},{"apiSetting":"695423821925250441ae7c29","name":"Authorization","source":"security","type":"apiKey","_id":"695423831925250441ae7caf"},{"apiSetting":"695423821925250441ae7c29","name":"X-Session-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb0"},{"apiSetting":"695423821925250441ae7c29","name":"X-Device-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb1"},{"apiSetting":"695423821925250441ae7c29","name":"X-Internal-Session-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb2"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Session-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24041"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Device-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24042"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Internal-Session-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24043"}],"webhookEnabled":false},"custom_domain":"docs.clover.com","childrenProjects":[],"derivedPlan":"enterprise","description":"","hstsIncludeSubdomains":false,"planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"canceled","shouldGateDash":false,"isExternalSnippetActive":false,"error404":"","first_page":"landing","flags":{"allowReusableOTPs":false,"alwaysShowDocPublishStatus":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"allowXFrame":false,"apiAccessRevoked":false,"correctnewlines":false,"customComponents":false,"dashReact":true,"developerPortal":false,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"disableAutoTranslate":false,"disableSAMLScoping":false,"disableSignups":false,"enableOidc":false,"enterprise":true,"graphql":false,"mdx":false,"newEditorDash":true,"oauth":false,"passwordlessLogin":"default","owlbotAi":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":false,"star":false,"staging":false,"superHub":true,"superHubDevelopment":false,"translation":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"dryRunMigration":false,"aiDocsAudit":false,"aiPageLinting":false,"bidiSyncGitlabSelfServe":false,"disableAiChat":false,"gitTranslations":false,"githubCloudSync":false,"superHubBranchMergeRules":true,"superHubBranchReviewActions":false,"gitlabCloudSync":false,"bidiSyncBitbucketSelfServe":false,"superHubPlanManagement":false,"disableSuperframe":false,"gittoUseNewIndexer":true,"hideAiFeatures":false,"mdxSanitizeComments":false,"mdxish":true,"mdxishEditor":true,"bidiSyncUseOdbAlternates":true,"aiWriter":false,"googleAuthEnabled":false,"mcpMetrics":false,"newDereferencer":false,"newIframeStructure":false,"prefetch":false,"streamingSsr":false,"superHubBranchReviewDashboard":true,"gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"newExplorerReducer":false,"superHubNotifications":false,"superHubTypography":false,"askAiOverride":"","superHubSlack":false,"aiDiscovery":false,"aiTranslation":false,"customDomainAdminBypass":false,"jwtReplacePermissions":false,"mcpOauth":false,"branchTaggedReviewers":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"superHubUiTesting":true,"allow_hub2":false,"cookieAuthentication":false,"hideGoogleAnalytics":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"newApiExplorer":true,"newEditor":true,"newMarkdownBetaProgram":true,"newSearch":true,"oldMarkdown":false,"speedyRender":false,"swagger":false,"tutorials":true,"allowApiExplorerJsonEditor":false,"useReactApp":true,"newHeader":false,"referenceRedesign":false,"auth0Oauth":false,"allowReferenceUpgrade":true,"metricsV2":true,"enableRealtimeExperiences":false,"allowDarkMode":false,"forceDarkMode":false,"useReactGLP":false,"personalizedDocs":false,"myDevelopers":false,"developerDashboard":false,"dashHomeRefresh":false,"apiV2":false,"git":{"read":false,"write":false},"superHubBeta":false,"dashQuickstart":false,"customBlocks":false,"devDashHub":false,"billingRedesignEnabled":true,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableSuggestedEdits":false},"fullBaseUrl":"https://docs.clover.com/dev","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:25.037Z","start":"2026-03-24T12:06:24.573Z","status":"successful"},"transformation":{"end":"2026-03-24T12:07:17.857Z","start":"2026-03-24T12:06:48.955Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:07:22.849Z","start":"2026-03-24T12:07:22.373Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T23:43:04.952Z","status":"successful","end":"2026-03-24T23:43:04.953Z"}},"sync":{"linked_repository":{"provider_type":"github","linked_at":"2026-05-01T18:52:05.943Z","linked_by":"[email protected]","error":{},"privacy":{"visibility":"private","private":true},"name":"clover-devdocs","full_name":"clover/clover-devdocs","url":"https://github.com/clover/clover-devdocs","id":"1226709745","connection":"69f4f43d8ffa1312ca26e6cf"},"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"glossaryTerms":[{"term":"3DS","definition":"3DS protocol uses a three-domain model to add an extra layer of security between the financial authorization process and the online authentication process. The three domains are as follows: 1. Issuer domain: Financial institution (FI) or bank that issued the card used for the transaction. 2. Acquirer domain: Merchant that accepts online payments from customers. 3. Interoperability domain: 3DS infrastructure platform is the secure intermediary that facilitates communication between the customer and the merchant.","_id":"673d8fedbbac4c001027014d"},{"term":"AID","definition":"Application Identifier. An identifier stored on the chip and terminal. It is used to identify mutually supported applications.","_id":"673d8ffd54aa2a00300c8153"},{"term":"Alternate Launch Path","definition":"Link (URL) path for your app that you enter on the Edit REST Configuration page for web apps. This path uses the same base domain as the Site URL. The alternate launch path is required when OAuth is initiated from the left navigation menu in the Merchant Dashboard or directly from the Clover App Market. After Clover redirects merchants to your app, your app must initiate the OAuth flow by calling the `/v2/authorize` endpoint.","_id":"673d9020216993003780b57c"},{"term":"Android ABI","definition":"Android ABI (Application Binary Interface) defines how an application's machine code interacts with the system at runtime. It specifies details such as the CPU instruction set, endianness of memory stores and loads, conventions for passing data between applications and the system, and the format of executable binaries.","_id":"673d902cda33e30053bc5c7f"},{"term":"Android Payment API","definition":"Intent-based API used in applications running on Clover devices for executing payment transaction requests. It supports payment operations, including payments, preauthorizations, and payment reversals (void/refund), using Android Intent Builders.","_id":"673d90386bf20f006079d1dc"},{"term":"Android SDK","definition":"SDK to build apps that run on Clover devices and publish your apps on the Clover App Market. It is also used for semi-integration with a Clover device, enabling a third-party point of sale (POS) system to use Clover for processing payments.","_id":"673d9044e8d62f00431f7200"},{"term":"Android Virtual Device","definition":"AVD is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator. An AVD contains a hardware profile, system image, storage area, skin, and other properties.","_id":"673d9056ea642800216cdaaa"},{"term":"Announcements","definition":"Information on new launches, features, timelines, and notices for developers.","_id":"673d9098bbac4c001027016d"},{"term":"API changelog","definition":"Monthly updates related to API changes.","_id":"673d90aaa085000030547ef2"},{"term":"API docs and SDK guides","definition":"Resources needed to work with the Clover app and integration platforms.","_id":"673d90bd8d8ee100686ff678"},{"term":"API level","definition":"Each Android version corresponds to a specific API level. For example, Android 11 corresponds to API level 30, Android 10 to API level 29, and so on. The API level precisely identifies the version of the API set that your app can call into. It defines the combination of manifest elements, permissions, and other features that you can use as a developer.","_id":"673d90c891bf64002a9f63f7"},{"term":"Auth","definition":"Authorization (Auth) is a tip-adjusted sale. This type of transaction is typically used by restaurants and services establishments.","_id":"673d90d37bd1cf0019a275c7"},{"term":"authenticator app","definition":"Mobile or desktop application that generates time-based or counter-based one-time passwords (OTPs) for secure multi-factor authentication (MFA). You can download an authentication app, such as Google Authenticator or Microsoft Authenticator, from the relevant app store.","_id":"673d91114f9f5c0012f565a7"},{"term":"Bearer token","definition":"Type of token used in the authorization header of an API request to authenticate the client making the request. It is typically included in the request header as follows: Authorization: Bearer \u003ctoken>. This token is a string that represents the user’s identity and permissions.","_id":"673d91227bd1cf0019a2761f"},{"term":"billable merchant","definition":"Active merchant accounts with Clover. These are not test merchant or demo accounts and are not suppressed for billing.","_id":"673d91348d8ee100686ff685"},{"term":"blackhole payment gateway","definition":"Default gateway for test merchant accounts in the Clover sandbox environment. It sets all transactions to be successful and suffices for most development use cases.","_id":"673d914a91bf64002a9f6493"},{"term":"Bug fixes","definition":"Monthly updates on the latest bug fixes across the Clover developer platform.","_id":"673d9166bbac4c00102701d3"},{"term":"card-on-file","definition":"Card-on-file (COF) transactions are payments in which the cardholders have authorized merchants to store their credit or debit card information to use for future purchases or recurring payments.","_id":"673d9176da33e30053bc5dd1"},{"term":"card tokenization","definition":"Faud-prevention measure that replaces sensitive payment credentials, such as credit card numbers, cardholder names, expiration dates, and CVV codes with non-specific identifiers known as tokens. These tokens are used for subsequent transactions, allowing secure storage and processing of payment information.","_id":"673d918054aa2a00300c8180"},{"term":"Card track data","definition":"Information encoded on a payment card's magnetic stripe or chip. The data is used to authorize and process transactions.","_id":"673d919554aa2a00300c81ea"},{"term":"cash out","definition":"Process of removing the remaining balance from a gift card, bringing the account balance to zero (0). The customer may receive the remaining balance in cash, or choose to cash out and deactivate the card or close the gift card account.","_id":"673d91b3e0af860036ad2172"},{"term":"certificates","definition":"Certificates and profiles are essential for app development and distribution of the Apple Pay® service on a Clover Ecommerce integration. Certificates are digital documents that verify your identity as a developer. They are used to sign your apps and ensure they come from a trusted source.","_id":"673d91d05db0190019bd08df"},{"term":"challenge flow","definition":"For card-not-present (CNP) payments, challenge flow indicates that the financial institution (FI) or issuer requires more evidence to verify the legitimacy of the transaction. In the challenge flow, the customer must provide extra information to authenticate the payment, such as a password or a one-time code that the card issuer sends to their mobile device.","_id":"673d91e18d8ee100686ff7b1"},{"term":"Client ID","definition":"Unique identifier for your app on the Clover App Market. Used to identify your app when making API requests to Clover. It helps Clover recognize which app is making the request and ensures that the app has the necessary permissions to access the requested resources. Your Client ID is the App ID value in your app's Settings page on the Developer Dashboard.","_id":"673d920fa0a15d006035e273"},{"term":"closeout","definition":"Process of closing your open batch of transactions and submitting it for clearing, settlement, and funding.","_id":"673d9905da33e30053bc78c6"},{"term":"Clover APK","definition":"Android application package (APK) created for integration with Clover merchant services and point of sale (POS) systems. Developers must design, generate, and register their APK following Clover standards. Once approved, the APK is submitted for distribution on Clover devices, ensuring it meets the necessary guidelines for proper installation and functionality on the hardware.","_id":"673d9977bbac4c0010270eb4"},{"term":"Clover Community","definition":"Online forum for developers to ask questions and get help with the Clover API.","_id":"673d9988a08500003054a420"},{"term":"Clover Connector SDK","definition":"Provides an interface that allows external point of sale (POS) systems to access the same payment functions as PaymentConnector, such as sales and refunds. It also offers additional features like custom receipts and Android activities. The SDK is available for four platforms: Android, iOS, JavaScript, and .NET.","_id":"673d998ef090bf003e28b229"},{"term":"Clover Go reader","definition":"EMV-capable device that pairs with an Apple (iOS®) and Android smartphone or tablet. The reader allows iOS and Android mobile apps to accept swipe, NFC, or EMV transactions with no EMV certification required at the merchant's end. Clover Go reader accepts chip, dip, and contactless payments, including Tap-to-Pay on iPhone, Apple Pay®, Google Pay™ and Samsung Pay®.","_id":"673d999f98b87a00571c2cd9"},{"term":"Clover ID","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. This identifier displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and also on the Merchant Dashboard > User Settings page below the merchant name. It also displays in the URL (link) of the Clover Merchant Dashboard. Example: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. Format: 13-alphanumeric","_id":"673d99ae4529f8000fd3e1d3"},{"term":"Code and sample apps","definition":"Resources on GitHub to help get started with the Clover APIs.","_id":"673d99b8ea642800216d0571"},{"term":"code challenge","definition":"Base64-URL-encoded string derived from the code verifier using a transformation method such as SHA-256. Code challenge is sent to the authorization server during the initial authorization request. It ensures that the app that initiated the request is the same app that is completing the request.","_id":"673d99c2204ee80045357003"},{"term":"code verifier","definition":"Cryptographically random string that a low-trust app needs to generate at the beginning of the authorization process. It is used to create a code challenge and is sent to the authorization server to verify the authorization request.","_id":"673d99d191bf64002a9f8216"},{"term":"CORS","definition":"Security feature that allows web pages to request resources from different origins, controlled through HTTP headers.","_id":"673d99e1e88e42003ebe326c"},{"term":"denominated gift card","definition":"Cards with a specific value assigned to them at the time of purchase. For example, a gift card might be worth $25, $50, or $100. When a customer buys a denominated gift card, they know exactly how much value is on the card.","_id":"673d99e916f16000112f6f9b"},{"term":"Developer Dashboard","definition":"If you are creating new apps, log in to the Global Developer Dashboard. If you are managing apps previously created on the legacy developer platform, continue using the Developer Dashboard based on your merchant's region.","_id":"673d9a047053dd000f43a0f2"},{"term":"developer platform","definition":"Open platform for third-party developers to build apps and integrate external point-of-sale systems with Clover devices. Create new apps on the global developer platform through the Global Developer Dashboard.","_id":"673d9a0a7ab0410068f93c71"},{"term":"Device Manager","definition":"Android Studio tool for creating and managing an Android Virtual Device (AVD).","_id":"673d9a15216993003780ce8f"},{"term":"DPI","definition":"DPI (dots per inch) is the pixel density, that is the number of pixels within a physical area of the screen. DPI is different from the screen resolution, which is the total number of pixels on a screen.","_id":"673d9a1f5db0190019bd13dc"},{"term":"Ecommerce API key","definition":"Identifies the merchant who is tokenizing customers' cards. You can use the same static Ecommerce API key to tokenize multiple cards for that merchant. This is also known as the PAKMS key, as it is generated from the Public Access Key Management Service (PAKMS) using the [Ecommerce - PAKMS Service API](https://docs.clover.com/dev/reference/getapikey).","_id":"673d9be7e88e42003ebe330c"},{"term":"Ecommerce API","definition":"API to integrate Clover payment capabilities into your online or web-based applications. It provides endpoints for creating tokens, processing payments, and managing customer data. OAuth tokens are necessary for authentication and authorization.","_id":"673d9bf11aaaa0005430f26f"},{"term":"EMV","definition":"EMV cards are smart cards, also called chip cards, integrated circuit cards, or IC cards. They store their data on integrated circuit chips in addition to a magnetic stripe. EMV stands for Europay, Mastercard, and Visa, the three companies that created the specifications to facilitate worldwide interactions and acceptance of secure payments.","_id":"673d9bfe68c269003c38a68a"},{"term":"EMVCo","definition":"Consortium with equal control among American Express, China UnionPay, Discover, JCB, Mastercard, and Visa. EMVCo creates and manages EMV® Specifications and programs that enable seamless and secure card-based payments for businesses and consumers worldwide.","_id":"673d9c062b1c2c001fb7f364"},{"term":"Environment variables","definition":"A set of key-value pairs that a running process can access during runtime. These variables can be used to configure and adjust the behavior of the app or system, and they can vary between different execution environments.","_id":"673d9c3857fdbd003d772831"},{"term":"FAC","definition":"Foreign access code value is used to process transactions for non-native gift cards on the Clover point of sale system.","_id":"673d9c417ab0410068f93ede"},{"term":"frictionless flow","definition":"For card-not-present (CNP) payments, frictionless flow refers to a seamless process where the financial institution (FI) or issuer can verify the legitimacy of a transaction without requiring additional input from the cardholder. This behind-the-scenes verification lets customers complete their purchases without any noticeable interruptions or authentication steps.","_id":"673d9c60dcf4bc00436cef7e"},{"term":"gift card","definition":"A gift card is a prepaid payment card used to make purchases at participating restaurants, stores, or online retailers.","_id":"673d9c69cbad42003c236e58"},{"term":"global developer platform","definition":"Provides an intuitive and seamless experience to create apps and integrations for different regions. With a single developer account, you can access both sandbox and production environments and switch between them effortlessly.","_id":"673d9c71e88e42003ebe3362"},{"term":"high-trust app","definition":"Securely stores and uses the Client Secret (`app_secret`) and employs the standard authorization code flow to generate expiring authentication tokens.","_id":"673d9c7bea642800216d0794"},{"term":"hosted payment form","definition":"Secure way to accept ecommerce credit card payments without the need for a shopping cart. Clover hosts the form, so sensitive payment data does not pass through the merchant's system, reducing the PCI scope and minimizing merchant liability. You can implement payment forms using a standard template or customize it to fit the look and feel of the merchant's ecommerce website.","_id":"673d9c88204ee80045357119"},{"term":"Idempotency Key","definition":"Unique identifier used to ensure that a particular operation is performed only once, even if the request is made multiple times. This is particularly useful in scenarios where network issues or client retries might cause the same request to be sent more than once.","_id":"673d9c9f0c9f1a00368c050b"},{"term":"Incremental authorization","definition":"Allows merchants to change the original authorization amount to ensure the customer's card can still cover the higher amount.","_id":"673d9ca77053dd000f43a1a7"},{"term":"issuer","definition":"Financial institutions, such as a bank that issues a credit card to a consumer or business.","_id":"673d9caf2ab88500611e934d"},{"term":"low-trust app","definition":"Mobile or single-page apps that cannot securely store the Client Secret (`app_secret`) and use the authorization code flow with Proof Key for Code Exchange (PKCE) to enhance security during token acquisition.","_id":"673d9cc7d27f0b001991bbb0"},{"term":"LTE","definition":"LTE (Long-Term Evolution) is a fourth-generation (4G) wireless standard that provides increased network capacity and speed for mobile phones and other cellular devices compared with third-generation (3G) technology.","_id":"673d9cd6216993003780cf96"},{"term":"merchantId","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. The merchantId displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and on the Merchant Dashboard > User Settings page below the merchant’s name. It also displays in the URL (link) of the Clover Merchant Dashboard. Example: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. Format: 13-alphanumeric; Note: The merchantId is different from the MID.","_id":"673d9ce1dcf4bc00436cf043"},{"term":"MID","definition":"Merchant identifier (MID) identifies your merchant account and is the same across devices with the same merchant name. This identifier is available on the Clover device Diagnostics > Additional Details screen and also on the Merchant Dashboard > User Settings page, in the MID column. Note: The MID is different from the merchant UUID or merchantId.","_id":"673d9cf63dd0b800123c0b68"},{"term":"Minimum SDK","definition":"The minSdk specifies the minimum SDK version your app supports. For example, if your minSdk is 26, your app will only run on devices with Android 8 (API level 26) or higher. The minSdk is defined in your app's build.gradle file.","_id":"673d9cfe0c9f1a00368c0548"},{"term":"MOTO","definition":"MOTO (Mail Order/Telephone Order) transactions are merchant-initiated, card-not-present (CNP) transactions in which customers provide their order and payment details by regular mail (not email), fax, or telephone. In these transactions, card information is captured, and payment is processed with the customer’s consent, even though the card is not physically present.","_id":"673d9d084f9f5c0012f57b49"},{"term":"multi-factor authentication","definition":"Security process that requires two different forms of identification to verify a user’s identity, typically combining something you know, such as a password, with something you have, such as a mobile device.","_id":"673d9d0f994595002a60b8e4"},{"term":"multi-lock","definition":"Set aside and lock a specific amount from the available balance on a gift card for a specified time period. Multiple locks can be active simultaneously as long as there is a balance. The locked amount automatically unlocks when the specified time expires or upon request to unlock and redeem the amount.","_id":"673d9d18352c60006f15d204"},{"term":"native gift card","definition":"Gift cards that use the Clover-integrated Gift Card Solution, managed through the Fiserv payment gateway. May have a 4-8 digit security card value (SCV). These non-expiring cards are fully integrated into the Clover point of sale system, allowing for seamless transactions and management.","_id":"673d9d218effef006b1f1190"},{"term":"NFC","definition":"Near Field Communication (NFC) is a group of wireless technologies that work over a short distance, usually 4 cm or less, to establish a connection. With NFC, you can transfer small amounts of data between an Android-powered device and an NFC tag or between two Android-powered devices.","_id":"673d9d4116f16000112f72fd"},{"term":"non-denominated gift card","definition":"Cards without a preset value at the time of purchase are activated with a value determined at the time of purchase. The purchaser or recipient can choose the amount, depending on the terms set by the merchant.","_id":"673d9d6950cd900047362e83"},{"term":"non-native gift card","definition":"Gift cards managed through payment gateways other than Fiserv and do not use the Clover-integrated Gift Card Solution. May have a 4-8 digit foreign access code (FAC) for transactions and may not offer the same level of integration with the Clover point of sale system. While non-native gift cards can be used with Clover, they may require additional steps or configurations to process transactions.","_id":"673d9d82289098004b0bafa9"},{"term":"OTP","definition":"Unique, temporary code used for a single login session or transaction. A one-time password (OTP) is generated after you scan a QR code in your authenticator app during account setup or use the authenticator. You need to enter the OTP to verify your identity when logging into the Global Developer Dashboard.","_id":"673d9d969a77b00010d6b530"},{"term":"partial month","definition":"The first charge is added when a merchant installs a new app, and the installation occurs after the first of the month.","_id":"673d9db116f16000112f7352"},{"term":"Payment Connector","definition":"Java-based interface that lets you build a point of sale (POS) directly on a Clover device. It provides all of the Clover features needed for your app to make a sale, issue a refund, and perform other payment functions.","_id":"673d9dbe92944d00479e32f7"},{"term":"payment gateway","definition":"Virtual equivalent of a physical credit and debit card reader. It transfers the data between the point of entry—either a terminal, website, or mobile device—to the payment processor to continue the payment lifecycle.","_id":"673d9e995db0190019bd1553"},{"term":"payment processor","definition":"Technical intermediary, such as Fiserv or Clover that securely handle transactions between a merchant and a customer by processing card or electronic payments.","_id":"673d9ea1a08500003054a516"},{"term":"physical gift card","definition":"Tangible gift card that you can load and reload with an amount and use as a cash equivalent to make in-store and online purchases.","_id":"673d9edd50cd900047362f00"},{"term":"POS","definition":"Point of sale (POS) system enables businesses to accept customer payments and efficiently manage operations. The system consists of both hardware and software components. The software is often cloud-based, allowing access from anywhere. The hardware typically includes a register, barcode scanner, card reader, cash drawer, and receipt printer.","_id":"673d9ee650cd900047362f4d"},{"term":"promotional code","definition":"Unique values, usually alphanumeric, associated with a virtual gift card and sent by email, text, or through an app. The promotional or promo code is used to activate and redeem the virtual gift card.","_id":"673d9eef912f2c00165321a1"},{"term":"Proof Key for Code Exchange","definition":"Extension to the OAuth 2.0 authorization code flow designed to enhance security, especially for public clients like mobile and single-page applications that cannot securely store the Client Secret. PKCE ensures that even if an authorization code is intercepted, it cannot be exchanged for tokens without the original `code_verifier`.","_id":"673d9f04139f87004b4112c9"},{"term":"prorated subscription","definition":"Merchant subscription tier adjustment. When a merchant downgrades their subscription, or uninstalls an app, Clover adjusts the charge difference in the current month's advance on the merchant account.","_id":"673d9f42352c60006f15d28e"},{"term":"PSD2","definition":"Payment Service Directive 2 (PSD2) is a European Union directive that grants bank customers the ability to share their account information with third-party providers. These providers can then manage the customer’s finances, enabling services like direct payments.","_id":"673d9f48e88e42003ebe33ab"},{"term":"QR code","definition":"Quick Response (QR) code. Type of two-dimensional barcode that stores data in a pattern of black and white squares. You can scan the QR code with a camera to quickly access information like URLs, contact details, or authentication keys. The QR code typically expires after a short period, usually around 5 minutes.","_id":"673d9f52afd9bf001392273e"},{"term":"reCAPTCHA","definition":"Completely Automated Public Turing test to tell Computers and Humans Apart. reCAPTCHA is a Google service that verifies a user is human and not a bot by presenting tests that are easy for humans but difficult for automated software.","_id":"673d9f5c8082270030d0ded6"},{"term":"recovery codes","definition":"Alphanumeric backup verification codes generated when you add a new account to your authenticator app. Recovery codes let you access your account if you do not have your device.","_id":"673d9f71fd59830026abdc2c"},{"term":"Redirect URI","definition":"Link (URL) that an app uses to redirect users after authentication using the OAuth flow. The `redirect_uri` parameter is used to specify a custom post-authorization landing page. This URL must be a subpath of the set Site URL for the app.","_id":"673d9f803f79f3007604d181"},{"term":"Release notes","definition":"Monthly updates about new features and updates across the Clover developer platform.","_id":"673d9f8bcbad42003c236f28"},{"term":"Remote Pay","definition":"API that lets your point of sale (POS) system communicate with Clover payment devices. The Remote Pay SDK is used to semi-integrate a POS with a Clover device for card-present transactions. This allows merchants to process payments and perform operations through the cloud. The SDKs are available for different platforms, including Android and JavaScript.","_id":"673da0ea8d8ee10068701cd9"},{"term":"REST API","definition":"API to build a browser-based integration that creates a secure connection to your website. It redirects a merchant from the Clover Merchant Dashboard to your website URL (link).","_id":"673da0f698b87a00571c2fbf"},{"term":"REST Pay Display API","definition":"API that enables card-present payments on Clover Flex or Mini devices through cloud or local network, without requiring an embedded SDK. POS systems can use HTTP calls to initiate and complete transactions, supporting chip, swipe, and contactless payments.","_id":"673da1869a77b00010d6b6fc"},{"term":"Revenu Québec","definition":"Agency of the government of the Province of Quebec, Canada. It collects taxes to fund public services, ensures that all citizens pay their fair share, and administers programs.","_id":"673da2fa559631007d645bf3"},{"term":"SCV","definition":"Security code value is a unique code used to validate and secure transactions for Clover native gift cards.","_id":"673da33a8d8ee10068701e80"},{"term":"semi-integration","definition":"Semi-integration involves a third-party point of sale (POS) system using Clover for payment processing. In a native integration, your POS runs directly on Clover hardware as an app.","_id":"673da348216993003780d3e9"},{"term":"Site URL","definition":"Link (URL) for your app that you enter on the Edit REST Configuration page for web apps. After a merchant installs and launches your app from the Merchant Dashboard, Clover routes authenticated merchants to this URL through the `/oauth/v2/authorize` endpoint. The merchant can log in or select their merchant account before accessing your app.","_id":"673da34ee88e42003ebe36b9"},{"term":"SPI","definition":"Serial Peripheral Interface (SPI) is a widely used synchronous serial communication standard primarily employed in embedded systems. It facilitates short-distance wired communication between integrated circuits (ICs).","_id":"673da3572b1c2c001fb7f7d7"},{"term":"split tender payment","definition":"Process of dividing or splitting a single transaction into multiple payment methods. For example, a customer can pay part of their bill with cash and the remaining balance with a credit card. This feature is useful when customers want to use more than one payment method to complete a purchase.","_id":"673da361bbac4c00102711dd"},{"term":"Strong Customer Authentication","definition":"European regulatory requirement that makes online payments more secure by using biometrics to validate card-not-present (CNP) digital transactions. With the PSD2 regulations, additional information is needed from the user at the time of payment than just the card number and a card verification code (CVC). This information to verify user identities includes one of the following: 1. what the user knows: password, PIN. 2. what the user possesses: card, mobile phone. 3. what belongs to the user: fingerprints, facial recognition.","_id":"673da36fcbad42003c23718f"},{"term":"Target SDK","definition":"The targetSdk is the SDK version your app targets. It should always be the same as the compileSdk. For instance, if your targetSdk is 30, your app is designed to work optimally on Android 11 (API level 30) or higher. The targetSdk is defined in your app's build.gradle file.","_id":"673da378994595002a60be39"},{"term":"Text code","definition":"Alphanumeric secret key that you enter manually into an authenticator app to generate a one-time password (OTP) for account verification. The text code does not expire, but the OTP generated from it is time-based and usually expires every 30 seconds.","_id":"673da3844529f8000fd3e849"},{"term":"tokenization","definition":"Security measure that replaces a user's payment details, such as credit card numbers, expiration dates, and card verification values or codes, with non-specific IDs called tokens. Tokens are randomly generated when a customer provides their payment information at the point of sale (POS) or on an ecommerce website.","_id":"673da394ee19c10031477e4e"},{"term":"TransArmor token","definition":"Provides an additional layer of security to protect cardholder data during transactions and reduce the regeneration of payment tokens.","_id":"673da39caccb100010a8594f"},{"term":"UART","definition":"Universal Asynchronous Receiver-Transmitter (UART) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable.","_id":"673da3ae4529f8000fd3e8f4"},{"term":"USB","definition":"Universal Serial Bus (USB) is an industry connection standard that allows data exchange and delivery of power between many various types of electronics.","_id":"673da3b8139f87004b411594"},{"term":"vaulted card","definition":"Securely stored card token that can be used for future transactions. It lets merchants process recurring payments or quickly complete in-person transactions for returning customers. The card token is one-way encrypted and can be stored outside the Payment Card Industry Data Security Standard (PCI DSS) scope.","_id":"673da3c716f16000112f75e4"},{"term":"verification code","definition":"Time-based one-time password (OTP) generated after you scan a QR code or enter a text code in your authenticator app. You need to enter this 6-digit OTP to verify your identity when logging into the Global Developer Dashboard. The OTP usually expires every 30 seconds.","_id":"673da3d13dd0b20066375797"},{"term":"virtual gift card","definition":"Unique code or number delivered to a recipient by email, text, or through an app. The virtual card number or promotional code is used for making purchases at online or brick-and-mortar retailers.","_id":"673da3e3352c60006f15d5b3"},{"term":"webhooks","definition":"HTTP-based callback function allows for lightweight, event-driven communication between two application programming interfaces (APIs). When an event, such as a new user registration or a completed purchase, happens in one application, that application sends an HTTP POST request to a specific URL (the webhook) along with relevant data. The receiving application, which has the webhook, processes this data and takes appropriate actions based on the event.","_id":"673da3f9bbcdda0036911d51"},{"term":"custom tender","definition":"Flexible payment method on Clover devices for tailored payment experiences, such as loyalty programs or QR code scanning. Custom tenders can be configured for both customer-facing and merchant-facing interactions.","_id":"673ed307f1cb57004b2c2fae"},{"term":"single-pay token","definition":"Tokens used for a one-time payment, such as creating a charge or paying for an order. Follow-up actions like capturing a charge or issuing a refund don't require a token, as they are linked to the original transaction through the `chargeId` from the initial response. The token is alphanumeric and begins with `clv_`, such as clv_1ABCDefgHI23jKL4m5nOPqR.","_id":"674ed570fec10b0024ef6a92"},{"term":"multi-pay token","definition":"Payment tokens that can be used multiple times to create charges, pay for orders, and handle recurring payments. Examples of multi-pay tokens are TransArmor (TA) and card-on-file (COF).\n\nMulti-pay tokens are generated by using a single-use token as the `source` parameter when creating or updating a customer record. Both card and ACH tokens can be converted into multi-pay tokens.","_id":"674ed65d7cc93a004673affb"},{"term":"liability shift","definition":"Applies only to chargebacks related to fraud and does not cover non-fraudulent customer claims.","_id":"675297637923be3297a6d50f"},{"term":"blocks","definition":"Modular units in the WordPress Editor used to create and customize online store content. With blocks, you can add, remove, or rearrange elements such as product descriptions, images, videos, call-to-action buttons, and text on the store's webpage.","_id":"675fa7e67731ac46571de14c"},{"term":"object","definition":"Collection of key-value pairs. Each key is a string, and the value can be any data type, including strings, numbers, arrays, booleans, null, or another JSON object.","_id":"6777683e3aa647b32217274f"},{"term":"Clover Inventory app","definition":"App to help merchants manage their inventory, including menus, merchandise, and service offerings. It allows for easy updates, bulk editing, and tracking of inventory levels, making it simpler to manage both online and in-store transactions.","_id":"677b467a4bfc2927d78817aa"},{"term":"Clover Register app","definition":"App used for processing transactions and customizing the point-of-sale (POS) experience. It allows merchants to organize items, apply discounts, and manage orders efficiently.","_id":"677b46946917b427bd15de13"},{"term":"inventory","definition":"Collection of items that a merchant sells, manages, and tracks using the Clover system.","_id":"677b46a03bb287005772e5c0"},{"term":"item","definition":"Individual product or service that is part of the merchant's inventory.","_id":"677b46b0dc4a7b002a986d1e"},{"term":"item group","definition":"Groups of related items, such as different sizes or colors of a product, managed together.","_id":"677b46bfb0952e003d78fffb"},{"term":"variants","definition":"Different versions of an item, such as sizes or colors, managed under the same item group.","_id":"677b46cf6f74850068c286d7"},{"term":"attributes","definition":"Characteristics of an item group, like size or color, that define its variants.","_id":"677b46dd1186ed22f8381972"},{"term":"options","definition":"Specific values for an attribute, such as Small or Large for the size attribute.","_id":"677b46f28afafb00635aef3d"},{"term":"item stock","definition":"Quantity of a specific item available in the inventory.","_id":"677b46fd011bf3001ceaa30a"},{"term":"modifier","definition":"Option added to an item to customize it, such as extra toppings on a pizza.","_id":"677b470f1ad2840070ab1382"},{"term":"modifier groups","definition":"Collections of related modifiers that can be applied to items, such as a group of salad add-ins.","_id":"677b471c4bfc2927d788181a"},{"term":"categories","definition":"Used to visually organize items in the Clover Register app, like grouping all appetizers together.","_id":"677b472a2c10ae464d662135"},{"term":"tags","definition":"Labels used for identifying and organizing items within the inventory.","_id":"677b4735742c90001115c4f5"},{"term":"association","definition":"Relationship between different objects within the inventory system, such as by linking items to categories, modifier groups, options, tax rates, or labels.","_id":"677b474265ea31000f6d36f5"},{"term":"revenue class","definition":"Categories used to track and compare revenue streams and sales of items taxed at variable rates. Items tagged with a revenue class can be monitored as part of a specific revenue stream.","_id":"677b474ffa5037bd9b6b41a6"},{"term":"API tokens","definition":"API tokens are used to authenticate requests to Clover REST APIs. Generating an API token is a fundamental part of the OAuth flow to enable secure, controlled, and auditable access to APIs.","_id":"6780a8af549130000f384e35"},{"term":"OAuth","definition":"Clover uses the OAuth 2.0 security framework for third-party developers to authenticate their apps with merchant accounts and lets them use Clover public REST APIs on behalf of the merchant. Clover developers use expiring access and refresh tokens in the production environment to secure merchant data.","_id":"6780a8c295475c001160b4f4"},{"term":"App ID","definition":"Unique identifier assigned to Clover apps created in the Clover App Market. It is used to authenticate and authorize the app to interact with Clover APIs and devices. Also known as Client ID.","_id":"6780a9982cdb17001e1ed570"},{"term":"App Secret","definition":"Private key associated with your Clover app, used along with the App ID to authenticate the app during OAuth flows. It ensures that the app, Clover, and the merchant are all authorized to interoperate. Also known as Client Secret. Do not share the key publicly.","_id":"6780a9ba3cd127005354655b"},{"term":"Semi-integrated app","definition":"Point-of-sale (POS) solution that integrates a third-party point of sale (POS) system to use Clover for processing payments. This setup allows the POS software to accept EMV-ready, PCI-compliant payments without handling sensitive cardholder data directly.","_id":"6780aa757b05280026a4de52"},{"term":"RAID","definition":"Remote App ID. Unique identifier generated for your Clover app to facilitate semi-integrated solutions. It is used to log payments and expedite support requests for your app. Format: {developerId}.{appId}.","_id":"6780aa81f46ed4002f2838d4"},{"term":"Client Secret","definition":"Private key assigned to your Clover app. It is used along with the Client ID during the OAuth authentication process to verify the identity of your app. Your Client Secret is the Client ID value in your app's Settings page on the Developer Dashboard.","_id":"6780ac0d7ad41400246e97b0"},{"term":"manual refund","definition":"Occurs when a merchant refunds an amount without an associated sale or order. This type of refund is also known as credit, unmatched refund, unreferenced refund, or naked refund.","_id":"6788b9a0dffa5100601bb7bf"},{"term":"QSA","definition":"Individual or organization certified to assess and audit an organization's compliance with the Payment Card Industry Data Security Standards (PCI DSS).","_id":"67a1d33be4c6c40037900083"},{"term":"Magecart","definition":"Group of hackers that target online shopping cart systems to steal payment card information using malicious code.","_id":"67a1d3601df9064a5af766ab"},{"term":"card skimming","definition":"Using a device called a skimmer to steal card information directly from the magnetic stripe (magstripe) of a physical card. Skimmers are small, malicious card readers concealed within legitimate card readers to capture data from every card that is swiped.","_id":"67a1d39fbc84d0006be97405"},{"term":"card token","definition":"Unique, single-use code that represents a customer’s credit card details. It securely processes payments without exposing the actual card information.","_id":"682317018426a90059f1a215"},{"term":"production developer account","definition":"An approved Clover developer account that you use to submit apps to the Clover App Market. Clover must verify and approve this account before the app approval process can begin. Approval is not required for sandbox development.","_id":"69732acbf5124ede40a6b8d3"},{"term":"prorated subscription","definition":"A merchant subscription tier adjustment, when a merchant downgrades their subscription, or uninstalls an app, and Clover adjusts the charge difference in the current month's advance on the merchant account.","_id":"5f469d85c01cfd0de57b733c"},{"term":"partial month","definition":"The first charge is added when a merchant installs a new app and the installation occurs after the first of the month.","_id":"5fa5f5af0544dd002ae86eee"},{"term":"Auth","definition":"Authorization (Auth) is a tip-adjusted sale. This type of transaction is typically used by restaurants and services establishments.","_id":"649d3869b0358b0018203a82"},{"term":"billable merchant","definition":"Active merchant accounts with Clover. These are not test merchant or demo accounts, and are not suppressed for billing.","_id":"65420a1c3639880059d6c862"},{"term":"LTE","definition":"LTE (Long-Term Evolution) is a fourth-generation (4G) wireless standard that provides increased network capacity and speed for mobile phones and other cellular devices compared with third-generation (3G) technology.","_id":"661647a5e965fe0049f6d8f7"},{"term":"USB","definition":"Universal Serial Bus (USB) is an industry connection standard that allows data exchange and delivery of power between many various types of electronics.","_id":"6616562dbbacf5005644286c"},{"term":"NFC","definition":"Near Field Communication (NFC) is a group of wireless technologies that work over a short distance, usually 4 cm or less, to establish a connection. With NFC, you can transfer small amounts of data between an Android-powered device and an NFC tag or between two Android-powered devices.","_id":"66165f787392b500281d879b"},{"term":"SPI","definition":"Serial Peripheral Interface (SPI) is a widely used synchronous serial communication standard primarily employed in embedded systems. It facilitates short-distance wired communication between integrated circuits (ICs).","_id":"6616602c2f58ae0030b9e0b9"},{"term":"Android ABI","definition":"Android ABI (Application Binary Interface) defines how an application's machine code interacts with the system at runtime. It specifies details such as the CPU instruction set, endianness of memory stores and loads, conventions for passing data between applications and the system, and the format of executable binaries.","_id":"663480a9586d280012ffa5c7"},{"term":"UART","definition":"Universal Asynchronous Receiver-Transmitter (UART) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable.","_id":"6634c2cc21173a00853683de"},{"term":"Android Virtual Device","definition":"Android Virtual Device (AVD) is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator. An AVD contains a hardware profile, system image, storage area, skin, and other properties.","_id":"6634c647f44e150034a81e8f"},{"term":"API level","definition":"Each Android version corresponds to a specific API level. For example, Android 11 corresponds to API level 30, Android 10 to API level 29, and so on. The API level precisely identifies the version of the API set that your app can call into. It defines the combination of manifest elements, permissions, and other features that you can use as a developer.","_id":"6634c7d40a25a7005195a4c9"},{"term":"DPI","definition":"DPI (dots per inch) is the pixel density, that is the number of pixels within a physical area of the screen. DPI is different from the screen resolution, which is the total number of pixels on a screen.","_id":"6634cc35af2922003f0ae0c7"},{"term":"CORS","definition":"Security feature that allows web pages to request resources from different origins, controlled through HTTP headers.","_id":"663b440a27b57b0051ef9a8f"},{"term":"Clover APK","definition":"Android application package (APK) created for integration with Clover merchant services and point of sale (POS) systems. Developers must design, generate, and register their APK following Clover standards. Once approved, the APK is submitted for distribution on Clover devices, ensuring it meets the necessary guidelines for proper installation and functionality on the hardware.","_id":"663b4b305eca4200256ecda6"},{"term":"Clover ID","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. \nThis identifier displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and also on the Merchant Dashboard > User Settings page below the merchant name. It also displays in the URL (link) of the Clover Merchant Dashboard.\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId.\nFormat: 13-alphanumeric","_id":"663dcf4edeb40d00180a5b76"},{"term":"MID","definition":"Merchant identifier (MID) identifies your merchant account and is the same across devices with the same merchant name. This identifier is available on the Clover device Diagnostics > Additional Details screen and also on the Merchant Dashboard > User Settings page, in the MID column.\nNote: The MID is different from the merchant UUID or merchantId.","_id":"663dd341cec219002bb270ec"},{"term":"merchantId","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId.\nThe merchantId displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and on the Merchant Dashboard > User Settings page below the merchant’s name. It also displays in the URL (link) of the Clover Merchant Dashboard.\n\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. \nFormat: 13-alphanumeric; Note: The merchantId is different from the MID.","_id":"6641eb054a33e700319e8fad"},{"term":"blackhole payment gateway","definition":"Default gateway for test merchant accounts in the Clover sandbox environment. It sets all transactions to be successful and suffices for most development use cases.","_id":"66447e6e653fa90018e2afb5"},{"term":"vaulted card","definition":"Securely stored card token that can be used for future transactions. It lets merchants process recurring payments or quickly complete in-person transactions for returning customers. The card token is one-way encrypted and can be stored outside the Payment Card Industry Data Security Standard (PCI DSS) scope.","_id":"665024515cb512003d87936b"},{"term":"card tokenization","definition":"Faud-prevention measure that replaces sensitive payment credentials, such as credit card numbers, cardholder names, expiration dates, and CVV codes with non-specific identifiers known as tokens. These tokens are used for subsequent transactions, allowing secure storage and processing of payment information.","_id":"6650245bc4047b006129c46e"},{"term":"REST Pay Display API","definition":"Provides a simple interface for point of sale (POS) applications to accept payments on Clover Flex or Clover Mini devices. Developers can connect their apps to Clover devices using cloud or local network connections without requiring an embedded software development kit (SDK). It minimizes effort for handling on-device activities and states.","_id":"665024a633a4ef004cea5907"},{"term":"PSD2","definition":"Payment Service Directive 2 (PSD2) is a European Union directive that grants bank customers the ability to share their account information with third-party providers. These providers can then manage the customer’s finances, enabling services like direct payments.","_id":"665431a4b21564006f6b8c05"},{"term":"EMV","definition":"EMV cards are smart cards, also called chip cards, integrated circuit cards, or IC cards. They store their data on integrated circuit chips in addition to a magnetic stripe. EMV stands for Europay, Mastercard, and Visa, the three companies that created the specifications to facilitate worldwide interactions and acceptance of secure payments.","_id":"66544b3f1bccff0031b78365"},{"term":"EMVCo","definition":"Consortium with equal control among American Express, China UnionPay, Discover, JCB, Mastercard, and Visa. EMVCo creates and manages EMV® Specifications and programs that enable seamless and secure card-based payments for businesses and consumers worldwide.","_id":"66544e518f53e8002b8cf6c6"},{"term":"3DS","definition":"3DS protocol uses a three-domain model to add an extra layer of security between the financial authorization process and the online authentication process. The three domains are: 1. Issuer domain: Financial institution (FI) or bank that issued the card used for the transaction. 2. Acquirer domain: Merchant that accepts online payments from customers. 3. Interoperability domain: 3DS infrastructure platform that is the secure intermediary facilitating communication between the customer and the merchant.","_id":"66544eb4e0f4d500690f5ccd"},{"term":"Strong Customer Authentication","definition":"European regulatory requirement that makes online payments more secure by using biometrics to validate card-not-present (CNP) digital transactions. With the PSD2 regulations, additional information is needed from the user at the time of payment than just the card number and a card verification code (CVC). This information to verify user identities includes one of the following: 1. what the user knows: password, PIN. 2. what the user possesses: card, mobile phone. 3. what belongs to the user: fingerprints, facial recognition.","_id":"66544f82555ae8001177e275"},{"term":"AID","definition":"Application Identifier. An identifier stored on the chip and terminal. It is used to identify mutually supported applications.","_id":"6657019455ddd9002b624bd4"},{"term":"webhooks","definition":"HTTP-based callback function allows for lightweight, event-driven communication between two application programming interfaces (APIs). When an event, such as a new user registration or a completed purchase, happens in one application, that application sends an HTTP POST request to a specific URL (the webhook) along with relevant data. The receiving application, which has the webhook, processes this data and takes appropriate actions based on the event.","_id":"6657f154ca069c002bd8e14b"},{"term":"developer platform","definition":"Open platform for third-party developers to build apps and integrate external point-of-sale systems with Clover devices.","_id":"665856f0f4f292004bed1660"},{"term":"Release notes","definition":"Monthly updates about new features and updates across the Clover developer platform.","_id":"6658571d250efe0030376d3a"},{"term":"Bug fixes","definition":"Monthly updates on the latest bug fixes across the Clover developer platform.","_id":"66585726f46d7600517c38b4"},{"term":"API changelog","definition":"Monthly updates related to API changes.","_id":"66585736ab2c5b0057f78516"},{"term":"Announcements","definition":"Messages that are sent in the developer communications emails.","_id":"6658574f1f2ad700769fd4ca"},{"term":"API docs and SDK guides","definition":"Resources needed to work with the Clover app and integration platforms.","_id":"665857b5b5c13a006581ef42"},{"term":"Code and sample apps","definition":"Resources on GitHub to help get started with the Clover APIs.","_id":"66585809f0013f005829dfed"},{"term":"semi-integration","definition":"Semi-integration involves a third-party point of sale (POS) system using Clover for payment processing. In a native integration, your POS runs directly on Clover hardware as an app.","_id":"6659bd2d2f7dfe00117cc3f2"},{"term":"Android Payment API","definition":"Intent-based API used in applications running on Clover devices for executing payment transaction requests. It supports payment operations, including payments, preauthorizations, and payment reversals (void/refund), using Android Intent Builders.","_id":"665d3aad49f7e10014c6ec18"},{"term":"Clover Connector SDK","definition":"Provides an interface that allows external point of sale (POS) systems to access the same payment functions as PaymentConnector, such as sales and refunds. It also offers additional features like custom receipts and Android activities. The SDK is available for four platforms: Android, iOS, JavaScript, and .NET.","_id":"665d3ad3a40a010010ae9b1d"},{"term":"Payment Connector","definition":"Java-based interface that lets you build a point of sale (POS) directly on a Clover device. It provides all of the Clover features needed for your app to make a sale, issue a refund, and perform other payment functions.","_id":"665d3af204832a002afc719f"},{"term":"card on file","definition":"Card on file (COF) transactions are payments in which the cardholders have authorized merchants to store their credit or debit card information to use for future purchases or recurring payments.","_id":"665ff984f6928a0011b2597c"},{"term":"frictionless flow","definition":"For card-not-present (CNP) payments, frictionless flow refers to a seamless process where the financial institution (FI) or issuer can verify the legitimacy of a transaction without requiring additional input from the cardholder. This behind-the-scenes verification lets customers complete their purchases without any noticeable interruptions or authentication steps.","_id":"6660077fed8e620058cba957"},{"term":"challenge flow","definition":"For card-not-present (CNP) payments, challenge flow indicates that the financial institution (FI) or issuer requires more evidence to verify the legitimacy of the transaction. In the challenge flow, the customer must provide extra information to authenticate the payment, such as a password or a one-time code that the card issuer sends to their mobile device.","_id":"6660082bb0c450004a3d7cd3"},{"term":"Minimum SDK","definition":"The minSdk specifies the minimum SDK version your app supports. For example, if your minSdk is 26, your app will only run on devices with Android 8 (API level 26) or higher. The minSdk is defined in your app's build.gradle file.","_id":"6666dc0bda9518005ad0f2c4"},{"term":"Target SDK","definition":"The targetSdk is the SDK version your app targets. It should always be the same as the compileSdk. For instance, if your targetSdk is 30, your app is designed to work optimally on Android 11 (API level 30) or higher. The targetSdk is defined in your app's build.gradle file.","_id":"6666dc4a3ad9e6001902ee93"},{"term":"Clover Go reader","definition":"EMV-capable device that pairs with an Apple (iOS®) and Android smartphone or tablet. The reader allows iOS and Android mobile apps to accept swipe, NFC, or EMV transactions with no EMV certification required at the merchant's end. Clover Go reader accepts chip, dip, and contactless payments, including Tap-to-Pay on iPhone, Apple Pay®, Google Pay® and Samsung Pay®.","_id":"66694ec3f70d380056818491"},{"term":"reCAPTCHA","definition":"Completely Automated Public Turing test to tell Computers and Humans Apart. reCAPTCHA is a Google service that verifies a user is human and not a bot by presenting tests that are easy for humans but difficult for automated software.","_id":"666c33157d8b4a00100763cd"},{"term":"closeout","definition":"Process of closing your open batch of transactions and submitting it for clearing, settlement, and funding.","_id":"66b1e05f8cc1e80036f755f1"},{"term":"Idempotency Key","definition":"Unique identifier used to ensure that a particular operation is performed only once, even if the request is made multiple times. This is particularly useful in scenarios where network issues or client retries might cause the same request to be sent more than once.","_id":"66b1e081070411006f242a41"},{"term":"Card track data","definition":"Information encoded on a payment card's magnetic stripe or chip. The data is used to authorize and process transactions.","_id":"66b1e092d989a500309e106f"},{"term":"POS","definition":"Point of sale (POS) system enables businesses to accept customer payments and efficiently manage operations. The system consists of both hardware and software components. The software is often cloud-based, allowing access from anywhere. The hardware typically includes a register, barcode scanner, card reader, cash drawer, and receipt printer.","_id":"66b1e0d73facec0061549d33"},{"term":"Environment variables","definition":"A set of key-value pairs that a running process can access during runtime. These variables can be used to configure and adjust the behavior of the app or system, and they can vary between different execution environments.","_id":"66b1e0e7c9a0630026e33d8a"},{"term":"Device Manager","definition":"Android Studio tool for creating and managing an Android Virtual Device (AVD).","_id":"66b1e1012f4fbd0012bc9ec5"},{"term":"REST Pay Display API","definition":"API that lets point of sale (POS) applications accept payments on Clover Flex or Clover Mini devices. Your apps can connect to Clover devices using cloud or local network connections without needing an embedded software development kit (SDK).","_id":"66b1e1598ab3d40024a6fb42"},{"term":"Incremental authorization","definition":"Allows merchants to change the original authorization amount to ensure the customer's card can still cover the higher amount.","_id":"66b1e1691318ca0024ab4e71"},{"term":"Android SDK","definition":"SDK to build apps that run on Clover devices and publish your apps on the Clover App Market. It is also used for semi-integration with a Clover device, enabling a third-party point of sale (POS) system to use Clover for processing payments.","_id":"66b1e20a42125e00248c4a47"},{"term":"Ecommerce API","definition":"API to integrate Clover payment capabilities into your online or web-based applications. It provides endpoints for creating tokens, processing payments, and managing customer data. OAuth tokens are necessary for authentication and authorization.","_id":"66b1e216070411006f2430f7"},{"term":"REST API","definition":"API to build a browser-based integration that creates a secure connection to your website. It redirects a merchant from the Clover Merchant Dashboard to your website URL (link).","_id":"66b1e220501830000ff1fe30"},{"term":"Remote Pay","definition":"API that lets your point of sale (POS) system communicate with Clover payment devices. The Remote Pay SDK is used to semi-integrate a POS with a Clover device for card-present transactions. This allows merchants to process payments and perform operations through the cloud. The SDKs are available for different platforms, including Android and JavaScript.","_id":"66b1e2478171f6004bf55916"},{"term":"authenticator app","definition":"Mobile or desktop application that generates time-based or counter-based one-time passwords (OTPs) for secure two-factor authentication (2FA). You can download an authentication app from the relevant app store. Popular authenticator apps include Google Authenticator and Microsoft Authenticator.","_id":"66b1e2a2eb2473005274f428"},{"term":"QR code","definition":"Quick Response (QR) code. Type of two-dimensional barcode that stores data in a pattern of black and white squares. You can scan the QR code with a camera to quickly access information like URLs, contact details, or authentication keys. The QR code typically expires after a short period, usually around 5 minutes.","_id":"66b1e2d12ecf960059e5efed"},{"term":"Text code","definition":"Alphanumeric secret key that you enter manually into an authenticator app to generate a one-time password (OTP) for account verification. The text code does not expire, but the OTP generated from it is time-based and usually expires every 30 seconds.","_id":"66b1e2f761fda7001c880966"},{"term":"verification code","definition":"Time-based one-time password (OTP) generated after you scan a QR code or enter a text code in your authenticator app. You need to enter this 6-digit OTP to verify your identity when logging into the Global Developer Dashboard. The OTP usually expires every 30 seconds.","_id":"66b1e3324a8ed4000f0daec7"},{"term":"recovery codes","definition":"Alphanumeric backup verification codes generated when you add a new account to your authenticator app. Recovery codes let you access your account if you do not have your device.","_id":"66b1e3602a764500122160e0"},{"term":"Bearer token","definition":"Type of token used in the authorization header of an API request to authenticate the client making the request. It is typically included in the request header as follows: Authorization: Bearer \u003ctoken>. This token is a string that represents the user’s identity and permissions.","_id":"66b5d42a7b9c96003cfdd893"},{"term":"issuer","definition":"Financial institutions, such as a bank that issues a credit card to a consumer or business.","_id":"66cc08fa653916002083ca5e"},{"term":"payment processor","definition":"Technical intermediary, such as Fiserv or Clover, that securely handles transactions between a merchant and a customer by processing card or electronic payments.","_id":"66cc0bc88f93620042dd0995"},{"term":"OTP","definition":"Unique, temporary code used for a single login session or transaction. A one-time password (OTP) is generated after you scan a QR code in your authenticator app during account setup or use the authenticator. You need to enter the OTP to verify your identity when logging into the Global Developer Dashboard.","_id":"66cee8a5c5ffef0068e4d2e6"},{"term":"Ecommerce API key","definition":"Identifies the merchant who is tokenizing customers' cards. You can use the same static Ecommerce API key to tokenize multiple cards for that merchant. This is also known as the PAKMS key, as it is generated from the Public Access Key Management Service (PAKMS) using the [Ecommerce - PAKMS Service API](https://docs.clover.com/dev/reference/getapikey).","_id":"66d14c2122903b002598a48e"},{"term":"certificates","definition":"Certificates and profiles are essential for app development and distribution of the Apple Pay® service on a Clover Ecommerce integration. Certificates are digital documents that verify your identity as a developer. They are used to sign your apps and ensure they come from a trusted source.","_id":"66d5643fc8122b003172dd2b"},{"term":"payment gateway","definition":"Virtual equivalent of a physical credit and debit card reader. It transfers the data between the point of entry—either a terminal, website, or mobile device—to the payment processor to continue the payment lifecycle.","_id":"66e2bcaff0da2a006234a6ec"},{"term":"SCV","definition":"Security code value is a unique code used to validate and secure transactions for Clover native gift cards.","_id":"66e2bdb31e8238004781d0d9"},{"term":"hosted payment form","definition":"Secure way to accept ecommerce credit card payments without the need for a shopping cart. Clover hosts the form, so sensitive payment data does not pass through the merchant's system, reducing the PCI scope and minimizing merchant liability. You can implement payment forms using a standard template or customize it to fit the look and feel of the merchant's ecommerce website.","_id":"66e2bfa3053af00011eed401"},{"term":"non-native gift card","definition":"Gift cards managed through payment gateways other than Fiserv and do not use the Clover-integrated Gift Card Solution. May have a 4-8 digit foreign access code (FAC) for transactions and may not offer the same level of integration with the Clover POS system. While non-native gift cards can be used with Clover, they may require additional steps or configurations to process transactions.","_id":"66e7fe4fa9dfdf006733e303"},{"term":"FAC","definition":"Foreign access code value is used to process transactions for non-native gift cards on the Clover POS system.","_id":"66e800edfa09a8002580c72a"},{"term":"native gift card","definition":"Gift cards that use the Clover-integrated Gift Card Solution, managed through the Fiserv payment gateway. May have a 4-8 digit security card value (SCV). These non-expiring cards are fully integrated into the Clover POS system, allowing for seamless transactions and management.","_id":"66ea5afc09450f003cb42c5b"},{"term":"global developer platform","definition":"Provides an intuitive and seamless experience to create apps and integrations for different regions. With a single developer account, you can access both sandbox and production environments and switch between them effortlessly.","_id":"66f4d1d2cb8a1b005b10dc6c"},{"term":"promotional code","definition":"Unique values, usually alphanumeric, associated with a virtual gift card and sent by email, text, or through an app. The promotional or promo code is used to activate and redeem the virtual gift card.","_id":"66f4f3b6f110bb0025a0a546"},{"term":"denominated gift card","definition":"Cards with a specific value assigned to them at the time of purchase. For example, a gift card might be worth $25, $50, or $100. When a customer buys a denominated gift card, they know exactly how much value is on the card.","_id":"66f4f3ea859e85000f9ed42f"},{"term":"non-denominated gift card","definition":"Cards without a preset value at the time of purchase. The value is determined at the time of activation. The purchaser or recipient can choose the amount, depending on the terms set by the merchant.","_id":"66f4f4046297ad0045acd3d6"},{"term":"physical gift card","definition":"Tangible gift card that you can load and reload with an amount and use as a cash equivalent to make in-store and online purchases.","_id":"66f4f7abaf58cc002b79b897"},{"term":"Client ID","definition":"Uniquely identifies your app on the Clover App Market. This ID confirms that your app is participating in the OAuth 2.0 flow. Your client ID is the App ID value in your app's Settings page on the Developer Dashboard.\nUsage: type \u003c\u003cglossary:client ID>> in your documentation","_id":"66f4facbbbd52700616a927b"},{"term":"multi-factor authentication","definition":"Security process that requires two different forms of identification to verify a user’s identity, typically combining something you know, such as a password, with something you have, such as a mobile device.","_id":"66f4fafe5a175000440a84ad"},{"term":"multi-lock","definition":"Set aside and lock a specific amount from the available balance on a gift card for a specified time period. Multiple locks can be active simultaneously as long as there is a balance. The locked amount automatically unlocks when the specified time expires or upon request to unlock and redeem the amount.","_id":"66f4fb8c5a175000440a8522"},{"term":"cash out","definition":"Process of removing the remaining balance from a gift card, bringing the account balance to zero (0). The customer may receive the remaining balance in cash, or choose to cash out and deactivate the card or close the gift card account.","_id":"66f4fbe75a175000440a8626"},{"term":"virtual gift card","definition":"Unique code or number delivered to a recipient by email, text, or through an app. The virtual card number or promotional code is used for making purchases at online or brick-and-mortar retailers.","_id":"66f533e214205c0013756446"},{"term":"gift card","definition":"A gift card is a prepaid payment card used to make purchases at participating restaurants, stores, or online retailers.","_id":"67035f89dfe5db0036fe25c0"},{"term":"tokenization","definition":"Security measure that replaces a user's payment details, such as credit card numbers, expiration dates, and card verification values or codes, with non-specific IDs called tokens. Tokens are randomly generated when a customer provides their payment information at the point of sale (POS) or on an ecommerce website.","_id":"6703600f788acb004914bf49"},{"term":"split tender payment","definition":"Process of dividing or splitting a single transaction into multiple payment methods. For example, a customer can pay part of their bill with cash and the remaining balance with a credit card. This feature is useful when customers want to use more than one payment method to complete a purchase.","_id":"6704a45f98ee1b001138b598"},{"term":"Alternate Launch Path","definition":"Link (URL) or subpath for your app that you set on the Edit REST Configuration page for web apps. When a merchant accesses your app without installing it, the app redirects the merchant to this Alternate Launch Path, which then directs them to the Clover App Market to initiate the v2/OAuth flow. This Alternate Launch Path URL is required for the `/oauth/v2/authorize` flow, as it uses expiring tokens to authenticate with APIs, ensuring the merchant is properly authenticated and connected to your app.","_id":"670ca43ff504a7006e24bf8f"},{"term":"Site URL","definition":"Link (URL) for your app that you set on the Edit REST Configuration page for web apps. After a merchant installs your app and launches it from the Merchant Dashboard, they are redirected to the Site URL. The Clover server sends authenticated merchants to the Site URL through the `/oauth/authorize` flow, where they can log in or select their merchant account.","_id":"670cea1f32a444001e3c6c28"},{"term":"Redirect URI","definition":"Link (URL) that an app uses to redirect users after authentication using the OAuth flow. The `redirect_uri` parameter is used to specify a custom post-authorization landing page. This URL must be a subpath of the set Site URL for the app.","_id":"670de4f72e9c8d0054159324"},{"term":"code verifier","definition":"Cryptographically random string that a low-trust app needs to generate at the beginning of the authorization process. It is used to create a code challenge and is sent to the authorization server to verify the authorization request.","_id":"6710ce4aac89460069e91d4d"},{"term":"code challenge","definition":"Base64-URL-encoded string derived from the code verifier using a transformation method such as SHA-256. Code challenge is sent to the authorization server during the initial authorization request. It ensures that the app that initiated the request is the same app that is completing the request.","_id":"6710d1df81cc1d0010747535"},{"term":"Proof Key for Code Exchange","definition":"Extension to the OAuth 2.0 authorization code flow designed to enhance security, especially for public clients like mobile and single-page applications that cannot securely store the Client Secret. PKCE ensures that even if an authorization code is intercepted, it cannot be exchanged for tokens without the original `code_verifier`.","_id":"6710d771f898df00102583cc"},{"term":"MOTO","definition":"MOTO (Mail Order/Telephone Order) transactions are merchant-initiated, card-not-present (CNP) transactions in which customers provide their order and payment details by regular mail (not email), fax, or telephone. In these transactions, card information is captured, and payment is processed with the customer’s consent, even though the card is not physically present.","_id":"6719dd13e584590033ba710a"},{"term":"TransArmor token","definition":"Provides an additional layer of security to protect cardholder data during transactions and reduce the regeneration of payment tokens.","_id":"671a081299f628005be483be"},{"term":"high-trust app","definition":"Securely stores and uses the Client Secret (`app_secret`) and employs the standard authorization code flow to generate expiring authentication tokens.","_id":"6732ec60a401bd0010b56e4f"},{"term":"low-trust app","definition":"Mobile or single-page apps that cannot securely store the Client Secret (`app_secret`) and uses the authorization code flow with Proof Key for Code Exchange (PKCE) to enhance security during token acquisition.","_id":"6732ec9383f7fa0076fa09c1"},{"term":"Revenu Québec","definition":"Agency of the government of the Province of Quebec, Canada. It collects taxes to fund public services, ensures that all citizens pay their fair share, and administers programs.","_id":"673d5d38d27f0b00199187cb"},{"term":"Developer Dashboard","definition":"All new apps for merchants in North America, Europe, and Latin America, and Asia Pacific are created on the Global Developer Dashboard.","_id":"68b817c046898ec8f853f343"}],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"healthCheck":{"provider":"statusPage","settings":{"page":"3s40xjwbpcq5","status":false,"url":""}},"i18n":{"defaultLanguage":"en","languages":["en"],"state":"enabled"},"intercom":"","is_active":true,"internal":"","jwtExpirationTime":0,"landing_bottom":[{"text":"Create an Android app or web app that uses Clover's REST API to provide merchants with help to run their business.","title":"Assist merchants with their business","alignment":"left","type":"text"},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"Partner Integration","text":"Clover hardware is world class. Use it to create a custom, end-to-end payment and POS solution that showcases your brand.\n\nSee [clover connect](https://integrate.clover.com/) for more information.","mediaImage":["https://files.readme.io/cd3c926-clover_partner_solutions.png","clover partner solutions.png",1892,1380,"#cdcccb"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"","mediaImage":["https://files.readme.io/f2b3e2d-clover_connect.png","clover connect.png",2382,1654,"#d8d8d1"],"text":"Elevate your application with efficient integrations, support — and now even devices to complete your platform.\n\nSee [clover connect](https://integrate.clover.com/) to learn more."},{"type":"text","alignment":"left","title":"Integrate with Clover's payments platform","text":"If your app needs to process payments, choose one of the following options as your starting point."},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"First steps","text":"If your app just needs to take a payment, this tutorial will show you how.\nhttps://youtu.be/H5um4biZbaw\n\nThe REST Pay API allows developers familiar with the Ecommerce API to quickly add an in-person payment option to their app.\n\n* REST Pay Display provides a simple bridge between your point-of-sale system and a Clover Flex or Clover Mini. \n* A REST integration is the quickest way to begin taking payments on a Clover device. \n* Any POS application capable of making HTTP requests can use REST Pay to take card-present payments. \n* A retailer can take any type of standard card-present payments after your POS app is integrated with REST Pay.","mediaImage":["https://files.readme.io/663c6d7-REST_Pay_API.png","REST Pay API.png",2000,1216,"#dcdddc"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"Semi-integration","text":"Your POS is already used and loved by your merchants, and you want to add a Clover device to make the customer experience great too.\n\nCheck out [Semi-integration basics](docs/clover-development-basics-semi) to learn more.","mediaImage":["https://files.readme.io/a0968e7-semi_integration.png","semi integration.png",2144,1452,"#f1f1f1"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"Full integration","text":"Use Clover hardware to build a fully featured payments app with Android.\n\nCheck out [Build with Android](https://docs.clover.com/docs/clover-development-basics-android) to learn more.","mediaImage":["https://files.readme.io/2ef6aa5-clover-full_integration.png","clover-full integration.png",2744,718,"#d5cba1"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","mediaImage":["https://files.readme.io/f908719-Clover_REST_API.png","Clover REST API.png",2462,1602,"#c3c5c6"],"title":"Build","text":"Use the REST API to convert everyday business data into insights merchants can use."},{"type":"links","alignment":"left"},{"type":"docs","alignment":"left","pageType":"Documentation"}],"mcp":{"state":"disabled"},"mdxishMigrationStatus":{"migratedFrom":"rdmd"},"metrics":{"thumbsEnabled":true,"enabled":false,"monthlyLimit":0,"planLimit":1000000,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"suggested_edits":false,"discuss":false,"reference":true,"examples":true,"docs":true,"landing":false,"changelog":true,"logs":false,"custompages":false,"tutorials":true,"graphql":false},"name":"Clover Platform Docs","nav_names":{"discuss":"","reference":"","docs":"","changelog":"API Changelog","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":true,"api":true,"logs":true,"domain":true,"metricsSDK":false,"aiReady":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"tone":"neutral","customTone":"","answerLength":"long","forbiddenWords":"","defaultAnswer":"","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"id":"614230303827d8006b4d2e55","email":null,"name":null},"plan":"enterprise","planOverride":"business","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":true,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":true,"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":true,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"percentScore":50,"totalScore":180},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":true,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"seo":{"overwrite_title_tag":false},"ssl":{"minTLS":"1.0"},"siblings":[{"_id":"5b05c1655f9a0d00039a8ae4","ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":true},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"childrenProjects":[],"derivedPlan":"enterprise","description":"","shouldGateDash":false,"isExternalSnippetActive":false,"flags":{"allowXFrame":false,"allow_hub2":false,"alwaysShowDocPublishStatus":false,"cookieAuthentication":false,"correctnewlines":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"enterprise":true,"hideGoogleAnalytics":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"newApiExplorer":true,"newEditor":true,"newMarkdownBetaProgram":true,"newSearch":true,"oauth":false,"oldMarkdown":false,"rdmdCompatibilityMode":false,"speedyRender":false,"staging":false,"swagger":false,"translation":false,"tutorials":true,"allowApiExplorerJsonEditor":false,"useReactApp":true,"newHeader":false,"referenceRedesign":false,"auth0Oauth":false,"graphql":false,"singleProjectEnterprise":false,"dashReact":false,"allowReferenceUpgrade":true,"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":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"dryRunMigration":false,"aiDocsAudit":false,"aiPageLinting":false,"githubCloudSync":false,"disableAiChat":false,"enableSuggestedEdits":false,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"bidiSyncGitlabSelfServe":false,"gitTranslations":false,"gitlabCloudSync":false,"bidiSyncBitbucketSelfServe":false,"superHubPlanManagement":false,"mdxSanitizeComments":false,"disableSuperframe":false,"hideAiFeatures":false,"mdxish":true,"gittoUseNewIndexer":true,"mdxishEditor":true,"prefetch":false,"aiWriter":false,"superHubBranchReviewDashboard":false,"bidiSyncUseOdbAlternates":true,"mcpMetrics":false,"newDereferencer":false,"googleAuthEnabled":false,"newIframeStructure":false,"streamingSsr":false,"superHubNotifications":false,"superHubTypography":false,"newExplorerReducer":false,"gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"askAiOverride":"","superHubSlack":false,"customDomainAdminBypass":false,"aiDiscovery":false,"aiTranslation":false,"branchTaggedReviewers":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"superHubUiTesting":true},"fullBaseUrl":"https://clover-platform.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:25.037Z","start":"2026-03-24T12:06:24.573Z","status":"successful"},"transformation":{"end":"2026-03-24T12:07:17.857Z","start":"2026-03-24T12:06:48.955Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:07:22.849Z","start":"2026-03-24T12:07:22.373Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T23:43:04.952Z","status":"successful","end":"2026-03-24T23:43:04.953Z"}},"sync":{"linked_repository":{"provider_type":"github","linked_at":"2026-05-01T18:52:05.943Z","linked_by":"[email protected]","privacy":{"visibility":"private","private":true},"name":"clover-devdocs","full_name":"clover/clover-devdocs","url":"https://github.com/clover/clover-devdocs","id":"1226709745","connection":"69f4f43d8ffa1312ca26e6cf"},"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"is_active":true,"internal":"","mcp":{"state":"disabled"},"modules":{"suggested_edits":false,"discuss":false,"reference":true,"examples":true,"docs":true,"landing":false,"changelog":true,"logs":false,"custompages":false,"tutorials":true,"graphql":false},"name":"Clover Platform Docs","nav_names":{"discuss":"","reference":"","docs":"","changelog":"API Changelog","tutorials":"","recipes":""},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"email":null,"name":null},"readmeScore":0,"reference":{"alwaysUseDefaults":false,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"ssl":{},"stable":"5b315d5518ee180003969187","subdomain":"clover-platform","subpath":"dev","translate":{},"webhookEnabled":false},{"_id":"66be24c364112600622c108b","ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"childrenProjects":[],"derivedPlan":"enterprise","description":"","shouldGateDash":false,"isExternalSnippetActive":false,"flags":{"allowReusableOTPs":false,"alwaysShowDocPublishStatus":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"allowXFrame":false,"apiAccessRevoked":false,"correctnewlines":false,"customComponents":false,"dashReact":false,"developerPortal":false,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"disableAutoTranslate":false,"disableSAMLScoping":false,"disableSignups":false,"enableOidc":false,"enterprise":true,"graphql":false,"mdx":false,"newEditorDash":true,"oauth":false,"passwordlessLogin":"default","owlbotAi":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":false,"star":false,"staging":false,"superHub":true,"superHubDevelopment":false,"translation":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"gitlabCloudSync":false,"bidiSyncGitlabSelfServe":false,"aiDocsAudit":false,"aiPageLinting":false,"bidiSyncBitbucketSelfServe":false,"disableAiChat":false,"externalSdkSnippets":false,"gitTranslations":false,"githubCloudSync":true,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"superHubPlanManagement":false,"superHubPreview":false,"bidiSyncUseOdbAlternates":true,"aiWriter":false,"disableSuperframe":false,"gittoUseNewIndexer":true,"googleAuthEnabled":false,"hideAiFeatures":false,"mcpMetrics":false,"mdxSanitizeComments":false,"mdxish":true,"mdxishEditor":true,"newDereferencer":false,"newIframeStructure":false,"prefetch":false,"streamingSsr":false,"superHubBranchReviewDashboard":false,"superHubNotifications":false,"superHubTypography":false,"askAiOverride":"","gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"newExplorerReducer":false,"superHubSlack":false,"aiDiscovery":false,"aiTranslation":false,"branchTaggedReviewers":false,"customDomainAdminBypass":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"superHubUiTesting":true},"fullBaseUrl":"https://clover-ecommerce.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:23.106Z","start":"2026-03-24T12:06:22.646Z","status":"successful"},"transformation":{"end":"2026-03-24T12:07:09.462Z","start":"2026-03-24T12:06:31.374Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:07:12.244Z","start":"2026-03-24T12:07:11.899Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T19:28:22.231Z","status":"successful","end":"2026-03-24T19:28:22.232Z"}},"sync":{"linked_repository":{"provider_type":"github","linked_at":"2026-05-01T19:30:18.020Z","linked_by":"[email protected]","privacy":{"visibility":"private","private":true},"name":"clover-devdocs-ecomm","full_name":"clover/clover-devdocs-ecomm","url":"https://github.com/clover/clover-devdocs-ecomm","id":"1226724007","connection":"69f4f43d8ffa1312ca26e6cf"},"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"is_active":true,"internal":"admin","mcp":{"state":"disabled"},"modules":{"landing":false,"docs":true,"examples":true,"reference":true,"graphql":false,"changelog":true,"discuss":false,"suggested_edits":false,"custompages":true,"tutorials":true},"name":"Clover ECommerce","nav_names":{"docs":"","reference":"","changelog":"API Changelog","discuss":"","recipes":"","tutorials":""},"owlbot":{"customization":{"tone":"neutral","customTone":"","answerLength":"long","forbiddenWords":"","defaultAnswer":"","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"enabled":false,"isPaying":false,"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"email":null,"name":null},"readmeScore":0,"reference":{"alwaysUseDefaults":false,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"ssl":{},"stable":"66be24bb64112600622b9641","subdomain":"clover-ecommerce","subpath":"ecommerce","translate":{},"webhookEnabled":false},{"_id":"66be252cb34d810068ce9301","ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"childrenProjects":[],"derivedPlan":"enterprise","description":"","shouldGateDash":false,"isExternalSnippetActive":false,"flags":{"allowReusableOTPs":false,"alwaysShowDocPublishStatus":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"allowXFrame":false,"apiAccessRevoked":false,"correctnewlines":false,"customComponents":false,"dashReact":false,"developerPortal":false,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"disableAutoTranslate":false,"disableSAMLScoping":false,"disableSignups":false,"enableOidc":false,"enterprise":true,"graphql":false,"mdx":false,"newEditorDash":true,"oauth":false,"passwordlessLogin":"default","owlbotAi":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":false,"star":false,"staging":false,"superHub":true,"superHubDevelopment":false,"translation":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"gitlabCloudSync":false,"bidiSyncGitlabSelfServe":false,"aiDocsAudit":false,"aiPageLinting":false,"bidiSyncBitbucketSelfServe":false,"disableAiChat":false,"externalSdkSnippets":false,"gitTranslations":false,"githubCloudSync":true,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"superHubPlanManagement":false,"superHubPreview":false,"bidiSyncUseOdbAlternates":true,"aiWriter":false,"disableSuperframe":false,"gittoUseNewIndexer":true,"googleAuthEnabled":false,"hideAiFeatures":false,"mcpMetrics":false,"mdxSanitizeComments":false,"mdxish":true,"mdxishEditor":true,"newDereferencer":false,"newIframeStructure":false,"prefetch":false,"streamingSsr":false,"superHubBranchReviewDashboard":false,"superHubNotifications":false,"superHubTypography":false,"askAiOverride":"","gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"newExplorerReducer":false,"superHubSlack":false,"aiDiscovery":false,"aiTranslation":false,"branchTaggedReviewers":false,"customDomainAdminBypass":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"superHubUiTesting":true},"fullBaseUrl":"https://clover-semi-integration.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:23.096Z","start":"2026-03-24T12:06:22.637Z","status":"successful"},"transformation":{"end":"2026-03-24T12:07:10.428Z","start":"2026-03-24T12:06:31.755Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:07:13.584Z","start":"2026-03-24T12:07:13.223Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T19:33:05.813Z","status":"successful","end":"2026-03-24T19:33:05.814Z"}},"sync":{"linked_repository":{"provider_type":"github","linked_at":"2026-05-01T19:34:09.020Z","linked_by":"[email protected]","privacy":{"visibility":"private","private":true},"name":"clover-devdocs-semi","full_name":"clover/clover-devdocs-semi","url":"https://github.com/clover/clover-devdocs-semi","id":"1226724366","connection":"69f4f43d8ffa1312ca26e6cf"},"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"is_active":true,"internal":"admin","mcp":{"state":"disabled"},"modules":{"landing":true,"docs":true,"examples":true,"reference":true,"graphql":false,"changelog":true,"discuss":false,"suggested_edits":false,"custompages":true,"tutorials":true},"name":"Clover Semi-Integration","nav_names":{"docs":"","reference":"","changelog":"API Changelog","discuss":"","recipes":"","tutorials":""},"owlbot":{"customization":{"tone":"neutral","customTone":"","answerLength":"long","forbiddenWords":"","defaultAnswer":"","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"enabled":false,"isPaying":false,"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"email":null,"name":null},"readmeScore":0,"reference":{"alwaysUseDefaults":false,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"ssl":{},"stable":"66be2521b34d810068ce18b7","subdomain":"clover-semi-integration","subpath":"semi","translate":{},"webhookEnabled":false},{"_id":"66be25f8381c2300535c86f6","ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"childrenProjects":[],"derivedPlan":"enterprise","description":"","shouldGateDash":false,"isExternalSnippetActive":false,"flags":{"allowReusableOTPs":false,"alwaysShowDocPublishStatus":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"allowXFrame":false,"apiAccessRevoked":false,"correctnewlines":false,"customComponents":false,"dashReact":false,"developerPortal":false,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"disableAutoTranslate":false,"disableSAMLScoping":false,"disableSignups":false,"enableOidc":false,"enterprise":true,"graphql":false,"mdx":false,"newEditorDash":true,"oauth":false,"passwordlessLogin":"default","owlbotAi":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":false,"star":false,"staging":false,"superHub":true,"superHubDevelopment":false,"translation":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"aiDocsAudit":false,"aiPageLinting":false,"externalSdkSnippets":false,"superHubBranchReviews":false,"superHubPreview":false,"gitlabCloudSync":false,"bidiSyncGitlabSelfServe":false,"bidiSyncBitbucketSelfServe":false,"disableAiChat":false,"gitTranslations":false,"githubCloudSync":true,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"superHubPlanManagement":false,"bidiSyncUseOdbAlternates":true,"aiWriter":false,"disableSuperframe":false,"gittoUseNewIndexer":true,"googleAuthEnabled":false,"hideAiFeatures":false,"mcpMetrics":false,"mdxSanitizeComments":false,"mdxish":true,"mdxishEditor":true,"newDereferencer":false,"newIframeStructure":false,"prefetch":false,"streamingSsr":false,"superHubBranchReviewDashboard":false,"superHubNotifications":false,"superHubTypography":false,"aiDiscovery":false,"aiTranslation":false,"askAiOverride":"","branchTaggedReviewers":false,"customDomainAdminBypass":false,"gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"jwtReplacePermissions":false,"mcpOauth":false,"newExplorerReducer":false,"superHubBranchReviewSummaries":false,"superHubSlack":false,"superHubSlackNotifications":false,"superHubUiTesting":true},"fullBaseUrl":"https://clover-latam.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:23.482Z","start":"2026-03-24T12:06:22.996Z","status":"successful"},"transformation":{"end":"2026-03-24T12:07:10.611Z","start":"2026-03-24T12:06:32.250Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:07:13.556Z","start":"2026-03-24T12:07:13.215Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T18:46:29.659Z","status":"successful","end":"2026-03-24T18:46:29.660Z"}},"sync":{"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"is_active":true,"internal":"admin","mcp":{"state":"disabled"},"modules":{"landing":false,"docs":true,"examples":true,"reference":true,"graphql":false,"changelog":true,"discuss":false,"suggested_edits":false,"custompages":true,"tutorials":true},"name":"Clover LATAM Docs","nav_names":{"docs":"","reference":"","changelog":"API Changelog","discuss":"","recipes":"","tutorials":""},"owlbot":{"customization":{"tone":"neutral","customTone":"","answerLength":"long","forbiddenWords":"","defaultAnswer":"","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"enabled":false,"isPaying":false,"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"email":null,"name":null},"readmeScore":0,"reference":{"alwaysUseDefaults":false,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"ssl":{},"stable":"66be25ef381c2300535c0cac","subdomain":"clover-latam","subpath":"latam","translate":{},"webhookEnabled":false}],"stable":{"_id":"5b315d5518ee180003969187","project":"5b05c1655f9a0d00039a8ae4","createdAt":"2018-06-25T21:23:33.924Z","releaseDate":"2018-06-25T21:23:33.924Z","categories":["5b315d5518ee180003969188","5b315d5518ee180003969189","5b315d5518ee18000396918a","5b315d5518ee18000396918b","5b315d5518ee18000396918c","5b315d5518ee18000396918d","5b315d5518ee18000396918e","5b6a2983402b32000336c433","5b7c743ca6bfa600037d807d","5b920d510cb605000312f572","5ba55fbec7336b000348ef9b","5ba5e53e6ddff700030be197","5ba906d998ba74000325844b","5ba909a895e6a30003c43428","5ba94fb746fe180003bbb640","5ba94fd846fe180003bbb644","5ba950de99f4820003bf49ae","5baab11602675500038e2cf6","5baab179dddbf3000332189d","5baab2c402675500038e2d18","5baab3581bbaed0003fee9d9","5bc76bae647467004ac970e3","5bc786c3b194b9002b521599","5bc786f74e0881001303f675","5bc7871a4ca7da015b699655","5bc78751cb227e0032208d61","5bc7972ab40831004fe09345","5bc79768046ef7001ede489f","5bc797927cf8fa00447c9344","5bc798bd1a96c100f4f4cd58","5bc798d69eaf14000dfe9fa9","5bc7c5baa5dd63003781c73b","5bdcbda991e8780018ab3117","5bdcbdc25fb4b50031cebc31","5bdcbe015fb4b50031cebcfc","5bdcc2f8ea37cd003e8b0148","5bdd2382e87c650062d948bb","5bdd23ac7fdf64001e389a99","5bdd24896f3ba90013ee8342","5bde03277fdf64001e38bcba","5bde03456ff3e8000d1b5695","5be49270f2a711038ea38f9c","5be49672089736002930b4f9","5bff0bf8aed5310175fc418f","5bff0c938d5b6a0049e4708a","5bff0d02aed5310175fc4262","5bff13b48f0af00385bed700","5cbff29efb86e10042827418","5cbff3459590bd002c9ffb89","5cbff35facc2840051a7f40e","5cbff3a7eff4f6000eb97a3c","5cbff4e6c4a1750045c8ef63","5cbff511a5c99200195e7cc1","5cc0cad88b6f7e003d13090d","5cc0cb24cee7c30063e37a0e","5e0fc06313523805823744ac","5e3da5c5266513029cc26f9b","5e3da603b50f81001259966f","5e3da65404ccd2004599354f","6046893c88c08001162aee5b","606c6b057e15e6027b80e4a2","60c8c6b6992f70000ffd1974","6111600e25224f0023d837fe","61a6bc3df9bbeb005f32fa22","61e06692c0a24206af5e0fc9","61e067d7a66fb8003ebf4ea6","61fc1dbd3aee840039bd34d0","61fc48d8289d1400100cf03c","61fd687398a6f5003fa245a0","61fd744da94a8800297e8a25","61fd74adf9bc83002970437c","61fd75023f98c500506ab1a6","61fdc4809f8d98028fa96159","623deea3d5f1f6058a4471a1","62ab5f9a0af2ca001c53228c","62f13db0c7cd4c09510ebf40","62f31b0e4d5a30001d46678f","62f31ef6834269002714d163","62f3249e02e948005e8a7dec","62f3251361526f0013b12af2","62f53e548a47c900373b8030","62f54ed763f320008dc93292","62f550209876a5001d0c9810","62fa8207df8921002abb6684","6368ac3ce65560007edf57d3","636b7d3a65af28002db3d4e8","636b7f1b458073004dc7ec83","636b7fb877f20f055459041b","636b8087162e8502403161a8","636b80eb0daf6c04c689398a","636b8184cd162105f6a24117","6376b401081e400003bab66e","6380c915c536c100469c95ec","638727e2b0b670000f59e2db","638aa2c176938300348551e3","638aa31084ff7a003375961c","638aa37a90a346003a6d80cb","638aaec6c6522e00242133b0","639a544141b44e00184c3c04","639afeb42afa3e004dd3de02","63e5e3e58de7b50057f48c9b","64078c8a54e610001147f64d","64c74fe80040d20040043972","64d363fd3090ff0050815bf3","6513b6dc1ec71f004b75c24e","659637d3dfae32002385514f","659638b759408a000ff5edfb","65bb718d07848d000f10506a","66062cf584f7da005bb516b0","6619db326b9040002909faa0","66221400e36088005157de0c","66ac1e906adcda0010d5ce02","66ac2519485c6000126ac403","66b33df521c3760050a8f16a","66b33e726c773d0025da8602","66b3409196a12b00196e031c","66b354359c0de0001e2f09a0","66b38e62c98322002576ed67","66b5b0c041d427001927f7be","66b5b0c141d427001927f7c0","66b63c35b1557b0070f77916","66db3ddaf9963b006395838b","66db41183fba840019b0ca75","66e00f9085df450014a2d147","66f10cf5374b01004f942899","66f2d4d9d5d737001020a923","66f3a9ba322cea0018fde133","66f3a9d154d17c0062d78d84","66f3a9f5d706bf002ac39a95","66f3aa067fb26f0030dacac0","6715eb8f33aaba003dbbf9c6","672874814d4f0d005f65ad4a","67296b897da80800413ba43d","675665f2f780f952a053fb9e","67625efe27a579002c113240","678ace9ea52e05003d80b7a4","67ad85632688620055ac4da9","67ecc36c2cb13d0052056a6c","682adeeceb4a24004bdf3f28","68406c700891dd001901da4b","68407bbbea761f0012f3c5ae","684134b3ceba690045132640"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"published","version_clean":"3.0.0","version":"3","__v":59,"updatedAt":"2026-04-27T21:13:20.358Z","pdfStatus":"complete","apiRegistries":[{"filename":"ecommerce-service-api.json","uuid":"1ghuo735mo0c7s9y"},{"filename":"pakms-service-api.json","uuid":"1rx21cm17gb4hi"},{"filename":"clover-card-present-rest-api.json","uuid":"adhg9modeou8f"},{"filename":"ecommerce-recurring-apis.json","uuid":"6xtc173lp73m9ra"},{"filename":"platform-api.json","uuid":"1836s2z4smohp2458"},{"filename":"multiple-service-charge-msc-pilot-apis-k3c.json","uuid":"17440ljmod6cyth"},{"filename":"card-tokenization-service-api.json","uuid":"rna2jl2qm22yvxhu"},{"filename":"transarmor-tokenization-api.json","uuid":"6cii1vmebu3a6t"},{"filename":"ach-tokenization-service-api.json","uuid":"26fy2892fm22ymtc3"},{"filename":"gift-card-tokenization-service-api.json","uuid":"3yii2i91jm22yqbyg"},{"filename":"apple-pay-tokenization-api.json","uuid":"4qb8um38pn2nj"},{"filename":"invoiceapi.json","uuid":"jqf81pm61abo6f"}],"source":"readme"},"subdomain":"clover-platform","subpath":"dev","topnav":{"edited":true,"right":[{"type":"user"}],"left":[{"type":"url","text":"Release Notes","url":"https://docs.clover.com/docs/whats-new"},{"type":"url","text":"Announcements","url":"https://docs.clover.com/dev/docs/release-notes-announcements"},{"type":"url","text":"Blog","url":"https://medium.com/clover-platform-blog"},{"type":"url","text":"FAQ","url":"https://docs.clover.com/dev/docs/faqs"},{"type":"url","url":"https://docs.clover.com/dev/docs/developer-technical-support","text":"Support"}],"bottom":[]},"trial":{"trialDeadlineEnabled":false,"trialEndsAt":"2024-08-15T16:40:46.201Z"},"translate":{"languages":[],"provider":"transifex","key_public":"","org_name":"","project_name":"","show_widget":false},"url":"docs.clover.com","versions":[{"_id":"5b315d5518ee180003969187","project":"5b05c1655f9a0d00039a8ae4","createdAt":"2018-06-25T21:23:33.924Z","releaseDate":"2018-06-25T21:23:33.924Z","categories":["5b315d5518ee180003969188","5b315d5518ee180003969189","5b315d5518ee18000396918a","5b315d5518ee18000396918b","5b315d5518ee18000396918c","5b315d5518ee18000396918d","5b315d5518ee18000396918e","5b6a2983402b32000336c433","5b7c743ca6bfa600037d807d","5b920d510cb605000312f572","5ba55fbec7336b000348ef9b","5ba5e53e6ddff700030be197","5ba906d998ba74000325844b","5ba909a895e6a30003c43428","5ba94fb746fe180003bbb640","5ba94fd846fe180003bbb644","5ba950de99f4820003bf49ae","5baab11602675500038e2cf6","5baab179dddbf3000332189d","5baab2c402675500038e2d18","5baab3581bbaed0003fee9d9","5bc76bae647467004ac970e3","5bc786c3b194b9002b521599","5bc786f74e0881001303f675","5bc7871a4ca7da015b699655","5bc78751cb227e0032208d61","5bc7972ab40831004fe09345","5bc79768046ef7001ede489f","5bc797927cf8fa00447c9344","5bc798bd1a96c100f4f4cd58","5bc798d69eaf14000dfe9fa9","5bc7c5baa5dd63003781c73b","5bdcbda991e8780018ab3117","5bdcbdc25fb4b50031cebc31","5bdcbe015fb4b50031cebcfc","5bdcc2f8ea37cd003e8b0148","5bdd2382e87c650062d948bb","5bdd23ac7fdf64001e389a99","5bdd24896f3ba90013ee8342","5bde03277fdf64001e38bcba","5bde03456ff3e8000d1b5695","5be49270f2a711038ea38f9c","5be49672089736002930b4f9","5bff0bf8aed5310175fc418f","5bff0c938d5b6a0049e4708a","5bff0d02aed5310175fc4262","5bff13b48f0af00385bed700","5cbff29efb86e10042827418","5cbff3459590bd002c9ffb89","5cbff35facc2840051a7f40e","5cbff3a7eff4f6000eb97a3c","5cbff4e6c4a1750045c8ef63","5cbff511a5c99200195e7cc1","5cc0cad88b6f7e003d13090d","5cc0cb24cee7c30063e37a0e","5e0fc06313523805823744ac","5e3da5c5266513029cc26f9b","5e3da603b50f81001259966f","5e3da65404ccd2004599354f","6046893c88c08001162aee5b","606c6b057e15e6027b80e4a2","60c8c6b6992f70000ffd1974","6111600e25224f0023d837fe","61a6bc3df9bbeb005f32fa22","61e06692c0a24206af5e0fc9","61e067d7a66fb8003ebf4ea6","61fc1dbd3aee840039bd34d0","61fc48d8289d1400100cf03c","61fd687398a6f5003fa245a0","61fd744da94a8800297e8a25","61fd74adf9bc83002970437c","61fd75023f98c500506ab1a6","61fdc4809f8d98028fa96159","623deea3d5f1f6058a4471a1","62ab5f9a0af2ca001c53228c","62f13db0c7cd4c09510ebf40","62f31b0e4d5a30001d46678f","62f31ef6834269002714d163","62f3249e02e948005e8a7dec","62f3251361526f0013b12af2","62f53e548a47c900373b8030","62f54ed763f320008dc93292","62f550209876a5001d0c9810","62fa8207df8921002abb6684","6368ac3ce65560007edf57d3","636b7d3a65af28002db3d4e8","636b7f1b458073004dc7ec83","636b7fb877f20f055459041b","636b8087162e8502403161a8","636b80eb0daf6c04c689398a","636b8184cd162105f6a24117","6376b401081e400003bab66e","6380c915c536c100469c95ec","638727e2b0b670000f59e2db","638aa2c176938300348551e3","638aa31084ff7a003375961c","638aa37a90a346003a6d80cb","638aaec6c6522e00242133b0","639a544141b44e00184c3c04","639afeb42afa3e004dd3de02","63e5e3e58de7b50057f48c9b","64078c8a54e610001147f64d","64c74fe80040d20040043972","64d363fd3090ff0050815bf3","6513b6dc1ec71f004b75c24e","659637d3dfae32002385514f","659638b759408a000ff5edfb","65bb718d07848d000f10506a","66062cf584f7da005bb516b0","6619db326b9040002909faa0","66221400e36088005157de0c","66ac1e906adcda0010d5ce02","66ac2519485c6000126ac403","66b33df521c3760050a8f16a","66b33e726c773d0025da8602","66b3409196a12b00196e031c","66b354359c0de0001e2f09a0","66b38e62c98322002576ed67","66b5b0c041d427001927f7be","66b5b0c141d427001927f7c0","66b63c35b1557b0070f77916","66db3ddaf9963b006395838b","66db41183fba840019b0ca75","66e00f9085df450014a2d147","66f10cf5374b01004f942899","66f2d4d9d5d737001020a923","66f3a9ba322cea0018fde133","66f3a9d154d17c0062d78d84","66f3a9f5d706bf002ac39a95","66f3aa067fb26f0030dacac0","6715eb8f33aaba003dbbf9c6","672874814d4f0d005f65ad4a","67296b897da80800413ba43d","675665f2f780f952a053fb9e","67625efe27a579002c113240","678ace9ea52e05003d80b7a4","67ad85632688620055ac4da9","67ecc36c2cb13d0052056a6c","682adeeceb4a24004bdf3f28","68406c700891dd001901da4b","68407bbbea761f0012f3c5ae","684134b3ceba690045132640"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"published","version_clean":"3.0.0","version":"3","__v":59,"updatedAt":"2026-04-27T21:13:20.358Z","pdfStatus":"complete","apiRegistries":[{"filename":"ecommerce-service-api.json","uuid":"1ghuo735mo0c7s9y"},{"filename":"pakms-service-api.json","uuid":"1rx21cm17gb4hi"},{"filename":"clover-card-present-rest-api.json","uuid":"adhg9modeou8f"},{"filename":"ecommerce-recurring-apis.json","uuid":"6xtc173lp73m9ra"},{"filename":"platform-api.json","uuid":"1836s2z4smohp2458"},{"filename":"multiple-service-charge-msc-pilot-apis-k3c.json","uuid":"17440ljmod6cyth"},{"filename":"card-tokenization-service-api.json","uuid":"rna2jl2qm22yvxhu"},{"filename":"transarmor-tokenization-api.json","uuid":"6cii1vmebu3a6t"},{"filename":"ach-tokenization-service-api.json","uuid":"26fy2892fm22ymtc3"},{"filename":"gift-card-tokenization-service-api.json","uuid":"3yii2i91jm22yqbyg"},{"filename":"apple-pay-tokenization-api.json","uuid":"4qb8um38pn2nj"},{"filename":"invoiceapi.json","uuid":"jqf81pm61abo6f"}],"source":"readme"}],"variableDefaults":[{"source":"security","_id":"62e9b1eea177a30276e94d80","name":"BearerAuth","type":"http","apiSetting":"62e2b636fa1eee00872167ef"},{"source":"security","_id":"62ebf0918a8c490783ba3e62","name":"bearerAuth","type":"http","apiSetting":"62d70a619e87be00146d7d6e"},{"type":"","source":"","_id":"631109ebe868a2002148959f","name":"","default":""},{"source":"security","_id":"63fdd5805f536e0d5a8e0335","name":"OAuth2","type":"oauth2","apiSetting":"63fdd57f5f536e0d5a8e032d"},{"source":"security","_id":"6452212ec5886b14a0588915","name":"access_token","type":"apiKey","apiSetting":"6452212dc5886b14a0588913"},{"type":"","source":"server","_id":"64d3fc6b8dba8a005f24000b","name":"protocol","default":"https","apiSetting":"64c40c6f0a747f006a6f42a6"},{"type":"","source":"server","_id":"64d3fc6b8dba8a005f24000a","name":"environment","default":"sandbox.dev.clover.com","apiSetting":"64c40c6f0a747f006a6f42a6"},{"source":"security","_id":"65080d1adfa92402085ec8a6","name":"sessionToken","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"65080d1adfa92402085ec8a5","name":"X-Clover-Auth-Token","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"65080d1adfa92402085ec8a4","name":"internalSession","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"66600d4d0c47bb0012000998","name":"oauth2","type":"oauth2","apiSetting":"66600d4c0c47bb0012000995"},{"apiSetting":"695423821925250441ae7c29","name":"Authorization","source":"security","type":"apiKey","_id":"695423831925250441ae7caf"},{"apiSetting":"695423821925250441ae7c29","name":"X-Session-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb0"},{"apiSetting":"695423821925250441ae7c29","name":"X-Device-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb1"},{"apiSetting":"695423821925250441ae7c29","name":"X-Internal-Session-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb2"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Session-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24041"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Device-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24042"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Internal-Session-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24043"}],"webhookEnabled":false,"parent":{"_id":"66bb951e6ae14e005acce10e","accessRules":{"branch_merge":{"admin":true,"editor":false},"branch_approve":{"admin":true,"editor":false}},"ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"changelog":{"layoutExpanded":false,"showAuthor":true,"showExactDate":false},"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":"#280","main_alt":"","header_text":"","body_highlight":"","custom_login_link_color":"#228800","body_highlight_dark":""},"typography":{"headline":"Open+Sans:400:sans-serif","body":"Open+Sans:400:sans-serif","typekit":false,"tk_key":"","tk_headline":"","tk_body":"","code":"","custom_heading":null,"custom_body":null,"custom_code":null,"spacing":null},"header":{"style":"line","img":[],"img_size":"auto","img_pos":"tl","linkStyle":"buttons"},"body":{"style":"none"},"global_landing_page":{"html":"","redirect":"/dev/docs"},"allowApiExplorerJsonEditor":false,"referenceSimpleMode":true,"referenceLayout":"row","link_logo_to_url":false,"theme":"line","colorScheme":"light","overlay":"triangles","landing":true,"sticky":false,"hide_logo":false,"childrenAsPills":false,"subheaderStyle":"links","splitReferenceDocs":false,"showMetricsInReference":true,"logo":["https://files.readme.io/579c195b7984e9d739a0f96151c06797993f0fcbb259302da9bf36573ae84a02-small-clover-logo-horizontal-RGB-256-green-2022-BG_1.png","579c195b7984e9d739a0f96151c06797993f0fcbb259302da9bf36573ae84a02-small-clover-logo-horizontal-RGB-256-green-2022-BG_1.png",327,80,"#248c04","https://files.readme.io/6ec493ebb1d244b1afa23566b3ed3dae1cd2f9e9b7d09fc1fbbfd19b8ed0f83f-clover-logo-horizontal-RGB-256-green-2022-BG_1.png","679bd5a8e06bbe0010a3a83e"],"loginLogo":["https://files.readme.io/579c195b7984e9d739a0f96151c06797993f0fcbb259302da9bf36573ae84a02-small-clover-logo-horizontal-RGB-256-green-2022-BG_1.png","579c195b7984e9d739a0f96151c06797993f0fcbb259302da9bf36573ae84a02-small-clover-logo-horizontal-RGB-256-green-2022-BG_1.png",327,80,"#248c04","https://files.readme.io/6ec493ebb1d244b1afa23566b3ed3dae1cd2f9e9b7d09fc1fbbfd19b8ed0f83f-clover-logo-horizontal-RGB-256-green-2022-BG_1.png","679bd5a8e06bbe0010a3a83e"],"logo_white":["https://files.readme.io/916e287288e7cdcd82d868cdbd5029106fecb0977a939d1f4008e79eb53fd6b8-small-clover-dev-docs-logo_1.png","916e287288e7cdcd82d868cdbd5029106fecb0977a939d1f4008e79eb53fd6b8-small-clover-dev-docs-logo_1.png",418,48,"#5c5c5c","https://files.readme.io/d29aca4f2dc4e5657bd1842032f06fb721357580b3a99caf3b09daa1202a0da5-clover-dev-docs-logo_1.png","681ab111a3b7a8003787832c"],"logo_white_use":false,"logo_large":false,"favicon":["https://files.readme.io/4c79216ccb100ae7b15b5d5ffc82d397bc2c2e816586c9a7da5671577eccc38d-small-favicon-32x32.png","4c79216ccb100ae7b15b5d5ffc82d397bc2c2e816586c9a7da5671577eccc38d-small-favicon-32x32.png",32,32,"#ffffff","https://files.readme.io/4c3696371b49d2fd2635f6f0122fa70e0ac7af5e2e7c9691749a1aaee160ec12-favicon-32x32.png","679bd6033d34890018fe1e56"],"stylesheet":"","stylesheet_hub2":"/* =========================================================\n Font face declarations\n ========================================================= */\n\n@font-face {\n font-display: swap;\n font-family: Graphik;\n font-stretch: normal;\n font-style: normal;\n font-weight: 400;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Graphik-Light;\n font-stretch: normal;\n font-style: normal;\n font-weight: 300;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Graphik-Medium;\n font-stretch: normal;\n font-style: normal;\n font-weight: 500;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Graphik-Semibold;\n font-stretch: normal;\n font-style: normal;\n font-weight: 600;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 400;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-Regular.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-Regular.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 300;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-Light.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-Light.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 600;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-SemiBold.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-SemiBold.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 700;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-Bold.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-Bold.woff) format(\"woff\");\n}\n\n/* =========================================================\n Global theme variables\n Replaced invalid `style attribute` block with :root vars\n ========================================================= */\n\n:root {\n --color-primary: #228800;\n --color-primary-inverse: #fff;\n --color-primary-darken-20: #004400;\n --color-link-primary: #228800;\n --color-link-primary-darken-20: #004400;\n --color-link-background: #ddffdd;\n --color-link-text: #fff;\n\n --Sidebar-link: #5a5a5a;\n --Sidebar-link-background: rgba(34, 136, 0, 0.03);\n}\n\n/* =========================================================\n ReadMe menu updates (Guides only)\n ========================================================= */\n\n.rm-Guides .rm-Sidebar-heading {\n cursor: pointer;\n position: relative;\n text-transform: none !important;\n font-weight: 500 !important;\n margin-block-start: 0.4em;\n margin-block-end: 0.4em;\n font-family: var(--font-family-title);\n color: #040;\n font-size: 14px;\n}\n\n.rm-Guides .rm-Sidebar-heading.section-expanded::after {\n transform: rotate(90deg);\n}\n\n/* fixed issue with drop down arrow on right vertical positioning */\n.rm-Guides .rm-Sidebar-heading::after {\n content: \"\\203A\";\n transition: transform 0.2s;\n position: absolute;\n bottom: -6px;\n margin-left: 10px;\n color: #280;\n font-size: 26px;\n opacity: 1;\n}\n\n.rm-Guides .rm-Sidebar-section > .rm-Sidebar-list {\n display: none !important;\n}\n\n.rm-Guides .rm-Sidebar-list.section-list-expanded {\n display: flex !important;\n}\n\n.reference-redesign.Nav3C5f8FcjkaHj.rm-Sidebar_guides .rm-Sidebar {\n padding-top: 20px;\n margin-right: 10px;\n}\n\n/* =========================================================\n Core project typography + layout variables\n ========================================================= */\n\n.App {\n --font-family: Graphik, sans-serif;\n --font-family-title: Altform, sans-serif;\n --font-size: 16px;\n --font-weight: 400;\n}\n\np,\nli {\n font-size: 16px;\n font-weight: 400;\n}\n\n.App .rm-LandingPage,\n.App .rm-SuggestedEdits,\n.App .rm-SuggestionDiff,\n.App .rm-Guides,\n.App .rm-Recipes,\n.App .rm-Recipes-modal,\n.App .rm-ReferenceMain,\n.App .rm-Changelog,\n.App .rm-Discuss,\n.App .rm-CustomPage {\n --markdown-font: var(--font-family);\n --markdown-font-size: 15px;\n --markdown-line-height: 1.5;\n --markdown-title-font: var(--font-family-title);\n}\n\n/* top nav buttons */\n.Button {\n font-family: var(--font-family-title);\n}\n\n/* make font readable -- up from too tiny @14px */\n.field-description,\n.markdown-body {\n font-size: var(--markdown-font-size, 16px);\n font-family: var(--font-family);\n font-weight: 400;\n}\n\na {\n color: #280;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/* =========================================================\n TOC styles\n Refactored from invalid nested syntax into valid CSS\n ========================================================= */\n\n.content-toc,\n.content-toc a {\n font-size: 14px;\n}\n\n.content-toc .tocHeader {\n font-size: 12px;\n font-weight: 700;\n}\n\n/* Fix issue with the API Ref method buttons */\n.APIMethod_fixedWidth {\n padding-left: 0;\n padding-right: 0;\n width: 50px;\n}\n\n/* =========================================================\n Tables / forms / API reference\n ========================================================= */\n\n/* Fix for ordered list padding and text color in tables - DC 09-24-2018 */\n.magic-block-parameters ol {\n color: #747c84;\n padding-left: 10px;\n}\n\n/* Fix for unordered list text color in tables - DC 09-24-2018 */\n.magic-block-parameters ul {\n color: #747c84;\n}\n\n/* API reference text box color fix (DS-279) - DC 02-27-2019 */\nform.rjsf input.form-control {\n border-top-color: #4c555a !important;\n border-bottom-color: #4c555a !important;\n border-left-color: #4c555a !important;\n border-right-color: #4c555a !important;\n}\n\n/* Modify the percentage to change the width of the response/model column\n on the API reference page. If enabled, be sure to also enable the\n following style for hub-reference-results-slider. */\n#hub-reference .hub-reference .hub-reference-section .hub-reference-right {\n width: 40% !important;\n}\n\n/* Modifies the bit above the API response object to keep everything purdy.\n Keep it at 200%. */\n#hub-reference .hub-api .hub-reference-right.hub-reference-results .hub-reference-results-slider,\n#hub-reference .hub-api .hub-reference-results .hub-reference-results-slider {\n width: 200% !important;\n}\n\n.mfp-img {\n background: #ffffff;\n}\n\n/* =========================================================\n Color tweaks / legacy hub selectors\n ========================================================= */\n\nsection#hub-content #content-container section.content-toc a {\n color: #5d5d5d;\n}\n\nnav#hub-sidebar ul a {\n color: #280;\n font-weight: 500;\n font-size: 15px;\n font-family: var(--font-family);\n}\n\nheader#hub-header #header-top #header-nav-left li a,\nheader#hub-header #header-top #header-nav-right li a {\n color: #5d5d5d;\n}\n\n/* Normalize code markup in headings DS-640 */\nh1 code,\nh2 code,\nh3 code,\nh4 code,\nh5 code,\nh6 code {\n background: rgba(96, 105, 113, 0.1);\n padding: 3px 5px;\n border-radius: 3px;\n font-family: var(--font-family);\n font-size: inherit;\n color: #5d5d5d;\n font-style: normal;\n}\n\n/* text alignment fix for flag SVGs */\nimg.flag {\n vertical-align: text-bottom;\n}\n\n/* override code style in right mini ToC */\n.toc-list code {\n font-family: inherit;\n background: inherit;\n padding: 0;\n border-radius: inherit;\n font-size: inherit;\n color: inherit;\n}\n\n/* =========================================================\n React app typography / sidebar\n ========================================================= */\n\nhtml.useReactApp .markdown-body {\n --markdown-font: Graphik, sans-serif;\n --color: #5d5d5d;\n}\n\nhtml.useReactApp .rm-Article header {\n color: #280;\n font-family: var(--font-family-title);\n}\n\nhtml.useReactApp ul.toc-list {\n color: var(--color-text-muted);\n}\n\n/* attempt to improve readability (size, font, contrast) of side nav and body */\nhtml.useReactApp .rm-Sidebar-link {\n color: #280 !important;\n font-family: Graphik, sans-serif;\n font-size: 15px;\n}\n\nhtml.useReactApp .rm-Sidebar-link:hover {\n background-color: var(--color-link-background) !important;\n color: #040 !important;\n}\n\n.reference-redesign .Sidebar-link-iconnjiqEiZlPn0W {\n /* icon in lower level left nav */\n opacity: 0.9 !important;\n}\n\nhtml.Sidebar-headingTRQyOa2pk0gh {\n font-family: var(--font-family-title);\n font-size: 15px;\n font-weight: var(--font-weight-bold) !important;\n margin: 2px 0;\n padding-left: 15px;\n text-transform: uppercase;\n}\n\n.reference-redesign .Sidebar-listWrapper6Q9_yUrG906C + .Sidebar-listWrapper6Q9_yUrG906C {\n margin-top: 10px;\n}\n\n/* =========================================================\n Recipes\n ========================================================= */\n\n.TutorialTile1EmZZwscc8UV {\n background: var(--gray90) !important;\n border: 3px solid var(--green40) !important;\n min-width: 300px !important;\n align: center !important;\n --TutorialTile-text-color: var(--color-primary) !important;\n}\n\n.TutorialTile-Body1X3Rmz9bMZKI {\n padding: 20px !important;\n}\n\n.TutorialTile-Body-Text-TitleOyQYvfYa_PEo {\n color: var(--TutorialTile-text-color) !important;\n font-size: var(--markdown-title-size, 1.25em) !important;\n font-weight: var(--markdown-title-weight, 600) !important;\n line-height: 1.35 !important;\n}\n\n.TutorialTile-Body-Text-Action1lbXk8Bdpeol {\n color: var(--TutorialTile-link-color);\n font-size: 13px !important;\n}\n\n.TutorialTile1EmZZwscc8UV:hover {\n background: var(--butter) !important;\n}\n\n/* =========================================================\n Sidebar indent tweaks\n ========================================================= */\n\n.Sidebar-item23D-2Kd61_k3 {\n margin-left: 2px;\n}\n\n/*\n.reference-redesign .Sidebar-link-buttonWrapper3hnFHNku8_BJ {\n padding: 0 3px 0 12px;\n}\n*/\n\n.reference-redesign .Sidebar-link-textLuTE1ySm4Kqn {\n align-items: baseline;\n}\n\n/* =========================================================\n Callouts\n ========================================================= */\n\n/* Info note */\n.callout_info h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n/* Warn note */\n.callout_warn h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n/* OK note */\n.callout_okay h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n/* Error note */\n.callout_error h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n.callout.callout .callout-heading {\n font-weight: 600 !important;\n font-family: var(--font-family-title);\n}\n\n/* Enforce Callout heading size and weight */\n.callout-heading h2,\n.callout-heading p {\n font-size: 1em !important;\n font-weight: 600 !important;\n}\n\n/* =========================================================\n Pill icons for region and environment\n Updated + hardened for more consistent rendering\n ========================================================= */\n\n/* \"container-top\" is for the first-appearing block on the page.\n Typically reserved for the Menu option when it appears flush with the right-side TOC. */\n.container-top {\n position: relative;\n top: -20px;\n margin-bottom: -15px;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n}\n\n/* container-reg is for the region icons, defined singularly and in sets.\n removed margin-top and added container-env and related env styles (cd, May 16) */\n.container-reg,\n.container-env {\n position: relative;\n display: inline-flex;\n align-items: center;\n min-width: auto;\n width: fit-content;\n max-width: 100%;\n text-align: left;\n overflow: visible;\n margin-top: 5px;\n margin-bottom: -5px;\n box-sizing: border-box;\n}\n\n/* Pill format - general (both reg and env) */\n.pill-reg,\n.pill-env {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: 5px;\n padding: 0 10px;\n min-height: 1.8rem;\n border-radius: 10px;\n overflow: visible;\n box-sizing: border-box;\n white-space: nowrap;\n}\n\n/* Pill format - REG changed margin top from 3px to .5px 7/10/2026, cd */\n.pill-reg {\n background: #44bb44;\n border: 0.5px solid #44bb44;\n margin-top: 0.5px;\n margin-bottom: 1px;\n}\n\n/* Pill format - ENV */\n.pill-env {\n background: #2e8bc9;\n border: 0.5px solid #2e8bc9;\n margin-top: 0.5px;\n margin-bottom: 0.5px;\n}\n\n/* Text format inside REG / ENV pills */\n.pill-reg .label-reg,\n.pill-reg__addon .label-reg,\n.pill-env .label-env {\n display: block;\n margin: 0;\n padding: 5px 0;\n font-style: normal;\n font-weight: normal;\n font-size: 12px;\n line-height: 1.2;\n color: #fff;\n vertical-align: middle;\n white-space: nowrap;\n}\n\n/* Extra hardening so pills still render cleanly in varying wrappers */\n.rdmd-html .container-top,\n.rdmd-html .container-reg,\n.rdmd-html .container-env,\n.rdmd-html .pill-reg,\n.rdmd-html .pill-env,\n.rdmd-html .label-reg,\n.rdmd-html .label-env {\n box-sizing: border-box;\n}\n\n/* =========================================================\n Navigation boxes\n (like on Ecommerce Integration Types page)\n ========================================================= */\n\n.navbox-wrapper {\n width: 90%;\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n}\n\n.navbox-box {\n flex: 1 1 calc(50% - 10px);\n min-height: 150px;\n text-align: left;\n margin-bottom: 4px;\n overflow: hidden;\n border: 1px solid #d8d8d8;\n padding: 10pt;\n box-sizing: border-box;\n transition: box-shadow 0.3s ease;\n}\n\n.navbox-box:hover {\n box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.4);\n}\n\nh2.g {\n font-size: 17px;\n color: #228800;\n margin: 2px 0 8px 0;\n}\n\nh2.w {\n font-size: 20px;\n color: #fff;\n margin: 2px 0 8px 0;\n}\n\np.small-text {\n font-size: 15px;\n color: #5a5a5a;\n}\n\n.navbox-btn {\n font-family: Altform, sans-serif;\n border: none;\n background-color: inherit;\n font-size: 15px;\n color: #228800;\n text-align: left;\n cursor: pointer;\n display: block;\n margin-bottom: 4px;\n}\n\n.navbox-btn:hover {\n color: #5d5d5d;\n}\n\n.navbox-btn a {\n text-decoration: none;\n color: inherit;\n}\n\n.navbox-btn::before {\n content: \"➔ \";\n color: #228800;\n}\n\n/* Responsive styles */\n@media (max-width: 1200px) {\n .navbox-box {\n flex: 1 1 calc(50% - 10px);\n }\n}\n\n@media (max-width: 768px) {\n .navbox-box {\n flex: 1 1 calc(100% - 10px);\n }\n}\n\n@media (max-width: 480px) {\n .navbox-box {\n flex: 1 1 100%;\n }\n}\n\n/* =========================================================\n Flip-card boxes\n ========================================================= */\n\n.flip-card-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 10px;\n max-width: 100%;\n}\n\n.flip-card {\n flex: 1 1 calc(50% - 10px);\n max-width: 300px;\n height: 300px;\n perspective: 1000px;\n box-sizing: border-box;\n}\n\n.flip-card-inner {\n position: relative;\n width: 100%;\n height: 100%;\n transition: transform 0.6s, box-shadow 0.3s;\n transform-style: preserve-3d;\n cursor: pointer;\n}\n\n.flip-card:hover .flip-card-inner {\n transform: rotateY(180deg);\n box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.3);\n}\n\n.flip-card-front,\n.flip-card-back {\n position: absolute;\n width: 100%;\n height: 100%;\n backface-visibility: hidden;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 10px;\n box-sizing: border-box;\n font-family: Altform, sans-serif;\n overflow-wrap: break-word;\n word-break: break-word;\n}\n\n.flip-card-front {\n color: #fff;\n font-size: 18px;\n font-weight: 500;\n text-align: center;\n}\n\n.front-green {\n background-color: #280;\n}\n\n.front-darkgreen {\n background-color: #040;\n}\n\n.flip-card-back {\n background-color: white;\n color: #5d5d5d;\n font-size: 16px;\n border: 2px solid #d5d5d5;\n transform: rotateY(180deg);\n text-align: left;\n}\n\n.btn {\n font-family: Altform, sans-serif;\n border: none;\n background-color: inherit;\n font-size: 16px;\n color: #228800;\n text-align: right;\n cursor: pointer;\n display: block;\n margin-top: 10px;\n align-self: flex-end;\n}\n\n.btn:hover {\n color: #5d5d5d;\n}\n\n.btn a {\n text-decoration: none;\n color: inherit;\n}\n\n.btn::before {\n content: \"➔ \";\n color: #228800;\n}\n\n@media (max-width: 768px) {\n .flip-card {\n flex: 1 1 100%;\n max-width: 100%;\n }\n}\n\n@media (max-width: 480px) {\n .flip-card-front,\n .flip-card-back {\n font-size: 12px;\n padding: 2px;\n }\n\n .btn {\n font-size: 12px;\n }\n}","stylesheet_hub3":"","javascript":"","javascript_hub2":"// Event Handlers - outside the pageLoad function\n// Handle keyboard navigation for Enter key\n$(document).on('keydown', '.rm-Sidebar-heading', function (e) {\n if (e.key === 'Enter') {\n // Prevent the default action of the Enter key\n e.preventDefault();\n\n // Toggle classes for the clicked heading and its next element\n $(this).toggleClass(\"section-expanded\");\n $(this).next().toggleClass(\"section-list-expanded\");\n }\n});\n\n// Handle click events on sidebar headings\n$(document).on('click', '.rm-Sidebar-heading', function () {\n if ($(this).hasClass('section-expanded')) {\n // Do nothing if the heading is already expanded\n } else {\n // Collapse all expanded sections\n $('.section-expanded, .section-list-expanded').removeClass('section-expanded section-list-expanded');\n }\n\n // Toggle classes for the clicked heading and its next element\n $(this).toggleClass(\"section-expanded\");\n $(this).next().toggleClass(\"section-list-expanded\");\n});\n\n// Expand/Collapse Content\nlet hidden = true; // Initialize outside to maintain state across page loads\n$('.expand-trigger').on('click', function () {\n $('.expand-content').toggle();\n hidden = !hidden;\n $(this).find('span').text(hidden ? 'Show' : 'Hide');\n});\n\n// pageLoad Function - Keep DOM manipulations here\n$(window).on('pageLoad', function(e, state) {\n // Collapse navigation in the sidebar initially\n $('.rm-Sidebar-section > .rm-Sidebar-list').addClass(\"section-collapsed\");\n\n // Append icon only if it doesn't already exist\n $('.rm-Sidebar-heading').each(function() {\n if ($(this).find('.icon-chevron').length === 0) {\n $(this).append(\"\u003cspan class='icon-chevron'>\u003c/span>\");\n }\n });\n\n // Check if any sidebar link is active and expand its section\n if ($('.rm-Sidebar-link.active').length > 0) {\n $('.rm-Sidebar-link.active').parents('.rm-Sidebar-list').addClass(\"section-list-expanded\");\n $('.rm-Sidebar-link.active').parents('.rm-Sidebar-section').children('.rm-Sidebar-heading').addClass(\"section-expanded\");\n }\n\n // Fix issue with sub-items getting stuck expanded\n $('.subpages').removeClass('section-list-expanded');\n\n // Auto-expand first category (for landing)\n // $('.rm-Sidebar-heading').first().next().addClass(\"section-list-expanded\");\n\n // Add tabindex attribute to each heading\n $('.rm-Sidebar-heading').attr('tabindex', '0');\n\n // Hide expand content initially\n $('.expand-content').hide();\n});\n\n\n\n// Show or hide private link based on logged-in status\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n showButtonBasedOnPermission();\n});\n\n//interval count\nfunction showButtonBasedOnPermission() {\n var intervalCount = 0;\n var maxIntervalCount = 5;\n\n // Parse JSON data to check if user is logged in\n function updateButtonVisibility() {\n var hubMeScript = document.getElementById(\"hub-me\");\n var jsonData = JSON.parse(hubMeScript.dataset.json);\n\n // If the user is not logged in, hide the button\n if (jsonData.loggedIn === false) {\n var styleElement = document.createElement(\"style\");\n styleElement.innerHTML = \".suggestEdits { display: none !important; }\";\n document.head.appendChild(styleElement);\n } else {\n // If logged in, show the button\n var styleElement = document.createElement(\"style\");\n styleElement.innerHTML = \".suggestEdits { display: flex !important; }\";\n document.head.appendChild(styleElement);\n }\n }\n\n // Ensure the visibility logic runs periodically\n function runInterval() {\n updateButtonVisibility();\n intervalCount++;\n\n if (intervalCount >= maxIntervalCount) {\n clearInterval(intervalId);\n }\n }\n\n updateButtonVisibility();\n var intervalId = setInterval(runInterval, 800);\n}","html_promo":"","html_body":"","html_footer":"","html_head":"","html_footer_meta":"","html_hidelinks":false,"showVersion":true,"hideTableOfContents":false,"nextStepsLabel":"","promos":[],"ai_dropdown":"disabled","ai_options":{"chatgpt":"enabled","claude":"enabled","clipboard":"enabled","view_as_markdown":"enabled","copilot":"enabled","perplexity":"enabled","ask_ai":"disabled","mcp":{"command":"enabled","config":"enabled","cursor":"enabled","vscode":"enabled"}},"showPageIcons":true,"layout":{"full_width":false,"style":"classic"},"methodBadgeStyle":"classic","showMethodInSidebar":true,"showBreadcrumbs":false,"collapsibleCategories":false,"oneOfLayout":"dropdown"},"child":{"_id":"5b05c1655f9a0d00039a8ae4","accessRules":{"branch_merge":{"admin":true,"editor":false},"branch_approve":{"admin":true,"editor":false}},"ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":true},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"nextStepsLabel":"Related topics","hideTableOfContents":false,"showVersion":false,"html_hidelinks":false,"global_landing_page":{"redirect":"","html":""},"html_footer_meta":"\u003cscript src=\"https://3s40xjwbpcq5.statuspage.io/embed/script.js\">\u003c/script>","html_head":"\u003cmeta name=\"google-site-verification\" content=\"V22G0oF_f8MnFXS2AtrN6KEg8X2BNVFWqg8I2QHeW-Y\" />\n\n\u003cscript>\n const hash = window.location.hash;\n window.location.hash = \"\";\n const checkExist = setInterval(function() {\n if ($(hash).length === 0) { return }\n clearInterval(checkExist);\n setTimeout(function() {\n window.location.hash = hash;\n }, 1000);\n }, 100);\n\u003c/script>","html_footer":"\u003cscript src=\"https://3s40xjwbpcq5.statuspage.io/embed/script.js\">\u003c/script>","html_body":"","html_promo":"","javascript_hub2":"","javascript":"","stylesheet_hub2":"/* Style classes for reviewer comments for use in DRAFTs only \n/* Use in paragraphs or span tags like \u003cspan class=\"reviewer\">text\u003c/span>\n/* \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t*/\n\n.reviewer { \ncolor: red;\n} \n.highlight { \nbackground-color: #FFFFED;\n /*(light-yellow)*/\n}\n.strike {\n color: red;\n text-decoration: line-through;\n}\n\n/* * * * * * * * * * * * * * * * * * * * */\n/* The remainder of this file is omitted */\n/* * * * * * * * * * * * * * * * * * * * */\n/*\n/*\n/* root color scheme */\n/* Change note: --color-border-default was (--green50); changed to (--gray80) */\n/* 10/29/2024: hid all project-level style changes. See enterprise level for details. */\n/*\n:root {\n --color-bg-page: var(--white);\n --color-bg-page-rgb: var(--white-rgb);\n --color-text-default: var(--gray20);\n --color-text-muted: var(--gray30);\n --color-text-minimum: var(--gray40);\n --color-text-minimum-hover: var(--gray30);\n --color-text-minimum-icon: rgba(99,114,136,0.6);\n --color-border-default: var(--gray80); \n --color-skeleton: var(--gray90);\n --color-input-background: var(--white);\n --color-input-text: var(--gray20);\n --color-input-border: #e5e5e5;\n --color-input-border-hover: #ccc;\n --color-input-border-active: var(--blue);\n --color-input-border-focus: rgba(17,140,253,0.25);\n --color-input-placeholder: var(--gray60);\n --black: #000;\n --blue: #118cfd;\n --blue-rgb: 17,140,253;\n --chalk: #c6cbd3;\n --graphite: #4f5a66;\n --green: #12ca93;\n --green-rgb: 18,202,147;\n --ivory: #f0f0f0;\n --light-gray: #f8f8f8;\n --minimum-gray: #637288;\n --purple: #8470be;\n --red: #e95f6a;\n --red-rgb: 233,95,106;\n --shale: #939eae;\n --slate: #384248;\n --white: #fff;\n --off-white: #fdfdfd;\n --yellow: #f7c543;\n --yellow-rgb: 247,197,67;\n --border-width: 1px;\n --border-radius: 5px;\n --border-radius-lg: calc(var(--border-radius) * 1.5);\n --box-shadow-menu-dark: 0 1px 3px rgba(0, 0, 0, 0.025), 0 2px 6px rgba(0, 0, 0, 0.025), 0 5px 10px rgba(0, 0, 0, 0.05);\n --box-shadow-menu-light: 0 5px 10px rgba(0, 0, 0, .05), 0 2px 6px rgba(0, 0, 0,.025), 0 1px 3px rgba(0, 0, 0, .025);\n --box-shadow-pill: inset 0 1px 1px 0 rgba(255, 255, 255, .2), inset 0 -1px 2px 0 rgba(0, 0, 0, .2), 0 1px 2px 0 rgba(0, 0, 0, .05);\n --box-shadow-request: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -1px 2px rgba(0, 0, 0, .1);\n --box-shadow-status: inset 0 1px 0 rgba(255, 255, 255, .5), inset 0 -1px 2px rgba(0, 0, 0, .1), 0 1px 3px rgba(0, 0, 0, .1);\n --font-family: Graphik, san-serif,-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue;\n --font-family-mono: \"SF Mono\", SFMono-Regular, ui-monospace, \"DejaVu Sans Mono\", Menlo, Consolas, monospace;\n --font-weight-normal: 400;\n --font-weight: 500;\n --font-weight-bold: 600;\n --button-xs: 20px;\n --button-sm: 30px;\n --button-md: 40px;\n --button-lg: 50px;\n --icon-sm: 12px;\n --icon-md: 16px;\n --icon-lg: 20px;\n --transition-fast: .15s;\n --transition-slow: .3s;\n --transition-timing: cubic-bezier(0.16, 1, 0.3, 1);\n --header-logo-height: 24px;\n --container: 1100px;\n --container-lg: 1440px;\n --hub-main-max-width: 800px;\n --hub-playground-width: 480px;\n --hub-sidebar-width: 280px;\n --hub-toc-width: 280px;\n --param-form-width: 140px;\n --dash-container-md: 1100px;\n --dash-container-lg: 1260px;\n --dash-container-xl: 1536px;\n --xxl: 120px;\n --xl: 80px;\n --lg: 40px;\n --md: 20px;\n --sm: 10px;\n --xs: 5px;\n --z-banner: 10001;\n --z-toolbar: 10002;\n --z-modal: 10003;\n --blue0: #002077;\n --blue10: #003290;\n --blue20: #0047aa;\n --blue30: #005dc5;\n --blue40: #0074e1;\n --blue50: #118cfd;\n --blue60: #619efe;\n --blue70: #8ab0ff;\n --blue80: #abc3ff;\n --blue90: #c8d7ff;\n --blue100: #e4ebff;\n --green0: #002e02;\n --green10: #00491f;\n --green20: #00683a;\n --green30: #008756;\n --green40: #00a874;\n --green50: #12ca93;\n --green60: #59d4a4;\n --green70: #81ddb6;\n --green80: #a3e6c8;\n --green90: #c3efda;\n --green100: #e1f7ec;\n --gray0: #12181b;\n --gray10: #242e34;\n --gray15: #303b42;\n --gray20: #384248;\n --gray30: #4f5a66;\n --gray40: #637288;\n --gray50: #7b889b;\n --gray60: #939eae;\n --gray70: #adb4c1;\n --gray80: #c6cbd3;\n --gray90: #f0f0f0;\n --gray100: #f8f8f8;\n --gray10-rgb: 36,46,52;\n --gray15-rgb: 48,59,66;\n --gray20-rgb: 56,66,72;\n --gray100-rgb: 248,248,248;\n --purple0: #110e4d;\n --purple10: #2a1f63;\n --purple20: #403278;\n --purple30: #56468f;\n --purple40: #6d5ba6;\n --purple50: #8470be;\n --purple60: #9987c9;\n --purple70: #ae9ed4;\n --purple80: #c2b5df;\n --purple90: #d6cdea;\n --purple100: #ebe6f4;\n --red0: #570000;\n --red10: #730014;\n --red20: #900027;\n --red30: #ad273c;\n --red40: #cb4452;\n --red50: #e95f6a;\n --red60: #f17c81;\n --red70: #f79799;\n --red80: #fcb1b2;\n --red90: #ffcbcb;\n --red100: #ffe5e5;\n --yellow0: #3e1d00;\n --yellow10: #5a3c00;\n --yellow20: #7d5b00;\n --yellow30: #a57d00;\n --yellow40: #cda017;\n --yellow50: #f7c543;\n --yellow60: #fcce66;\n --yellow70: #ffd885;\n --yellow80: #ffe1a4;\n --yellow90: #ffebc2;\n --yellow100: #fff5e0;\n --butter: #fdfccc;\n --brown: #7a461c;\n --coral: #ff758c;\n --fuchsia: #cf66c3;\n --gold: #9d8714;\n --indigo: #6b7ede;\n --lavender: #abc3ff;\n --lime: #9ace5a;\n --olive: #837400;\n --orange: #fe8e4f;\n --pink: #e15ca5;\n --teal: #00b6e6;\n --tiffany: #00beaa;\n --blue-pastel: #a8edff;\n --green-pastel: #9bfff6;\n --orange-pastel: #f5bc90;\n --purple-pastel: #e8d0ff;\n --red-pastel: #ffc4c9;\n --yellow-pastel: #ffffa7;\n --white-rgb: 255,255,255;\n --lightGray: var(--light-gray);\n --minimumGray: var(--minimum-gray)\n}\n*/","stylesheet":"","favicon":["https://files.readme.io/6f06232-clover-icon1.svg","clover-icon(1).svg",22,22,"#228800"],"logo_white_use":false,"logo_white":["https://files.readme.io/d3d63d72e208436c6125dfaedbf9f6c45842d353540da8cf557bc1c37ca9c275-white-logo.png","d3d63d72e208436c6125dfaedbf9f6c45842d353540da8cf557bc1c37ca9c275-white-logo.png",418,48,"#ffffff","67ec563f89e4bc00118a1fdf"],"logo":["https://files.readme.io/4e2d7ae48c03777bb9262ad99f875e762a1ed10d75880cf9d7840343485c1ffa-small-clover-dev-docs-logo.png","4e2d7ae48c03777bb9262ad99f875e762a1ed10d75880cf9d7840343485c1ffa-small-clover-dev-docs-logo.png",418,48,"#5c5c5c","https://files.readme.io/c503c513266ab362750b99680730baf0f8e32035369aec33ddae8cfab6f3f9fb-clover-dev-docs-logo.png","67f01b49e9fe6e006406bce3"],"promos":[{"extras":{"type":"search","buttonPrimary":"get-started","buttonSecondary":"docs"},"title":"Clover Platform Documentation","text":"Welcome to the Clover Platform developer hub. What can we help you build?","_id":"5b05c1655f9a0d00039a8ae5"}],"body":{"style":"none"},"header":{"img_pos":"tl","img_size":"auto","img":[],"style":"overlay","linkStyle":"buttons"},"typography":{"tk_body":"","tk_headline":"","tk_key":"","typekit":false,"body":"Open+Sans:400:sans-serif","headline":"Open+Sans:400:sans-serif","code":"","custom_heading":null,"custom_body":null,"custom_code":null,"spacing":null},"colors":{"body_highlight":"","header_text":"","main_alt":"","main":"#228800","highlight":"","custom_login_link_color":"","body_highlight_dark":""},"main_body":{"type":"links"},"categoriesAsDropdown":false,"hide_logo":true,"sticky":false,"landing":true,"overlay":"triangles","notheme":false,"theme":"line","link_logo_to_url":false,"referenceLayout":"row","splitReferenceDocs":false,"childrenAsPills":false,"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":""}},"subheaderStyle":"links","showMetricsInReference":true,"referenceSimpleMode":true,"stylesheet_hub3":"","loginLogo":[],"logo_large":false,"colorScheme":"light","changelog":{"layoutExpanded":true,"showAuthor":false,"showExactDate":false},"allowApiExplorerJsonEditor":false,"ai_dropdown":"enabled","ai_options":{"chatgpt":"disabled","claude":"disabled","clipboard":"enabled","view_as_markdown":"enabled","copilot":"enabled","perplexity":"enabled","ask_ai":"disabled","mcp":{"command":"enabled","config":"enabled","cursor":"enabled","vscode":"enabled"}},"showPageIcons":true,"layout":{"full_width":false,"style":"classic"},"methodBadgeStyle":"classic","showMethodInSidebar":true,"showBreadcrumbs":false,"collapsibleCategories":false,"oneOfLayout":"dropdown"},"custom_domain":"","childrenProjects":[],"derivedPlan":"enterprise","description":"","hstsIncludeSubdomains":false,"planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"canceled","shouldGateDash":false,"isExternalSnippetActive":false,"error404":"","first_page":"landing","flags":{"allowXFrame":false,"allow_hub2":false,"alwaysShowDocPublishStatus":false,"cookieAuthentication":false,"correctnewlines":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"enterprise":true,"hideGoogleAnalytics":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"newApiExplorer":true,"newEditor":true,"newMarkdownBetaProgram":true,"newSearch":true,"oauth":false,"oldMarkdown":false,"rdmdCompatibilityMode":false,"speedyRender":false,"staging":false,"swagger":false,"translation":false,"tutorials":true,"allowApiExplorerJsonEditor":false,"useReactApp":true,"newHeader":false,"referenceRedesign":false,"auth0Oauth":false,"graphql":false,"singleProjectEnterprise":false,"dashReact":false,"allowReferenceUpgrade":true,"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":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"dryRunMigration":false,"aiDocsAudit":false,"aiPageLinting":false,"githubCloudSync":false,"disableAiChat":false,"enableSuggestedEdits":false,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"bidiSyncGitlabSelfServe":false,"gitTranslations":false,"gitlabCloudSync":false,"bidiSyncBitbucketSelfServe":false,"superHubPlanManagement":false,"mdxSanitizeComments":false,"disableSuperframe":false,"hideAiFeatures":false,"mdxish":true,"gittoUseNewIndexer":true,"mdxishEditor":true,"prefetch":false,"aiWriter":false,"superHubBranchReviewDashboard":false,"bidiSyncUseOdbAlternates":true,"mcpMetrics":false,"newDereferencer":false,"googleAuthEnabled":false,"newIframeStructure":false,"streamingSsr":false,"superHubNotifications":false,"superHubTypography":false,"newExplorerReducer":false,"gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"askAiOverride":"","superHubSlack":false,"customDomainAdminBypass":false,"aiDiscovery":false,"aiTranslation":false,"branchTaggedReviewers":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"superHubUiTesting":true},"fullBaseUrl":"https://clover-platform.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:25.037Z","start":"2026-03-24T12:06:24.573Z","status":"successful"},"transformation":{"end":"2026-03-24T12:07:17.857Z","start":"2026-03-24T12:06:48.955Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:07:22.849Z","start":"2026-03-24T12:07:22.373Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T23:43:04.952Z","status":"successful","end":"2026-03-24T23:43:04.953Z"}},"sync":{"linked_repository":{"provider_type":"github","linked_at":"2026-05-01T18:52:05.943Z","linked_by":"[email protected]","error":{},"privacy":{"visibility":"private","private":true},"name":"clover-devdocs","full_name":"clover/clover-devdocs","url":"https://github.com/clover/clover-devdocs","id":"1226709745","connection":"69f4f43d8ffa1312ca26e6cf"},"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"glossaryTerms":[{"term":"prorated subscription","definition":"A merchant subscription tier adjustment, when a merchant downgrades their subscription, or uninstalls an app, and Clover adjusts the charge difference in the current month's advance on the merchant account.","_id":"5f469d85c01cfd0de57b733c"},{"term":"partial month","definition":"The first charge is added when a merchant installs a new app and the installation occurs after the first of the month.","_id":"5fa5f5af0544dd002ae86eee"},{"term":"Auth","definition":"Authorization (Auth) is a tip-adjusted sale. This type of transaction is typically used by restaurants and services establishments.","_id":"649d3869b0358b0018203a82"},{"term":"billable merchant","definition":"Active merchant accounts with Clover. These are not test merchant or demo accounts, and are not suppressed for billing.","_id":"65420a1c3639880059d6c862"},{"term":"LTE","definition":"LTE (Long-Term Evolution) is a fourth-generation (4G) wireless standard that provides increased network capacity and speed for mobile phones and other cellular devices compared with third-generation (3G) technology.","_id":"661647a5e965fe0049f6d8f7"},{"term":"USB","definition":"Universal Serial Bus (USB) is an industry connection standard that allows data exchange and delivery of power between many various types of electronics.","_id":"6616562dbbacf5005644286c"},{"term":"NFC","definition":"Near Field Communication (NFC) is a group of wireless technologies that work over a short distance, usually 4 cm or less, to establish a connection. With NFC, you can transfer small amounts of data between an Android-powered device and an NFC tag or between two Android-powered devices.","_id":"66165f787392b500281d879b"},{"term":"SPI","definition":"Serial Peripheral Interface (SPI) is a widely used synchronous serial communication standard primarily employed in embedded systems. It facilitates short-distance wired communication between integrated circuits (ICs).","_id":"6616602c2f58ae0030b9e0b9"},{"term":"Android ABI","definition":"Android ABI (Application Binary Interface) defines how an application's machine code interacts with the system at runtime. It specifies details such as the CPU instruction set, endianness of memory stores and loads, conventions for passing data between applications and the system, and the format of executable binaries.","_id":"663480a9586d280012ffa5c7"},{"term":"UART","definition":"Universal Asynchronous Receiver-Transmitter (UART) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable.","_id":"6634c2cc21173a00853683de"},{"term":"Android Virtual Device","definition":"Android Virtual Device (AVD) is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator. An AVD contains a hardware profile, system image, storage area, skin, and other properties.","_id":"6634c647f44e150034a81e8f"},{"term":"API level","definition":"Each Android version corresponds to a specific API level. For example, Android 11 corresponds to API level 30, Android 10 to API level 29, and so on. The API level precisely identifies the version of the API set that your app can call into. It defines the combination of manifest elements, permissions, and other features that you can use as a developer.","_id":"6634c7d40a25a7005195a4c9"},{"term":"DPI","definition":"DPI (dots per inch) is the pixel density, that is the number of pixels within a physical area of the screen. DPI is different from the screen resolution, which is the total number of pixels on a screen.","_id":"6634cc35af2922003f0ae0c7"},{"term":"CORS","definition":"Security feature that allows web pages to request resources from different origins, controlled through HTTP headers.","_id":"663b440a27b57b0051ef9a8f"},{"term":"Clover APK","definition":"Android application package (APK) created for integration with Clover merchant services and point of sale (POS) systems. Developers must design, generate, and register their APK following Clover standards. Once approved, the APK is submitted for distribution on Clover devices, ensuring it meets the necessary guidelines for proper installation and functionality on the hardware.","_id":"663b4b305eca4200256ecda6"},{"term":"Clover ID","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. \nThis identifier displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and also on the Merchant Dashboard > User Settings page below the merchant name. It also displays in the URL (link) of the Clover Merchant Dashboard.\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId.\nFormat: 13-alphanumeric","_id":"663dcf4edeb40d00180a5b76"},{"term":"MID","definition":"Merchant identifier (MID) identifies your merchant account and is the same across devices with the same merchant name. This identifier is available on the Clover device Diagnostics > Additional Details screen and also on the Merchant Dashboard > User Settings page, in the MID column.\nNote: The MID is different from the merchant UUID or merchantId.","_id":"663dd341cec219002bb270ec"},{"term":"merchantId","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId.\nThe merchantId displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and on the Merchant Dashboard > User Settings page below the merchant’s name. It also displays in the URL (link) of the Clover Merchant Dashboard.\n\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. \nFormat: 13-alphanumeric; Note: The merchantId is different from the MID.","_id":"6641eb054a33e700319e8fad"},{"term":"blackhole payment gateway","definition":"Default gateway for test merchant accounts in the Clover sandbox environment. It sets all transactions to be successful and suffices for most development use cases.","_id":"66447e6e653fa90018e2afb5"},{"term":"vaulted card","definition":"Securely stored card token that can be used for future transactions. It lets merchants process recurring payments or quickly complete in-person transactions for returning customers. The card token is one-way encrypted and can be stored outside the Payment Card Industry Data Security Standard (PCI DSS) scope.","_id":"665024515cb512003d87936b"},{"term":"card tokenization","definition":"Faud-prevention measure that replaces sensitive payment credentials, such as credit card numbers, cardholder names, expiration dates, and CVV codes with non-specific identifiers known as tokens. These tokens are used for subsequent transactions, allowing secure storage and processing of payment information.","_id":"6650245bc4047b006129c46e"},{"term":"REST Pay Display API","definition":"Provides a simple interface for point of sale (POS) applications to accept payments on Clover Flex or Clover Mini devices. Developers can connect their apps to Clover devices using cloud or local network connections without requiring an embedded software development kit (SDK). It minimizes effort for handling on-device activities and states.","_id":"665024a633a4ef004cea5907"},{"term":"PSD2","definition":"Payment Service Directive 2 (PSD2) is a European Union directive that grants bank customers the ability to share their account information with third-party providers. These providers can then manage the customer’s finances, enabling services like direct payments.","_id":"665431a4b21564006f6b8c05"},{"term":"EMV","definition":"EMV cards are smart cards, also called chip cards, integrated circuit cards, or IC cards. They store their data on integrated circuit chips in addition to a magnetic stripe. EMV stands for Europay, Mastercard, and Visa, the three companies that created the specifications to facilitate worldwide interactions and acceptance of secure payments.","_id":"66544b3f1bccff0031b78365"},{"term":"EMVCo","definition":"Consortium with equal control among American Express, China UnionPay, Discover, JCB, Mastercard, and Visa. EMVCo creates and manages EMV® Specifications and programs that enable seamless and secure card-based payments for businesses and consumers worldwide.","_id":"66544e518f53e8002b8cf6c6"},{"term":"3DS","definition":"3DS protocol uses a three-domain model to add an extra layer of security between the financial authorization process and the online authentication process. The three domains are: 1. Issuer domain: Financial institution (FI) or bank that issued the card used for the transaction. 2. Acquirer domain: Merchant that accepts online payments from customers. 3. Interoperability domain: 3DS infrastructure platform that is the secure intermediary facilitating communication between the customer and the merchant.","_id":"66544eb4e0f4d500690f5ccd"},{"term":"Strong Customer Authentication","definition":"European regulatory requirement that makes online payments more secure by using biometrics to validate card-not-present (CNP) digital transactions. With the PSD2 regulations, additional information is needed from the user at the time of payment than just the card number and a card verification code (CVC). This information to verify user identities includes one of the following: 1. what the user knows: password, PIN. 2. what the user possesses: card, mobile phone. 3. what belongs to the user: fingerprints, facial recognition.","_id":"66544f82555ae8001177e275"},{"term":"AID","definition":"Application Identifier. An identifier stored on the chip and terminal. It is used to identify mutually supported applications.","_id":"6657019455ddd9002b624bd4"},{"term":"webhooks","definition":"HTTP-based callback function allows for lightweight, event-driven communication between two application programming interfaces (APIs). When an event, such as a new user registration or a completed purchase, happens in one application, that application sends an HTTP POST request to a specific URL (the webhook) along with relevant data. The receiving application, which has the webhook, processes this data and takes appropriate actions based on the event.","_id":"6657f154ca069c002bd8e14b"},{"term":"developer platform","definition":"Open platform for third-party developers to build apps and integrate external point-of-sale systems with Clover devices.","_id":"665856f0f4f292004bed1660"},{"term":"Release notes","definition":"Monthly updates about new features and updates across the Clover developer platform.","_id":"6658571d250efe0030376d3a"},{"term":"Bug fixes","definition":"Monthly updates on the latest bug fixes across the Clover developer platform.","_id":"66585726f46d7600517c38b4"},{"term":"API changelog","definition":"Monthly updates related to API changes.","_id":"66585736ab2c5b0057f78516"},{"term":"Announcements","definition":"Messages that are sent in the developer communications emails.","_id":"6658574f1f2ad700769fd4ca"},{"term":"API docs and SDK guides","definition":"Resources needed to work with the Clover app and integration platforms.","_id":"665857b5b5c13a006581ef42"},{"term":"Code and sample apps","definition":"Resources on GitHub to help get started with the Clover APIs.","_id":"66585809f0013f005829dfed"},{"term":"semi-integration","definition":"Semi-integration involves a third-party point of sale (POS) system using Clover for payment processing. In a native integration, your POS runs directly on Clover hardware as an app.","_id":"6659bd2d2f7dfe00117cc3f2"},{"term":"Android Payment API","definition":"Intent-based API used in applications running on Clover devices for executing payment transaction requests. It supports payment operations, including payments, preauthorizations, and payment reversals (void/refund), using Android Intent Builders.","_id":"665d3aad49f7e10014c6ec18"},{"term":"Clover Connector SDK","definition":"Provides an interface that allows external point of sale (POS) systems to access the same payment functions as PaymentConnector, such as sales and refunds. It also offers additional features like custom receipts and Android activities. The SDK is available for four platforms: Android, iOS, JavaScript, and .NET.","_id":"665d3ad3a40a010010ae9b1d"},{"term":"Payment Connector","definition":"Java-based interface that lets you build a point of sale (POS) directly on a Clover device. It provides all of the Clover features needed for your app to make a sale, issue a refund, and perform other payment functions.","_id":"665d3af204832a002afc719f"},{"term":"card on file","definition":"Card on file (COF) transactions are payments in which the cardholders have authorized merchants to store their credit or debit card information to use for future purchases or recurring payments.","_id":"665ff984f6928a0011b2597c"},{"term":"frictionless flow","definition":"For card-not-present (CNP) payments, frictionless flow refers to a seamless process where the financial institution (FI) or issuer can verify the legitimacy of a transaction without requiring additional input from the cardholder. This behind-the-scenes verification lets customers complete their purchases without any noticeable interruptions or authentication steps.","_id":"6660077fed8e620058cba957"},{"term":"challenge flow","definition":"For card-not-present (CNP) payments, challenge flow indicates that the financial institution (FI) or issuer requires more evidence to verify the legitimacy of the transaction. In the challenge flow, the customer must provide extra information to authenticate the payment, such as a password or a one-time code that the card issuer sends to their mobile device.","_id":"6660082bb0c450004a3d7cd3"},{"term":"Minimum SDK","definition":"The minSdk specifies the minimum SDK version your app supports. For example, if your minSdk is 26, your app will only run on devices with Android 8 (API level 26) or higher. The minSdk is defined in your app's build.gradle file.","_id":"6666dc0bda9518005ad0f2c4"},{"term":"Target SDK","definition":"The targetSdk is the SDK version your app targets. It should always be the same as the compileSdk. For instance, if your targetSdk is 30, your app is designed to work optimally on Android 11 (API level 30) or higher. The targetSdk is defined in your app's build.gradle file.","_id":"6666dc4a3ad9e6001902ee93"},{"term":"Clover Go reader","definition":"EMV-capable device that pairs with an Apple (iOS®) and Android smartphone or tablet. The reader allows iOS and Android mobile apps to accept swipe, NFC, or EMV transactions with no EMV certification required at the merchant's end. Clover Go reader accepts chip, dip, and contactless payments, including Tap-to-Pay on iPhone, Apple Pay®, Google Pay® and Samsung Pay®.","_id":"66694ec3f70d380056818491"},{"term":"reCAPTCHA","definition":"Completely Automated Public Turing test to tell Computers and Humans Apart. reCAPTCHA is a Google service that verifies a user is human and not a bot by presenting tests that are easy for humans but difficult for automated software.","_id":"666c33157d8b4a00100763cd"},{"term":"closeout","definition":"Process of closing your open batch of transactions and submitting it for clearing, settlement, and funding.","_id":"66b1e05f8cc1e80036f755f1"},{"term":"Idempotency Key","definition":"Unique identifier used to ensure that a particular operation is performed only once, even if the request is made multiple times. This is particularly useful in scenarios where network issues or client retries might cause the same request to be sent more than once.","_id":"66b1e081070411006f242a41"},{"term":"Card track data","definition":"Information encoded on a payment card's magnetic stripe or chip. The data is used to authorize and process transactions.","_id":"66b1e092d989a500309e106f"},{"term":"POS","definition":"Point of sale (POS) system enables businesses to accept customer payments and efficiently manage operations. The system consists of both hardware and software components. The software is often cloud-based, allowing access from anywhere. The hardware typically includes a register, barcode scanner, card reader, cash drawer, and receipt printer.","_id":"66b1e0d73facec0061549d33"},{"term":"Environment variables","definition":"A set of key-value pairs that a running process can access during runtime. These variables can be used to configure and adjust the behavior of the app or system, and they can vary between different execution environments.","_id":"66b1e0e7c9a0630026e33d8a"},{"term":"Device Manager","definition":"Android Studio tool for creating and managing an Android Virtual Device (AVD).","_id":"66b1e1012f4fbd0012bc9ec5"},{"term":"REST Pay Display API","definition":"API that lets point of sale (POS) applications accept payments on Clover Flex or Clover Mini devices. Your apps can connect to Clover devices using cloud or local network connections without needing an embedded software development kit (SDK).","_id":"66b1e1598ab3d40024a6fb42"},{"term":"Incremental authorization","definition":"Allows merchants to change the original authorization amount to ensure the customer's card can still cover the higher amount.","_id":"66b1e1691318ca0024ab4e71"},{"term":"Android SDK","definition":"SDK to build apps that run on Clover devices and publish your apps on the Clover App Market. It is also used for semi-integration with a Clover device, enabling a third-party point of sale (POS) system to use Clover for processing payments.","_id":"66b1e20a42125e00248c4a47"},{"term":"Ecommerce API","definition":"API to integrate Clover payment capabilities into your online or web-based applications. It provides endpoints for creating tokens, processing payments, and managing customer data. OAuth tokens are necessary for authentication and authorization.","_id":"66b1e216070411006f2430f7"},{"term":"REST API","definition":"API to build a browser-based integration that creates a secure connection to your website. It redirects a merchant from the Clover Merchant Dashboard to your website URL (link).","_id":"66b1e220501830000ff1fe30"},{"term":"Remote Pay","definition":"API that lets your point of sale (POS) system communicate with Clover payment devices. The Remote Pay SDK is used to semi-integrate a POS with a Clover device for card-present transactions. This allows merchants to process payments and perform operations through the cloud. The SDKs are available for different platforms, including Android and JavaScript.","_id":"66b1e2478171f6004bf55916"},{"term":"authenticator app","definition":"Mobile or desktop application that generates time-based or counter-based one-time passwords (OTPs) for secure two-factor authentication (2FA). You can download an authentication app from the relevant app store. Popular authenticator apps include Google Authenticator and Microsoft Authenticator.","_id":"66b1e2a2eb2473005274f428"},{"term":"QR code","definition":"Quick Response (QR) code. Type of two-dimensional barcode that stores data in a pattern of black and white squares. You can scan the QR code with a camera to quickly access information like URLs, contact details, or authentication keys. The QR code typically expires after a short period, usually around 5 minutes.","_id":"66b1e2d12ecf960059e5efed"},{"term":"Text code","definition":"Alphanumeric secret key that you enter manually into an authenticator app to generate a one-time password (OTP) for account verification. The text code does not expire, but the OTP generated from it is time-based and usually expires every 30 seconds.","_id":"66b1e2f761fda7001c880966"},{"term":"verification code","definition":"Time-based one-time password (OTP) generated after you scan a QR code or enter a text code in your authenticator app. You need to enter this 6-digit OTP to verify your identity when logging into the Global Developer Dashboard. The OTP usually expires every 30 seconds.","_id":"66b1e3324a8ed4000f0daec7"},{"term":"recovery codes","definition":"Alphanumeric backup verification codes generated when you add a new account to your authenticator app. Recovery codes let you access your account if you do not have your device.","_id":"66b1e3602a764500122160e0"},{"term":"Bearer token","definition":"Type of token used in the authorization header of an API request to authenticate the client making the request. It is typically included in the request header as follows: Authorization: Bearer \u003ctoken>. This token is a string that represents the user’s identity and permissions.","_id":"66b5d42a7b9c96003cfdd893"},{"term":"issuer","definition":"Financial institutions, such as a bank that issues a credit card to a consumer or business.","_id":"66cc08fa653916002083ca5e"},{"term":"payment processor","definition":"Technical intermediary, such as Fiserv or Clover, that securely handles transactions between a merchant and a customer by processing card or electronic payments.","_id":"66cc0bc88f93620042dd0995"},{"term":"OTP","definition":"Unique, temporary code used for a single login session or transaction. A one-time password (OTP) is generated after you scan a QR code in your authenticator app during account setup or use the authenticator. You need to enter the OTP to verify your identity when logging into the Global Developer Dashboard.","_id":"66cee8a5c5ffef0068e4d2e6"},{"term":"Ecommerce API key","definition":"Identifies the merchant who is tokenizing customers' cards. You can use the same static Ecommerce API key to tokenize multiple cards for that merchant. This is also known as the PAKMS key, as it is generated from the Public Access Key Management Service (PAKMS) using the [Ecommerce - PAKMS Service API](https://docs.clover.com/dev/reference/getapikey).","_id":"66d14c2122903b002598a48e"},{"term":"certificates","definition":"Certificates and profiles are essential for app development and distribution of the Apple Pay® service on a Clover Ecommerce integration. Certificates are digital documents that verify your identity as a developer. They are used to sign your apps and ensure they come from a trusted source.","_id":"66d5643fc8122b003172dd2b"},{"term":"payment gateway","definition":"Virtual equivalent of a physical credit and debit card reader. It transfers the data between the point of entry—either a terminal, website, or mobile device—to the payment processor to continue the payment lifecycle.","_id":"66e2bcaff0da2a006234a6ec"},{"term":"SCV","definition":"Security code value is a unique code used to validate and secure transactions for Clover native gift cards.","_id":"66e2bdb31e8238004781d0d9"},{"term":"hosted payment form","definition":"Secure way to accept ecommerce credit card payments without the need for a shopping cart. Clover hosts the form, so sensitive payment data does not pass through the merchant's system, reducing the PCI scope and minimizing merchant liability. You can implement payment forms using a standard template or customize it to fit the look and feel of the merchant's ecommerce website.","_id":"66e2bfa3053af00011eed401"},{"term":"non-native gift card","definition":"Gift cards managed through payment gateways other than Fiserv and do not use the Clover-integrated Gift Card Solution. May have a 4-8 digit foreign access code (FAC) for transactions and may not offer the same level of integration with the Clover POS system. While non-native gift cards can be used with Clover, they may require additional steps or configurations to process transactions.","_id":"66e7fe4fa9dfdf006733e303"},{"term":"FAC","definition":"Foreign access code value is used to process transactions for non-native gift cards on the Clover POS system.","_id":"66e800edfa09a8002580c72a"},{"term":"native gift card","definition":"Gift cards that use the Clover-integrated Gift Card Solution, managed through the Fiserv payment gateway. May have a 4-8 digit security card value (SCV). These non-expiring cards are fully integrated into the Clover POS system, allowing for seamless transactions and management.","_id":"66ea5afc09450f003cb42c5b"},{"term":"global developer platform","definition":"Provides an intuitive and seamless experience to create apps and integrations for different regions. With a single developer account, you can access both sandbox and production environments and switch between them effortlessly.","_id":"66f4d1d2cb8a1b005b10dc6c"},{"term":"promotional code","definition":"Unique values, usually alphanumeric, associated with a virtual gift card and sent by email, text, or through an app. The promotional or promo code is used to activate and redeem the virtual gift card.","_id":"66f4f3b6f110bb0025a0a546"},{"term":"denominated gift card","definition":"Cards with a specific value assigned to them at the time of purchase. For example, a gift card might be worth $25, $50, or $100. When a customer buys a denominated gift card, they know exactly how much value is on the card.","_id":"66f4f3ea859e85000f9ed42f"},{"term":"non-denominated gift card","definition":"Cards without a preset value at the time of purchase. The value is determined at the time of activation. The purchaser or recipient can choose the amount, depending on the terms set by the merchant.","_id":"66f4f4046297ad0045acd3d6"},{"term":"physical gift card","definition":"Tangible gift card that you can load and reload with an amount and use as a cash equivalent to make in-store and online purchases.","_id":"66f4f7abaf58cc002b79b897"},{"term":"Client ID","definition":"Uniquely identifies your app on the Clover App Market. This ID confirms that your app is participating in the OAuth 2.0 flow. Your client ID is the App ID value in your app's Settings page on the Developer Dashboard.\nUsage: type \u003c\u003cglossary:client ID>> in your documentation","_id":"66f4facbbbd52700616a927b"},{"term":"multi-factor authentication","definition":"Security process that requires two different forms of identification to verify a user’s identity, typically combining something you know, such as a password, with something you have, such as a mobile device.","_id":"66f4fafe5a175000440a84ad"},{"term":"multi-lock","definition":"Set aside and lock a specific amount from the available balance on a gift card for a specified time period. Multiple locks can be active simultaneously as long as there is a balance. The locked amount automatically unlocks when the specified time expires or upon request to unlock and redeem the amount.","_id":"66f4fb8c5a175000440a8522"},{"term":"cash out","definition":"Process of removing the remaining balance from a gift card, bringing the account balance to zero (0). The customer may receive the remaining balance in cash, or choose to cash out and deactivate the card or close the gift card account.","_id":"66f4fbe75a175000440a8626"},{"term":"virtual gift card","definition":"Unique code or number delivered to a recipient by email, text, or through an app. The virtual card number or promotional code is used for making purchases at online or brick-and-mortar retailers.","_id":"66f533e214205c0013756446"},{"term":"gift card","definition":"A gift card is a prepaid payment card used to make purchases at participating restaurants, stores, or online retailers.","_id":"67035f89dfe5db0036fe25c0"},{"term":"tokenization","definition":"Security measure that replaces a user's payment details, such as credit card numbers, expiration dates, and card verification values or codes, with non-specific IDs called tokens. Tokens are randomly generated when a customer provides their payment information at the point of sale (POS) or on an ecommerce website.","_id":"6703600f788acb004914bf49"},{"term":"split tender payment","definition":"Process of dividing or splitting a single transaction into multiple payment methods. For example, a customer can pay part of their bill with cash and the remaining balance with a credit card. This feature is useful when customers want to use more than one payment method to complete a purchase.","_id":"6704a45f98ee1b001138b598"},{"term":"Alternate Launch Path","definition":"Link (URL) or subpath for your app that you set on the Edit REST Configuration page for web apps. When a merchant accesses your app without installing it, the app redirects the merchant to this Alternate Launch Path, which then directs them to the Clover App Market to initiate the v2/OAuth flow. This Alternate Launch Path URL is required for the `/oauth/v2/authorize` flow, as it uses expiring tokens to authenticate with APIs, ensuring the merchant is properly authenticated and connected to your app.","_id":"670ca43ff504a7006e24bf8f"},{"term":"Site URL","definition":"Link (URL) for your app that you set on the Edit REST Configuration page for web apps. After a merchant installs your app and launches it from the Merchant Dashboard, they are redirected to the Site URL. The Clover server sends authenticated merchants to the Site URL through the `/oauth/authorize` flow, where they can log in or select their merchant account.","_id":"670cea1f32a444001e3c6c28"},{"term":"Redirect URI","definition":"Link (URL) that an app uses to redirect users after authentication using the OAuth flow. The `redirect_uri` parameter is used to specify a custom post-authorization landing page. This URL must be a subpath of the set Site URL for the app.","_id":"670de4f72e9c8d0054159324"},{"term":"code verifier","definition":"Cryptographically random string that a low-trust app needs to generate at the beginning of the authorization process. It is used to create a code challenge and is sent to the authorization server to verify the authorization request.","_id":"6710ce4aac89460069e91d4d"},{"term":"code challenge","definition":"Base64-URL-encoded string derived from the code verifier using a transformation method such as SHA-256. Code challenge is sent to the authorization server during the initial authorization request. It ensures that the app that initiated the request is the same app that is completing the request.","_id":"6710d1df81cc1d0010747535"},{"term":"Proof Key for Code Exchange","definition":"Extension to the OAuth 2.0 authorization code flow designed to enhance security, especially for public clients like mobile and single-page applications that cannot securely store the Client Secret. PKCE ensures that even if an authorization code is intercepted, it cannot be exchanged for tokens without the original `code_verifier`.","_id":"6710d771f898df00102583cc"},{"term":"MOTO","definition":"MOTO (Mail Order/Telephone Order) transactions are merchant-initiated, card-not-present (CNP) transactions in which customers provide their order and payment details by regular mail (not email), fax, or telephone. In these transactions, card information is captured, and payment is processed with the customer’s consent, even though the card is not physically present.","_id":"6719dd13e584590033ba710a"},{"term":"TransArmor token","definition":"Provides an additional layer of security to protect cardholder data during transactions and reduce the regeneration of payment tokens.","_id":"671a081299f628005be483be"},{"term":"high-trust app","definition":"Securely stores and uses the Client Secret (`app_secret`) and employs the standard authorization code flow to generate expiring authentication tokens.","_id":"6732ec60a401bd0010b56e4f"},{"term":"low-trust app","definition":"Mobile or single-page apps that cannot securely store the Client Secret (`app_secret`) and uses the authorization code flow with Proof Key for Code Exchange (PKCE) to enhance security during token acquisition.","_id":"6732ec9383f7fa0076fa09c1"},{"term":"Revenu Québec","definition":"Agency of the government of the Province of Quebec, Canada. It collects taxes to fund public services, ensures that all citizens pay their fair share, and administers programs.","_id":"673d5d38d27f0b00199187cb"},{"term":"Developer Dashboard","definition":"All new apps for merchants in North America, Europe, and Latin America, and Asia Pacific are created on the Global Developer Dashboard.","_id":"68b817c046898ec8f853f343"}],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"healthCheck":{"provider":"statusPage","settings":{"page":"3s40xjwbpcq5","status":false,"url":""}},"i18n":{"defaultLanguage":"en","languages":["en"],"state":"enabled"},"intercom":"","is_active":true,"internal":"","jwtExpirationTime":0,"landing_bottom":[{"text":"Create an Android app or web app that uses Clover's REST API to provide merchants with help to run their business.","title":"Assist merchants with their business","alignment":"left","type":"text"},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"Partner Integration","text":"Clover hardware is world class. Use it to create a custom, end-to-end payment and POS solution that showcases your brand.\n\nSee [clover connect](https://integrate.clover.com/) for more information.","mediaImage":["https://files.readme.io/cd3c926-clover_partner_solutions.png","clover partner solutions.png",1892,1380,"#cdcccb"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"","mediaImage":["https://files.readme.io/f2b3e2d-clover_connect.png","clover connect.png",2382,1654,"#d8d8d1"],"text":"Elevate your application with efficient integrations, support — and now even devices to complete your platform.\n\nSee [clover connect](https://integrate.clover.com/) to learn more."},{"type":"text","alignment":"left","title":"Integrate with Clover's payments platform","text":"If your app needs to process payments, choose one of the following options as your starting point."},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"First steps","text":"If your app just needs to take a payment, this tutorial will show you how.\nhttps://youtu.be/H5um4biZbaw\n\nThe REST Pay API allows developers familiar with the Ecommerce API to quickly add an in-person payment option to their app.\n\n* REST Pay Display provides a simple bridge between your point-of-sale system and a Clover Flex or Clover Mini. \n* A REST integration is the quickest way to begin taking payments on a Clover device. \n* Any POS application capable of making HTTP requests can use REST Pay to take card-present payments. \n* A retailer can take any type of standard card-present payments after your POS app is integrated with REST Pay.","mediaImage":["https://files.readme.io/663c6d7-REST_Pay_API.png","REST Pay API.png",2000,1216,"#dcdddc"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"Semi-integration","text":"Your POS is already used and loved by your merchants, and you want to add a Clover device to make the customer experience great too.\n\nCheck out [Semi-integration basics](docs/clover-development-basics-semi) to learn more.","mediaImage":["https://files.readme.io/a0968e7-semi_integration.png","semi integration.png",2144,1452,"#f1f1f1"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","title":"Full integration","text":"Use Clover hardware to build a fully featured payments app with Android.\n\nCheck out [Build with Android](https://docs.clover.com/docs/clover-development-basics-android) to learn more.","mediaImage":["https://files.readme.io/2ef6aa5-clover-full_integration.png","clover-full integration.png",2744,718,"#d5cba1"]},{"type":"text-media","alignment":"left","side":"left","mediaType":"image","mediaImage":["https://files.readme.io/f908719-Clover_REST_API.png","Clover REST API.png",2462,1602,"#c3c5c6"],"title":"Build","text":"Use the REST API to convert everyday business data into insights merchants can use."},{"type":"links","alignment":"left"},{"type":"docs","alignment":"left","pageType":"Documentation"}],"mcp":{"state":"disabled"},"mdxishMigrationStatus":{"migratedFrom":"rdmd"},"metrics":{"thumbsEnabled":true,"enabled":false,"monthlyLimit":0,"planLimit":1000000,"realtime":{"dashEnabled":false,"hubEnabled":false},"monthlyPurchaseLimit":0,"meteredBilling":{}},"modules":{"suggested_edits":false,"discuss":false,"reference":true,"examples":true,"docs":true,"landing":false,"changelog":true,"logs":false,"custompages":false,"tutorials":true,"graphql":false},"name":"Clover Platform Docs","nav_names":{"discuss":"","reference":"","docs":"","changelog":"API Changelog","tutorials":"","recipes":""},"oauth_url":"","onboardingCompleted":{"documentation":true,"appearance":true,"jwt":true,"api":true,"logs":true,"domain":true,"metricsSDK":false,"aiReady":false},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"id":"614230303827d8006b4d2e55","email":null,"name":null},"plan":"enterprise","planOverride":"enterprise","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":true,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":true,"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":true,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"percentScore":50,"totalScore":180},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":true,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"seo":{"overwrite_title_tag":false},"ssl":{"minTLS":"1.0"},"stable":{"_id":"5b315d5518ee180003969187","project":"5b05c1655f9a0d00039a8ae4","createdAt":"2018-06-25T21:23:33.924Z","releaseDate":"2018-06-25T21:23:33.924Z","categories":["5b315d5518ee180003969188","5b315d5518ee180003969189","5b315d5518ee18000396918a","5b315d5518ee18000396918b","5b315d5518ee18000396918c","5b315d5518ee18000396918d","5b315d5518ee18000396918e","5b6a2983402b32000336c433","5b7c743ca6bfa600037d807d","5b920d510cb605000312f572","5ba55fbec7336b000348ef9b","5ba5e53e6ddff700030be197","5ba906d998ba74000325844b","5ba909a895e6a30003c43428","5ba94fb746fe180003bbb640","5ba94fd846fe180003bbb644","5ba950de99f4820003bf49ae","5baab11602675500038e2cf6","5baab179dddbf3000332189d","5baab2c402675500038e2d18","5baab3581bbaed0003fee9d9","5bc76bae647467004ac970e3","5bc786c3b194b9002b521599","5bc786f74e0881001303f675","5bc7871a4ca7da015b699655","5bc78751cb227e0032208d61","5bc7972ab40831004fe09345","5bc79768046ef7001ede489f","5bc797927cf8fa00447c9344","5bc798bd1a96c100f4f4cd58","5bc798d69eaf14000dfe9fa9","5bc7c5baa5dd63003781c73b","5bdcbda991e8780018ab3117","5bdcbdc25fb4b50031cebc31","5bdcbe015fb4b50031cebcfc","5bdcc2f8ea37cd003e8b0148","5bdd2382e87c650062d948bb","5bdd23ac7fdf64001e389a99","5bdd24896f3ba90013ee8342","5bde03277fdf64001e38bcba","5bde03456ff3e8000d1b5695","5be49270f2a711038ea38f9c","5be49672089736002930b4f9","5bff0bf8aed5310175fc418f","5bff0c938d5b6a0049e4708a","5bff0d02aed5310175fc4262","5bff13b48f0af00385bed700","5cbff29efb86e10042827418","5cbff3459590bd002c9ffb89","5cbff35facc2840051a7f40e","5cbff3a7eff4f6000eb97a3c","5cbff4e6c4a1750045c8ef63","5cbff511a5c99200195e7cc1","5cc0cad88b6f7e003d13090d","5cc0cb24cee7c30063e37a0e","5e0fc06313523805823744ac","5e3da5c5266513029cc26f9b","5e3da603b50f81001259966f","5e3da65404ccd2004599354f","6046893c88c08001162aee5b","606c6b057e15e6027b80e4a2","60c8c6b6992f70000ffd1974","6111600e25224f0023d837fe","61a6bc3df9bbeb005f32fa22","61e06692c0a24206af5e0fc9","61e067d7a66fb8003ebf4ea6","61fc1dbd3aee840039bd34d0","61fc48d8289d1400100cf03c","61fd687398a6f5003fa245a0","61fd744da94a8800297e8a25","61fd74adf9bc83002970437c","61fd75023f98c500506ab1a6","61fdc4809f8d98028fa96159","623deea3d5f1f6058a4471a1","62ab5f9a0af2ca001c53228c","62f13db0c7cd4c09510ebf40","62f31b0e4d5a30001d46678f","62f31ef6834269002714d163","62f3249e02e948005e8a7dec","62f3251361526f0013b12af2","62f53e548a47c900373b8030","62f54ed763f320008dc93292","62f550209876a5001d0c9810","62fa8207df8921002abb6684","6368ac3ce65560007edf57d3","636b7d3a65af28002db3d4e8","636b7f1b458073004dc7ec83","636b7fb877f20f055459041b","636b8087162e8502403161a8","636b80eb0daf6c04c689398a","636b8184cd162105f6a24117","6376b401081e400003bab66e","6380c915c536c100469c95ec","638727e2b0b670000f59e2db","638aa2c176938300348551e3","638aa31084ff7a003375961c","638aa37a90a346003a6d80cb","638aaec6c6522e00242133b0","639a544141b44e00184c3c04","639afeb42afa3e004dd3de02","63e5e3e58de7b50057f48c9b","64078c8a54e610001147f64d","64c74fe80040d20040043972","64d363fd3090ff0050815bf3","6513b6dc1ec71f004b75c24e","659637d3dfae32002385514f","659638b759408a000ff5edfb","65bb718d07848d000f10506a","66062cf584f7da005bb516b0","6619db326b9040002909faa0","66221400e36088005157de0c","66ac1e906adcda0010d5ce02","66ac2519485c6000126ac403","66b33df521c3760050a8f16a","66b33e726c773d0025da8602","66b3409196a12b00196e031c","66b354359c0de0001e2f09a0","66b38e62c98322002576ed67","66b5b0c041d427001927f7be","66b5b0c141d427001927f7c0","66b63c35b1557b0070f77916","66db3ddaf9963b006395838b","66db41183fba840019b0ca75","66e00f9085df450014a2d147","66f10cf5374b01004f942899","66f2d4d9d5d737001020a923","66f3a9ba322cea0018fde133","66f3a9d154d17c0062d78d84","66f3a9f5d706bf002ac39a95","66f3aa067fb26f0030dacac0","6715eb8f33aaba003dbbf9c6","672874814d4f0d005f65ad4a","67296b897da80800413ba43d","675665f2f780f952a053fb9e","67625efe27a579002c113240","678ace9ea52e05003d80b7a4","67ad85632688620055ac4da9","67ecc36c2cb13d0052056a6c","682adeeceb4a24004bdf3f28","68406c700891dd001901da4b","68407bbbea761f0012f3c5ae","684134b3ceba690045132640"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"published","version_clean":"3.0.0","version":"3","__v":59,"updatedAt":"2026-04-27T21:13:20.358Z","pdfStatus":"complete","apiRegistries":[{"filename":"ecommerce-service-api.json","uuid":"1ghuo735mo0c7s9y"},{"filename":"pakms-service-api.json","uuid":"1rx21cm17gb4hi"},{"filename":"clover-card-present-rest-api.json","uuid":"adhg9modeou8f"},{"filename":"ecommerce-recurring-apis.json","uuid":"6xtc173lp73m9ra"},{"filename":"platform-api.json","uuid":"1836s2z4smohp2458"},{"filename":"multiple-service-charge-msc-pilot-apis-k3c.json","uuid":"17440ljmod6cyth"},{"filename":"card-tokenization-service-api.json","uuid":"rna2jl2qm22yvxhu"},{"filename":"transarmor-tokenization-api.json","uuid":"6cii1vmebu3a6t"},{"filename":"ach-tokenization-service-api.json","uuid":"26fy2892fm22ymtc3"},{"filename":"gift-card-tokenization-service-api.json","uuid":"3yii2i91jm22yqbyg"},{"filename":"apple-pay-tokenization-api.json","uuid":"4qb8um38pn2nj"},{"filename":"invoiceapi.json","uuid":"jqf81pm61abo6f"}],"source":"readme"},"subdomain":"clover-platform","subpath":"dev","topnav":{"edited":true,"right":[{"type":"user"}],"left":[{"type":"url","text":"Release Notes","url":"https://docs.clover.com/docs/whats-new"},{"type":"url","text":"Announcements","url":"https://docs.clover.com/dev/docs/release-notes-announcements"},{"type":"url","text":"Blog","url":"https://medium.com/clover-platform-blog"},{"type":"url","text":"FAQ","url":"https://docs.clover.com/dev/docs/faqs"},{"type":"url","url":"https://docs.clover.com/dev/docs/developer-technical-support","text":"Support"}],"bottom":[]},"trial":{"trialDeadlineEnabled":false,"trialEndsAt":"2024-08-15T16:40:46.201Z"},"translate":{"languages":[],"provider":"transifex","key_public":"","org_name":"","project_name":"","show_widget":false},"url":"docs.clover.com","versions":[{"_id":"5b315d5518ee180003969187","project":"5b05c1655f9a0d00039a8ae4","createdAt":"2018-06-25T21:23:33.924Z","releaseDate":"2018-06-25T21:23:33.924Z","categories":["5b315d5518ee180003969188","5b315d5518ee180003969189","5b315d5518ee18000396918a","5b315d5518ee18000396918b","5b315d5518ee18000396918c","5b315d5518ee18000396918d","5b315d5518ee18000396918e","5b6a2983402b32000336c433","5b7c743ca6bfa600037d807d","5b920d510cb605000312f572","5ba55fbec7336b000348ef9b","5ba5e53e6ddff700030be197","5ba906d998ba74000325844b","5ba909a895e6a30003c43428","5ba94fb746fe180003bbb640","5ba94fd846fe180003bbb644","5ba950de99f4820003bf49ae","5baab11602675500038e2cf6","5baab179dddbf3000332189d","5baab2c402675500038e2d18","5baab3581bbaed0003fee9d9","5bc76bae647467004ac970e3","5bc786c3b194b9002b521599","5bc786f74e0881001303f675","5bc7871a4ca7da015b699655","5bc78751cb227e0032208d61","5bc7972ab40831004fe09345","5bc79768046ef7001ede489f","5bc797927cf8fa00447c9344","5bc798bd1a96c100f4f4cd58","5bc798d69eaf14000dfe9fa9","5bc7c5baa5dd63003781c73b","5bdcbda991e8780018ab3117","5bdcbdc25fb4b50031cebc31","5bdcbe015fb4b50031cebcfc","5bdcc2f8ea37cd003e8b0148","5bdd2382e87c650062d948bb","5bdd23ac7fdf64001e389a99","5bdd24896f3ba90013ee8342","5bde03277fdf64001e38bcba","5bde03456ff3e8000d1b5695","5be49270f2a711038ea38f9c","5be49672089736002930b4f9","5bff0bf8aed5310175fc418f","5bff0c938d5b6a0049e4708a","5bff0d02aed5310175fc4262","5bff13b48f0af00385bed700","5cbff29efb86e10042827418","5cbff3459590bd002c9ffb89","5cbff35facc2840051a7f40e","5cbff3a7eff4f6000eb97a3c","5cbff4e6c4a1750045c8ef63","5cbff511a5c99200195e7cc1","5cc0cad88b6f7e003d13090d","5cc0cb24cee7c30063e37a0e","5e0fc06313523805823744ac","5e3da5c5266513029cc26f9b","5e3da603b50f81001259966f","5e3da65404ccd2004599354f","6046893c88c08001162aee5b","606c6b057e15e6027b80e4a2","60c8c6b6992f70000ffd1974","6111600e25224f0023d837fe","61a6bc3df9bbeb005f32fa22","61e06692c0a24206af5e0fc9","61e067d7a66fb8003ebf4ea6","61fc1dbd3aee840039bd34d0","61fc48d8289d1400100cf03c","61fd687398a6f5003fa245a0","61fd744da94a8800297e8a25","61fd74adf9bc83002970437c","61fd75023f98c500506ab1a6","61fdc4809f8d98028fa96159","623deea3d5f1f6058a4471a1","62ab5f9a0af2ca001c53228c","62f13db0c7cd4c09510ebf40","62f31b0e4d5a30001d46678f","62f31ef6834269002714d163","62f3249e02e948005e8a7dec","62f3251361526f0013b12af2","62f53e548a47c900373b8030","62f54ed763f320008dc93292","62f550209876a5001d0c9810","62fa8207df8921002abb6684","6368ac3ce65560007edf57d3","636b7d3a65af28002db3d4e8","636b7f1b458073004dc7ec83","636b7fb877f20f055459041b","636b8087162e8502403161a8","636b80eb0daf6c04c689398a","636b8184cd162105f6a24117","6376b401081e400003bab66e","6380c915c536c100469c95ec","638727e2b0b670000f59e2db","638aa2c176938300348551e3","638aa31084ff7a003375961c","638aa37a90a346003a6d80cb","638aaec6c6522e00242133b0","639a544141b44e00184c3c04","639afeb42afa3e004dd3de02","63e5e3e58de7b50057f48c9b","64078c8a54e610001147f64d","64c74fe80040d20040043972","64d363fd3090ff0050815bf3","6513b6dc1ec71f004b75c24e","659637d3dfae32002385514f","659638b759408a000ff5edfb","65bb718d07848d000f10506a","66062cf584f7da005bb516b0","6619db326b9040002909faa0","66221400e36088005157de0c","66ac1e906adcda0010d5ce02","66ac2519485c6000126ac403","66b33df521c3760050a8f16a","66b33e726c773d0025da8602","66b3409196a12b00196e031c","66b354359c0de0001e2f09a0","66b38e62c98322002576ed67","66b5b0c041d427001927f7be","66b5b0c141d427001927f7c0","66b63c35b1557b0070f77916","66db3ddaf9963b006395838b","66db41183fba840019b0ca75","66e00f9085df450014a2d147","66f10cf5374b01004f942899","66f2d4d9d5d737001020a923","66f3a9ba322cea0018fde133","66f3a9d154d17c0062d78d84","66f3a9f5d706bf002ac39a95","66f3aa067fb26f0030dacac0","6715eb8f33aaba003dbbf9c6","672874814d4f0d005f65ad4a","67296b897da80800413ba43d","675665f2f780f952a053fb9e","67625efe27a579002c113240","678ace9ea52e05003d80b7a4","67ad85632688620055ac4da9","67ecc36c2cb13d0052056a6c","682adeeceb4a24004bdf3f28","68406c700891dd001901da4b","68407bbbea761f0012f3c5ae","684134b3ceba690045132640"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"published","version_clean":"3.0.0","version":"3","__v":59,"updatedAt":"2026-04-27T21:13:20.358Z","pdfStatus":"complete","apiRegistries":[{"filename":"ecommerce-service-api.json","uuid":"1ghuo735mo0c7s9y"},{"filename":"pakms-service-api.json","uuid":"1rx21cm17gb4hi"},{"filename":"clover-card-present-rest-api.json","uuid":"adhg9modeou8f"},{"filename":"ecommerce-recurring-apis.json","uuid":"6xtc173lp73m9ra"},{"filename":"platform-api.json","uuid":"1836s2z4smohp2458"},{"filename":"multiple-service-charge-msc-pilot-apis-k3c.json","uuid":"17440ljmod6cyth"},{"filename":"card-tokenization-service-api.json","uuid":"rna2jl2qm22yvxhu"},{"filename":"transarmor-tokenization-api.json","uuid":"6cii1vmebu3a6t"},{"filename":"ach-tokenization-service-api.json","uuid":"26fy2892fm22ymtc3"},{"filename":"gift-card-tokenization-service-api.json","uuid":"3yii2i91jm22yqbyg"},{"filename":"apple-pay-tokenization-api.json","uuid":"4qb8um38pn2nj"},{"filename":"invoiceapi.json","uuid":"jqf81pm61abo6f"}],"source":"readme"}],"variableDefaults":[{"source":"security","_id":"62e9b1eea177a30276e94d80","name":"BearerAuth","type":"http","apiSetting":"62e2b636fa1eee00872167ef"},{"source":"security","_id":"62ebf0918a8c490783ba3e62","name":"bearerAuth","type":"http","apiSetting":"62d70a619e87be00146d7d6e"},{"type":"","source":"","_id":"631109ebe868a2002148959f","name":"","default":""},{"source":"security","_id":"63fdd5805f536e0d5a8e0335","name":"OAuth2","type":"oauth2","apiSetting":"63fdd57f5f536e0d5a8e032d"},{"source":"security","_id":"6452212ec5886b14a0588915","name":"access_token","type":"apiKey","apiSetting":"6452212dc5886b14a0588913"},{"type":"","source":"server","_id":"64d3fc6b8dba8a005f24000b","name":"protocol","default":"https","apiSetting":"64c40c6f0a747f006a6f42a6"},{"type":"","source":"server","_id":"64d3fc6b8dba8a005f24000a","name":"environment","default":"sandbox.dev.clover.com","apiSetting":"64c40c6f0a747f006a6f42a6"},{"source":"security","_id":"65080d1adfa92402085ec8a6","name":"sessionToken","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"65080d1adfa92402085ec8a5","name":"X-Clover-Auth-Token","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"65080d1adfa92402085ec8a4","name":"internalSession","type":"apiKey","apiSetting":"65080d19dfa92402085ec8a2"},{"source":"security","_id":"66600d4d0c47bb0012000998","name":"oauth2","type":"oauth2","apiSetting":"66600d4c0c47bb0012000995"},{"apiSetting":"695423821925250441ae7c29","name":"Authorization","source":"security","type":"apiKey","_id":"695423831925250441ae7caf"},{"apiSetting":"695423821925250441ae7c29","name":"X-Session-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb0"},{"apiSetting":"695423821925250441ae7c29","name":"X-Device-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb1"},{"apiSetting":"695423821925250441ae7c29","name":"X-Internal-Session-Token","source":"security","type":"apiKey","_id":"695423831925250441ae7cb2"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Session-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24041"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Device-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24042"},{"apiSetting":"695555ccf5c1b863f9a23fb7","name":"X-Clover-Internal-Session-Token","source":"security","type":"apiKey","_id":"695555cdf5c1b863f9a24043"}],"webhookEnabled":false},"custom_domain":"docs.clover.com","childrenProjects":[{"_id":"5b05c1655f9a0d00039a8ae4","ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":true},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"stylesheet_hub2":"","html_footer":"","javascript_hub2":""},"childrenProjects":[],"derivedPlan":"enterprise","description":"","shouldGateDash":false,"isExternalSnippetActive":false,"flags":{"allowXFrame":false,"allow_hub2":false,"alwaysShowDocPublishStatus":false,"cookieAuthentication":false,"correctnewlines":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"enterprise":true,"hideGoogleAnalytics":false,"hub2":true,"migrationRun":false,"migrationSwaggerRun":false,"newApiExplorer":true,"newEditor":true,"newMarkdownBetaProgram":true,"newSearch":true,"oauth":false,"oldMarkdown":false,"rdmdCompatibilityMode":false,"speedyRender":false,"staging":false,"swagger":false,"translation":false,"tutorials":true,"allowApiExplorerJsonEditor":false,"useReactApp":true,"newHeader":false,"referenceRedesign":false,"auth0Oauth":false,"graphql":false,"singleProjectEnterprise":false,"dashReact":false,"allowReferenceUpgrade":true,"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":false,"superHubDevelopment":false,"annualBillingEnabled":true,"devDashBillingRedesignEnabled":false,"enableOidc":false,"customComponents":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"dryRunMigration":false,"aiDocsAudit":false,"aiPageLinting":false,"githubCloudSync":false,"disableAiChat":false,"enableSuggestedEdits":false,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"bidiSyncGitlabSelfServe":false,"gitTranslations":false,"gitlabCloudSync":false,"bidiSyncBitbucketSelfServe":false,"superHubPlanManagement":false,"mdxSanitizeComments":false,"disableSuperframe":false,"hideAiFeatures":false,"mdxish":true,"gittoUseNewIndexer":true,"mdxishEditor":true,"prefetch":false,"aiWriter":false,"superHubBranchReviewDashboard":false,"bidiSyncUseOdbAlternates":true,"mcpMetrics":false,"newDereferencer":false,"googleAuthEnabled":false,"newIframeStructure":false,"streamingSsr":false,"superHubNotifications":false,"superHubTypography":false,"newExplorerReducer":false,"gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"askAiOverride":"","superHubSlack":false,"customDomainAdminBypass":false,"aiDiscovery":false,"aiTranslation":false,"branchTaggedReviewers":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"superHubUiTesting":true},"fullBaseUrl":"https://clover-platform.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:25.037Z","start":"2026-03-24T12:06:24.573Z","status":"successful"},"transformation":{"end":"2026-03-24T12:07:17.857Z","start":"2026-03-24T12:06:48.955Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:07:22.849Z","start":"2026-03-24T12:07:22.373Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T23:43:04.952Z","status":"successful","end":"2026-03-24T23:43:04.953Z"}},"sync":{"linked_repository":{"provider_type":"github","linked_at":"2026-05-01T18:52:05.943Z","linked_by":"[email protected]","privacy":{"visibility":"private","private":true},"name":"clover-devdocs","full_name":"clover/clover-devdocs","url":"https://github.com/clover/clover-devdocs","id":"1226709745","connection":"69f4f43d8ffa1312ca26e6cf"},"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"is_active":true,"internal":"","mcp":{"state":"disabled"},"modules":{"suggested_edits":false,"discuss":false,"reference":true,"examples":true,"docs":true,"landing":false,"changelog":true,"logs":false,"custompages":false,"tutorials":true,"graphql":false},"name":"Clover Platform Docs","nav_names":{"discuss":"","reference":"","docs":"","changelog":"API Changelog","tutorials":"","recipes":""},"owlbot":{"enabled":false,"isPaying":false,"customization":{"answerLength":"long","customTone":"","defaultAnswer":"","forbiddenWords":"","tone":"neutral","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"email":null,"name":null},"readmeScore":0,"reference":{"alwaysUseDefaults":false,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"ssl":{},"stable":"5b315d5518ee180003969187","subdomain":"clover-platform","subpath":"dev","translate":{},"webhookEnabled":false},{"_id":"66be24c364112600622c108b","ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"stylesheet_hub2":"","html_footer":"","javascript_hub2":""},"childrenProjects":[],"derivedPlan":"enterprise","description":"","shouldGateDash":false,"isExternalSnippetActive":false,"flags":{"allowReusableOTPs":false,"alwaysShowDocPublishStatus":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"allowXFrame":false,"apiAccessRevoked":false,"correctnewlines":false,"customComponents":false,"dashReact":false,"developerPortal":false,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"disableAutoTranslate":false,"disableSAMLScoping":false,"disableSignups":false,"enableOidc":false,"enterprise":true,"graphql":false,"mdx":false,"newEditorDash":true,"oauth":false,"passwordlessLogin":"default","owlbotAi":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":false,"star":false,"staging":false,"superHub":true,"superHubDevelopment":false,"translation":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"gitlabCloudSync":false,"bidiSyncGitlabSelfServe":false,"aiDocsAudit":false,"aiPageLinting":false,"bidiSyncBitbucketSelfServe":false,"disableAiChat":false,"externalSdkSnippets":false,"gitTranslations":false,"githubCloudSync":true,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"superHubPlanManagement":false,"superHubPreview":false,"bidiSyncUseOdbAlternates":true,"aiWriter":false,"disableSuperframe":false,"gittoUseNewIndexer":true,"googleAuthEnabled":false,"hideAiFeatures":false,"mcpMetrics":false,"mdxSanitizeComments":false,"mdxish":true,"mdxishEditor":true,"newDereferencer":false,"newIframeStructure":false,"prefetch":false,"streamingSsr":false,"superHubBranchReviewDashboard":false,"superHubNotifications":false,"superHubTypography":false,"askAiOverride":"","gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"newExplorerReducer":false,"superHubSlack":false,"aiDiscovery":false,"aiTranslation":false,"branchTaggedReviewers":false,"customDomainAdminBypass":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"superHubUiTesting":true},"fullBaseUrl":"https://clover-ecommerce.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:23.106Z","start":"2026-03-24T12:06:22.646Z","status":"successful"},"transformation":{"end":"2026-03-24T12:07:09.462Z","start":"2026-03-24T12:06:31.374Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:07:12.244Z","start":"2026-03-24T12:07:11.899Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T19:28:22.231Z","status":"successful","end":"2026-03-24T19:28:22.232Z"}},"sync":{"linked_repository":{"provider_type":"github","linked_at":"2026-05-01T19:30:18.020Z","linked_by":"[email protected]","privacy":{"visibility":"private","private":true},"name":"clover-devdocs-ecomm","full_name":"clover/clover-devdocs-ecomm","url":"https://github.com/clover/clover-devdocs-ecomm","id":"1226724007","connection":"69f4f43d8ffa1312ca26e6cf"},"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"is_active":true,"internal":"admin","mcp":{"state":"disabled"},"modules":{"landing":false,"docs":true,"examples":true,"reference":true,"graphql":false,"changelog":true,"discuss":false,"suggested_edits":false,"custompages":true,"tutorials":true},"name":"Clover ECommerce","nav_names":{"docs":"","reference":"","changelog":"API Changelog","discuss":"","recipes":"","tutorials":""},"owlbot":{"customization":{"tone":"neutral","customTone":"","answerLength":"long","forbiddenWords":"","defaultAnswer":"","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"enabled":false,"isPaying":false,"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"email":null,"name":null},"readmeScore":0,"reference":{"alwaysUseDefaults":false,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"ssl":{},"stable":"66be24bb64112600622b9641","subdomain":"clover-ecommerce","subpath":"ecommerce","translate":{},"webhookEnabled":false},{"_id":"66be252cb34d810068ce9301","ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"stylesheet_hub2":"","html_footer":"","javascript_hub2":""},"childrenProjects":[],"derivedPlan":"enterprise","description":"","shouldGateDash":false,"isExternalSnippetActive":false,"flags":{"allowReusableOTPs":false,"alwaysShowDocPublishStatus":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"allowXFrame":false,"apiAccessRevoked":false,"correctnewlines":false,"customComponents":false,"dashReact":false,"developerPortal":false,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"disableAutoTranslate":false,"disableSAMLScoping":false,"disableSignups":false,"enableOidc":false,"enterprise":true,"graphql":false,"mdx":false,"newEditorDash":true,"oauth":false,"passwordlessLogin":"default","owlbotAi":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":false,"star":false,"staging":false,"superHub":true,"superHubDevelopment":false,"translation":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"gitlabCloudSync":false,"bidiSyncGitlabSelfServe":false,"aiDocsAudit":false,"aiPageLinting":false,"bidiSyncBitbucketSelfServe":false,"disableAiChat":false,"externalSdkSnippets":false,"gitTranslations":false,"githubCloudSync":true,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"superHubPlanManagement":false,"superHubPreview":false,"bidiSyncUseOdbAlternates":true,"aiWriter":false,"disableSuperframe":false,"gittoUseNewIndexer":true,"googleAuthEnabled":false,"hideAiFeatures":false,"mcpMetrics":false,"mdxSanitizeComments":false,"mdxish":true,"mdxishEditor":true,"newDereferencer":false,"newIframeStructure":false,"prefetch":false,"streamingSsr":false,"superHubBranchReviewDashboard":false,"superHubNotifications":false,"superHubTypography":false,"askAiOverride":"","gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"newExplorerReducer":false,"superHubSlack":false,"aiDiscovery":false,"aiTranslation":false,"branchTaggedReviewers":false,"customDomainAdminBypass":false,"jwtReplacePermissions":false,"mcpOauth":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"superHubUiTesting":true},"fullBaseUrl":"https://clover-semi-integration.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:23.096Z","start":"2026-03-24T12:06:22.637Z","status":"successful"},"transformation":{"end":"2026-03-24T12:07:10.428Z","start":"2026-03-24T12:06:31.755Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:07:13.584Z","start":"2026-03-24T12:07:13.223Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T19:33:05.813Z","status":"successful","end":"2026-03-24T19:33:05.814Z"}},"sync":{"linked_repository":{"provider_type":"github","linked_at":"2026-05-01T19:34:09.020Z","linked_by":"[email protected]","privacy":{"visibility":"private","private":true},"name":"clover-devdocs-semi","full_name":"clover/clover-devdocs-semi","url":"https://github.com/clover/clover-devdocs-semi","id":"1226724366","connection":"69f4f43d8ffa1312ca26e6cf"},"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"is_active":true,"internal":"admin","mcp":{"state":"disabled"},"modules":{"landing":true,"docs":true,"examples":true,"reference":true,"graphql":false,"changelog":true,"discuss":false,"suggested_edits":false,"custompages":true,"tutorials":true},"name":"Clover Semi-Integration","nav_names":{"docs":"","reference":"","changelog":"API Changelog","discuss":"","recipes":"","tutorials":""},"owlbot":{"customization":{"tone":"neutral","customTone":"","answerLength":"long","forbiddenWords":"","defaultAnswer":"","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"enabled":false,"isPaying":false,"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"email":null,"name":null},"readmeScore":0,"reference":{"alwaysUseDefaults":false,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"ssl":{},"stable":"66be2521b34d810068ce18b7","subdomain":"clover-semi-integration","subpath":"semi","translate":{},"webhookEnabled":false},{"_id":"66be25f8381c2300535c86f6","ai":{"chat":{"knowledge":{"custom_knowledge":null,"use_project_knowledge":false},"models":[]},"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":"","authorization_servers":[],"resource_identifier":"","scopes_supported":[]}}},"appearance":{"stylesheet_hub2":"","html_footer":"","javascript_hub2":""},"childrenProjects":[],"derivedPlan":"enterprise","description":"","shouldGateDash":false,"isExternalSnippetActive":false,"flags":{"allowReusableOTPs":false,"alwaysShowDocPublishStatus":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"allowXFrame":false,"apiAccessRevoked":false,"correctnewlines":false,"customComponents":false,"dashReact":false,"developerPortal":false,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"disableAutoTranslate":false,"disableSAMLScoping":false,"disableSignups":false,"enableOidc":false,"enterprise":true,"graphql":false,"mdx":false,"newEditorDash":true,"oauth":false,"passwordlessLogin":"default","owlbotAi":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":false,"star":false,"staging":false,"superHub":true,"superHubDevelopment":false,"translation":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"aiDocsAudit":false,"aiPageLinting":false,"externalSdkSnippets":false,"superHubBranchReviews":false,"superHubPreview":false,"gitlabCloudSync":false,"bidiSyncGitlabSelfServe":false,"bidiSyncBitbucketSelfServe":false,"disableAiChat":false,"gitTranslations":false,"githubCloudSync":true,"superHubBranchMergeRules":false,"superHubBranchReviewActions":false,"superHubPlanManagement":false,"bidiSyncUseOdbAlternates":true,"aiWriter":false,"disableSuperframe":false,"gittoUseNewIndexer":true,"googleAuthEnabled":false,"hideAiFeatures":false,"mcpMetrics":false,"mdxSanitizeComments":false,"mdxish":true,"mdxishEditor":true,"newDereferencer":false,"newIframeStructure":false,"prefetch":false,"streamingSsr":false,"superHubBranchReviewDashboard":false,"superHubNotifications":false,"superHubTypography":false,"aiDiscovery":false,"aiTranslation":false,"askAiOverride":"","branchTaggedReviewers":false,"customDomainAdminBypass":false,"gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"jwtReplacePermissions":false,"mcpOauth":false,"newExplorerReducer":false,"superHubBranchReviewSummaries":false,"superHubSlack":false,"superHubSlackNotifications":false,"superHubUiTesting":true},"fullBaseUrl":"https://clover-latam.readme.io/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:23.482Z","start":"2026-03-24T12:06:22.996Z","status":"successful"},"transformation":{"end":"2026-03-24T12:07:10.611Z","start":"2026-03-24T12:06:32.250Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:07:13.556Z","start":"2026-03-24T12:07:13.215Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T18:46:29.659Z","status":"successful","end":"2026-03-24T18:46:29.660Z"}},"sync":{"installationRequest":{},"connections":[],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"is_active":true,"internal":"admin","mcp":{"state":"disabled"},"modules":{"landing":false,"docs":true,"examples":true,"reference":true,"graphql":false,"changelog":true,"discuss":false,"suggested_edits":false,"custompages":true,"tutorials":true},"name":"Clover LATAM Docs","nav_names":{"docs":"","reference":"","changelog":"API Changelog","discuss":"","recipes":"","tutorials":""},"owlbot":{"customization":{"tone":"neutral","customTone":"","answerLength":"long","forbiddenWords":"","defaultAnswer":"","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"enabled":false,"isPaying":false,"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"email":null,"name":null},"readmeScore":0,"reference":{"alwaysUseDefaults":false,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"ssl":{},"stable":"66be25ef381c2300535c0cac","subdomain":"clover-latam","subpath":"latam","translate":{},"webhookEnabled":false}],"derivedPlan":"enterprise","description":"","hstsIncludeSubdomains":false,"planSchedule":{"stripeScheduleId":null,"changeDate":null,"nextPlan":null},"planStatus":"","shouldGateDash":false,"isExternalSnippetActive":false,"error404":"","first_page":"landing","flags":{"allowReusableOTPs":false,"alwaysShowDocPublishStatus":false,"allowUnsafeCustomHtmlSuggestionsFromNonAdmins":false,"allowXFrame":false,"apiAccessRevoked":false,"correctnewlines":false,"customComponents":false,"dashReact":true,"developerPortal":false,"disablePasswordlessLogin":false,"directGoogleToStableVersion":false,"disableAnonForum":false,"disableAutoTranslate":false,"disableSAMLScoping":false,"disableSignups":false,"enableOidc":false,"enterprise":true,"graphql":false,"mdx":false,"newEditorDash":true,"oauth":false,"passwordlessLogin":"default","owlbotAi":false,"rdmdCompatibilityMode":false,"reviewWorkflow":true,"singleProjectEnterprise":false,"star":false,"staging":false,"superHub":true,"superHubDevelopment":false,"translation":false,"disableDiscussionSpamRecaptchaBypass":false,"developerViewUsersData":false,"changelogRssAlwaysPublic":false,"bidiSync":true,"superHubMigrationSelfServeFlow":false,"apiDesigner":false,"hideEnforceSSO":false,"localLLM":false,"superHubManageVersions":false,"gitSidebar":false,"superHubGlobalCustomBlocks":false,"childManagedBidi":false,"superHubBranches":false,"requiresJQuery":true,"externalSdkSnippets":false,"migrationPreview":false,"superHubPreview":false,"superHubBranchReviews":false,"superHubMergePermissions":false,"dryRunMigration":false,"aiDocsAudit":false,"aiPageLinting":false,"bidiSyncGitlabSelfServe":false,"disableAiChat":false,"gitTranslations":false,"githubCloudSync":false,"superHubBranchMergeRules":true,"superHubBranchReviewActions":false,"gitlabCloudSync":false,"bidiSyncBitbucketSelfServe":false,"superHubPlanManagement":false,"disableSuperframe":false,"gittoUseNewIndexer":true,"hideAiFeatures":false,"mdxSanitizeComments":false,"mdxish":true,"mdxishEditor":true,"bidiSyncUseOdbAlternates":true,"aiWriter":false,"googleAuthEnabled":false,"mcpMetrics":false,"newDereferencer":false,"newIframeStructure":false,"prefetch":false,"streamingSsr":false,"superHubBranchReviewDashboard":true,"gittoUseConnectionPooling":false,"gittoUseExperimentalMDXCache":false,"newExplorerReducer":false,"superHubNotifications":false,"superHubTypography":false,"askAiOverride":"","superHubSlack":false,"aiDiscovery":false,"aiTranslation":false,"customDomainAdminBypass":false,"jwtReplacePermissions":false,"mcpOauth":false,"branchTaggedReviewers":false,"superHubBranchReviewSummaries":false,"superHubSlackNotifications":false,"superHubUiTesting":false},"fullBaseUrl":"https://docs.clover.com/","git":{"aiWriter":{"setup":{"error":{}}},"migration":{"createRepository":{"end":"2026-03-24T12:06:18.592Z","start":"2026-03-24T12:06:18.015Z","status":"successful"},"transformation":{"end":"2026-03-24T12:06:19.946Z","start":"2026-03-24T12:06:19.393Z","status":"successful"},"migratingPages":{"end":"2026-03-24T12:06:20.558Z","start":"2026-03-24T12:06:20.076Z","status":"successful"},"enableSuperhub":{"start":"2026-03-24T12:07:16.819Z","status":"successful","end":"2026-03-24T12:07:16.821Z"}},"sync":{"installationRequest":{},"connections":[{"_id":"69f4f43d8ffa1312ca26e6cf","active":true,"created_at":"2026-05-01T18:43:08.000Z","created_by":"[email protected]","installation_id":128726733,"owner":{"id":834075,"login":"clover","site_admin":false,"type":"Organization"},"provider_type":"github"}],"providers":[]},"migrationType":"preview","renamedSlugs":[]},"glossaryTerms":[{"term":"3DS","definition":"3DS protocol uses a three-domain model to add an extra layer of security between the financial authorization process and the online authentication process. The three domains are as follows: 1. Issuer domain: Financial institution (FI) or bank that issued the card used for the transaction. 2. Acquirer domain: Merchant that accepts online payments from customers. 3. Interoperability domain: 3DS infrastructure platform is the secure intermediary that facilitates communication between the customer and the merchant.","_id":"673d8fedbbac4c001027014d"},{"term":"AID","definition":"Application Identifier. An identifier stored on the chip and terminal. It is used to identify mutually supported applications.","_id":"673d8ffd54aa2a00300c8153"},{"term":"Alternate Launch Path","definition":"Link (URL) path for your app that you enter on the Edit REST Configuration page for web apps. This path uses the same base domain as the Site URL. The alternate launch path is required when OAuth is initiated from the left navigation menu in the Merchant Dashboard or directly from the Clover App Market. After Clover redirects merchants to your app, your app must initiate the OAuth flow by calling the `/v2/authorize` endpoint.","_id":"673d9020216993003780b57c"},{"term":"Android ABI","definition":"Android ABI (Application Binary Interface) defines how an application's machine code interacts with the system at runtime. It specifies details such as the CPU instruction set, endianness of memory stores and loads, conventions for passing data between applications and the system, and the format of executable binaries.","_id":"673d902cda33e30053bc5c7f"},{"term":"Android Payment API","definition":"Intent-based API used in applications running on Clover devices for executing payment transaction requests. It supports payment operations, including payments, preauthorizations, and payment reversals (void/refund), using Android Intent Builders.","_id":"673d90386bf20f006079d1dc"},{"term":"Android SDK","definition":"SDK to build apps that run on Clover devices and publish your apps on the Clover App Market. It is also used for semi-integration with a Clover device, enabling a third-party point of sale (POS) system to use Clover for processing payments.","_id":"673d9044e8d62f00431f7200"},{"term":"Android Virtual Device","definition":"AVD is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator. An AVD contains a hardware profile, system image, storage area, skin, and other properties.","_id":"673d9056ea642800216cdaaa"},{"term":"Announcements","definition":"Information on new launches, features, timelines, and notices for developers.","_id":"673d9098bbac4c001027016d"},{"term":"API changelog","definition":"Monthly updates related to API changes.","_id":"673d90aaa085000030547ef2"},{"term":"API docs and SDK guides","definition":"Resources needed to work with the Clover app and integration platforms.","_id":"673d90bd8d8ee100686ff678"},{"term":"API level","definition":"Each Android version corresponds to a specific API level. For example, Android 11 corresponds to API level 30, Android 10 to API level 29, and so on. The API level precisely identifies the version of the API set that your app can call into. It defines the combination of manifest elements, permissions, and other features that you can use as a developer.","_id":"673d90c891bf64002a9f63f7"},{"term":"Auth","definition":"Authorization (Auth) is a tip-adjusted sale. This type of transaction is typically used by restaurants and services establishments.","_id":"673d90d37bd1cf0019a275c7"},{"term":"authenticator app","definition":"Mobile or desktop application that generates time-based or counter-based one-time passwords (OTPs) for secure multi-factor authentication (MFA). You can download an authentication app, such as Google Authenticator or Microsoft Authenticator, from the relevant app store.","_id":"673d91114f9f5c0012f565a7"},{"term":"Bearer token","definition":"Type of token used in the authorization header of an API request to authenticate the client making the request. It is typically included in the request header as follows: Authorization: Bearer \u003ctoken>. This token is a string that represents the user’s identity and permissions.","_id":"673d91227bd1cf0019a2761f"},{"term":"billable merchant","definition":"Active merchant accounts with Clover. These are not test merchant or demo accounts and are not suppressed for billing.","_id":"673d91348d8ee100686ff685"},{"term":"blackhole payment gateway","definition":"Default gateway for test merchant accounts in the Clover sandbox environment. It sets all transactions to be successful and suffices for most development use cases.","_id":"673d914a91bf64002a9f6493"},{"term":"Bug fixes","definition":"Monthly updates on the latest bug fixes across the Clover developer platform.","_id":"673d9166bbac4c00102701d3"},{"term":"card-on-file","definition":"Card-on-file (COF) transactions are payments in which the cardholders have authorized merchants to store their credit or debit card information to use for future purchases or recurring payments.","_id":"673d9176da33e30053bc5dd1"},{"term":"card tokenization","definition":"Faud-prevention measure that replaces sensitive payment credentials, such as credit card numbers, cardholder names, expiration dates, and CVV codes with non-specific identifiers known as tokens. These tokens are used for subsequent transactions, allowing secure storage and processing of payment information.","_id":"673d918054aa2a00300c8180"},{"term":"Card track data","definition":"Information encoded on a payment card's magnetic stripe or chip. The data is used to authorize and process transactions.","_id":"673d919554aa2a00300c81ea"},{"term":"cash out","definition":"Process of removing the remaining balance from a gift card, bringing the account balance to zero (0). The customer may receive the remaining balance in cash, or choose to cash out and deactivate the card or close the gift card account.","_id":"673d91b3e0af860036ad2172"},{"term":"certificates","definition":"Certificates and profiles are essential for app development and distribution of the Apple Pay® service on a Clover Ecommerce integration. Certificates are digital documents that verify your identity as a developer. They are used to sign your apps and ensure they come from a trusted source.","_id":"673d91d05db0190019bd08df"},{"term":"challenge flow","definition":"For card-not-present (CNP) payments, challenge flow indicates that the financial institution (FI) or issuer requires more evidence to verify the legitimacy of the transaction. In the challenge flow, the customer must provide extra information to authenticate the payment, such as a password or a one-time code that the card issuer sends to their mobile device.","_id":"673d91e18d8ee100686ff7b1"},{"term":"Client ID","definition":"Unique identifier for your app on the Clover App Market. Used to identify your app when making API requests to Clover. It helps Clover recognize which app is making the request and ensures that the app has the necessary permissions to access the requested resources. Your Client ID is the App ID value in your app's Settings page on the Developer Dashboard.","_id":"673d920fa0a15d006035e273"},{"term":"closeout","definition":"Process of closing your open batch of transactions and submitting it for clearing, settlement, and funding.","_id":"673d9905da33e30053bc78c6"},{"term":"Clover APK","definition":"Android application package (APK) created for integration with Clover merchant services and point of sale (POS) systems. Developers must design, generate, and register their APK following Clover standards. Once approved, the APK is submitted for distribution on Clover devices, ensuring it meets the necessary guidelines for proper installation and functionality on the hardware.","_id":"673d9977bbac4c0010270eb4"},{"term":"Clover Community","definition":"Online forum for developers to ask questions and get help with the Clover API.","_id":"673d9988a08500003054a420"},{"term":"Clover Connector SDK","definition":"Provides an interface that allows external point of sale (POS) systems to access the same payment functions as PaymentConnector, such as sales and refunds. It also offers additional features like custom receipts and Android activities. The SDK is available for four platforms: Android, iOS, JavaScript, and .NET.","_id":"673d998ef090bf003e28b229"},{"term":"Clover Go reader","definition":"EMV-capable device that pairs with an Apple (iOS®) and Android smartphone or tablet. The reader allows iOS and Android mobile apps to accept swipe, NFC, or EMV transactions with no EMV certification required at the merchant's end. Clover Go reader accepts chip, dip, and contactless payments, including Tap-to-Pay on iPhone, Apple Pay®, Google Pay™ and Samsung Pay®.","_id":"673d999f98b87a00571c2cd9"},{"term":"Clover ID","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. This identifier displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and also on the Merchant Dashboard > User Settings page below the merchant name. It also displays in the URL (link) of the Clover Merchant Dashboard. Example: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. Format: 13-alphanumeric","_id":"673d99ae4529f8000fd3e1d3"},{"term":"Code and sample apps","definition":"Resources on GitHub to help get started with the Clover APIs.","_id":"673d99b8ea642800216d0571"},{"term":"code challenge","definition":"Base64-URL-encoded string derived from the code verifier using a transformation method such as SHA-256. Code challenge is sent to the authorization server during the initial authorization request. It ensures that the app that initiated the request is the same app that is completing the request.","_id":"673d99c2204ee80045357003"},{"term":"code verifier","definition":"Cryptographically random string that a low-trust app needs to generate at the beginning of the authorization process. It is used to create a code challenge and is sent to the authorization server to verify the authorization request.","_id":"673d99d191bf64002a9f8216"},{"term":"CORS","definition":"Security feature that allows web pages to request resources from different origins, controlled through HTTP headers.","_id":"673d99e1e88e42003ebe326c"},{"term":"denominated gift card","definition":"Cards with a specific value assigned to them at the time of purchase. For example, a gift card might be worth $25, $50, or $100. When a customer buys a denominated gift card, they know exactly how much value is on the card.","_id":"673d99e916f16000112f6f9b"},{"term":"Developer Dashboard","definition":"If you are creating new apps, log in to the Global Developer Dashboard. If you are managing apps previously created on the legacy developer platform, continue using the Developer Dashboard based on your merchant's region.","_id":"673d9a047053dd000f43a0f2"},{"term":"developer platform","definition":"Open platform for third-party developers to build apps and integrate external point-of-sale systems with Clover devices. Create new apps on the global developer platform through the Global Developer Dashboard.","_id":"673d9a0a7ab0410068f93c71"},{"term":"Device Manager","definition":"Android Studio tool for creating and managing an Android Virtual Device (AVD).","_id":"673d9a15216993003780ce8f"},{"term":"DPI","definition":"DPI (dots per inch) is the pixel density, that is the number of pixels within a physical area of the screen. DPI is different from the screen resolution, which is the total number of pixels on a screen.","_id":"673d9a1f5db0190019bd13dc"},{"term":"Ecommerce API key","definition":"Identifies the merchant who is tokenizing customers' cards. You can use the same static Ecommerce API key to tokenize multiple cards for that merchant. This is also known as the PAKMS key, as it is generated from the Public Access Key Management Service (PAKMS) using the [Ecommerce - PAKMS Service API](https://docs.clover.com/dev/reference/getapikey).","_id":"673d9be7e88e42003ebe330c"},{"term":"Ecommerce API","definition":"API to integrate Clover payment capabilities into your online or web-based applications. It provides endpoints for creating tokens, processing payments, and managing customer data. OAuth tokens are necessary for authentication and authorization.","_id":"673d9bf11aaaa0005430f26f"},{"term":"EMV","definition":"EMV cards are smart cards, also called chip cards, integrated circuit cards, or IC cards. They store their data on integrated circuit chips in addition to a magnetic stripe. EMV stands for Europay, Mastercard, and Visa, the three companies that created the specifications to facilitate worldwide interactions and acceptance of secure payments.","_id":"673d9bfe68c269003c38a68a"},{"term":"EMVCo","definition":"Consortium with equal control among American Express, China UnionPay, Discover, JCB, Mastercard, and Visa. EMVCo creates and manages EMV® Specifications and programs that enable seamless and secure card-based payments for businesses and consumers worldwide.","_id":"673d9c062b1c2c001fb7f364"},{"term":"Environment variables","definition":"A set of key-value pairs that a running process can access during runtime. These variables can be used to configure and adjust the behavior of the app or system, and they can vary between different execution environments.","_id":"673d9c3857fdbd003d772831"},{"term":"FAC","definition":"Foreign access code value is used to process transactions for non-native gift cards on the Clover point of sale system.","_id":"673d9c417ab0410068f93ede"},{"term":"frictionless flow","definition":"For card-not-present (CNP) payments, frictionless flow refers to a seamless process where the financial institution (FI) or issuer can verify the legitimacy of a transaction without requiring additional input from the cardholder. This behind-the-scenes verification lets customers complete their purchases without any noticeable interruptions or authentication steps.","_id":"673d9c60dcf4bc00436cef7e"},{"term":"gift card","definition":"A gift card is a prepaid payment card used to make purchases at participating restaurants, stores, or online retailers.","_id":"673d9c69cbad42003c236e58"},{"term":"global developer platform","definition":"Provides an intuitive and seamless experience to create apps and integrations for different regions. With a single developer account, you can access both sandbox and production environments and switch between them effortlessly.","_id":"673d9c71e88e42003ebe3362"},{"term":"high-trust app","definition":"Securely stores and uses the Client Secret (`app_secret`) and employs the standard authorization code flow to generate expiring authentication tokens.","_id":"673d9c7bea642800216d0794"},{"term":"hosted payment form","definition":"Secure way to accept ecommerce credit card payments without the need for a shopping cart. Clover hosts the form, so sensitive payment data does not pass through the merchant's system, reducing the PCI scope and minimizing merchant liability. You can implement payment forms using a standard template or customize it to fit the look and feel of the merchant's ecommerce website.","_id":"673d9c88204ee80045357119"},{"term":"Idempotency Key","definition":"Unique identifier used to ensure that a particular operation is performed only once, even if the request is made multiple times. This is particularly useful in scenarios where network issues or client retries might cause the same request to be sent more than once.","_id":"673d9c9f0c9f1a00368c050b"},{"term":"Incremental authorization","definition":"Allows merchants to change the original authorization amount to ensure the customer's card can still cover the higher amount.","_id":"673d9ca77053dd000f43a1a7"},{"term":"issuer","definition":"Financial institutions, such as a bank that issues a credit card to a consumer or business.","_id":"673d9caf2ab88500611e934d"},{"term":"low-trust app","definition":"Mobile or single-page apps that cannot securely store the Client Secret (`app_secret`) and use the authorization code flow with Proof Key for Code Exchange (PKCE) to enhance security during token acquisition.","_id":"673d9cc7d27f0b001991bbb0"},{"term":"LTE","definition":"LTE (Long-Term Evolution) is a fourth-generation (4G) wireless standard that provides increased network capacity and speed for mobile phones and other cellular devices compared with third-generation (3G) technology.","_id":"673d9cd6216993003780cf96"},{"term":"merchantId","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. The merchantId displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and on the Merchant Dashboard > User Settings page below the merchant’s name. It also displays in the URL (link) of the Clover Merchant Dashboard. Example: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. Format: 13-alphanumeric; Note: The merchantId is different from the MID.","_id":"673d9ce1dcf4bc00436cf043"},{"term":"MID","definition":"Merchant identifier (MID) identifies your merchant account and is the same across devices with the same merchant name. This identifier is available on the Clover device Diagnostics > Additional Details screen and also on the Merchant Dashboard > User Settings page, in the MID column. Note: The MID is different from the merchant UUID or merchantId.","_id":"673d9cf63dd0b800123c0b68"},{"term":"Minimum SDK","definition":"The minSdk specifies the minimum SDK version your app supports. For example, if your minSdk is 26, your app will only run on devices with Android 8 (API level 26) or higher. The minSdk is defined in your app's build.gradle file.","_id":"673d9cfe0c9f1a00368c0548"},{"term":"MOTO","definition":"MOTO (Mail Order/Telephone Order) transactions are merchant-initiated, card-not-present (CNP) transactions in which customers provide their order and payment details by regular mail (not email), fax, or telephone. In these transactions, card information is captured, and payment is processed with the customer’s consent, even though the card is not physically present.","_id":"673d9d084f9f5c0012f57b49"},{"term":"multi-factor authentication","definition":"Security process that requires two different forms of identification to verify a user’s identity, typically combining something you know, such as a password, with something you have, such as a mobile device.","_id":"673d9d0f994595002a60b8e4"},{"term":"multi-lock","definition":"Set aside and lock a specific amount from the available balance on a gift card for a specified time period. Multiple locks can be active simultaneously as long as there is a balance. The locked amount automatically unlocks when the specified time expires or upon request to unlock and redeem the amount.","_id":"673d9d18352c60006f15d204"},{"term":"native gift card","definition":"Gift cards that use the Clover-integrated Gift Card Solution, managed through the Fiserv payment gateway. May have a 4-8 digit security card value (SCV). These non-expiring cards are fully integrated into the Clover point of sale system, allowing for seamless transactions and management.","_id":"673d9d218effef006b1f1190"},{"term":"NFC","definition":"Near Field Communication (NFC) is a group of wireless technologies that work over a short distance, usually 4 cm or less, to establish a connection. With NFC, you can transfer small amounts of data between an Android-powered device and an NFC tag or between two Android-powered devices.","_id":"673d9d4116f16000112f72fd"},{"term":"non-denominated gift card","definition":"Cards without a preset value at the time of purchase are activated with a value determined at the time of purchase. The purchaser or recipient can choose the amount, depending on the terms set by the merchant.","_id":"673d9d6950cd900047362e83"},{"term":"non-native gift card","definition":"Gift cards managed through payment gateways other than Fiserv and do not use the Clover-integrated Gift Card Solution. May have a 4-8 digit foreign access code (FAC) for transactions and may not offer the same level of integration with the Clover point of sale system. While non-native gift cards can be used with Clover, they may require additional steps or configurations to process transactions.","_id":"673d9d82289098004b0bafa9"},{"term":"OTP","definition":"Unique, temporary code used for a single login session or transaction. A one-time password (OTP) is generated after you scan a QR code in your authenticator app during account setup or use the authenticator. You need to enter the OTP to verify your identity when logging into the Global Developer Dashboard.","_id":"673d9d969a77b00010d6b530"},{"term":"partial month","definition":"The first charge is added when a merchant installs a new app, and the installation occurs after the first of the month.","_id":"673d9db116f16000112f7352"},{"term":"Payment Connector","definition":"Java-based interface that lets you build a point of sale (POS) directly on a Clover device. It provides all of the Clover features needed for your app to make a sale, issue a refund, and perform other payment functions.","_id":"673d9dbe92944d00479e32f7"},{"term":"payment gateway","definition":"Virtual equivalent of a physical credit and debit card reader. It transfers the data between the point of entry—either a terminal, website, or mobile device—to the payment processor to continue the payment lifecycle.","_id":"673d9e995db0190019bd1553"},{"term":"payment processor","definition":"Technical intermediary, such as Fiserv or Clover that securely handle transactions between a merchant and a customer by processing card or electronic payments.","_id":"673d9ea1a08500003054a516"},{"term":"physical gift card","definition":"Tangible gift card that you can load and reload with an amount and use as a cash equivalent to make in-store and online purchases.","_id":"673d9edd50cd900047362f00"},{"term":"POS","definition":"Point of sale (POS) system enables businesses to accept customer payments and efficiently manage operations. The system consists of both hardware and software components. The software is often cloud-based, allowing access from anywhere. The hardware typically includes a register, barcode scanner, card reader, cash drawer, and receipt printer.","_id":"673d9ee650cd900047362f4d"},{"term":"promotional code","definition":"Unique values, usually alphanumeric, associated with a virtual gift card and sent by email, text, or through an app. The promotional or promo code is used to activate and redeem the virtual gift card.","_id":"673d9eef912f2c00165321a1"},{"term":"Proof Key for Code Exchange","definition":"Extension to the OAuth 2.0 authorization code flow designed to enhance security, especially for public clients like mobile and single-page applications that cannot securely store the Client Secret. PKCE ensures that even if an authorization code is intercepted, it cannot be exchanged for tokens without the original `code_verifier`.","_id":"673d9f04139f87004b4112c9"},{"term":"prorated subscription","definition":"Merchant subscription tier adjustment. When a merchant downgrades their subscription, or uninstalls an app, Clover adjusts the charge difference in the current month's advance on the merchant account.","_id":"673d9f42352c60006f15d28e"},{"term":"PSD2","definition":"Payment Service Directive 2 (PSD2) is a European Union directive that grants bank customers the ability to share their account information with third-party providers. These providers can then manage the customer’s finances, enabling services like direct payments.","_id":"673d9f48e88e42003ebe33ab"},{"term":"QR code","definition":"Quick Response (QR) code. Type of two-dimensional barcode that stores data in a pattern of black and white squares. You can scan the QR code with a camera to quickly access information like URLs, contact details, or authentication keys. The QR code typically expires after a short period, usually around 5 minutes.","_id":"673d9f52afd9bf001392273e"},{"term":"reCAPTCHA","definition":"Completely Automated Public Turing test to tell Computers and Humans Apart. reCAPTCHA is a Google service that verifies a user is human and not a bot by presenting tests that are easy for humans but difficult for automated software.","_id":"673d9f5c8082270030d0ded6"},{"term":"recovery codes","definition":"Alphanumeric backup verification codes generated when you add a new account to your authenticator app. Recovery codes let you access your account if you do not have your device.","_id":"673d9f71fd59830026abdc2c"},{"term":"Redirect URI","definition":"Link (URL) that an app uses to redirect users after authentication using the OAuth flow. The `redirect_uri` parameter is used to specify a custom post-authorization landing page. This URL must be a subpath of the set Site URL for the app.","_id":"673d9f803f79f3007604d181"},{"term":"Release notes","definition":"Monthly updates about new features and updates across the Clover developer platform.","_id":"673d9f8bcbad42003c236f28"},{"term":"Remote Pay","definition":"API that lets your point of sale (POS) system communicate with Clover payment devices. The Remote Pay SDK is used to semi-integrate a POS with a Clover device for card-present transactions. This allows merchants to process payments and perform operations through the cloud. The SDKs are available for different platforms, including Android and JavaScript.","_id":"673da0ea8d8ee10068701cd9"},{"term":"REST API","definition":"API to build a browser-based integration that creates a secure connection to your website. It redirects a merchant from the Clover Merchant Dashboard to your website URL (link).","_id":"673da0f698b87a00571c2fbf"},{"term":"REST Pay Display API","definition":"API that enables card-present payments on Clover Flex or Mini devices through cloud or local network, without requiring an embedded SDK. POS systems can use HTTP calls to initiate and complete transactions, supporting chip, swipe, and contactless payments.","_id":"673da1869a77b00010d6b6fc"},{"term":"Revenu Québec","definition":"Agency of the government of the Province of Quebec, Canada. It collects taxes to fund public services, ensures that all citizens pay their fair share, and administers programs.","_id":"673da2fa559631007d645bf3"},{"term":"SCV","definition":"Security code value is a unique code used to validate and secure transactions for Clover native gift cards.","_id":"673da33a8d8ee10068701e80"},{"term":"semi-integration","definition":"Semi-integration involves a third-party point of sale (POS) system using Clover for payment processing. In a native integration, your POS runs directly on Clover hardware as an app.","_id":"673da348216993003780d3e9"},{"term":"Site URL","definition":"Link (URL) for your app that you enter on the Edit REST Configuration page for web apps. After a merchant installs and launches your app from the Merchant Dashboard, Clover routes authenticated merchants to this URL through the `/oauth/v2/authorize` endpoint. The merchant can log in or select their merchant account before accessing your app.","_id":"673da34ee88e42003ebe36b9"},{"term":"SPI","definition":"Serial Peripheral Interface (SPI) is a widely used synchronous serial communication standard primarily employed in embedded systems. It facilitates short-distance wired communication between integrated circuits (ICs).","_id":"673da3572b1c2c001fb7f7d7"},{"term":"split tender payment","definition":"Process of dividing or splitting a single transaction into multiple payment methods. For example, a customer can pay part of their bill with cash and the remaining balance with a credit card. This feature is useful when customers want to use more than one payment method to complete a purchase.","_id":"673da361bbac4c00102711dd"},{"term":"Strong Customer Authentication","definition":"European regulatory requirement that makes online payments more secure by using biometrics to validate card-not-present (CNP) digital transactions. With the PSD2 regulations, additional information is needed from the user at the time of payment than just the card number and a card verification code (CVC). This information to verify user identities includes one of the following: 1. what the user knows: password, PIN. 2. what the user possesses: card, mobile phone. 3. what belongs to the user: fingerprints, facial recognition.","_id":"673da36fcbad42003c23718f"},{"term":"Target SDK","definition":"The targetSdk is the SDK version your app targets. It should always be the same as the compileSdk. For instance, if your targetSdk is 30, your app is designed to work optimally on Android 11 (API level 30) or higher. The targetSdk is defined in your app's build.gradle file.","_id":"673da378994595002a60be39"},{"term":"Text code","definition":"Alphanumeric secret key that you enter manually into an authenticator app to generate a one-time password (OTP) for account verification. The text code does not expire, but the OTP generated from it is time-based and usually expires every 30 seconds.","_id":"673da3844529f8000fd3e849"},{"term":"tokenization","definition":"Security measure that replaces a user's payment details, such as credit card numbers, expiration dates, and card verification values or codes, with non-specific IDs called tokens. Tokens are randomly generated when a customer provides their payment information at the point of sale (POS) or on an ecommerce website.","_id":"673da394ee19c10031477e4e"},{"term":"TransArmor token","definition":"Provides an additional layer of security to protect cardholder data during transactions and reduce the regeneration of payment tokens.","_id":"673da39caccb100010a8594f"},{"term":"UART","definition":"Universal Asynchronous Receiver-Transmitter (UART) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable.","_id":"673da3ae4529f8000fd3e8f4"},{"term":"USB","definition":"Universal Serial Bus (USB) is an industry connection standard that allows data exchange and delivery of power between many various types of electronics.","_id":"673da3b8139f87004b411594"},{"term":"vaulted card","definition":"Securely stored card token that can be used for future transactions. It lets merchants process recurring payments or quickly complete in-person transactions for returning customers. The card token is one-way encrypted and can be stored outside the Payment Card Industry Data Security Standard (PCI DSS) scope.","_id":"673da3c716f16000112f75e4"},{"term":"verification code","definition":"Time-based one-time password (OTP) generated after you scan a QR code or enter a text code in your authenticator app. You need to enter this 6-digit OTP to verify your identity when logging into the Global Developer Dashboard. The OTP usually expires every 30 seconds.","_id":"673da3d13dd0b20066375797"},{"term":"virtual gift card","definition":"Unique code or number delivered to a recipient by email, text, or through an app. The virtual card number or promotional code is used for making purchases at online or brick-and-mortar retailers.","_id":"673da3e3352c60006f15d5b3"},{"term":"webhooks","definition":"HTTP-based callback function allows for lightweight, event-driven communication between two application programming interfaces (APIs). When an event, such as a new user registration or a completed purchase, happens in one application, that application sends an HTTP POST request to a specific URL (the webhook) along with relevant data. The receiving application, which has the webhook, processes this data and takes appropriate actions based on the event.","_id":"673da3f9bbcdda0036911d51"},{"term":"custom tender","definition":"Flexible payment method on Clover devices for tailored payment experiences, such as loyalty programs or QR code scanning. Custom tenders can be configured for both customer-facing and merchant-facing interactions.","_id":"673ed307f1cb57004b2c2fae"},{"term":"single-pay token","definition":"Tokens used for a one-time payment, such as creating a charge or paying for an order. Follow-up actions like capturing a charge or issuing a refund don't require a token, as they are linked to the original transaction through the `chargeId` from the initial response. The token is alphanumeric and begins with `clv_`, such as clv_1ABCDefgHI23jKL4m5nOPqR.","_id":"674ed570fec10b0024ef6a92"},{"term":"multi-pay token","definition":"Payment tokens that can be used multiple times to create charges, pay for orders, and handle recurring payments. Examples of multi-pay tokens are TransArmor (TA) and card-on-file (COF).\n\nMulti-pay tokens are generated by using a single-use token as the `source` parameter when creating or updating a customer record. Both card and ACH tokens can be converted into multi-pay tokens.","_id":"674ed65d7cc93a004673affb"},{"term":"liability shift","definition":"Applies only to chargebacks related to fraud and does not cover non-fraudulent customer claims.","_id":"675297637923be3297a6d50f"},{"term":"blocks","definition":"Modular units in the WordPress Editor used to create and customize online store content. With blocks, you can add, remove, or rearrange elements such as product descriptions, images, videos, call-to-action buttons, and text on the store's webpage.","_id":"675fa7e67731ac46571de14c"},{"term":"object","definition":"Collection of key-value pairs. Each key is a string, and the value can be any data type, including strings, numbers, arrays, booleans, null, or another JSON object.","_id":"6777683e3aa647b32217274f"},{"term":"Clover Inventory app","definition":"App to help merchants manage their inventory, including menus, merchandise, and service offerings. It allows for easy updates, bulk editing, and tracking of inventory levels, making it simpler to manage both online and in-store transactions.","_id":"677b467a4bfc2927d78817aa"},{"term":"Clover Register app","definition":"App used for processing transactions and customizing the point-of-sale (POS) experience. It allows merchants to organize items, apply discounts, and manage orders efficiently.","_id":"677b46946917b427bd15de13"},{"term":"inventory","definition":"Collection of items that a merchant sells, manages, and tracks using the Clover system.","_id":"677b46a03bb287005772e5c0"},{"term":"item","definition":"Individual product or service that is part of the merchant's inventory.","_id":"677b46b0dc4a7b002a986d1e"},{"term":"item group","definition":"Groups of related items, such as different sizes or colors of a product, managed together.","_id":"677b46bfb0952e003d78fffb"},{"term":"variants","definition":"Different versions of an item, such as sizes or colors, managed under the same item group.","_id":"677b46cf6f74850068c286d7"},{"term":"attributes","definition":"Characteristics of an item group, like size or color, that define its variants.","_id":"677b46dd1186ed22f8381972"},{"term":"options","definition":"Specific values for an attribute, such as Small or Large for the size attribute.","_id":"677b46f28afafb00635aef3d"},{"term":"item stock","definition":"Quantity of a specific item available in the inventory.","_id":"677b46fd011bf3001ceaa30a"},{"term":"modifier","definition":"Option added to an item to customize it, such as extra toppings on a pizza.","_id":"677b470f1ad2840070ab1382"},{"term":"modifier groups","definition":"Collections of related modifiers that can be applied to items, such as a group of salad add-ins.","_id":"677b471c4bfc2927d788181a"},{"term":"categories","definition":"Used to visually organize items in the Clover Register app, like grouping all appetizers together.","_id":"677b472a2c10ae464d662135"},{"term":"tags","definition":"Labels used for identifying and organizing items within the inventory.","_id":"677b4735742c90001115c4f5"},{"term":"association","definition":"Relationship between different objects within the inventory system, such as by linking items to categories, modifier groups, options, tax rates, or labels.","_id":"677b474265ea31000f6d36f5"},{"term":"revenue class","definition":"Categories used to track and compare revenue streams and sales of items taxed at variable rates. Items tagged with a revenue class can be monitored as part of a specific revenue stream.","_id":"677b474ffa5037bd9b6b41a6"},{"term":"API tokens","definition":"API tokens are used to authenticate requests to Clover REST APIs. Generating an API token is a fundamental part of the OAuth flow to enable secure, controlled, and auditable access to APIs.","_id":"6780a8af549130000f384e35"},{"term":"OAuth","definition":"Clover uses the OAuth 2.0 security framework for third-party developers to authenticate their apps with merchant accounts and lets them use Clover public REST APIs on behalf of the merchant. Clover developers use expiring access and refresh tokens in the production environment to secure merchant data.","_id":"6780a8c295475c001160b4f4"},{"term":"App ID","definition":"Unique identifier assigned to Clover apps created in the Clover App Market. It is used to authenticate and authorize the app to interact with Clover APIs and devices. Also known as Client ID.","_id":"6780a9982cdb17001e1ed570"},{"term":"App Secret","definition":"Private key associated with your Clover app, used along with the App ID to authenticate the app during OAuth flows. It ensures that the app, Clover, and the merchant are all authorized to interoperate. Also known as Client Secret. Do not share the key publicly.","_id":"6780a9ba3cd127005354655b"},{"term":"Semi-integrated app","definition":"Point-of-sale (POS) solution that integrates a third-party point of sale (POS) system to use Clover for processing payments. This setup allows the POS software to accept EMV-ready, PCI-compliant payments without handling sensitive cardholder data directly.","_id":"6780aa757b05280026a4de52"},{"term":"RAID","definition":"Remote App ID. Unique identifier generated for your Clover app to facilitate semi-integrated solutions. It is used to log payments and expedite support requests for your app. Format: {developerId}.{appId}.","_id":"6780aa81f46ed4002f2838d4"},{"term":"Client Secret","definition":"Private key assigned to your Clover app. It is used along with the Client ID during the OAuth authentication process to verify the identity of your app. Your Client Secret is the Client ID value in your app's Settings page on the Developer Dashboard.","_id":"6780ac0d7ad41400246e97b0"},{"term":"manual refund","definition":"Occurs when a merchant refunds an amount without an associated sale or order. This type of refund is also known as credit, unmatched refund, unreferenced refund, or naked refund.","_id":"6788b9a0dffa5100601bb7bf"},{"term":"QSA","definition":"Individual or organization certified to assess and audit an organization's compliance with the Payment Card Industry Data Security Standards (PCI DSS).","_id":"67a1d33be4c6c40037900083"},{"term":"Magecart","definition":"Group of hackers that target online shopping cart systems to steal payment card information using malicious code.","_id":"67a1d3601df9064a5af766ab"},{"term":"card skimming","definition":"Using a device called a skimmer to steal card information directly from the magnetic stripe (magstripe) of a physical card. Skimmers are small, malicious card readers concealed within legitimate card readers to capture data from every card that is swiped.","_id":"67a1d39fbc84d0006be97405"},{"term":"card token","definition":"Unique, single-use code that represents a customer’s credit card details. It securely processes payments without exposing the actual card information.","_id":"682317018426a90059f1a215"},{"term":"production developer account","definition":"An approved Clover developer account that you use to submit apps to the Clover App Market. Clover must verify and approve this account before the app approval process can begin. Approval is not required for sandbox development.","_id":"69732acbf5124ede40a6b8d3"}],"graphqlSchema":"","gracePeriod":{"enabled":false,"endsAt":null},"healthCheck":{"provider":"","settings":{}},"i18n":{"defaultLanguage":"en","languages":["en"],"state":"enabled"},"intercom":"","is_active":true,"internal":"","jwtExpirationTime":0,"landing_bottom":[],"mcp":{"state":"disabled"},"mdxishMigrationStatus":{"migratedFrom":"rdmd"},"metrics":{"monthlyLimit":0,"monthlyPurchaseLimit":0,"thumbsEnabled":true,"meteredBilling":{}},"modules":{"landing":true,"docs":true,"examples":true,"reference":true,"graphql":false,"changelog":true,"discuss":true,"suggested_edits":false,"custompages":false,"tutorials":false},"name":"Clover Enterprise Group","nav_names":{"docs":"","reference":"","changelog":"","discuss":"","recipes":"","tutorials":""},"oauth_url":"","onboardingCompleted":{"api":false,"appearance":false,"documentation":false,"domain":false,"jwt":false,"logs":false,"metricsSDK":false,"aiReady":false},"owlbot":{"customization":{"tone":"neutral","customTone":"","answerLength":"long","forbiddenWords":"","defaultAnswer":"","showAiDisclaimer":false,"advancedInstruction":"","advancedModeEnabled":false},"enabled":false,"isPaying":false,"copilot":{"enabled":false,"hasBeenUsed":false,"installedCustomPage":""},"exampleQuestions":{"question1":"","question2":"","question3":""},"knowledge":"","modelList":[],"newExperience":false,"knowledgeSegregation":false,"trial":{"isPaying":false},"v2":false,"llmOptions":{"model":{}}},"owner":{"id":"614230303827d8006b4d2e55","email":null,"name":null},"plan":"enterprise","planOverride":"enterprise","planTrial":"enterprise","readmeScore":{"components":{"newDesign":{"enabled":true,"points":25},"reference":{"enabled":true,"points":50},"tryItNow":{"enabled":true,"points":35},"syncingOAS":{"enabled":true,"points":10},"customLogin":{"enabled":true,"points":25},"metrics":{"enabled":false,"points":40},"recipes":{"enabled":true,"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":true,"points":5},"glossary":{"enabled":true,"points":1},"variables":{"enabled":true,"points":1},"integrations":{"enabled":true,"points":2}},"totalScore":180},"reCaptchaSiteKey":"","reference":{"alwaysUseDefaults":false,"autoFillRequestExample":false,"defaultExpandResponseExample":false,"defaultExpandResponseSchema":false,"enableOAuthFlows":false,"fillOptionalObjectsOnExpand":true},"seo":{"overwrite_title_tag":false},"ssl":{"minTLS":"1.2"},"stable":{"_id":"66bb951e6ae14e005acce10d","version":"1.0.0","version_clean":"1.0.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":[],"releaseDate":"2024-08-13T17:17:18.055Z","project":"66bb951e6ae14e005acce10e","createdAt":"2024-08-13T17:17:18.155Z","updatedAt":"2024-08-13T17:17:18.390Z","__v":1,"apiRegistries":[],"pdfStatus":"","source":"readme"},"subdomain":"clover-enterprise-group","subpath":"","topnav":{"left":[],"right":[{"type":"user"}],"bottom":[],"edited":false},"trial":{"trialDeadlineEnabled":true,"trialEndsAt":"2024-08-27T17:17:18.058Z"},"translate":{"provider":"transifex","show_widget":false,"key_public":"","org_name":"","project_name":"","languages":[]},"url":"","versions":[{"_id":"66bb951e6ae14e005acce10d","version":"1.0.0","version_clean":"1.0.0","codename":"","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":[],"releaseDate":"2024-08-13T17:17:18.055Z","project":"66bb951e6ae14e005acce10e","createdAt":"2024-08-13T17:17:18.155Z","updatedAt":"2024-08-13T17:17:18.390Z","__v":1,"apiRegistries":[],"pdfStatus":"","source":"readme"}],"variableDefaults":[],"webhookEnabled":false},"isHubEditable":true},"projectStore":{"data":{"allow_crawlers":"disabled","canonical_url":null,"default_version":{"name":"3"},"description":null,"glossary":[{"term":"3DS","definition":"3DS protocol uses a three-domain model to add an extra layer of security between the financial authorization process and the online authentication process. The three domains are as follows: 1. Issuer domain: Financial institution (FI) or bank that issued the card used for the transaction. 2. Acquirer domain: Merchant that accepts online payments from customers. 3. Interoperability domain: 3DS infrastructure platform is the secure intermediary that facilitates communication between the customer and the merchant.","_id":"673d8fedbbac4c001027014d"},{"term":"AID","definition":"Application Identifier. An identifier stored on the chip and terminal. It is used to identify mutually supported applications.","_id":"673d8ffd54aa2a00300c8153"},{"term":"Alternate Launch Path","definition":"Link (URL) path for your app that you enter on the Edit REST Configuration page for web apps. This path uses the same base domain as the Site URL. The alternate launch path is required when OAuth is initiated from the left navigation menu in the Merchant Dashboard or directly from the Clover App Market. After Clover redirects merchants to your app, your app must initiate the OAuth flow by calling the `/v2/authorize` endpoint.","_id":"673d9020216993003780b57c"},{"term":"Android ABI","definition":"Android ABI (Application Binary Interface) defines how an application's machine code interacts with the system at runtime. It specifies details such as the CPU instruction set, endianness of memory stores and loads, conventions for passing data between applications and the system, and the format of executable binaries.","_id":"673d902cda33e30053bc5c7f"},{"term":"Android Payment API","definition":"Intent-based API used in applications running on Clover devices for executing payment transaction requests. It supports payment operations, including payments, preauthorizations, and payment reversals (void/refund), using Android Intent Builders.","_id":"673d90386bf20f006079d1dc"},{"term":"Android SDK","definition":"SDK to build apps that run on Clover devices and publish your apps on the Clover App Market. It is also used for semi-integration with a Clover device, enabling a third-party point of sale (POS) system to use Clover for processing payments.","_id":"673d9044e8d62f00431f7200"},{"term":"Android Virtual Device","definition":"AVD is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator. An AVD contains a hardware profile, system image, storage area, skin, and other properties.","_id":"673d9056ea642800216cdaaa"},{"term":"Announcements","definition":"Information on new launches, features, timelines, and notices for developers.","_id":"673d9098bbac4c001027016d"},{"term":"API changelog","definition":"Monthly updates related to API changes.","_id":"673d90aaa085000030547ef2"},{"term":"API docs and SDK guides","definition":"Resources needed to work with the Clover app and integration platforms.","_id":"673d90bd8d8ee100686ff678"},{"term":"API level","definition":"Each Android version corresponds to a specific API level. For example, Android 11 corresponds to API level 30, Android 10 to API level 29, and so on. The API level precisely identifies the version of the API set that your app can call into. It defines the combination of manifest elements, permissions, and other features that you can use as a developer.","_id":"673d90c891bf64002a9f63f7"},{"term":"Auth","definition":"Authorization (Auth) is a tip-adjusted sale. This type of transaction is typically used by restaurants and services establishments.","_id":"673d90d37bd1cf0019a275c7"},{"term":"authenticator app","definition":"Mobile or desktop application that generates time-based or counter-based one-time passwords (OTPs) for secure multi-factor authentication (MFA). You can download an authentication app, such as Google Authenticator or Microsoft Authenticator, from the relevant app store.","_id":"673d91114f9f5c0012f565a7"},{"term":"Bearer token","definition":"Type of token used in the authorization header of an API request to authenticate the client making the request. It is typically included in the request header as follows: Authorization: Bearer \u003ctoken>. This token is a string that represents the user’s identity and permissions.","_id":"673d91227bd1cf0019a2761f"},{"term":"billable merchant","definition":"Active merchant accounts with Clover. These are not test merchant or demo accounts and are not suppressed for billing.","_id":"673d91348d8ee100686ff685"},{"term":"blackhole payment gateway","definition":"Default gateway for test merchant accounts in the Clover sandbox environment. It sets all transactions to be successful and suffices for most development use cases.","_id":"673d914a91bf64002a9f6493"},{"term":"Bug fixes","definition":"Monthly updates on the latest bug fixes across the Clover developer platform.","_id":"673d9166bbac4c00102701d3"},{"term":"card-on-file","definition":"Card-on-file (COF) transactions are payments in which the cardholders have authorized merchants to store their credit or debit card information to use for future purchases or recurring payments.","_id":"673d9176da33e30053bc5dd1"},{"term":"card tokenization","definition":"Faud-prevention measure that replaces sensitive payment credentials, such as credit card numbers, cardholder names, expiration dates, and CVV codes with non-specific identifiers known as tokens. These tokens are used for subsequent transactions, allowing secure storage and processing of payment information.","_id":"673d918054aa2a00300c8180"},{"term":"Card track data","definition":"Information encoded on a payment card's magnetic stripe or chip. The data is used to authorize and process transactions.","_id":"673d919554aa2a00300c81ea"},{"term":"cash out","definition":"Process of removing the remaining balance from a gift card, bringing the account balance to zero (0). The customer may receive the remaining balance in cash, or choose to cash out and deactivate the card or close the gift card account.","_id":"673d91b3e0af860036ad2172"},{"term":"certificates","definition":"Certificates and profiles are essential for app development and distribution of the Apple Pay® service on a Clover Ecommerce integration. Certificates are digital documents that verify your identity as a developer. They are used to sign your apps and ensure they come from a trusted source.","_id":"673d91d05db0190019bd08df"},{"term":"challenge flow","definition":"For card-not-present (CNP) payments, challenge flow indicates that the financial institution (FI) or issuer requires more evidence to verify the legitimacy of the transaction. In the challenge flow, the customer must provide extra information to authenticate the payment, such as a password or a one-time code that the card issuer sends to their mobile device.","_id":"673d91e18d8ee100686ff7b1"},{"term":"Client ID","definition":"Unique identifier for your app on the Clover App Market. Used to identify your app when making API requests to Clover. It helps Clover recognize which app is making the request and ensures that the app has the necessary permissions to access the requested resources. Your Client ID is the App ID value in your app's Settings page on the Developer Dashboard.","_id":"673d920fa0a15d006035e273"},{"term":"closeout","definition":"Process of closing your open batch of transactions and submitting it for clearing, settlement, and funding.","_id":"673d9905da33e30053bc78c6"},{"term":"Clover APK","definition":"Android application package (APK) created for integration with Clover merchant services and point of sale (POS) systems. Developers must design, generate, and register their APK following Clover standards. Once approved, the APK is submitted for distribution on Clover devices, ensuring it meets the necessary guidelines for proper installation and functionality on the hardware.","_id":"673d9977bbac4c0010270eb4"},{"term":"Clover Community","definition":"Online forum for developers to ask questions and get help with the Clover API.","_id":"673d9988a08500003054a420"},{"term":"Clover Connector SDK","definition":"Provides an interface that allows external point of sale (POS) systems to access the same payment functions as PaymentConnector, such as sales and refunds. It also offers additional features like custom receipts and Android activities. The SDK is available for four platforms: Android, iOS, JavaScript, and .NET.","_id":"673d998ef090bf003e28b229"},{"term":"Clover Go reader","definition":"EMV-capable device that pairs with an Apple (iOS®) and Android smartphone or tablet. The reader allows iOS and Android mobile apps to accept swipe, NFC, or EMV transactions with no EMV certification required at the merchant's end. Clover Go reader accepts chip, dip, and contactless payments, including Tap-to-Pay on iPhone, Apple Pay®, Google Pay™ and Samsung Pay®.","_id":"673d999f98b87a00571c2cd9"},{"term":"Clover ID","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. This identifier displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and also on the Merchant Dashboard > User Settings page below the merchant name. It also displays in the URL (link) of the Clover Merchant Dashboard. Example: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. Format: 13-alphanumeric","_id":"673d99ae4529f8000fd3e1d3"},{"term":"Code and sample apps","definition":"Resources on GitHub to help get started with the Clover APIs.","_id":"673d99b8ea642800216d0571"},{"term":"code challenge","definition":"Base64-URL-encoded string derived from the code verifier using a transformation method such as SHA-256. Code challenge is sent to the authorization server during the initial authorization request. It ensures that the app that initiated the request is the same app that is completing the request.","_id":"673d99c2204ee80045357003"},{"term":"code verifier","definition":"Cryptographically random string that a low-trust app needs to generate at the beginning of the authorization process. It is used to create a code challenge and is sent to the authorization server to verify the authorization request.","_id":"673d99d191bf64002a9f8216"},{"term":"CORS","definition":"Security feature that allows web pages to request resources from different origins, controlled through HTTP headers.","_id":"673d99e1e88e42003ebe326c"},{"term":"denominated gift card","definition":"Cards with a specific value assigned to them at the time of purchase. For example, a gift card might be worth $25, $50, or $100. When a customer buys a denominated gift card, they know exactly how much value is on the card.","_id":"673d99e916f16000112f6f9b"},{"term":"Developer Dashboard","definition":"If you are creating new apps, log in to the Global Developer Dashboard. If you are managing apps previously created on the legacy developer platform, continue using the Developer Dashboard based on your merchant's region.","_id":"673d9a047053dd000f43a0f2"},{"term":"developer platform","definition":"Open platform for third-party developers to build apps and integrate external point-of-sale systems with Clover devices. Create new apps on the global developer platform through the Global Developer Dashboard.","_id":"673d9a0a7ab0410068f93c71"},{"term":"Device Manager","definition":"Android Studio tool for creating and managing an Android Virtual Device (AVD).","_id":"673d9a15216993003780ce8f"},{"term":"DPI","definition":"DPI (dots per inch) is the pixel density, that is the number of pixels within a physical area of the screen. DPI is different from the screen resolution, which is the total number of pixels on a screen.","_id":"673d9a1f5db0190019bd13dc"},{"term":"Ecommerce API key","definition":"Identifies the merchant who is tokenizing customers' cards. You can use the same static Ecommerce API key to tokenize multiple cards for that merchant. This is also known as the PAKMS key, as it is generated from the Public Access Key Management Service (PAKMS) using the [Ecommerce - PAKMS Service API](https://docs.clover.com/dev/reference/getapikey).","_id":"673d9be7e88e42003ebe330c"},{"term":"Ecommerce API","definition":"API to integrate Clover payment capabilities into your online or web-based applications. It provides endpoints for creating tokens, processing payments, and managing customer data. OAuth tokens are necessary for authentication and authorization.","_id":"673d9bf11aaaa0005430f26f"},{"term":"EMV","definition":"EMV cards are smart cards, also called chip cards, integrated circuit cards, or IC cards. They store their data on integrated circuit chips in addition to a magnetic stripe. EMV stands for Europay, Mastercard, and Visa, the three companies that created the specifications to facilitate worldwide interactions and acceptance of secure payments.","_id":"673d9bfe68c269003c38a68a"},{"term":"EMVCo","definition":"Consortium with equal control among American Express, China UnionPay, Discover, JCB, Mastercard, and Visa. EMVCo creates and manages EMV® Specifications and programs that enable seamless and secure card-based payments for businesses and consumers worldwide.","_id":"673d9c062b1c2c001fb7f364"},{"term":"Environment variables","definition":"A set of key-value pairs that a running process can access during runtime. These variables can be used to configure and adjust the behavior of the app or system, and they can vary between different execution environments.","_id":"673d9c3857fdbd003d772831"},{"term":"FAC","definition":"Foreign access code value is used to process transactions for non-native gift cards on the Clover point of sale system.","_id":"673d9c417ab0410068f93ede"},{"term":"frictionless flow","definition":"For card-not-present (CNP) payments, frictionless flow refers to a seamless process where the financial institution (FI) or issuer can verify the legitimacy of a transaction without requiring additional input from the cardholder. This behind-the-scenes verification lets customers complete their purchases without any noticeable interruptions or authentication steps.","_id":"673d9c60dcf4bc00436cef7e"},{"term":"gift card","definition":"A gift card is a prepaid payment card used to make purchases at participating restaurants, stores, or online retailers.","_id":"673d9c69cbad42003c236e58"},{"term":"global developer platform","definition":"Provides an intuitive and seamless experience to create apps and integrations for different regions. With a single developer account, you can access both sandbox and production environments and switch between them effortlessly.","_id":"673d9c71e88e42003ebe3362"},{"term":"high-trust app","definition":"Securely stores and uses the Client Secret (`app_secret`) and employs the standard authorization code flow to generate expiring authentication tokens.","_id":"673d9c7bea642800216d0794"},{"term":"hosted payment form","definition":"Secure way to accept ecommerce credit card payments without the need for a shopping cart. Clover hosts the form, so sensitive payment data does not pass through the merchant's system, reducing the PCI scope and minimizing merchant liability. You can implement payment forms using a standard template or customize it to fit the look and feel of the merchant's ecommerce website.","_id":"673d9c88204ee80045357119"},{"term":"Idempotency Key","definition":"Unique identifier used to ensure that a particular operation is performed only once, even if the request is made multiple times. This is particularly useful in scenarios where network issues or client retries might cause the same request to be sent more than once.","_id":"673d9c9f0c9f1a00368c050b"},{"term":"Incremental authorization","definition":"Allows merchants to change the original authorization amount to ensure the customer's card can still cover the higher amount.","_id":"673d9ca77053dd000f43a1a7"},{"term":"issuer","definition":"Financial institutions, such as a bank that issues a credit card to a consumer or business.","_id":"673d9caf2ab88500611e934d"},{"term":"low-trust app","definition":"Mobile or single-page apps that cannot securely store the Client Secret (`app_secret`) and use the authorization code flow with Proof Key for Code Exchange (PKCE) to enhance security during token acquisition.","_id":"673d9cc7d27f0b001991bbb0"},{"term":"LTE","definition":"LTE (Long-Term Evolution) is a fourth-generation (4G) wireless standard that provides increased network capacity and speed for mobile phones and other cellular devices compared with third-generation (3G) technology.","_id":"673d9cd6216993003780cf96"},{"term":"merchantId","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. The merchantId displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and on the Merchant Dashboard > User Settings page below the merchant’s name. It also displays in the URL (link) of the Clover Merchant Dashboard. Example: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. Format: 13-alphanumeric; Note: The merchantId is different from the MID.","_id":"673d9ce1dcf4bc00436cf043"},{"term":"MID","definition":"Merchant identifier (MID) identifies your merchant account and is the same across devices with the same merchant name. This identifier is available on the Clover device Diagnostics > Additional Details screen and also on the Merchant Dashboard > User Settings page, in the MID column. Note: The MID is different from the merchant UUID or merchantId.","_id":"673d9cf63dd0b800123c0b68"},{"term":"Minimum SDK","definition":"The minSdk specifies the minimum SDK version your app supports. For example, if your minSdk is 26, your app will only run on devices with Android 8 (API level 26) or higher. The minSdk is defined in your app's build.gradle file.","_id":"673d9cfe0c9f1a00368c0548"},{"term":"MOTO","definition":"MOTO (Mail Order/Telephone Order) transactions are merchant-initiated, card-not-present (CNP) transactions in which customers provide their order and payment details by regular mail (not email), fax, or telephone. In these transactions, card information is captured, and payment is processed with the customer’s consent, even though the card is not physically present.","_id":"673d9d084f9f5c0012f57b49"},{"term":"multi-factor authentication","definition":"Security process that requires two different forms of identification to verify a user’s identity, typically combining something you know, such as a password, with something you have, such as a mobile device.","_id":"673d9d0f994595002a60b8e4"},{"term":"multi-lock","definition":"Set aside and lock a specific amount from the available balance on a gift card for a specified time period. Multiple locks can be active simultaneously as long as there is a balance. The locked amount automatically unlocks when the specified time expires or upon request to unlock and redeem the amount.","_id":"673d9d18352c60006f15d204"},{"term":"native gift card","definition":"Gift cards that use the Clover-integrated Gift Card Solution, managed through the Fiserv payment gateway. May have a 4-8 digit security card value (SCV). These non-expiring cards are fully integrated into the Clover point of sale system, allowing for seamless transactions and management.","_id":"673d9d218effef006b1f1190"},{"term":"NFC","definition":"Near Field Communication (NFC) is a group of wireless technologies that work over a short distance, usually 4 cm or less, to establish a connection. With NFC, you can transfer small amounts of data between an Android-powered device and an NFC tag or between two Android-powered devices.","_id":"673d9d4116f16000112f72fd"},{"term":"non-denominated gift card","definition":"Cards without a preset value at the time of purchase are activated with a value determined at the time of purchase. The purchaser or recipient can choose the amount, depending on the terms set by the merchant.","_id":"673d9d6950cd900047362e83"},{"term":"non-native gift card","definition":"Gift cards managed through payment gateways other than Fiserv and do not use the Clover-integrated Gift Card Solution. May have a 4-8 digit foreign access code (FAC) for transactions and may not offer the same level of integration with the Clover point of sale system. While non-native gift cards can be used with Clover, they may require additional steps or configurations to process transactions.","_id":"673d9d82289098004b0bafa9"},{"term":"OTP","definition":"Unique, temporary code used for a single login session or transaction. A one-time password (OTP) is generated after you scan a QR code in your authenticator app during account setup or use the authenticator. You need to enter the OTP to verify your identity when logging into the Global Developer Dashboard.","_id":"673d9d969a77b00010d6b530"},{"term":"partial month","definition":"The first charge is added when a merchant installs a new app, and the installation occurs after the first of the month.","_id":"673d9db116f16000112f7352"},{"term":"Payment Connector","definition":"Java-based interface that lets you build a point of sale (POS) directly on a Clover device. It provides all of the Clover features needed for your app to make a sale, issue a refund, and perform other payment functions.","_id":"673d9dbe92944d00479e32f7"},{"term":"payment gateway","definition":"Virtual equivalent of a physical credit and debit card reader. It transfers the data between the point of entry—either a terminal, website, or mobile device—to the payment processor to continue the payment lifecycle.","_id":"673d9e995db0190019bd1553"},{"term":"payment processor","definition":"Technical intermediary, such as Fiserv or Clover that securely handle transactions between a merchant and a customer by processing card or electronic payments.","_id":"673d9ea1a08500003054a516"},{"term":"physical gift card","definition":"Tangible gift card that you can load and reload with an amount and use as a cash equivalent to make in-store and online purchases.","_id":"673d9edd50cd900047362f00"},{"term":"POS","definition":"Point of sale (POS) system enables businesses to accept customer payments and efficiently manage operations. The system consists of both hardware and software components. The software is often cloud-based, allowing access from anywhere. The hardware typically includes a register, barcode scanner, card reader, cash drawer, and receipt printer.","_id":"673d9ee650cd900047362f4d"},{"term":"promotional code","definition":"Unique values, usually alphanumeric, associated with a virtual gift card and sent by email, text, or through an app. The promotional or promo code is used to activate and redeem the virtual gift card.","_id":"673d9eef912f2c00165321a1"},{"term":"Proof Key for Code Exchange","definition":"Extension to the OAuth 2.0 authorization code flow designed to enhance security, especially for public clients like mobile and single-page applications that cannot securely store the Client Secret. PKCE ensures that even if an authorization code is intercepted, it cannot be exchanged for tokens without the original `code_verifier`.","_id":"673d9f04139f87004b4112c9"},{"term":"prorated subscription","definition":"Merchant subscription tier adjustment. When a merchant downgrades their subscription, or uninstalls an app, Clover adjusts the charge difference in the current month's advance on the merchant account.","_id":"673d9f42352c60006f15d28e"},{"term":"PSD2","definition":"Payment Service Directive 2 (PSD2) is a European Union directive that grants bank customers the ability to share their account information with third-party providers. These providers can then manage the customer’s finances, enabling services like direct payments.","_id":"673d9f48e88e42003ebe33ab"},{"term":"QR code","definition":"Quick Response (QR) code. Type of two-dimensional barcode that stores data in a pattern of black and white squares. You can scan the QR code with a camera to quickly access information like URLs, contact details, or authentication keys. The QR code typically expires after a short period, usually around 5 minutes.","_id":"673d9f52afd9bf001392273e"},{"term":"reCAPTCHA","definition":"Completely Automated Public Turing test to tell Computers and Humans Apart. reCAPTCHA is a Google service that verifies a user is human and not a bot by presenting tests that are easy for humans but difficult for automated software.","_id":"673d9f5c8082270030d0ded6"},{"term":"recovery codes","definition":"Alphanumeric backup verification codes generated when you add a new account to your authenticator app. Recovery codes let you access your account if you do not have your device.","_id":"673d9f71fd59830026abdc2c"},{"term":"Redirect URI","definition":"Link (URL) that an app uses to redirect users after authentication using the OAuth flow. The `redirect_uri` parameter is used to specify a custom post-authorization landing page. This URL must be a subpath of the set Site URL for the app.","_id":"673d9f803f79f3007604d181"},{"term":"Release notes","definition":"Monthly updates about new features and updates across the Clover developer platform.","_id":"673d9f8bcbad42003c236f28"},{"term":"Remote Pay","definition":"API that lets your point of sale (POS) system communicate with Clover payment devices. The Remote Pay SDK is used to semi-integrate a POS with a Clover device for card-present transactions. This allows merchants to process payments and perform operations through the cloud. The SDKs are available for different platforms, including Android and JavaScript.","_id":"673da0ea8d8ee10068701cd9"},{"term":"REST API","definition":"API to build a browser-based integration that creates a secure connection to your website. It redirects a merchant from the Clover Merchant Dashboard to your website URL (link).","_id":"673da0f698b87a00571c2fbf"},{"term":"REST Pay Display API","definition":"API that enables card-present payments on Clover Flex or Mini devices through cloud or local network, without requiring an embedded SDK. POS systems can use HTTP calls to initiate and complete transactions, supporting chip, swipe, and contactless payments.","_id":"673da1869a77b00010d6b6fc"},{"term":"Revenu Québec","definition":"Agency of the government of the Province of Quebec, Canada. It collects taxes to fund public services, ensures that all citizens pay their fair share, and administers programs.","_id":"673da2fa559631007d645bf3"},{"term":"SCV","definition":"Security code value is a unique code used to validate and secure transactions for Clover native gift cards.","_id":"673da33a8d8ee10068701e80"},{"term":"semi-integration","definition":"Semi-integration involves a third-party point of sale (POS) system using Clover for payment processing. In a native integration, your POS runs directly on Clover hardware as an app.","_id":"673da348216993003780d3e9"},{"term":"Site URL","definition":"Link (URL) for your app that you enter on the Edit REST Configuration page for web apps. After a merchant installs and launches your app from the Merchant Dashboard, Clover routes authenticated merchants to this URL through the `/oauth/v2/authorize` endpoint. The merchant can log in or select their merchant account before accessing your app.","_id":"673da34ee88e42003ebe36b9"},{"term":"SPI","definition":"Serial Peripheral Interface (SPI) is a widely used synchronous serial communication standard primarily employed in embedded systems. It facilitates short-distance wired communication between integrated circuits (ICs).","_id":"673da3572b1c2c001fb7f7d7"},{"term":"split tender payment","definition":"Process of dividing or splitting a single transaction into multiple payment methods. For example, a customer can pay part of their bill with cash and the remaining balance with a credit card. This feature is useful when customers want to use more than one payment method to complete a purchase.","_id":"673da361bbac4c00102711dd"},{"term":"Strong Customer Authentication","definition":"European regulatory requirement that makes online payments more secure by using biometrics to validate card-not-present (CNP) digital transactions. With the PSD2 regulations, additional information is needed from the user at the time of payment than just the card number and a card verification code (CVC). This information to verify user identities includes one of the following: 1. what the user knows: password, PIN. 2. what the user possesses: card, mobile phone. 3. what belongs to the user: fingerprints, facial recognition.","_id":"673da36fcbad42003c23718f"},{"term":"Target SDK","definition":"The targetSdk is the SDK version your app targets. It should always be the same as the compileSdk. For instance, if your targetSdk is 30, your app is designed to work optimally on Android 11 (API level 30) or higher. The targetSdk is defined in your app's build.gradle file.","_id":"673da378994595002a60be39"},{"term":"Text code","definition":"Alphanumeric secret key that you enter manually into an authenticator app to generate a one-time password (OTP) for account verification. The text code does not expire, but the OTP generated from it is time-based and usually expires every 30 seconds.","_id":"673da3844529f8000fd3e849"},{"term":"tokenization","definition":"Security measure that replaces a user's payment details, such as credit card numbers, expiration dates, and card verification values or codes, with non-specific IDs called tokens. Tokens are randomly generated when a customer provides their payment information at the point of sale (POS) or on an ecommerce website.","_id":"673da394ee19c10031477e4e"},{"term":"TransArmor token","definition":"Provides an additional layer of security to protect cardholder data during transactions and reduce the regeneration of payment tokens.","_id":"673da39caccb100010a8594f"},{"term":"UART","definition":"Universal Asynchronous Receiver-Transmitter (UART) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable.","_id":"673da3ae4529f8000fd3e8f4"},{"term":"USB","definition":"Universal Serial Bus (USB) is an industry connection standard that allows data exchange and delivery of power between many various types of electronics.","_id":"673da3b8139f87004b411594"},{"term":"vaulted card","definition":"Securely stored card token that can be used for future transactions. It lets merchants process recurring payments or quickly complete in-person transactions for returning customers. The card token is one-way encrypted and can be stored outside the Payment Card Industry Data Security Standard (PCI DSS) scope.","_id":"673da3c716f16000112f75e4"},{"term":"verification code","definition":"Time-based one-time password (OTP) generated after you scan a QR code or enter a text code in your authenticator app. You need to enter this 6-digit OTP to verify your identity when logging into the Global Developer Dashboard. The OTP usually expires every 30 seconds.","_id":"673da3d13dd0b20066375797"},{"term":"virtual gift card","definition":"Unique code or number delivered to a recipient by email, text, or through an app. The virtual card number or promotional code is used for making purchases at online or brick-and-mortar retailers.","_id":"673da3e3352c60006f15d5b3"},{"term":"webhooks","definition":"HTTP-based callback function allows for lightweight, event-driven communication between two application programming interfaces (APIs). When an event, such as a new user registration or a completed purchase, happens in one application, that application sends an HTTP POST request to a specific URL (the webhook) along with relevant data. The receiving application, which has the webhook, processes this data and takes appropriate actions based on the event.","_id":"673da3f9bbcdda0036911d51"},{"term":"custom tender","definition":"Flexible payment method on Clover devices for tailored payment experiences, such as loyalty programs or QR code scanning. Custom tenders can be configured for both customer-facing and merchant-facing interactions.","_id":"673ed307f1cb57004b2c2fae"},{"term":"single-pay token","definition":"Tokens used for a one-time payment, such as creating a charge or paying for an order. Follow-up actions like capturing a charge or issuing a refund don't require a token, as they are linked to the original transaction through the `chargeId` from the initial response. The token is alphanumeric and begins with `clv_`, such as clv_1ABCDefgHI23jKL4m5nOPqR.","_id":"674ed570fec10b0024ef6a92"},{"term":"multi-pay token","definition":"Payment tokens that can be used multiple times to create charges, pay for orders, and handle recurring payments. Examples of multi-pay tokens are TransArmor (TA) and card-on-file (COF).\n\nMulti-pay tokens are generated by using a single-use token as the `source` parameter when creating or updating a customer record. Both card and ACH tokens can be converted into multi-pay tokens.","_id":"674ed65d7cc93a004673affb"},{"term":"liability shift","definition":"Applies only to chargebacks related to fraud and does not cover non-fraudulent customer claims.","_id":"675297637923be3297a6d50f"},{"term":"blocks","definition":"Modular units in the WordPress Editor used to create and customize online store content. With blocks, you can add, remove, or rearrange elements such as product descriptions, images, videos, call-to-action buttons, and text on the store's webpage.","_id":"675fa7e67731ac46571de14c"},{"term":"object","definition":"Collection of key-value pairs. Each key is a string, and the value can be any data type, including strings, numbers, arrays, booleans, null, or another JSON object.","_id":"6777683e3aa647b32217274f"},{"term":"Clover Inventory app","definition":"App to help merchants manage their inventory, including menus, merchandise, and service offerings. It allows for easy updates, bulk editing, and tracking of inventory levels, making it simpler to manage both online and in-store transactions.","_id":"677b467a4bfc2927d78817aa"},{"term":"Clover Register app","definition":"App used for processing transactions and customizing the point-of-sale (POS) experience. It allows merchants to organize items, apply discounts, and manage orders efficiently.","_id":"677b46946917b427bd15de13"},{"term":"inventory","definition":"Collection of items that a merchant sells, manages, and tracks using the Clover system.","_id":"677b46a03bb287005772e5c0"},{"term":"item","definition":"Individual product or service that is part of the merchant's inventory.","_id":"677b46b0dc4a7b002a986d1e"},{"term":"item group","definition":"Groups of related items, such as different sizes or colors of a product, managed together.","_id":"677b46bfb0952e003d78fffb"},{"term":"variants","definition":"Different versions of an item, such as sizes or colors, managed under the same item group.","_id":"677b46cf6f74850068c286d7"},{"term":"attributes","definition":"Characteristics of an item group, like size or color, that define its variants.","_id":"677b46dd1186ed22f8381972"},{"term":"options","definition":"Specific values for an attribute, such as Small or Large for the size attribute.","_id":"677b46f28afafb00635aef3d"},{"term":"item stock","definition":"Quantity of a specific item available in the inventory.","_id":"677b46fd011bf3001ceaa30a"},{"term":"modifier","definition":"Option added to an item to customize it, such as extra toppings on a pizza.","_id":"677b470f1ad2840070ab1382"},{"term":"modifier groups","definition":"Collections of related modifiers that can be applied to items, such as a group of salad add-ins.","_id":"677b471c4bfc2927d788181a"},{"term":"categories","definition":"Used to visually organize items in the Clover Register app, like grouping all appetizers together.","_id":"677b472a2c10ae464d662135"},{"term":"tags","definition":"Labels used for identifying and organizing items within the inventory.","_id":"677b4735742c90001115c4f5"},{"term":"association","definition":"Relationship between different objects within the inventory system, such as by linking items to categories, modifier groups, options, tax rates, or labels.","_id":"677b474265ea31000f6d36f5"},{"term":"revenue class","definition":"Categories used to track and compare revenue streams and sales of items taxed at variable rates. Items tagged with a revenue class can be monitored as part of a specific revenue stream.","_id":"677b474ffa5037bd9b6b41a6"},{"term":"API tokens","definition":"API tokens are used to authenticate requests to Clover REST APIs. Generating an API token is a fundamental part of the OAuth flow to enable secure, controlled, and auditable access to APIs.","_id":"6780a8af549130000f384e35"},{"term":"OAuth","definition":"Clover uses the OAuth 2.0 security framework for third-party developers to authenticate their apps with merchant accounts and lets them use Clover public REST APIs on behalf of the merchant. Clover developers use expiring access and refresh tokens in the production environment to secure merchant data.","_id":"6780a8c295475c001160b4f4"},{"term":"App ID","definition":"Unique identifier assigned to Clover apps created in the Clover App Market. It is used to authenticate and authorize the app to interact with Clover APIs and devices. Also known as Client ID.","_id":"6780a9982cdb17001e1ed570"},{"term":"App Secret","definition":"Private key associated with your Clover app, used along with the App ID to authenticate the app during OAuth flows. It ensures that the app, Clover, and the merchant are all authorized to interoperate. Also known as Client Secret. Do not share the key publicly.","_id":"6780a9ba3cd127005354655b"},{"term":"Semi-integrated app","definition":"Point-of-sale (POS) solution that integrates a third-party point of sale (POS) system to use Clover for processing payments. This setup allows the POS software to accept EMV-ready, PCI-compliant payments without handling sensitive cardholder data directly.","_id":"6780aa757b05280026a4de52"},{"term":"RAID","definition":"Remote App ID. Unique identifier generated for your Clover app to facilitate semi-integrated solutions. It is used to log payments and expedite support requests for your app. Format: {developerId}.{appId}.","_id":"6780aa81f46ed4002f2838d4"},{"term":"Client Secret","definition":"Private key assigned to your Clover app. It is used along with the Client ID during the OAuth authentication process to verify the identity of your app. Your Client Secret is the Client ID value in your app's Settings page on the Developer Dashboard.","_id":"6780ac0d7ad41400246e97b0"},{"term":"manual refund","definition":"Occurs when a merchant refunds an amount without an associated sale or order. This type of refund is also known as credit, unmatched refund, unreferenced refund, or naked refund.","_id":"6788b9a0dffa5100601bb7bf"},{"term":"QSA","definition":"Individual or organization certified to assess and audit an organization's compliance with the Payment Card Industry Data Security Standards (PCI DSS).","_id":"67a1d33be4c6c40037900083"},{"term":"Magecart","definition":"Group of hackers that target online shopping cart systems to steal payment card information using malicious code.","_id":"67a1d3601df9064a5af766ab"},{"term":"card skimming","definition":"Using a device called a skimmer to steal card information directly from the magnetic stripe (magstripe) of a physical card. Skimmers are small, malicious card readers concealed within legitimate card readers to capture data from every card that is swiped.","_id":"67a1d39fbc84d0006be97405"},{"term":"card token","definition":"Unique, single-use code that represents a customer’s credit card details. It securely processes payments without exposing the actual card information.","_id":"682317018426a90059f1a215"},{"term":"production developer account","definition":"An approved Clover developer account that you use to submit apps to the Clover App Market. Clover must verify and approve this account before the app approval process can begin. Approval is not required for sandbox development.","_id":"69732acbf5124ede40a6b8d3"},{"term":"prorated subscription","definition":"A merchant subscription tier adjustment, when a merchant downgrades their subscription, or uninstalls an app, and Clover adjusts the charge difference in the current month's advance on the merchant account.","_id":"5f469d85c01cfd0de57b733c"},{"term":"partial month","definition":"The first charge is added when a merchant installs a new app and the installation occurs after the first of the month.","_id":"5fa5f5af0544dd002ae86eee"},{"term":"Auth","definition":"Authorization (Auth) is a tip-adjusted sale. This type of transaction is typically used by restaurants and services establishments.","_id":"649d3869b0358b0018203a82"},{"term":"billable merchant","definition":"Active merchant accounts with Clover. These are not test merchant or demo accounts, and are not suppressed for billing.","_id":"65420a1c3639880059d6c862"},{"term":"LTE","definition":"LTE (Long-Term Evolution) is a fourth-generation (4G) wireless standard that provides increased network capacity and speed for mobile phones and other cellular devices compared with third-generation (3G) technology.","_id":"661647a5e965fe0049f6d8f7"},{"term":"USB","definition":"Universal Serial Bus (USB) is an industry connection standard that allows data exchange and delivery of power between many various types of electronics.","_id":"6616562dbbacf5005644286c"},{"term":"NFC","definition":"Near Field Communication (NFC) is a group of wireless technologies that work over a short distance, usually 4 cm or less, to establish a connection. With NFC, you can transfer small amounts of data between an Android-powered device and an NFC tag or between two Android-powered devices.","_id":"66165f787392b500281d879b"},{"term":"SPI","definition":"Serial Peripheral Interface (SPI) is a widely used synchronous serial communication standard primarily employed in embedded systems. It facilitates short-distance wired communication between integrated circuits (ICs).","_id":"6616602c2f58ae0030b9e0b9"},{"term":"Android ABI","definition":"Android ABI (Application Binary Interface) defines how an application's machine code interacts with the system at runtime. It specifies details such as the CPU instruction set, endianness of memory stores and loads, conventions for passing data between applications and the system, and the format of executable binaries.","_id":"663480a9586d280012ffa5c7"},{"term":"UART","definition":"Universal Asynchronous Receiver-Transmitter (UART) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable.","_id":"6634c2cc21173a00853683de"},{"term":"Android Virtual Device","definition":"Android Virtual Device (AVD) is a configuration that defines the characteristics of an Android phone, tablet, Wear OS, Android TV, or Automotive OS device that you want to simulate in the Android Emulator. An AVD contains a hardware profile, system image, storage area, skin, and other properties.","_id":"6634c647f44e150034a81e8f"},{"term":"API level","definition":"Each Android version corresponds to a specific API level. For example, Android 11 corresponds to API level 30, Android 10 to API level 29, and so on. The API level precisely identifies the version of the API set that your app can call into. It defines the combination of manifest elements, permissions, and other features that you can use as a developer.","_id":"6634c7d40a25a7005195a4c9"},{"term":"DPI","definition":"DPI (dots per inch) is the pixel density, that is the number of pixels within a physical area of the screen. DPI is different from the screen resolution, which is the total number of pixels on a screen.","_id":"6634cc35af2922003f0ae0c7"},{"term":"CORS","definition":"Security feature that allows web pages to request resources from different origins, controlled through HTTP headers.","_id":"663b440a27b57b0051ef9a8f"},{"term":"Clover APK","definition":"Android application package (APK) created for integration with Clover merchant services and point of sale (POS) systems. Developers must design, generate, and register their APK following Clover standards. Once approved, the APK is submitted for distribution on Clover devices, ensuring it meets the necessary guidelines for proper installation and functionality on the hardware.","_id":"663b4b305eca4200256ecda6"},{"term":"Clover ID","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId. \nThis identifier displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and also on the Merchant Dashboard > User Settings page below the merchant name. It also displays in the URL (link) of the Clover Merchant Dashboard.\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId.\nFormat: 13-alphanumeric","_id":"663dcf4edeb40d00180a5b76"},{"term":"MID","definition":"Merchant identifier (MID) identifies your merchant account and is the same across devices with the same merchant name. This identifier is available on the Clover device Diagnostics > Additional Details screen and also on the Merchant Dashboard > User Settings page, in the MID column.\nNote: The MID is different from the merchant UUID or merchantId.","_id":"663dd341cec219002bb270ec"},{"term":"merchantId","definition":"Identifies a merchant’s business locations. If a merchant operates multiple locations, Clover assigns each store a universally unique identifier (UUID), also known as the merchantId.\nThe merchantId displays on the Clover device Diagnostics > Additional Details screen as the Clover ID and on the Merchant Dashboard > User Settings page below the merchant’s name. It also displays in the URL (link) of the Clover Merchant Dashboard.\n\nExample: http://www.clover.com/home/m/88TJMM2T52WQ2/items. In this example, 88TJMM2T52WQ2 is the merchantId. \nFormat: 13-alphanumeric; Note: The merchantId is different from the MID.","_id":"6641eb054a33e700319e8fad"},{"term":"blackhole payment gateway","definition":"Default gateway for test merchant accounts in the Clover sandbox environment. It sets all transactions to be successful and suffices for most development use cases.","_id":"66447e6e653fa90018e2afb5"},{"term":"vaulted card","definition":"Securely stored card token that can be used for future transactions. It lets merchants process recurring payments or quickly complete in-person transactions for returning customers. The card token is one-way encrypted and can be stored outside the Payment Card Industry Data Security Standard (PCI DSS) scope.","_id":"665024515cb512003d87936b"},{"term":"card tokenization","definition":"Faud-prevention measure that replaces sensitive payment credentials, such as credit card numbers, cardholder names, expiration dates, and CVV codes with non-specific identifiers known as tokens. These tokens are used for subsequent transactions, allowing secure storage and processing of payment information.","_id":"6650245bc4047b006129c46e"},{"term":"REST Pay Display API","definition":"Provides a simple interface for point of sale (POS) applications to accept payments on Clover Flex or Clover Mini devices. Developers can connect their apps to Clover devices using cloud or local network connections without requiring an embedded software development kit (SDK). It minimizes effort for handling on-device activities and states.","_id":"665024a633a4ef004cea5907"},{"term":"PSD2","definition":"Payment Service Directive 2 (PSD2) is a European Union directive that grants bank customers the ability to share their account information with third-party providers. These providers can then manage the customer’s finances, enabling services like direct payments.","_id":"665431a4b21564006f6b8c05"},{"term":"EMV","definition":"EMV cards are smart cards, also called chip cards, integrated circuit cards, or IC cards. They store their data on integrated circuit chips in addition to a magnetic stripe. EMV stands for Europay, Mastercard, and Visa, the three companies that created the specifications to facilitate worldwide interactions and acceptance of secure payments.","_id":"66544b3f1bccff0031b78365"},{"term":"EMVCo","definition":"Consortium with equal control among American Express, China UnionPay, Discover, JCB, Mastercard, and Visa. EMVCo creates and manages EMV® Specifications and programs that enable seamless and secure card-based payments for businesses and consumers worldwide.","_id":"66544e518f53e8002b8cf6c6"},{"term":"3DS","definition":"3DS protocol uses a three-domain model to add an extra layer of security between the financial authorization process and the online authentication process. The three domains are: 1. Issuer domain: Financial institution (FI) or bank that issued the card used for the transaction. 2. Acquirer domain: Merchant that accepts online payments from customers. 3. Interoperability domain: 3DS infrastructure platform that is the secure intermediary facilitating communication between the customer and the merchant.","_id":"66544eb4e0f4d500690f5ccd"},{"term":"Strong Customer Authentication","definition":"European regulatory requirement that makes online payments more secure by using biometrics to validate card-not-present (CNP) digital transactions. With the PSD2 regulations, additional information is needed from the user at the time of payment than just the card number and a card verification code (CVC). This information to verify user identities includes one of the following: 1. what the user knows: password, PIN. 2. what the user possesses: card, mobile phone. 3. what belongs to the user: fingerprints, facial recognition.","_id":"66544f82555ae8001177e275"},{"term":"AID","definition":"Application Identifier. An identifier stored on the chip and terminal. It is used to identify mutually supported applications.","_id":"6657019455ddd9002b624bd4"},{"term":"webhooks","definition":"HTTP-based callback function allows for lightweight, event-driven communication between two application programming interfaces (APIs). When an event, such as a new user registration or a completed purchase, happens in one application, that application sends an HTTP POST request to a specific URL (the webhook) along with relevant data. The receiving application, which has the webhook, processes this data and takes appropriate actions based on the event.","_id":"6657f154ca069c002bd8e14b"},{"term":"developer platform","definition":"Open platform for third-party developers to build apps and integrate external point-of-sale systems with Clover devices.","_id":"665856f0f4f292004bed1660"},{"term":"Release notes","definition":"Monthly updates about new features and updates across the Clover developer platform.","_id":"6658571d250efe0030376d3a"},{"term":"Bug fixes","definition":"Monthly updates on the latest bug fixes across the Clover developer platform.","_id":"66585726f46d7600517c38b4"},{"term":"API changelog","definition":"Monthly updates related to API changes.","_id":"66585736ab2c5b0057f78516"},{"term":"Announcements","definition":"Messages that are sent in the developer communications emails.","_id":"6658574f1f2ad700769fd4ca"},{"term":"API docs and SDK guides","definition":"Resources needed to work with the Clover app and integration platforms.","_id":"665857b5b5c13a006581ef42"},{"term":"Code and sample apps","definition":"Resources on GitHub to help get started with the Clover APIs.","_id":"66585809f0013f005829dfed"},{"term":"semi-integration","definition":"Semi-integration involves a third-party point of sale (POS) system using Clover for payment processing. In a native integration, your POS runs directly on Clover hardware as an app.","_id":"6659bd2d2f7dfe00117cc3f2"},{"term":"Android Payment API","definition":"Intent-based API used in applications running on Clover devices for executing payment transaction requests. It supports payment operations, including payments, preauthorizations, and payment reversals (void/refund), using Android Intent Builders.","_id":"665d3aad49f7e10014c6ec18"},{"term":"Clover Connector SDK","definition":"Provides an interface that allows external point of sale (POS) systems to access the same payment functions as PaymentConnector, such as sales and refunds. It also offers additional features like custom receipts and Android activities. The SDK is available for four platforms: Android, iOS, JavaScript, and .NET.","_id":"665d3ad3a40a010010ae9b1d"},{"term":"Payment Connector","definition":"Java-based interface that lets you build a point of sale (POS) directly on a Clover device. It provides all of the Clover features needed for your app to make a sale, issue a refund, and perform other payment functions.","_id":"665d3af204832a002afc719f"},{"term":"card on file","definition":"Card on file (COF) transactions are payments in which the cardholders have authorized merchants to store their credit or debit card information to use for future purchases or recurring payments.","_id":"665ff984f6928a0011b2597c"},{"term":"frictionless flow","definition":"For card-not-present (CNP) payments, frictionless flow refers to a seamless process where the financial institution (FI) or issuer can verify the legitimacy of a transaction without requiring additional input from the cardholder. This behind-the-scenes verification lets customers complete their purchases without any noticeable interruptions or authentication steps.","_id":"6660077fed8e620058cba957"},{"term":"challenge flow","definition":"For card-not-present (CNP) payments, challenge flow indicates that the financial institution (FI) or issuer requires more evidence to verify the legitimacy of the transaction. In the challenge flow, the customer must provide extra information to authenticate the payment, such as a password or a one-time code that the card issuer sends to their mobile device.","_id":"6660082bb0c450004a3d7cd3"},{"term":"Minimum SDK","definition":"The minSdk specifies the minimum SDK version your app supports. For example, if your minSdk is 26, your app will only run on devices with Android 8 (API level 26) or higher. The minSdk is defined in your app's build.gradle file.","_id":"6666dc0bda9518005ad0f2c4"},{"term":"Target SDK","definition":"The targetSdk is the SDK version your app targets. It should always be the same as the compileSdk. For instance, if your targetSdk is 30, your app is designed to work optimally on Android 11 (API level 30) or higher. The targetSdk is defined in your app's build.gradle file.","_id":"6666dc4a3ad9e6001902ee93"},{"term":"Clover Go reader","definition":"EMV-capable device that pairs with an Apple (iOS®) and Android smartphone or tablet. The reader allows iOS and Android mobile apps to accept swipe, NFC, or EMV transactions with no EMV certification required at the merchant's end. Clover Go reader accepts chip, dip, and contactless payments, including Tap-to-Pay on iPhone, Apple Pay®, Google Pay® and Samsung Pay®.","_id":"66694ec3f70d380056818491"},{"term":"reCAPTCHA","definition":"Completely Automated Public Turing test to tell Computers and Humans Apart. reCAPTCHA is a Google service that verifies a user is human and not a bot by presenting tests that are easy for humans but difficult for automated software.","_id":"666c33157d8b4a00100763cd"},{"term":"closeout","definition":"Process of closing your open batch of transactions and submitting it for clearing, settlement, and funding.","_id":"66b1e05f8cc1e80036f755f1"},{"term":"Idempotency Key","definition":"Unique identifier used to ensure that a particular operation is performed only once, even if the request is made multiple times. This is particularly useful in scenarios where network issues or client retries might cause the same request to be sent more than once.","_id":"66b1e081070411006f242a41"},{"term":"Card track data","definition":"Information encoded on a payment card's magnetic stripe or chip. The data is used to authorize and process transactions.","_id":"66b1e092d989a500309e106f"},{"term":"POS","definition":"Point of sale (POS) system enables businesses to accept customer payments and efficiently manage operations. The system consists of both hardware and software components. The software is often cloud-based, allowing access from anywhere. The hardware typically includes a register, barcode scanner, card reader, cash drawer, and receipt printer.","_id":"66b1e0d73facec0061549d33"},{"term":"Environment variables","definition":"A set of key-value pairs that a running process can access during runtime. These variables can be used to configure and adjust the behavior of the app or system, and they can vary between different execution environments.","_id":"66b1e0e7c9a0630026e33d8a"},{"term":"Device Manager","definition":"Android Studio tool for creating and managing an Android Virtual Device (AVD).","_id":"66b1e1012f4fbd0012bc9ec5"},{"term":"REST Pay Display API","definition":"API that lets point of sale (POS) applications accept payments on Clover Flex or Clover Mini devices. Your apps can connect to Clover devices using cloud or local network connections without needing an embedded software development kit (SDK).","_id":"66b1e1598ab3d40024a6fb42"},{"term":"Incremental authorization","definition":"Allows merchants to change the original authorization amount to ensure the customer's card can still cover the higher amount.","_id":"66b1e1691318ca0024ab4e71"},{"term":"Android SDK","definition":"SDK to build apps that run on Clover devices and publish your apps on the Clover App Market. It is also used for semi-integration with a Clover device, enabling a third-party point of sale (POS) system to use Clover for processing payments.","_id":"66b1e20a42125e00248c4a47"},{"term":"Ecommerce API","definition":"API to integrate Clover payment capabilities into your online or web-based applications. It provides endpoints for creating tokens, processing payments, and managing customer data. OAuth tokens are necessary for authentication and authorization.","_id":"66b1e216070411006f2430f7"},{"term":"REST API","definition":"API to build a browser-based integration that creates a secure connection to your website. It redirects a merchant from the Clover Merchant Dashboard to your website URL (link).","_id":"66b1e220501830000ff1fe30"},{"term":"Remote Pay","definition":"API that lets your point of sale (POS) system communicate with Clover payment devices. The Remote Pay SDK is used to semi-integrate a POS with a Clover device for card-present transactions. This allows merchants to process payments and perform operations through the cloud. The SDKs are available for different platforms, including Android and JavaScript.","_id":"66b1e2478171f6004bf55916"},{"term":"authenticator app","definition":"Mobile or desktop application that generates time-based or counter-based one-time passwords (OTPs) for secure two-factor authentication (2FA). You can download an authentication app from the relevant app store. Popular authenticator apps include Google Authenticator and Microsoft Authenticator.","_id":"66b1e2a2eb2473005274f428"},{"term":"QR code","definition":"Quick Response (QR) code. Type of two-dimensional barcode that stores data in a pattern of black and white squares. You can scan the QR code with a camera to quickly access information like URLs, contact details, or authentication keys. The QR code typically expires after a short period, usually around 5 minutes.","_id":"66b1e2d12ecf960059e5efed"},{"term":"Text code","definition":"Alphanumeric secret key that you enter manually into an authenticator app to generate a one-time password (OTP) for account verification. The text code does not expire, but the OTP generated from it is time-based and usually expires every 30 seconds.","_id":"66b1e2f761fda7001c880966"},{"term":"verification code","definition":"Time-based one-time password (OTP) generated after you scan a QR code or enter a text code in your authenticator app. You need to enter this 6-digit OTP to verify your identity when logging into the Global Developer Dashboard. The OTP usually expires every 30 seconds.","_id":"66b1e3324a8ed4000f0daec7"},{"term":"recovery codes","definition":"Alphanumeric backup verification codes generated when you add a new account to your authenticator app. Recovery codes let you access your account if you do not have your device.","_id":"66b1e3602a764500122160e0"},{"term":"Bearer token","definition":"Type of token used in the authorization header of an API request to authenticate the client making the request. It is typically included in the request header as follows: Authorization: Bearer \u003ctoken>. This token is a string that represents the user’s identity and permissions.","_id":"66b5d42a7b9c96003cfdd893"},{"term":"issuer","definition":"Financial institutions, such as a bank that issues a credit card to a consumer or business.","_id":"66cc08fa653916002083ca5e"},{"term":"payment processor","definition":"Technical intermediary, such as Fiserv or Clover, that securely handles transactions between a merchant and a customer by processing card or electronic payments.","_id":"66cc0bc88f93620042dd0995"},{"term":"OTP","definition":"Unique, temporary code used for a single login session or transaction. A one-time password (OTP) is generated after you scan a QR code in your authenticator app during account setup or use the authenticator. You need to enter the OTP to verify your identity when logging into the Global Developer Dashboard.","_id":"66cee8a5c5ffef0068e4d2e6"},{"term":"Ecommerce API key","definition":"Identifies the merchant who is tokenizing customers' cards. You can use the same static Ecommerce API key to tokenize multiple cards for that merchant. This is also known as the PAKMS key, as it is generated from the Public Access Key Management Service (PAKMS) using the [Ecommerce - PAKMS Service API](https://docs.clover.com/dev/reference/getapikey).","_id":"66d14c2122903b002598a48e"},{"term":"certificates","definition":"Certificates and profiles are essential for app development and distribution of the Apple Pay® service on a Clover Ecommerce integration. Certificates are digital documents that verify your identity as a developer. They are used to sign your apps and ensure they come from a trusted source.","_id":"66d5643fc8122b003172dd2b"},{"term":"payment gateway","definition":"Virtual equivalent of a physical credit and debit card reader. It transfers the data between the point of entry—either a terminal, website, or mobile device—to the payment processor to continue the payment lifecycle.","_id":"66e2bcaff0da2a006234a6ec"},{"term":"SCV","definition":"Security code value is a unique code used to validate and secure transactions for Clover native gift cards.","_id":"66e2bdb31e8238004781d0d9"},{"term":"hosted payment form","definition":"Secure way to accept ecommerce credit card payments without the need for a shopping cart. Clover hosts the form, so sensitive payment data does not pass through the merchant's system, reducing the PCI scope and minimizing merchant liability. You can implement payment forms using a standard template or customize it to fit the look and feel of the merchant's ecommerce website.","_id":"66e2bfa3053af00011eed401"},{"term":"non-native gift card","definition":"Gift cards managed through payment gateways other than Fiserv and do not use the Clover-integrated Gift Card Solution. May have a 4-8 digit foreign access code (FAC) for transactions and may not offer the same level of integration with the Clover POS system. While non-native gift cards can be used with Clover, they may require additional steps or configurations to process transactions.","_id":"66e7fe4fa9dfdf006733e303"},{"term":"FAC","definition":"Foreign access code value is used to process transactions for non-native gift cards on the Clover POS system.","_id":"66e800edfa09a8002580c72a"},{"term":"native gift card","definition":"Gift cards that use the Clover-integrated Gift Card Solution, managed through the Fiserv payment gateway. May have a 4-8 digit security card value (SCV). These non-expiring cards are fully integrated into the Clover POS system, allowing for seamless transactions and management.","_id":"66ea5afc09450f003cb42c5b"},{"term":"global developer platform","definition":"Provides an intuitive and seamless experience to create apps and integrations for different regions. With a single developer account, you can access both sandbox and production environments and switch between them effortlessly.","_id":"66f4d1d2cb8a1b005b10dc6c"},{"term":"promotional code","definition":"Unique values, usually alphanumeric, associated with a virtual gift card and sent by email, text, or through an app. The promotional or promo code is used to activate and redeem the virtual gift card.","_id":"66f4f3b6f110bb0025a0a546"},{"term":"denominated gift card","definition":"Cards with a specific value assigned to them at the time of purchase. For example, a gift card might be worth $25, $50, or $100. When a customer buys a denominated gift card, they know exactly how much value is on the card.","_id":"66f4f3ea859e85000f9ed42f"},{"term":"non-denominated gift card","definition":"Cards without a preset value at the time of purchase. The value is determined at the time of activation. The purchaser or recipient can choose the amount, depending on the terms set by the merchant.","_id":"66f4f4046297ad0045acd3d6"},{"term":"physical gift card","definition":"Tangible gift card that you can load and reload with an amount and use as a cash equivalent to make in-store and online purchases.","_id":"66f4f7abaf58cc002b79b897"},{"term":"Client ID","definition":"Uniquely identifies your app on the Clover App Market. This ID confirms that your app is participating in the OAuth 2.0 flow. Your client ID is the App ID value in your app's Settings page on the Developer Dashboard.\nUsage: type \u003c\u003cglossary:client ID>> in your documentation","_id":"66f4facbbbd52700616a927b"},{"term":"multi-factor authentication","definition":"Security process that requires two different forms of identification to verify a user’s identity, typically combining something you know, such as a password, with something you have, such as a mobile device.","_id":"66f4fafe5a175000440a84ad"},{"term":"multi-lock","definition":"Set aside and lock a specific amount from the available balance on a gift card for a specified time period. Multiple locks can be active simultaneously as long as there is a balance. The locked amount automatically unlocks when the specified time expires or upon request to unlock and redeem the amount.","_id":"66f4fb8c5a175000440a8522"},{"term":"cash out","definition":"Process of removing the remaining balance from a gift card, bringing the account balance to zero (0). The customer may receive the remaining balance in cash, or choose to cash out and deactivate the card or close the gift card account.","_id":"66f4fbe75a175000440a8626"},{"term":"virtual gift card","definition":"Unique code or number delivered to a recipient by email, text, or through an app. The virtual card number or promotional code is used for making purchases at online or brick-and-mortar retailers.","_id":"66f533e214205c0013756446"},{"term":"gift card","definition":"A gift card is a prepaid payment card used to make purchases at participating restaurants, stores, or online retailers.","_id":"67035f89dfe5db0036fe25c0"},{"term":"tokenization","definition":"Security measure that replaces a user's payment details, such as credit card numbers, expiration dates, and card verification values or codes, with non-specific IDs called tokens. Tokens are randomly generated when a customer provides their payment information at the point of sale (POS) or on an ecommerce website.","_id":"6703600f788acb004914bf49"},{"term":"split tender payment","definition":"Process of dividing or splitting a single transaction into multiple payment methods. For example, a customer can pay part of their bill with cash and the remaining balance with a credit card. This feature is useful when customers want to use more than one payment method to complete a purchase.","_id":"6704a45f98ee1b001138b598"},{"term":"Alternate Launch Path","definition":"Link (URL) or subpath for your app that you set on the Edit REST Configuration page for web apps. When a merchant accesses your app without installing it, the app redirects the merchant to this Alternate Launch Path, which then directs them to the Clover App Market to initiate the v2/OAuth flow. This Alternate Launch Path URL is required for the `/oauth/v2/authorize` flow, as it uses expiring tokens to authenticate with APIs, ensuring the merchant is properly authenticated and connected to your app.","_id":"670ca43ff504a7006e24bf8f"},{"term":"Site URL","definition":"Link (URL) for your app that you set on the Edit REST Configuration page for web apps. After a merchant installs your app and launches it from the Merchant Dashboard, they are redirected to the Site URL. The Clover server sends authenticated merchants to the Site URL through the `/oauth/authorize` flow, where they can log in or select their merchant account.","_id":"670cea1f32a444001e3c6c28"},{"term":"Redirect URI","definition":"Link (URL) that an app uses to redirect users after authentication using the OAuth flow. The `redirect_uri` parameter is used to specify a custom post-authorization landing page. This URL must be a subpath of the set Site URL for the app.","_id":"670de4f72e9c8d0054159324"},{"term":"code verifier","definition":"Cryptographically random string that a low-trust app needs to generate at the beginning of the authorization process. It is used to create a code challenge and is sent to the authorization server to verify the authorization request.","_id":"6710ce4aac89460069e91d4d"},{"term":"code challenge","definition":"Base64-URL-encoded string derived from the code verifier using a transformation method such as SHA-256. Code challenge is sent to the authorization server during the initial authorization request. It ensures that the app that initiated the request is the same app that is completing the request.","_id":"6710d1df81cc1d0010747535"},{"term":"Proof Key for Code Exchange","definition":"Extension to the OAuth 2.0 authorization code flow designed to enhance security, especially for public clients like mobile and single-page applications that cannot securely store the Client Secret. PKCE ensures that even if an authorization code is intercepted, it cannot be exchanged for tokens without the original `code_verifier`.","_id":"6710d771f898df00102583cc"},{"term":"MOTO","definition":"MOTO (Mail Order/Telephone Order) transactions are merchant-initiated, card-not-present (CNP) transactions in which customers provide their order and payment details by regular mail (not email), fax, or telephone. In these transactions, card information is captured, and payment is processed with the customer’s consent, even though the card is not physically present.","_id":"6719dd13e584590033ba710a"},{"term":"TransArmor token","definition":"Provides an additional layer of security to protect cardholder data during transactions and reduce the regeneration of payment tokens.","_id":"671a081299f628005be483be"},{"term":"high-trust app","definition":"Securely stores and uses the Client Secret (`app_secret`) and employs the standard authorization code flow to generate expiring authentication tokens.","_id":"6732ec60a401bd0010b56e4f"},{"term":"low-trust app","definition":"Mobile or single-page apps that cannot securely store the Client Secret (`app_secret`) and uses the authorization code flow with Proof Key for Code Exchange (PKCE) to enhance security during token acquisition.","_id":"6732ec9383f7fa0076fa09c1"},{"term":"Revenu Québec","definition":"Agency of the government of the Province of Quebec, Canada. It collects taxes to fund public services, ensures that all citizens pay their fair share, and administers programs.","_id":"673d5d38d27f0b00199187cb"},{"term":"Developer Dashboard","definition":"All new apps for merchants in North America, Europe, and Latin America, and Asia Pacific are created on the Global Developer Dashboard.","_id":"68b817c046898ec8f853f343"}],"homepage_url":"docs.clover.com","created_at":null,"updated_at":null,"id":"5b05c1655f9a0d00039a8ae4","name":"Clover Platform Docs","parent":null,"redirects":[],"sitemap":"disabled","llms_txt":"disabled","subdomain":"clover-platform","suggested_edits":"disabled","notification_settings":{"project_topic_key":null},"uri":"/projects/me","variable_defaults":[{"name":"BearerAuth","source":"security","type":"http","id":"62e9b1eea177a30276e94d80"},{"name":"bearerAuth","source":"security","type":"http","id":"62ebf0918a8c490783ba3e62"},{"name":"","default":"","source":"","type":"","id":"631109ebe868a2002148959f"},{"name":"OAuth2","source":"security","type":"oauth2","id":"63fdd5805f536e0d5a8e0335"},{"name":"access_token","source":"security","type":"apiKey","id":"6452212ec5886b14a0588915"},{"name":"protocol","default":"https","source":"server","type":"","id":"64d3fc6b8dba8a005f24000b"},{"name":"environment","default":"sandbox.dev.clover.com","source":"server","type":"","id":"64d3fc6b8dba8a005f24000a"},{"name":"sessionToken","source":"security","type":"apiKey","id":"65080d1adfa92402085ec8a6"},{"name":"X-Clover-Auth-Token","source":"security","type":"apiKey","id":"65080d1adfa92402085ec8a5"},{"name":"internalSession","source":"security","type":"apiKey","id":"65080d1adfa92402085ec8a4"},{"name":"oauth2","source":"security","type":"oauth2","id":"66600d4d0c47bb0012000998"},{"name":"Authorization","source":"security","type":"apiKey","id":"695423831925250441ae7caf"},{"name":"X-Session-Token","source":"security","type":"apiKey","id":"695423831925250441ae7cb0"},{"name":"X-Device-Token","source":"security","type":"apiKey","id":"695423831925250441ae7cb1"},{"name":"X-Internal-Session-Token","source":"security","type":"apiKey","id":"695423831925250441ae7cb2"},{"name":"X-Clover-Session-Token","source":"security","type":"apiKey","id":"695555cdf5c1b863f9a24041"},{"name":"X-Clover-Device-Token","source":"security","type":"apiKey","id":"695555cdf5c1b863f9a24042"},{"name":"X-Clover-Internal-Session-Token","source":"security","type":"apiKey","id":"695555cdf5c1b863f9a24043"}],"webhooks":[],"api_designer":{"allow_editing":"enabled"},"custom_login":{"jwt_expiration_time":0,"login_url":null,"logout_url":null},"features":{"mdx":"disabled"},"onboarding_completed":{"api":true,"appearance":true,"documentation":true,"domain":true,"jwt":true,"logs":true,"metricsSDK":false,"ai_ready":false},"pages":{"not_found":null,"default_visibility":"public"},"owner":{"id":null,"email":null,"name":null},"privacy":{"openapi":"admin","password":null,"view":"public"},"refactored":{"status":"enabled","migrated":"successful"},"seo":{"overwrite_title_tag":"disabled"},"metrics":{"monthly_purchase_limit":0,"monthly_limit":0},"feature_rules":{"merge":{"requirements":[],"allow_override":[]}},"god_mode":{"is_active":null,"flags":{},"admin_limit_override":null,"notes":null,"children_limit":null,"owlbot":{"enabled":null,"new_experience":null,"v2":null},"salesforce":{"account_id":null},"enterprise_notes":{"account_name":null,"owner_csm":null,"owner_sales":null,"status":null,"superhub_migration_eligibility":null},"mdxish_migration_status":{"migrated_at":null,"migrated_from":null,"reverted_at":null,"source":null}},"mcp":{"state":"disabled","custom_tools":[],"disabled_routes":[],"disabled_tools":[],"has_password":false,"oauth_pages":{"auth_url":null,"success_url":null,"error_url":null},"oauth_credentials":{},"privacy":{"password":null}},"plan":{"type":"enterprise","override":null,"stripe_subscription_id":null,"grace_period":{"enabled":false,"end_date":null},"trial":{"active":false,"enabled":null,"expired":false,"end_date":"2024-08-15T16:40:46.201Z"}},"reference":{"api_sdk_snippets":"enabled","experimental_performance_mode":"disabled","defaults":"always_use","fill_optional_objects_on_expand":"enabled","json_editor":"disabled","method_badge_style":"classic","oauth_flows":"disabled","oneof_layout":"dropdown","request_history":"enabled","request_examples":"collapsed","response_examples":"collapsed","response_schemas":"collapsed","show_method_in_sidebar":"enabled","sdk_snippets":{"external":"disabled"}},"ai":{"discovery":{"enabled":true,"content_signal":{"ai_train":false,"search":false,"ai_input":false},"link_headers":true,"markdown_negotiation":true,"agent_hint_banner":true,"api_catalog":true,"agent_skills_index":true,"mcp_server_card":true,"webmcp":true,"oauth":{"type":"none","issuer_url":null,"authorization_servers":[],"resource_identifier":null,"scopes_supported":[]}},"chat":{"models":[],"knowledge":{"custom_knowledge":null,"use_project_knowledge":true}},"owlbot":{"enabled":false,"new_experience":false,"v2":false,"is_paying":false,"trial":{"is_paying":false}}},"health_check":{"provider":"statuspage","settings":{"manual":{"status":"down","url":null},"statuspage":{"id":"3s40xjwbpcq5"}}},"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,"is_connected":false},"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}}},"permissions":{"appearance":{"private_label":"enabled","custom_code":{"css":"enabled","html":"enabled","js":"enabled"}},"branches":{"merge":{"admin":true,"editor":false},"approve":{"admin":true,"editor":false}}},"appearance":{"brand":{"primary_color":"#228800","link_color":null,"link_color_dark":null,"theme":"light"},"changelog":{"layout":"continuous","show_author":false,"show_exact_date":false},"layout":{"full_width":"disabled","style":"classic"},"markdown":{"callouts":{"icon_font":"emojis"}},"table_of_contents":"enabled","whats_next_label":"Related topics","landing_page":{"sections":[{"type":"text","alignment":"left","title":"Assist merchants with their business","text":"Create an Android app or web app that uses Clover's REST API to provide merchants with help to run their business.","html":null,"page_type":null,"side":null,"media_type":null,"media_html":null,"media_image":null,"media_code":null,"group0":null,"group1":null,"group2":null},{"type":"text-media","alignment":"left","title":"Partner Integration","text":"Clover hardware is world class. Use it to create a custom, end-to-end payment and POS solution that showcases your brand.\n\nSee [clover connect](https://integrate.clover.com/) for more information.","html":null,"page_type":null,"side":"left","media_type":"image","media_html":null,"media_image":"https://files.readme.io/cd3c926-clover_partner_solutions.png","media_code":null,"group0":null,"group1":null,"group2":null},{"type":"text-media","alignment":"left","title":"","text":"Elevate your application with efficient integrations, support — and now even devices to complete your platform.\n\nSee [clover connect](https://integrate.clover.com/) to learn more.","html":null,"page_type":null,"side":"left","media_type":"image","media_html":null,"media_image":"https://files.readme.io/f2b3e2d-clover_connect.png","media_code":null,"group0":null,"group1":null,"group2":null},{"type":"text","alignment":"left","title":"Integrate with Clover's payments platform","text":"If your app needs to process payments, choose one of the following options as your starting point.","html":null,"page_type":null,"side":null,"media_type":null,"media_html":null,"media_image":null,"media_code":null,"group0":null,"group1":null,"group2":null},{"type":"text-media","alignment":"left","title":"First steps","text":"If your app just needs to take a payment, this tutorial will show you how.\nhttps://youtu.be/H5um4biZbaw\n\nThe REST Pay API allows developers familiar with the Ecommerce API to quickly add an in-person payment option to their app.\n\n* REST Pay Display provides a simple bridge between your point-of-sale system and a Clover Flex or Clover Mini. \n* A REST integration is the quickest way to begin taking payments on a Clover device. \n* Any POS application capable of making HTTP requests can use REST Pay to take card-present payments. \n* A retailer can take any type of standard card-present payments after your POS app is integrated with REST Pay.","html":null,"page_type":null,"side":"left","media_type":"image","media_html":null,"media_image":"https://files.readme.io/663c6d7-REST_Pay_API.png","media_code":null,"group0":null,"group1":null,"group2":null},{"type":"text-media","alignment":"left","title":"Semi-integration","text":"Your POS is already used and loved by your merchants, and you want to add a Clover device to make the customer experience great too.\n\nCheck out [Semi-integration basics](docs/clover-development-basics-semi) to learn more.","html":null,"page_type":null,"side":"left","media_type":"image","media_html":null,"media_image":"https://files.readme.io/a0968e7-semi_integration.png","media_code":null,"group0":null,"group1":null,"group2":null},{"type":"text-media","alignment":"left","title":"Full integration","text":"Use Clover hardware to build a fully featured payments app with Android.\n\nCheck out [Build with Android](https://docs.clover.com/docs/clover-development-basics-android) to learn more.","html":null,"page_type":null,"side":"left","media_type":"image","media_html":null,"media_image":"https://files.readme.io/2ef6aa5-clover-full_integration.png","media_code":null,"group0":null,"group1":null,"group2":null},{"type":"text-media","alignment":"left","title":"Build","text":"Use the REST API to convert everyday business data into insights merchants can use.","html":null,"page_type":null,"side":"left","media_type":"image","media_html":null,"media_image":"https://files.readme.io/f908719-Clover_REST_API.png","media_code":null,"group0":null,"group1":null,"group2":null},{"type":"links","alignment":"left","title":null,"text":null,"html":null,"page_type":null,"side":null,"media_type":null,"media_html":null,"media_image":null,"media_code":null,"group0":null,"group1":null,"group2":null},{"type":"docs","alignment":"left","title":null,"text":null,"html":null,"page_type":"Documentation","side":null,"media_type":null,"media_html":null,"media_image":null,"media_code":null,"group0":null,"group1":null,"group2":null}],"promo":{"title":"Clover Platform Documentation","text":"Welcome to the Clover Platform developer hub. What can we help you build?","content_type":"search","html":null,"button_primary":"get-started","button_secondary":"docs"}},"footer":{"readme_logo":"hide"},"logo":{"size":"default","dark_mode":{"uri":null,"url":"https://files.readme.io/d3d63d72e208436c6125dfaedbf9f6c45842d353540da8cf557bc1c37ca9c275-white-logo.png","name":"d3d63d72e208436c6125dfaedbf9f6c45842d353540da8cf557bc1c37ca9c275-white-logo.png","width":418,"height":48,"color":"#ffffff","links":{"original_url":null}},"main":{"uri":"/images/67f01b49e9fe6e006406bce3","url":"https://files.readme.io/4e2d7ae48c03777bb9262ad99f875e762a1ed10d75880cf9d7840343485c1ffa-small-clover-dev-docs-logo.png","name":"4e2d7ae48c03777bb9262ad99f875e762a1ed10d75880cf9d7840343485c1ffa-small-clover-dev-docs-logo.png","width":418,"height":48,"color":"#5c5c5c","links":{"original_url":"https://files.readme.io/c503c513266ab362750b99680730baf0f8e32035369aec33ddae8cfab6f3f9fb-clover-dev-docs-logo.png"}},"favicon":{"uri":null,"url":"https://files.readme.io/6f06232-clover-icon1.svg","name":"clover-icon(1).svg","width":22,"height":22,"color":"#228800","links":{"original_url":null}}},"typography":{"heading_font":null,"body_font":null,"code_font":null,"spacing":null,"custom_heading":{"url":null,"filename":null,"format":null},"custom_code":{"url":null,"filename":null,"format":null},"custom_body":{"regular":{"url":null,"filename":null,"format":null},"medium":{"url":null,"filename":null,"format":null},"semibold":{"url":null,"filename":null,"format":null}}},"ai":{"dropdown":"enabled","options":{"ask_ai":"disabled","chatgpt":"disabled","claude":"disabled","clipboard":"enabled","view_as_markdown":"enabled","mcp":{"command":"enabled","config":"enabled","cursor":"enabled","vscode":"enabled"}}},"custom_code":{"css":"/* =========================================================\n Font face declarations\n ========================================================= */\n\n@font-face {\n font-display: swap;\n font-family: Graphik;\n font-stretch: normal;\n font-style: normal;\n font-weight: 400;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Regular-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Graphik-Light;\n font-stretch: normal;\n font-style: normal;\n font-weight: 300;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Light-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Graphik-Medium;\n font-stretch: normal;\n font-style: normal;\n font-weight: 500;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Medium-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Graphik-Semibold;\n font-stretch: normal;\n font-style: normal;\n font-weight: 600;\n src: url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.eot);\n src:\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.eot?#iefix) format(\"embedded-opentype\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/graphik/Graphik-Semibold-Cy-Gr-Web.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 400;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-Regular.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-Regular.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 300;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-Light.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-Light.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 600;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-SemiBold.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-SemiBold.woff) format(\"woff\");\n}\n\n@font-face {\n font-display: swap;\n font-family: Altform;\n font-stretch: normal;\n font-style: normal;\n font-weight: 700;\n src:\n url(https://cloverstatic.com/content/fonts/altform/Altform-Bold.woff2) format(\"woff2\"),\n url(https://cloverstatic.com/content/fonts/altform/Altform-Bold.woff) format(\"woff\");\n}\n\n/* =========================================================\n Global theme variables\n Replaced invalid `style attribute` block with :root vars\n ========================================================= */\n\n:root {\n --color-primary: #228800;\n --color-primary-inverse: #fff;\n --color-primary-darken-20: #004400;\n --color-link-primary: #228800;\n --color-link-primary-darken-20: #004400;\n --color-link-background: #ddffdd;\n --color-link-text: #fff;\n\n --Sidebar-link: #5a5a5a;\n --Sidebar-link-background: rgba(34, 136, 0, 0.03);\n}\n\n/* =========================================================\n ReadMe menu updates (Guides only)\n ========================================================= */\n\n.rm-Guides .rm-Sidebar-heading {\n cursor: pointer;\n position: relative;\n text-transform: none !important;\n font-weight: 500 !important;\n margin-block-start: 0.4em;\n margin-block-end: 0.4em;\n font-family: var(--font-family-title);\n color: #040;\n font-size: 14px;\n}\n\n.rm-Guides .rm-Sidebar-heading.section-expanded::after {\n transform: rotate(90deg);\n}\n\n/* fixed issue with drop down arrow on right vertical positioning */\n.rm-Guides .rm-Sidebar-heading::after {\n content: \"\\203A\";\n transition: transform 0.2s;\n position: absolute;\n bottom: -6px;\n margin-left: 10px;\n color: #280;\n font-size: 26px;\n opacity: 1;\n}\n\n.rm-Guides .rm-Sidebar-section > .rm-Sidebar-list {\n display: none !important;\n}\n\n.rm-Guides .rm-Sidebar-list.section-list-expanded {\n display: flex !important;\n}\n\n.reference-redesign.Nav3C5f8FcjkaHj.rm-Sidebar_guides .rm-Sidebar {\n padding-top: 20px;\n margin-right: 10px;\n}\n\n/* =========================================================\n Core project typography + layout variables\n ========================================================= */\n\n.App {\n --font-family: Graphik, sans-serif;\n --font-family-title: Altform, sans-serif;\n --font-size: 16px;\n --font-weight: 400;\n}\n\np,\nli {\n font-size: 16px;\n font-weight: 400;\n}\n\n.App .rm-LandingPage,\n.App .rm-SuggestedEdits,\n.App .rm-SuggestionDiff,\n.App .rm-Guides,\n.App .rm-Recipes,\n.App .rm-Recipes-modal,\n.App .rm-ReferenceMain,\n.App .rm-Changelog,\n.App .rm-Discuss,\n.App .rm-CustomPage {\n --markdown-font: var(--font-family);\n --markdown-font-size: 15px;\n --markdown-line-height: 1.5;\n --markdown-title-font: var(--font-family-title);\n}\n\n/* top nav buttons */\n.Button {\n font-family: var(--font-family-title);\n}\n\n/* make font readable -- up from too tiny @14px */\n.field-description,\n.markdown-body {\n font-size: var(--markdown-font-size, 16px);\n font-family: var(--font-family);\n font-weight: 400;\n}\n\na {\n color: #280;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/* =========================================================\n TOC styles\n Refactored from invalid nested syntax into valid CSS\n ========================================================= */\n\n.content-toc,\n.content-toc a {\n font-size: 14px;\n}\n\n.content-toc .tocHeader {\n font-size: 12px;\n font-weight: 700;\n}\n\n/* Fix issue with the API Ref method buttons */\n.APIMethod_fixedWidth {\n padding-left: 0;\n padding-right: 0;\n width: 50px;\n}\n\n/* =========================================================\n Tables / forms / API reference\n ========================================================= */\n\n/* Fix for ordered list padding and text color in tables - DC 09-24-2018 */\n.magic-block-parameters ol {\n color: #747c84;\n padding-left: 10px;\n}\n\n/* Fix for unordered list text color in tables - DC 09-24-2018 */\n.magic-block-parameters ul {\n color: #747c84;\n}\n\n/* API reference text box color fix (DS-279) - DC 02-27-2019 */\nform.rjsf input.form-control {\n border-top-color: #4c555a !important;\n border-bottom-color: #4c555a !important;\n border-left-color: #4c555a !important;\n border-right-color: #4c555a !important;\n}\n\n/* Modify the percentage to change the width of the response/model column\n on the API reference page. If enabled, be sure to also enable the\n following style for hub-reference-results-slider. */\n#hub-reference .hub-reference .hub-reference-section .hub-reference-right {\n width: 40% !important;\n}\n\n/* Modifies the bit above the API response object to keep everything purdy.\n Keep it at 200%. */\n#hub-reference .hub-api .hub-reference-right.hub-reference-results .hub-reference-results-slider,\n#hub-reference .hub-api .hub-reference-results .hub-reference-results-slider {\n width: 200% !important;\n}\n\n.mfp-img {\n background: #ffffff;\n}\n\n/* =========================================================\n Color tweaks / legacy hub selectors\n ========================================================= */\n\nsection#hub-content #content-container section.content-toc a {\n color: #5d5d5d;\n}\n\nnav#hub-sidebar ul a {\n color: #280;\n font-weight: 500;\n font-size: 15px;\n font-family: var(--font-family);\n}\n\nheader#hub-header #header-top #header-nav-left li a,\nheader#hub-header #header-top #header-nav-right li a {\n color: #5d5d5d;\n}\n\n/* Normalize code markup in headings DS-640 */\nh1 code,\nh2 code,\nh3 code,\nh4 code,\nh5 code,\nh6 code {\n background: rgba(96, 105, 113, 0.1);\n padding: 3px 5px;\n border-radius: 3px;\n font-family: var(--font-family);\n font-size: inherit;\n color: #5d5d5d;\n font-style: normal;\n}\n\n/* text alignment fix for flag SVGs */\nimg.flag {\n vertical-align: text-bottom;\n}\n\n/* override code style in right mini ToC */\n.toc-list code {\n font-family: inherit;\n background: inherit;\n padding: 0;\n border-radius: inherit;\n font-size: inherit;\n color: inherit;\n}\n\n/* =========================================================\n React app typography / sidebar\n ========================================================= */\n\nhtml.useReactApp .markdown-body {\n --markdown-font: Graphik, sans-serif;\n --color: #5d5d5d;\n}\n\nhtml.useReactApp .rm-Article header {\n color: #280;\n font-family: var(--font-family-title);\n}\n\nhtml.useReactApp ul.toc-list {\n color: var(--color-text-muted);\n}\n\n/* attempt to improve readability (size, font, contrast) of side nav and body */\nhtml.useReactApp .rm-Sidebar-link {\n color: #280 !important;\n font-family: Graphik, sans-serif;\n font-size: 15px;\n}\n\nhtml.useReactApp .rm-Sidebar-link:hover {\n background-color: var(--color-link-background) !important;\n color: #040 !important;\n}\n\n.reference-redesign .Sidebar-link-iconnjiqEiZlPn0W {\n /* icon in lower level left nav */\n opacity: 0.9 !important;\n}\n\nhtml.Sidebar-headingTRQyOa2pk0gh {\n font-family: var(--font-family-title);\n font-size: 15px;\n font-weight: var(--font-weight-bold) !important;\n margin: 2px 0;\n padding-left: 15px;\n text-transform: uppercase;\n}\n\n.reference-redesign .Sidebar-listWrapper6Q9_yUrG906C + .Sidebar-listWrapper6Q9_yUrG906C {\n margin-top: 10px;\n}\n\n/* =========================================================\n Recipes\n ========================================================= */\n\n.TutorialTile1EmZZwscc8UV {\n background: var(--gray90) !important;\n border: 3px solid var(--green40) !important;\n min-width: 300px !important;\n align: center !important;\n --TutorialTile-text-color: var(--color-primary) !important;\n}\n\n.TutorialTile-Body1X3Rmz9bMZKI {\n padding: 20px !important;\n}\n\n.TutorialTile-Body-Text-TitleOyQYvfYa_PEo {\n color: var(--TutorialTile-text-color) !important;\n font-size: var(--markdown-title-size, 1.25em) !important;\n font-weight: var(--markdown-title-weight, 600) !important;\n line-height: 1.35 !important;\n}\n\n.TutorialTile-Body-Text-Action1lbXk8Bdpeol {\n color: var(--TutorialTile-link-color);\n font-size: 13px !important;\n}\n\n.TutorialTile1EmZZwscc8UV:hover {\n background: var(--butter) !important;\n}\n\n/* =========================================================\n Sidebar indent tweaks\n ========================================================= */\n\n.Sidebar-item23D-2Kd61_k3 {\n margin-left: 2px;\n}\n\n/*\n.reference-redesign .Sidebar-link-buttonWrapper3hnFHNku8_BJ {\n padding: 0 3px 0 12px;\n}\n*/\n\n.reference-redesign .Sidebar-link-textLuTE1ySm4Kqn {\n align-items: baseline;\n}\n\n/* =========================================================\n Callouts\n ========================================================= */\n\n/* Info note */\n.callout_info h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n/* Warn note */\n.callout_warn h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n/* OK note */\n.callout_okay h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n/* Error note */\n.callout_error h2 {\n color: #000 !important;\n font-weight: 600;\n font-family: var(--font-family-title);\n}\n\n.callout.callout .callout-heading {\n font-weight: 600 !important;\n font-family: var(--font-family-title);\n}\n\n/* Enforce Callout heading size and weight */\n.callout-heading h2,\n.callout-heading p {\n font-size: 1em !important;\n font-weight: 600 !important;\n}\n\n/* =========================================================\n Pill icons for region and environment\n Updated + hardened for more consistent rendering\n ========================================================= */\n\n/* \"container-top\" is for the first-appearing block on the page.\n Typically reserved for the Menu option when it appears flush with the right-side TOC. */\n.container-top {\n position: relative;\n top: -20px;\n margin-bottom: -15px;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0;\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n}\n\n/* container-reg is for the region icons, defined singularly and in sets.\n removed margin-top and added container-env and related env styles (cd, May 16) */\n.container-reg,\n.container-env {\n position: relative;\n display: inline-flex;\n align-items: center;\n min-width: auto;\n width: fit-content;\n max-width: 100%;\n text-align: left;\n overflow: visible;\n margin-top: 5px;\n margin-bottom: -5px;\n box-sizing: border-box;\n}\n\n/* Pill format - general (both reg and env) */\n.pill-reg,\n.pill-env {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: 5px;\n padding: 0 10px;\n min-height: 1.8rem;\n border-radius: 10px;\n overflow: visible;\n box-sizing: border-box;\n white-space: nowrap;\n}\n\n/* Pill format - REG changed margin top from 3px to .5px 7/10/2026, cd */\n.pill-reg {\n background: #44bb44;\n border: 0.5px solid #44bb44;\n margin-top: 0.5px;\n margin-bottom: 1px;\n}\n\n/* Pill format - ENV */\n.pill-env {\n background: #2e8bc9;\n border: 0.5px solid #2e8bc9;\n margin-top: 0.5px;\n margin-bottom: 0.5px;\n}\n\n/* Text format inside REG / ENV pills */\n.pill-reg .label-reg,\n.pill-reg__addon .label-reg,\n.pill-env .label-env {\n display: block;\n margin: 0;\n padding: 5px 0;\n font-style: normal;\n font-weight: normal;\n font-size: 12px;\n line-height: 1.2;\n color: #fff;\n vertical-align: middle;\n white-space: nowrap;\n}\n\n/* Extra hardening so pills still render cleanly in varying wrappers */\n.rdmd-html .container-top,\n.rdmd-html .container-reg,\n.rdmd-html .container-env,\n.rdmd-html .pill-reg,\n.rdmd-html .pill-env,\n.rdmd-html .label-reg,\n.rdmd-html .label-env {\n box-sizing: border-box;\n}\n\n/* =========================================================\n Navigation boxes\n (like on Ecommerce Integration Types page)\n ========================================================= */\n\n.navbox-wrapper {\n width: 90%;\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n}\n\n.navbox-box {\n flex: 1 1 calc(50% - 10px);\n min-height: 150px;\n text-align: left;\n margin-bottom: 4px;\n overflow: hidden;\n border: 1px solid #d8d8d8;\n padding: 10pt;\n box-sizing: border-box;\n transition: box-shadow 0.3s ease;\n}\n\n.navbox-box:hover {\n box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.4);\n}\n\nh2.g {\n font-size: 17px;\n color: #228800;\n margin: 2px 0 8px 0;\n}\n\nh2.w {\n font-size: 20px;\n color: #fff;\n margin: 2px 0 8px 0;\n}\n\np.small-text {\n font-size: 15px;\n color: #5a5a5a;\n}\n\n.navbox-btn {\n font-family: Altform, sans-serif;\n border: none;\n background-color: inherit;\n font-size: 15px;\n color: #228800;\n text-align: left;\n cursor: pointer;\n display: block;\n margin-bottom: 4px;\n}\n\n.navbox-btn:hover {\n color: #5d5d5d;\n}\n\n.navbox-btn a {\n text-decoration: none;\n color: inherit;\n}\n\n.navbox-btn::before {\n content: \"➔ \";\n color: #228800;\n}\n\n/* Responsive styles */\n@media (max-width: 1200px) {\n .navbox-box {\n flex: 1 1 calc(50% - 10px);\n }\n}\n\n@media (max-width: 768px) {\n .navbox-box {\n flex: 1 1 calc(100% - 10px);\n }\n}\n\n@media (max-width: 480px) {\n .navbox-box {\n flex: 1 1 100%;\n }\n}\n\n/* =========================================================\n Flip-card boxes\n ========================================================= */\n\n.flip-card-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 10px;\n max-width: 100%;\n}\n\n.flip-card {\n flex: 1 1 calc(50% - 10px);\n max-width: 300px;\n height: 300px;\n perspective: 1000px;\n box-sizing: border-box;\n}\n\n.flip-card-inner {\n position: relative;\n width: 100%;\n height: 100%;\n transition: transform 0.6s, box-shadow 0.3s;\n transform-style: preserve-3d;\n cursor: pointer;\n}\n\n.flip-card:hover .flip-card-inner {\n transform: rotateY(180deg);\n box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.3);\n}\n\n.flip-card-front,\n.flip-card-back {\n position: absolute;\n width: 100%;\n height: 100%;\n backface-visibility: hidden;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 10px;\n box-sizing: border-box;\n font-family: Altform, sans-serif;\n overflow-wrap: break-word;\n word-break: break-word;\n}\n\n.flip-card-front {\n color: #fff;\n font-size: 18px;\n font-weight: 500;\n text-align: center;\n}\n\n.front-green {\n background-color: #280;\n}\n\n.front-darkgreen {\n background-color: #040;\n}\n\n.flip-card-back {\n background-color: white;\n color: #5d5d5d;\n font-size: 16px;\n border: 2px solid #d5d5d5;\n transform: rotateY(180deg);\n text-align: left;\n}\n\n.btn {\n font-family: Altform, sans-serif;\n border: none;\n background-color: inherit;\n font-size: 16px;\n color: #228800;\n text-align: right;\n cursor: pointer;\n display: block;\n margin-top: 10px;\n align-self: flex-end;\n}\n\n.btn:hover {\n color: #5d5d5d;\n}\n\n.btn a {\n text-decoration: none;\n color: inherit;\n}\n\n.btn::before {\n content: \"➔ \";\n color: #228800;\n}\n\n@media (max-width: 768px) {\n .flip-card {\n flex: 1 1 100%;\n max-width: 100%;\n }\n}\n\n@media (max-width: 480px) {\n .flip-card-front,\n .flip-card-back {\n font-size: 12px;\n padding: 2px;\n }\n\n .btn {\n font-size: 12px;\n }\n}\n/* Style classes for reviewer comments for use in DRAFTs only \n/* Use in paragraphs or span tags like \u003cspan class=\"reviewer\">text\u003c/span>\n/* \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t*/\n\n.reviewer { \ncolor: red;\n} \n.highlight { \nbackground-color: #FFFFED;\n /*(light-yellow)*/\n}\n.strike {\n color: red;\n text-decoration: line-through;\n}\n\n/* * * * * * * * * * * * * * * * * * * * */\n/* The remainder of this file is omitted */\n/* * * * * * * * * * * * * * * * * * * * */\n/*\n/*\n/* root color scheme */\n/* Change note: --color-border-default was (--green50); changed to (--gray80) */\n/* 10/29/2024: hid all project-level style changes. See enterprise level for details. */\n/*\n:root {\n --color-bg-page: var(--white);\n --color-bg-page-rgb: var(--white-rgb);\n --color-text-default: var(--gray20);\n --color-text-muted: var(--gray30);\n --color-text-minimum: var(--gray40);\n --color-text-minimum-hover: var(--gray30);\n --color-text-minimum-icon: rgba(99,114,136,0.6);\n --color-border-default: var(--gray80); \n --color-skeleton: var(--gray90);\n --color-input-background: var(--white);\n --color-input-text: var(--gray20);\n --color-input-border: #e5e5e5;\n --color-input-border-hover: #ccc;\n --color-input-border-active: var(--blue);\n --color-input-border-focus: rgba(17,140,253,0.25);\n --color-input-placeholder: var(--gray60);\n --black: #000;\n --blue: #118cfd;\n --blue-rgb: 17,140,253;\n --chalk: #c6cbd3;\n --graphite: #4f5a66;\n --green: #12ca93;\n --green-rgb: 18,202,147;\n --ivory: #f0f0f0;\n --light-gray: #f8f8f8;\n --minimum-gray: #637288;\n --purple: #8470be;\n --red: #e95f6a;\n --red-rgb: 233,95,106;\n --shale: #939eae;\n --slate: #384248;\n --white: #fff;\n --off-white: #fdfdfd;\n --yellow: #f7c543;\n --yellow-rgb: 247,197,67;\n --border-width: 1px;\n --border-radius: 5px;\n --border-radius-lg: calc(var(--border-radius) * 1.5);\n --box-shadow-menu-dark: 0 1px 3px rgba(0, 0, 0, 0.025), 0 2px 6px rgba(0, 0, 0, 0.025), 0 5px 10px rgba(0, 0, 0, 0.05);\n --box-shadow-menu-light: 0 5px 10px rgba(0, 0, 0, .05), 0 2px 6px rgba(0, 0, 0,.025), 0 1px 3px rgba(0, 0, 0, .025);\n --box-shadow-pill: inset 0 1px 1px 0 rgba(255, 255, 255, .2), inset 0 -1px 2px 0 rgba(0, 0, 0, .2), 0 1px 2px 0 rgba(0, 0, 0, .05);\n --box-shadow-request: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -1px 2px rgba(0, 0, 0, .1);\n --box-shadow-status: inset 0 1px 0 rgba(255, 255, 255, .5), inset 0 -1px 2px rgba(0, 0, 0, .1), 0 1px 3px rgba(0, 0, 0, .1);\n --font-family: Graphik, san-serif,-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue;\n --font-family-mono: \"SF Mono\", SFMono-Regular, ui-monospace, \"DejaVu Sans Mono\", Menlo, Consolas, monospace;\n --font-weight-normal: 400;\n --font-weight: 500;\n --font-weight-bold: 600;\n --button-xs: 20px;\n --button-sm: 30px;\n --button-md: 40px;\n --button-lg: 50px;\n --icon-sm: 12px;\n --icon-md: 16px;\n --icon-lg: 20px;\n --transition-fast: .15s;\n --transition-slow: .3s;\n --transition-timing: cubic-bezier(0.16, 1, 0.3, 1);\n --header-logo-height: 24px;\n --container: 1100px;\n --container-lg: 1440px;\n --hub-main-max-width: 800px;\n --hub-playground-width: 480px;\n --hub-sidebar-width: 280px;\n --hub-toc-width: 280px;\n --param-form-width: 140px;\n --dash-container-md: 1100px;\n --dash-container-lg: 1260px;\n --dash-container-xl: 1536px;\n --xxl: 120px;\n --xl: 80px;\n --lg: 40px;\n --md: 20px;\n --sm: 10px;\n --xs: 5px;\n --z-banner: 10001;\n --z-toolbar: 10002;\n --z-modal: 10003;\n --blue0: #002077;\n --blue10: #003290;\n --blue20: #0047aa;\n --blue30: #005dc5;\n --blue40: #0074e1;\n --blue50: #118cfd;\n --blue60: #619efe;\n --blue70: #8ab0ff;\n --blue80: #abc3ff;\n --blue90: #c8d7ff;\n --blue100: #e4ebff;\n --green0: #002e02;\n --green10: #00491f;\n --green20: #00683a;\n --green30: #008756;\n --green40: #00a874;\n --green50: #12ca93;\n --green60: #59d4a4;\n --green70: #81ddb6;\n --green80: #a3e6c8;\n --green90: #c3efda;\n --green100: #e1f7ec;\n --gray0: #12181b;\n --gray10: #242e34;\n --gray15: #303b42;\n --gray20: #384248;\n --gray30: #4f5a66;\n --gray40: #637288;\n --gray50: #7b889b;\n --gray60: #939eae;\n --gray70: #adb4c1;\n --gray80: #c6cbd3;\n --gray90: #f0f0f0;\n --gray100: #f8f8f8;\n --gray10-rgb: 36,46,52;\n --gray15-rgb: 48,59,66;\n --gray20-rgb: 56,66,72;\n --gray100-rgb: 248,248,248;\n --purple0: #110e4d;\n --purple10: #2a1f63;\n --purple20: #403278;\n --purple30: #56468f;\n --purple40: #6d5ba6;\n --purple50: #8470be;\n --purple60: #9987c9;\n --purple70: #ae9ed4;\n --purple80: #c2b5df;\n --purple90: #d6cdea;\n --purple100: #ebe6f4;\n --red0: #570000;\n --red10: #730014;\n --red20: #900027;\n --red30: #ad273c;\n --red40: #cb4452;\n --red50: #e95f6a;\n --red60: #f17c81;\n --red70: #f79799;\n --red80: #fcb1b2;\n --red90: #ffcbcb;\n --red100: #ffe5e5;\n --yellow0: #3e1d00;\n --yellow10: #5a3c00;\n --yellow20: #7d5b00;\n --yellow30: #a57d00;\n --yellow40: #cda017;\n --yellow50: #f7c543;\n --yellow60: #fcce66;\n --yellow70: #ffd885;\n --yellow80: #ffe1a4;\n --yellow90: #ffebc2;\n --yellow100: #fff5e0;\n --butter: #fdfccc;\n --brown: #7a461c;\n --coral: #ff758c;\n --fuchsia: #cf66c3;\n --gold: #9d8714;\n --indigo: #6b7ede;\n --lavender: #abc3ff;\n --lime: #9ace5a;\n --olive: #837400;\n --orange: #fe8e4f;\n --pink: #e15ca5;\n --teal: #00b6e6;\n --tiffany: #00beaa;\n --blue-pastel: #a8edff;\n --green-pastel: #9bfff6;\n --orange-pastel: #f5bc90;\n --purple-pastel: #e8d0ff;\n --red-pastel: #ffc4c9;\n --yellow-pastel: #ffffa7;\n --white-rgb: 255,255,255;\n --lightGray: var(--light-gray);\n --minimumGray: var(--minimum-gray)\n}\n*/","js":"// Event Handlers - outside the pageLoad function\n// Handle keyboard navigation for Enter key\n$(document).on('keydown', '.rm-Sidebar-heading', function (e) {\n if (e.key === 'Enter') {\n // Prevent the default action of the Enter key\n e.preventDefault();\n\n // Toggle classes for the clicked heading and its next element\n $(this).toggleClass(\"section-expanded\");\n $(this).next().toggleClass(\"section-list-expanded\");\n }\n});\n\n// Handle click events on sidebar headings\n$(document).on('click', '.rm-Sidebar-heading', function () {\n if ($(this).hasClass('section-expanded')) {\n // Do nothing if the heading is already expanded\n } else {\n // Collapse all expanded sections\n $('.section-expanded, .section-list-expanded').removeClass('section-expanded section-list-expanded');\n }\n\n // Toggle classes for the clicked heading and its next element\n $(this).toggleClass(\"section-expanded\");\n $(this).next().toggleClass(\"section-list-expanded\");\n});\n\n// Expand/Collapse Content\nlet hidden = true; // Initialize outside to maintain state across page loads\n$('.expand-trigger').on('click', function () {\n $('.expand-content').toggle();\n hidden = !hidden;\n $(this).find('span').text(hidden ? 'Show' : 'Hide');\n});\n\n// pageLoad Function - Keep DOM manipulations here\n$(window).on('pageLoad', function(e, state) {\n // Collapse navigation in the sidebar initially\n $('.rm-Sidebar-section > .rm-Sidebar-list').addClass(\"section-collapsed\");\n\n // Append icon only if it doesn't already exist\n $('.rm-Sidebar-heading').each(function() {\n if ($(this).find('.icon-chevron').length === 0) {\n $(this).append(\"\u003cspan class='icon-chevron'>\u003c/span>\");\n }\n });\n\n // Check if any sidebar link is active and expand its section\n if ($('.rm-Sidebar-link.active').length > 0) {\n $('.rm-Sidebar-link.active').parents('.rm-Sidebar-list').addClass(\"section-list-expanded\");\n $('.rm-Sidebar-link.active').parents('.rm-Sidebar-section').children('.rm-Sidebar-heading').addClass(\"section-expanded\");\n }\n\n // Fix issue with sub-items getting stuck expanded\n $('.subpages').removeClass('section-list-expanded');\n\n // Auto-expand first category (for landing)\n // $('.rm-Sidebar-heading').first().next().addClass(\"section-list-expanded\");\n\n // Add tabindex attribute to each heading\n $('.rm-Sidebar-heading').attr('tabindex', '0');\n\n // Hide expand content initially\n $('.expand-content').hide();\n});\n\n\n\n// Show or hide private link based on logged-in status\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n showButtonBasedOnPermission();\n});\n\n//interval count\nfunction showButtonBasedOnPermission() {\n var intervalCount = 0;\n var maxIntervalCount = 5;\n\n // Parse JSON data to check if user is logged in\n function updateButtonVisibility() {\n var hubMeScript = document.getElementById(\"hub-me\");\n var jsonData = JSON.parse(hubMeScript.dataset.json);\n\n // If the user is not logged in, hide the button\n if (jsonData.loggedIn === false) {\n var styleElement = document.createElement(\"style\");\n styleElement.innerHTML = \".suggestEdits { display: none !important; }\";\n document.head.appendChild(styleElement);\n } else {\n // If logged in, show the button\n var styleElement = document.createElement(\"style\");\n styleElement.innerHTML = \".suggestEdits { display: flex !important; }\";\n document.head.appendChild(styleElement);\n }\n }\n\n // Ensure the visibility logic runs periodically\n function runInterval() {\n updateButtonVisibility();\n intervalCount++;\n\n if (intervalCount >= maxIntervalCount) {\n clearInterval(intervalId);\n }\n }\n\n updateButtonVisibility();\n var intervalId = setInterval(runInterval, 800);\n}\n","html":{"header":"\u003cmeta name=\"google-site-verification\" content=\"V22G0oF_f8MnFXS2AtrN6KEg8X2BNVFWqg8I2QHeW-Y\" />\n\n\u003cscript>\n const hash = window.location.hash;\n window.location.hash = \"\";\n const checkExist = setInterval(function() {\n if ($(hash).length === 0) { return }\n clearInterval(checkExist);\n setTimeout(function() {\n window.location.hash = hash;\n }, 1000);\n }, 100);\n\u003c/script>","home_footer":"\u003cscript src=\"https://3s40xjwbpcq5.statuspage.io/embed/script.js\">\u003c/script>","page_footer":"\u003cscript src=\"https://3s40xjwbpcq5.statuspage.io/embed/script.js\">\u003c/script>"}},"header":{"type":"line","gradient_color":null,"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}}}},"navigation":{"collapsible_categories":"disabled","breadcrumbs":"disabled","first_page":"landing_page","left":[{"type":"link_url","title":"Release Notes","url":"https://docs.clover.com/docs/whats-new","custom_page":null},{"type":"link_url","title":"Announcements","url":"https://docs.clover.com/dev/docs/release-notes-announcements","custom_page":null},{"type":"link_url","title":"Blog","url":"https://medium.com/clover-platform-blog","custom_page":null},{"type":"link_url","title":"FAQ","url":"https://docs.clover.com/dev/docs/faqs","custom_page":null},{"type":"link_url","title":"Support","url":"https://docs.clover.com/dev/docs/developer-technical-support","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":"disabled"},"graphql":{"label":"GraphQL","visibility":"disabled","schema":null},"guides":{"label":"Guides","alias":null,"visibility":"enabled"},"reference":{"label":"API Reference","alias":null,"visibility":"enabled"},"recipes":{"label":"Recipes","alias":null,"visibility":"enabled"},"changelog":{"label":"Changelog","alias":"API Changelog","visibility":"enabled"},"discussions":{"label":"Discussions","alias":null,"visibility":"disabled"}}}},"git":{"repository_name":null,"connection":{"repository":{"full_name":"clover/clover-devdocs","name":"clover-devdocs","provider_type":"github","url":"https://github.com/clover/clover-devdocs","privacy":{"private":true,"visibility":"private"}},"organization":{"name":"clover","provider_type":"github"},"status":"active"},"remediation_status":null,"remediated_at":null,"remediation_initiated_by":null,"remediation_dry_run":null,"remediation_job_id":null},"i18n":{"languages":["en"],"defaultLanguage":"en","state":"enabled"}}},"version":{"_id":"5b315d5518ee180003969187","project":"5b05c1655f9a0d00039a8ae4","createdAt":"2018-06-25T21:23:33.924Z","releaseDate":"2018-06-25T21:23:33.924Z","categories":["5b315d5518ee180003969188","5b315d5518ee180003969189","5b315d5518ee18000396918a","5b315d5518ee18000396918b","5b315d5518ee18000396918c","5b315d5518ee18000396918d","5b315d5518ee18000396918e","5b6a2983402b32000336c433","5b7c743ca6bfa600037d807d","5b920d510cb605000312f572","5ba55fbec7336b000348ef9b","5ba5e53e6ddff700030be197","5ba906d998ba74000325844b","5ba909a895e6a30003c43428","5ba94fb746fe180003bbb640","5ba94fd846fe180003bbb644","5ba950de99f4820003bf49ae","5baab11602675500038e2cf6","5baab179dddbf3000332189d","5baab2c402675500038e2d18","5baab3581bbaed0003fee9d9","5bc76bae647467004ac970e3","5bc786c3b194b9002b521599","5bc786f74e0881001303f675","5bc7871a4ca7da015b699655","5bc78751cb227e0032208d61","5bc7972ab40831004fe09345","5bc79768046ef7001ede489f","5bc797927cf8fa00447c9344","5bc798bd1a96c100f4f4cd58","5bc798d69eaf14000dfe9fa9","5bc7c5baa5dd63003781c73b","5bdcbda991e8780018ab3117","5bdcbdc25fb4b50031cebc31","5bdcbe015fb4b50031cebcfc","5bdcc2f8ea37cd003e8b0148","5bdd2382e87c650062d948bb","5bdd23ac7fdf64001e389a99","5bdd24896f3ba90013ee8342","5bde03277fdf64001e38bcba","5bde03456ff3e8000d1b5695","5be49270f2a711038ea38f9c","5be49672089736002930b4f9","5bff0bf8aed5310175fc418f","5bff0c938d5b6a0049e4708a","5bff0d02aed5310175fc4262","5bff13b48f0af00385bed700","5cbff29efb86e10042827418","5cbff3459590bd002c9ffb89","5cbff35facc2840051a7f40e","5cbff3a7eff4f6000eb97a3c","5cbff4e6c4a1750045c8ef63","5cbff511a5c99200195e7cc1","5cc0cad88b6f7e003d13090d","5cc0cb24cee7c30063e37a0e","5e0fc06313523805823744ac","5e3da5c5266513029cc26f9b","5e3da603b50f81001259966f","5e3da65404ccd2004599354f","6046893c88c08001162aee5b","606c6b057e15e6027b80e4a2","60c8c6b6992f70000ffd1974","6111600e25224f0023d837fe","61a6bc3df9bbeb005f32fa22","61e06692c0a24206af5e0fc9","61e067d7a66fb8003ebf4ea6","61fc1dbd3aee840039bd34d0","61fc48d8289d1400100cf03c","61fd687398a6f5003fa245a0","61fd744da94a8800297e8a25","61fd74adf9bc83002970437c","61fd75023f98c500506ab1a6","61fdc4809f8d98028fa96159","623deea3d5f1f6058a4471a1","62ab5f9a0af2ca001c53228c","62f13db0c7cd4c09510ebf40","62f31b0e4d5a30001d46678f","62f31ef6834269002714d163","62f3249e02e948005e8a7dec","62f3251361526f0013b12af2","62f53e548a47c900373b8030","62f54ed763f320008dc93292","62f550209876a5001d0c9810","62fa8207df8921002abb6684","6368ac3ce65560007edf57d3","636b7d3a65af28002db3d4e8","636b7f1b458073004dc7ec83","636b7fb877f20f055459041b","636b8087162e8502403161a8","636b80eb0daf6c04c689398a","636b8184cd162105f6a24117","6376b401081e400003bab66e","6380c915c536c100469c95ec","638727e2b0b670000f59e2db","638aa2c176938300348551e3","638aa31084ff7a003375961c","638aa37a90a346003a6d80cb","638aaec6c6522e00242133b0","639a544141b44e00184c3c04","639afeb42afa3e004dd3de02","63e5e3e58de7b50057f48c9b","64078c8a54e610001147f64d","64c74fe80040d20040043972","64d363fd3090ff0050815bf3","6513b6dc1ec71f004b75c24e","659637d3dfae32002385514f","659638b759408a000ff5edfb","65bb718d07848d000f10506a","66062cf584f7da005bb516b0","6619db326b9040002909faa0","66221400e36088005157de0c","66ac1e906adcda0010d5ce02","66ac2519485c6000126ac403","66b33df521c3760050a8f16a","66b33e726c773d0025da8602","66b3409196a12b00196e031c","66b354359c0de0001e2f09a0","66b38e62c98322002576ed67","66b5b0c041d427001927f7be","66b5b0c141d427001927f7c0","66b63c35b1557b0070f77916","66db3ddaf9963b006395838b","66db41183fba840019b0ca75","66e00f9085df450014a2d147","66f10cf5374b01004f942899","66f2d4d9d5d737001020a923","66f3a9ba322cea0018fde133","66f3a9d154d17c0062d78d84","66f3a9f5d706bf002ac39a95","66f3aa067fb26f0030dacac0","6715eb8f33aaba003dbbf9c6","672874814d4f0d005f65ad4a","67296b897da80800413ba43d","675665f2f780f952a053fb9e","67625efe27a579002c113240","678ace9ea52e05003d80b7a4","67ad85632688620055ac4da9","67ecc36c2cb13d0052056a6c","682adeeceb4a24004bdf3f28","68406c700891dd001901da4b","68407bbbea761f0012f3c5ae","684134b3ceba690045132640"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"published","version_clean":"3.0.0","version":"3","__v":59,"updatedAt":"2026-04-27T21:13:20.358Z","pdfStatus":"complete","apiRegistries":[{"filename":"ecommerce-service-api.json","uuid":"1ghuo735mo0c7s9y"},{"filename":"pakms-service-api.json","uuid":"1rx21cm17gb4hi"},{"filename":"clover-card-present-rest-api.json","uuid":"adhg9modeou8f"},{"filename":"ecommerce-recurring-apis.json","uuid":"6xtc173lp73m9ra"},{"filename":"platform-api.json","uuid":"1836s2z4smohp2458"},{"filename":"multiple-service-charge-msc-pilot-apis-k3c.json","uuid":"17440ljmod6cyth"},{"filename":"card-tokenization-service-api.json","uuid":"rna2jl2qm22yvxhu"},{"filename":"transarmor-tokenization-api.json","uuid":"6cii1vmebu3a6t"},{"filename":"ach-tokenization-service-api.json","uuid":"26fy2892fm22ymtc3"},{"filename":"gift-card-tokenization-service-api.json","uuid":"3yii2i91jm22yqbyg"},{"filename":"apple-pay-tokenization-api.json","uuid":"4qb8um38pn2nj"},{"filename":"invoiceapi.json","uuid":"jqf81pm61abo6f"}],"source":"readme"}},"i18n":{"language":"en","translations":{"en":{"common":{"ai":{"aiOpenFailed":"Failed to open SuperHub AI panel.","askAi":"Ask AI","askAiAriaLabel":"Open Ask AI Assistant","mdCopy":"Copy Page","mdOpenFailed":"Failed to open as markdown","mdView":"View as Markdown","mcp":{"appNotFound":"{{app}} does not appear to be installed.","command":"Copy MCP Command","config":"Copy MCP Config","copied":"Copied to clipboard!","cursor":"Connect to Cursor","downloadApp":"Download {{app}}","header":"MCP","vscode":"Connect to VS Code"},"noMdToCopy":"No markdown content available to copy.","openFailed":"Failed to open {{option}}.","settings":{"askAiRequired":"Ask AI must be enabled for your project","description":"Adds a dropdown menu for sharing docs with AI assistants.","disabledInternal":"Disabled for internal docs — set to public to enable","dropdownOptions":"Dropdown Options","preview":"Preview","saveFailed":"Failed to save AI dropdown configuration. Please try again.","title":"AI Dropdown"}},"apiConfig":{"allRequests":"All Requests","allRequestsFilter":"All Requests","apiKeysNotFound":"No API keys found.","apiKeysNotSynced":"API keys are not synced with this developer hub.","apiRequests":"API Requests","authentication":"Authentication","credentials":"Credentials","dayFilter":"Last 24 Hours","emptyStatePrompt":"Make a request to see them here or \u003ca>Try It\u003c/a>!","error":"Error","errorRequestsFilter":"400 & 500","gettingStarted":"Getting Started","logInPrompt":"Log in to see your API keys","monthFilter":"Last 30 Days","moreErrors":"More Errors","moreRequests":"More Requests","myRecentErrors":"My Recent Errors","myRecentRequests":"My Recent Requests","myRequests":"My Requests","myTopEndpoints":"My Top Endpoints","personalizedDocsSetup":"Set up \u003cButton>Personalized Docs\u003c/Button> to show users their API keys.","pickALanguage":"Pick a language","popularEndpoints":"Popular Endpoints","success":"Success","weekFilter":"Past week","yourApiKeys":"Your API Keys"},"attribution":"by {{attribution}}","auth":{"any":"any","apiKey":"API Key","apiKeyPrompt":"Get API Key","apiKeyShow":"Show API Key","apiKeyHide":"Hide API Key","apiKeyToggle":"Toggle API Key","apiInfo":"API Info","authenticate":"Authenticate","authorize":"Authorize","authorizationUrl":"Authorization URL","authorizedScopes":"Authorized scopes for this token","authorizedScopesEmpty":"Token has no authorized scopes","bearer":"Bearer","clearSelection":"Clear Selection","clientId":"Client ID","deselectAll":"Deselect All","credentialMessage":"{{projectName}} accepts {{count}} credential methods. You can use {{option}} of them.","credentialsFor":"Credentials for {{name}}","credentialsForMd":"Credentials for `{{name}}`","either":"eitherLog in to use your API keys","grantType":"Grant Type","info":{"base64":"Your username and password will be combined with a : to form a base64-encoded string: `ENCODED_TOKEN`","basic":"Your username and password are being sent in the [header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization) of the request.","bearer":"\n Bearer authentication gives access to the “bearer of the token” and must be sent in the Authorization header. For example:\n ```bash\n curl --request POST \\\n --url https://httpbin.org/anything/bearer\n --header 'Authorization: Bearer BEARER_TOKEN'\n ```\n ","cookie":"Your API Key is being sent as a [cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies).","header":"Your API Key is sent in the request [header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers).","jwt":"The bearer token's format is JSON Web Token (JWT). Read more at [JWT.io](https://jwt.io/).","query":"Your API Key is being sent as a query parameter in the [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL)."},"infoTable":{"contact":"Contact","description":"Description","identifier":"Identifier","license":"License","name":"Name","termsOfService":"Terms of Service","title":"Title","summary":"Summary","url":"URL","version":"Version"},"information":"Information","label":"Label","lastUsed":"Last Used","logInPrompt":"Log in to use your API keys","logIn":"Log In","logOut":"Log Out","or":"or","password":"password","passwordHideLabel":"Hide","passwordShowLabel":"Show","reAuthorize":"Re-Authorize","required":"required","requiredScopes":"Required Scopes","requiredScopesMissingMsg_one":"Missing {{count}} required scope","requiredScopesMissingMsg_other":"Missing {{count}} required scopes","scopes":"Scopes","scopeGroupAllRequired":"All {{count}} scopes required","scopesOrRequired":"At least 1 scope group required","scopesMissingCount":"({{count}} missing from this token)","scopesMissingMsg_one":"This operation requires {{count}} additional scope","scopesMissingMsg_other":"This operation requires {{count}} additional scopes","scopesRequiredMsg":"Scopes required for this operation","scopesRequiredNoneMsg":"No scopes required for this operation","selectAll":"Select All","selectCredentials":"Select Credentials","token":"token","tokenDetails":"Token Details","tokenRotationMessage":"We recommend you rotate this token.","tokenUrl":"Token URL","useOwnToken":"Use Your Own Token","username":"username"},"close":"Close","colorScheme":{"dark":"Dark","light":"Light","system":"System","title":"Color Scheme"},"changelog":{"added":"Added","deprecated":"Deprecated","fixed":"Fixed","improved":"Improved","removed":"Removed","title":"Changelog"},"copyToClipboard":{"copiedFull":"Copied to clipboard!","copiedShort":"Copied!","copyFull":"Copy to clipboard","copyShort":"Copy","failed":"Failed to copy to clipboard.","unable":"Unable to copy"},"discussions":{"addCommentLabel":"Add Comment","adminLabel":"Admin","answered":"Answered","askQuestion":"Ask a Question","backToAll":"Back to all","blankBodyError":"Your post body cannot be blank.","blankCommentError":"Your comment cannot be blank.","blankPostError":"Your post cannot be blank.","blankTitleError":"Your post title cannot be blank.","cancelButtonLabel":"Cancel","commentAndMarkAnswered":"Comment and mark answered","commentAndReopen":"Comment and reopen","deleteButtonLabel":"Delete","deleteCommentConfirmation":"Are you sure you want to delete this comment?","deleteCommentPermanentConfirmation":"Are you sure you want to permanently delete this comment?","deleteComentSuccess":"This comment has been deleted","deletePermanentlyButtonLabel":"Permanently Delete","deletePostConfirmation":"Are you sure you want to delete this post?","editButtonLabel":"Edit","editedLabel":"edited","emailInputAriaLabel":"[email protected]","emailInputPlaceholder":"Your Email","errorMessagePrefix":"Error:","faqAddLabel":"Add to FAQ","faqRemoveLabel":"Remove from FAQ","faqsLabel":"FAQs","logInToComment":"\u003cb>Log in\u003c/b> to add a comment.","markAsAnswered":"Mark as answered","markAsUnanswered":"Mark as unanswered","markCommentSpamLabel":"Mark this comment as spam","markPostSpamLabel":"Mark this post as spam","nameAndEmailError":"Please fill out your name and email.","nameInputAriaLabel":"Your name","nameInputPlaceholder":"Full name","permanentlyDeleteLabel":"Permanently delete","questionInputAriaLabel":"New question","recaptchaInvalidError":"Invalid ReCaptcha tokens.","recaptchaRequiredError":"Please complete the reCaptcha verification.","recentLabel":"Recent","saveButtonLabel":"Save","submitButtonLabel":"Post Question","tagButtonLabel":"Tag","tagInputPlaceholder":"Enter tag","titleInputAriaLabel":"Question title","titleInputPlaceholder":"Your question title","unansweredLabel":"Unanswered","voteCountLabel":"{{count}} vote","voteCountLabel_plural":"{{count}} votes"},"emptyState":{"changelog":{"title":"No Changelogs"},"discussion":{"actionLabel":"New Question","description":"Nobody's asked a question yet. Be the first!","title":"No Discussions"},"guide":{"title":"No Guides"},"recipe":{"title":"No Recipes"},"reference":{"title":"No API Endpoints"}},"more":"more…","next":"Next","onlyVisibleToAdmins":"Only visible to ReadMe admins","owlbotChat":{"assistant":"Assistant","clearChat":"Clear chat history","closeChat":"Close chat","emptyMessage":"I’ll help you find answers in the docs","emptyTitle":"Ask AI","failureTitle":"Ask AI","fallbackHeading":"Something went wrong with Ask AI","fallbackMessage":"Please try refreshing the page or contact support if the problem persists.","inputPlaceholder":"Ask AI anything…","sendFailure":"Failed to send message. Please try again.","resend":"Resend?","streamError":"...Something went wrong.","tryAgain":"Try Again","typingLabel":"Generating","voteFailure":"Failed to record vote. It may take a moment for the message to be saved. Please try again.","aiDisclaimer":"AI can get things wrong, so double check any info or code. You're responsible for verifying results are accurate and fit your needs before taking action. Do not input sensitive information.","voteLabelDown":"Not helpful","voteLabelUp":"Helpful","thinkingDefault":"Thinking...","thinkingSearchKnowledge":"Searching knowledge base...","thinkingSearchPages":"Searching for keywords...","thinkingListPages":"Looking up pages...","thinkingReadPage":"Reading relevant pages..."},"pageNotFound":{"heading":"Page Not Found","metaTitle":"404 Not Found"},"pageThumbs":{"no":"No","placeHolder":"Leave an optional comment…","prompt":"Did this page help you?","submit":"Vote","thankYou":"Thanks for voting!","yes":"Yes"},"poweredBy":"Powered by","recipes":{"inThisRecipe":"In this Recipe","openRecipe":"Open Recipe","step_one":"{{count}} step","step_other":"{{count}} steps"},"reference":{"callback":"Callback","clearExample":"Clear Example","clearResponse":"Clear Response","data":"Data","example":"Example","examplePrompt":"Choose an example","examplePromptOr":"Or choose an example","examples":"Examples","headers":"Headers","invalidJSON":"Invalid JSON","inspectRequest":"Inspect Request","jsonEditorAriaLabel":"Toggle Raw JSON Editor","jsonEditorLabel":"Edit JSON Body","language":"Language","library":"Library","log":"Log","logsLoading":"Retrieving recent requests…","logsPrompt":"Make a request to see history.","logsSeeAllLabel":"See All Requests","logsStatusLabel":"Status","logsThisMonth_one":"{{count}} Request This Month","logsThisMonth_other":"{{count}} Requests This Month","logsTimeLabel":"Time","logsUserAgentLabel":"User Agent","payloadExample":"Payload Example","recentRequests":"Recent Requests","replayRequest":"Replay Request","request":"Request","requestExample":"Request Example","requestExamples":"Request Examples","requestHistoryPrompt":"Log in to see full request history","requestInstructions":"Request instructions","resetBody":"Reset Body","response":"Response","showDescription":"Show Description","hideDescription":"Hide Description","sdkCodeEmpty":"No SDK code available","sdkCodeError":"Error retrieving SDK code. Please try again later.","tryIt":"Try It","tryItPrompt":"Click \u003ccode>Try It!\u003c/code> to start a request and see the response here!","tryItPunctuated":"Try It!"},"search":{"askFailure":"We had an issue responding, please try again later","filtersLabel":"Filters","filtersPlaceholder":"Filter","forMore":"for more","fromTheDocs":"From the Docs","inProject":"in {{project}}","noResults":"No search results for '{{query}}'","placeholder":"Search","pressEnterToAskAi":"Press \u003ckbd>Enter\u003c/kbd> to ask AI","promptEmpty":"Start typing to search…","promptLoading":"Keep typing to search…","searching":"Searching…","thinking":"Thinking"},"sections":{"all":"All","apiLogs":"API Logs","changelog":"Changelog","discussions":"Discussions","guides":"Guides","graphql":"GraphQL","home":"Home","pages":"Pages","recipes":"Recipes","reference":"API Reference"},"tableOfContents":"Table of Contents","time":{"absolute":{"noPrefix":"{{time}}","noPrefixAttributed":"{{time}} by {{attribution}}","postedPrefix":"Posted {{time}}","postedPrefixAttributed":"Posted {{time}} by {{attribution}}","updatedPrefix":"Updated {{time}}","updatedPrefixAttributed":"Updated {{time}} by {{attribution}}"},"justNow":{"noPrefix":"Less than a minute ago","noPrefixAttributed":"Less than a minute ago by {{attribution}}","postedPrefix":"Posted just now","postedPrefixAttributed":"Posted just now by {{attribution}}","updatedPrefix":"Updated just now","updatedPrefixAttributed":"Updated just now by {{attribution}}"},"relative":{"noPrefix":"{{time}}","noPrefixAttributed":"{{time}} by {{attribution}}","postedPrefix":"Posted {{time}}","postedPrefixAttributed":"Posted {{time}} by {{attribution}}","updatedPrefix":"Updated {{time}}","updatedPrefixAttributed":"Updated {{time}} by {{attribution}}"}},"unableToCopy":"Unable to copy","version":{"beta":"Beta","default":"Default","deprecated":"Deprecated","hiddenLabel":"Hidden Version"},"whatsNext":"What’s Next"}}}},"is404":false,"isFramePreview":false,"isStreamingSSR":false,"isDetachedProductionSite":false,"lang":"en","langFull":"Default","reqUrl":"/dev/docs/generate-oauth-expiring-access-and-refresh-token","version":{"_id":"5b315d5518ee180003969187","project":"5b05c1655f9a0d00039a8ae4","createdAt":"2018-06-25T21:23:33.924Z","releaseDate":"2018-06-25T21:23:33.924Z","categories":["5b315d5518ee180003969188","5b315d5518ee180003969189","5b315d5518ee18000396918a","5b315d5518ee18000396918b","5b315d5518ee18000396918c","5b315d5518ee18000396918d","5b315d5518ee18000396918e","5b6a2983402b32000336c433","5b7c743ca6bfa600037d807d","5b920d510cb605000312f572","5ba55fbec7336b000348ef9b","5ba5e53e6ddff700030be197","5ba906d998ba74000325844b","5ba909a895e6a30003c43428","5ba94fb746fe180003bbb640","5ba94fd846fe180003bbb644","5ba950de99f4820003bf49ae","5baab11602675500038e2cf6","5baab179dddbf3000332189d","5baab2c402675500038e2d18","5baab3581bbaed0003fee9d9","5bc76bae647467004ac970e3","5bc786c3b194b9002b521599","5bc786f74e0881001303f675","5bc7871a4ca7da015b699655","5bc78751cb227e0032208d61","5bc7972ab40831004fe09345","5bc79768046ef7001ede489f","5bc797927cf8fa00447c9344","5bc798bd1a96c100f4f4cd58","5bc798d69eaf14000dfe9fa9","5bc7c5baa5dd63003781c73b","5bdcbda991e8780018ab3117","5bdcbdc25fb4b50031cebc31","5bdcbe015fb4b50031cebcfc","5bdcc2f8ea37cd003e8b0148","5bdd2382e87c650062d948bb","5bdd23ac7fdf64001e389a99","5bdd24896f3ba90013ee8342","5bde03277fdf64001e38bcba","5bde03456ff3e8000d1b5695","5be49270f2a711038ea38f9c","5be49672089736002930b4f9","5bff0bf8aed5310175fc418f","5bff0c938d5b6a0049e4708a","5bff0d02aed5310175fc4262","5bff13b48f0af00385bed700","5cbff29efb86e10042827418","5cbff3459590bd002c9ffb89","5cbff35facc2840051a7f40e","5cbff3a7eff4f6000eb97a3c","5cbff4e6c4a1750045c8ef63","5cbff511a5c99200195e7cc1","5cc0cad88b6f7e003d13090d","5cc0cb24cee7c30063e37a0e","5e0fc06313523805823744ac","5e3da5c5266513029cc26f9b","5e3da603b50f81001259966f","5e3da65404ccd2004599354f","6046893c88c08001162aee5b","606c6b057e15e6027b80e4a2","60c8c6b6992f70000ffd1974","6111600e25224f0023d837fe","61a6bc3df9bbeb005f32fa22","61e06692c0a24206af5e0fc9","61e067d7a66fb8003ebf4ea6","61fc1dbd3aee840039bd34d0","61fc48d8289d1400100cf03c","61fd687398a6f5003fa245a0","61fd744da94a8800297e8a25","61fd74adf9bc83002970437c","61fd75023f98c500506ab1a6","61fdc4809f8d98028fa96159","623deea3d5f1f6058a4471a1","62ab5f9a0af2ca001c53228c","62f13db0c7cd4c09510ebf40","62f31b0e4d5a30001d46678f","62f31ef6834269002714d163","62f3249e02e948005e8a7dec","62f3251361526f0013b12af2","62f53e548a47c900373b8030","62f54ed763f320008dc93292","62f550209876a5001d0c9810","62fa8207df8921002abb6684","6368ac3ce65560007edf57d3","636b7d3a65af28002db3d4e8","636b7f1b458073004dc7ec83","636b7fb877f20f055459041b","636b8087162e8502403161a8","636b80eb0daf6c04c689398a","636b8184cd162105f6a24117","6376b401081e400003bab66e","6380c915c536c100469c95ec","638727e2b0b670000f59e2db","638aa2c176938300348551e3","638aa31084ff7a003375961c","638aa37a90a346003a6d80cb","638aaec6c6522e00242133b0","639a544141b44e00184c3c04","639afeb42afa3e004dd3de02","63e5e3e58de7b50057f48c9b","64078c8a54e610001147f64d","64c74fe80040d20040043972","64d363fd3090ff0050815bf3","6513b6dc1ec71f004b75c24e","659637d3dfae32002385514f","659638b759408a000ff5edfb","65bb718d07848d000f10506a","66062cf584f7da005bb516b0","6619db326b9040002909faa0","66221400e36088005157de0c","66ac1e906adcda0010d5ce02","66ac2519485c6000126ac403","66b33df521c3760050a8f16a","66b33e726c773d0025da8602","66b3409196a12b00196e031c","66b354359c0de0001e2f09a0","66b38e62c98322002576ed67","66b5b0c041d427001927f7be","66b5b0c141d427001927f7c0","66b63c35b1557b0070f77916","66db3ddaf9963b006395838b","66db41183fba840019b0ca75","66e00f9085df450014a2d147","66f10cf5374b01004f942899","66f2d4d9d5d737001020a923","66f3a9ba322cea0018fde133","66f3a9d154d17c0062d78d84","66f3a9f5d706bf002ac39a95","66f3aa067fb26f0030dacac0","6715eb8f33aaba003dbbf9c6","672874814d4f0d005f65ad4a","67296b897da80800413ba43d","675665f2f780f952a053fb9e","67625efe27a579002c113240","678ace9ea52e05003d80b7a4","67ad85632688620055ac4da9","67ecc36c2cb13d0052056a6c","682adeeceb4a24004bdf3f28","68406c700891dd001901da4b","68407bbbea761f0012f3c5ae","684134b3ceba690045132640"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"published","version_clean":"3.0.0","version":"3","__v":59,"updatedAt":"2026-04-27T21:13:20.358Z","pdfStatus":"complete","apiRegistries":[{"filename":"ecommerce-service-api.json","uuid":"1ghuo735mo0c7s9y"},{"filename":"pakms-service-api.json","uuid":"1rx21cm17gb4hi"},{"filename":"clover-card-present-rest-api.json","uuid":"adhg9modeou8f"},{"filename":"ecommerce-recurring-apis.json","uuid":"6xtc173lp73m9ra"},{"filename":"platform-api.json","uuid":"1836s2z4smohp2458"},{"filename":"multiple-service-charge-msc-pilot-apis-k3c.json","uuid":"17440ljmod6cyth"},{"filename":"card-tokenization-service-api.json","uuid":"rna2jl2qm22yvxhu"},{"filename":"transarmor-tokenization-api.json","uuid":"6cii1vmebu3a6t"},{"filename":"ach-tokenization-service-api.json","uuid":"26fy2892fm22ymtc3"},{"filename":"gift-card-tokenization-service-api.json","uuid":"3yii2i91jm22yqbyg"},{"filename":"apple-pay-tokenization-api.json","uuid":"4qb8um38pn2nj"},{"filename":"invoiceapi.json","uuid":"jqf81pm61abo6f"}],"source":"readme"},"gitVersion":{"base":null,"display_name":"published","i18n":{"lang":null,"parsed_version":null},"name":"3","release_stage":"release","source":"readme","state":"current","updated_at":"2026-06-10T13:38:18.000Z","uri":"/branches/3","privacy":{"view":"default"}},"versions":{"total":1,"data":[{"base":null,"display_name":"published","i18n":{"lang":null,"parsed_version":null},"name":"3","release_stage":"release","source":"readme","state":"current","updated_at":"2026-06-10T13:38:18.738Z","uri":"/branches/3","privacy":{"view":"default"}}],"type":"version"}}