> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Clover OAuth 2.0 connector profile – StackOne setup guide

> Set up the OAuth 2.0 connector profile for Clover in StackOne. One-time admin setup required before your users can link Clover accounts via Hub.

<Warning>A Clover developer account is required. You must be able to create apps in the Clover Developer Dashboard.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;clover_get_merchant&#x22;,&#x22;label&#x22;:&#x22;Get A Single Merchant&#x22;,&#x22;scopes&#x22;:[&#x22;MERCHANT_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_get_merchant_properties&#x22;,&#x22;label&#x22;:&#x22;Get A Merchant's Properties&#x22;,&#x22;scopes&#x22;:[&#x22;MERCHANT_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_merchant_properties&#x22;,&#x22;label&#x22;:&#x22;Update Merchant Properties&#x22;,&#x22;scopes&#x22;:[&#x22;MERCHANT_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_get_merchant_address&#x22;,&#x22;label&#x22;:&#x22;Get A Merchant's Address&#x22;,&#x22;scopes&#x22;:[&#x22;MERCHANT_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_devices&#x22;,&#x22;label&#x22;:&#x22;Get All Devices Provisioned To A Merchant&#x22;,&#x22;scopes&#x22;:[&#x22;MERCHANT_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_tenders&#x22;,&#x22;label&#x22;:&#x22;Get All Tenders For A Merchant&#x22;,&#x22;scopes&#x22;:[&#x22;MERCHANT_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_cash_events&#x22;,&#x22;label&#x22;:&#x22;Get All Cash Events&#x22;,&#x22;scopes&#x22;:[&#x22;PAYMENTS_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_customers&#x22;,&#x22;label&#x22;:&#x22;Get A List Of Customers&#x22;,&#x22;scopes&#x22;:[&#x22;CUSTOMERS_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_customer&#x22;,&#x22;label&#x22;:&#x22;Create A Customer&#x22;,&#x22;scopes&#x22;:[&#x22;CUSTOMERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_get_customer&#x22;,&#x22;label&#x22;:&#x22;Get A Single Customer&#x22;,&#x22;scopes&#x22;:[&#x22;CUSTOMERS_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_customer&#x22;,&#x22;label&#x22;:&#x22;Update A Customer&#x22;,&#x22;scopes&#x22;:[&#x22;CUSTOMERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_delete_customer&#x22;,&#x22;label&#x22;:&#x22;Delete A Customer&#x22;,&#x22;scopes&#x22;:[&#x22;CUSTOMERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_customer_phone&#x22;,&#x22;label&#x22;:&#x22;Create A Phone Number For A Customer&#x22;,&#x22;scopes&#x22;:[&#x22;CUSTOMERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_customer_email&#x22;,&#x22;label&#x22;:&#x22;Create An Email Address For A Customer&#x22;,&#x22;scopes&#x22;:[&#x22;CUSTOMERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_customer_address&#x22;,&#x22;label&#x22;:&#x22;Create An Address For A Customer&#x22;,&#x22;scopes&#x22;:[&#x22;CUSTOMERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_customer_phone&#x22;,&#x22;label&#x22;:&#x22;Update A Phone Number For A Customer&#x22;,&#x22;scopes&#x22;:[&#x22;CUSTOMERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_customer_email&#x22;,&#x22;label&#x22;:&#x22;Update An Email Address For A Customer&#x22;,&#x22;scopes&#x22;:[&#x22;CUSTOMERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_customer_address&#x22;,&#x22;label&#x22;:&#x22;Update An Address For A Customer&#x22;,&#x22;scopes&#x22;:[&#x22;CUSTOMERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_orders&#x22;,&#x22;label&#x22;:&#x22;Gets A List Of Orders&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_order&#x22;,&#x22;label&#x22;:&#x22;Create Custom Orders&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_get_order&#x22;,&#x22;label&#x22;:&#x22;Get A Single Order&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_order&#x22;,&#x22;label&#x22;:&#x22;Update An Order&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_delete_order&#x22;,&#x22;label&#x22;:&#x22;Delete An Order&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_order_line_items&#x22;,&#x22;label&#x22;:&#x22;Get All Line Items For An Order&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_line_item&#x22;,&#x22;label&#x22;:&#x22;Create A New Line Item&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_line_item&#x22;,&#x22;label&#x22;:&#x22;Update A Line Item&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_delete_line_item&#x22;,&#x22;label&#x22;:&#x22;Void A Line Item&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_order_discount&#x22;,&#x22;label&#x22;:&#x22;Create A Discount On An Order&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_delete_order_discount&#x22;,&#x22;label&#x22;:&#x22;Delete An Order Discount&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_order_payments&#x22;,&#x22;label&#x22;:&#x22;Get All Payments For An Order&#x22;,&#x22;scopes&#x22;:[&#x22;PAYMENTS_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_order_types&#x22;,&#x22;label&#x22;:&#x22;Get All Order Types For A Merchant&#x22;,&#x22;scopes&#x22;:[&#x22;ORDERS_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_inventory_items&#x22;,&#x22;label&#x22;:&#x22;Get All Inventory Items&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_inventory_item&#x22;,&#x22;label&#x22;:&#x22;Create An Inventory Item&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_get_inventory_item&#x22;,&#x22;label&#x22;:&#x22;Get A Single Inventory Item&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_inventory_item&#x22;,&#x22;label&#x22;:&#x22;Update An Existing Inventory Item&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_delete_inventory_item&#x22;,&#x22;label&#x22;:&#x22;Delete An Inventory Item&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_inventory_item_stock&#x22;,&#x22;label&#x22;:&#x22;Update The Stock Of An Inventory Item&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_tax_rates&#x22;,&#x22;label&#x22;:&#x22;Get All Tax Rates&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_tax_rate&#x22;,&#x22;label&#x22;:&#x22;Create A Tax Rate For A Merchant&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_discounts&#x22;,&#x22;label&#x22;:&#x22;Get All Discounts&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_discount&#x22;,&#x22;label&#x22;:&#x22;Create A Discount&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_get_tax_rate&#x22;,&#x22;label&#x22;:&#x22;Get A Single Tax Rate&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_get_discount&#x22;,&#x22;label&#x22;:&#x22;Get A Single Discount&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_modifiers&#x22;,&#x22;label&#x22;:&#x22;Get All Modifiers&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_tags&#x22;,&#x22;label&#x22;:&#x22;Get All Tags&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_categories&#x22;,&#x22;label&#x22;:&#x22;Get All Categories&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_category&#x22;,&#x22;label&#x22;:&#x22;Create An Item Category&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_get_category&#x22;,&#x22;label&#x22;:&#x22;Get A Category&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_category&#x22;,&#x22;label&#x22;:&#x22;Update A Category&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_delete_category&#x22;,&#x22;label&#x22;:&#x22;Delete A Single Item Category&#x22;,&#x22;scopes&#x22;:[&#x22;INVENTORY_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_employees&#x22;,&#x22;label&#x22;:&#x22;Get All Employees&#x22;,&#x22;scopes&#x22;:[&#x22;EMPLOYEES_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_employee&#x22;,&#x22;label&#x22;:&#x22;Create An Employee&#x22;,&#x22;scopes&#x22;:[&#x22;EMPLOYEES_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_get_employee&#x22;,&#x22;label&#x22;:&#x22;Get A Single Employee&#x22;,&#x22;scopes&#x22;:[&#x22;EMPLOYEES_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_employee&#x22;,&#x22;label&#x22;:&#x22;Update An Employee&#x22;,&#x22;scopes&#x22;:[&#x22;EMPLOYEES_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_delete_employee&#x22;,&#x22;label&#x22;:&#x22;Delete An Employee&#x22;,&#x22;scopes&#x22;:[&#x22;EMPLOYEES_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_employee_shifts&#x22;,&#x22;label&#x22;:&#x22;Get All Shifts For An Employee&#x22;,&#x22;scopes&#x22;:[&#x22;EMPLOYEES_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_create_employee_shift&#x22;,&#x22;label&#x22;:&#x22;Create Shift For An Employee&#x22;,&#x22;scopes&#x22;:[&#x22;EMPLOYEES_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_update_employee_shift&#x22;,&#x22;label&#x22;:&#x22;Update A Single Shift&#x22;,&#x22;scopes&#x22;:[&#x22;EMPLOYEES_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_delete_employee_shift&#x22;,&#x22;label&#x22;:&#x22;Delete A Single Shift&#x22;,&#x22;scopes&#x22;:[&#x22;EMPLOYEES_W&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_roles&#x22;,&#x22;label&#x22;:&#x22;Get All Roles For A Merchant&#x22;,&#x22;scopes&#x22;:[&#x22;EMPLOYEES_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_payments&#x22;,&#x22;label&#x22;:&#x22;Get All Payments&#x22;,&#x22;scopes&#x22;:[&#x22;PAYMENTS_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_get_payment&#x22;,&#x22;label&#x22;:&#x22;Get A Single Payment&#x22;,&#x22;scopes&#x22;:[&#x22;PAYMENTS_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_list_refunds&#x22;,&#x22;label&#x22;:&#x22;Get All Refunds For A Merchant&#x22;,&#x22;scopes&#x22;:[&#x22;PAYMENTS_R&#x22;]},{&#x22;id&#x22;:&#x22;clover_get_refund&#x22;,&#x22;label&#x22;:&#x22;Get A Single Refund&#x22;,&#x22;scopes&#x22;:[&#x22;PAYMENTS_R&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Find your Merchant ID</h2>

  <p>The Merchant ID is a 13-character alphanumeric identifier unique to your Clover business. It is required for all API operations.</p>

  <Steps>
    <Step title="Sign in to the Clover Merchant Dashboard">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Go to the <a href="https://www.clover.com/dashboard" target="_blank" rel="noopener noreferrer">Clover Merchant Dashboard</a> and sign in with your merchant account credentials.</p>
      </div>
    </Step>

    <Step title="Copy the Merchant ID from the URL">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Once signed in, look at the URL in your browser address bar. The Merchant ID is the 13-character value after `/m/`.</p>

        <ul>
          <li>Example URL: `https://www.clover.com/dashboard/m/ABC1DEF2GHI3J`</li>
          <li>Merchant ID: `ABC1DEF2GHI3J`</li>
          <li>For sandbox: `https://sandbox.dev.clover.com/developer-home/m/ABC1DEF2GHI3J`</li>
          <li>Copy this value and paste it into the <strong>Merchant ID</strong> field.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Create a Clover developer account</h2>

  <p>A Clover developer account provides access to the Developer Dashboard where you create and manage apps.</p>

  <Steps>
    <Step title="Sign up for a developer account">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Go to the <a href="https://www.clover.com/global-developer-home/public/create-account" target="_blank" rel="noopener noreferrer">Clover Global Developer Dashboard</a> and create an account.</p>

        <ul>
          <li>Enter your email address and click <strong>Create Account</strong>.</li>
          <li>Check your email and click <strong>Set a password</strong> in the confirmation message.</li>
          <li>Enter your name and a <strong>Public Developer Name</strong> (displayed in the Clover App Market).</li>
          <li>Fill in the test merchant details (name, country, address, currency, timezone) and click <strong>Create Account</strong>.</li>
          <li>Note: Clover creates a default test merchant for both sandbox and production environments.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Create and configure an app</h2>

  <p>Register a new app in the Developer Dashboard to obtain your App ID and App Secret.</p>

  <Steps>
    <Step title="Sign in to the Developer Dashboard">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to the <a href="https://www.clover.com/global-developer-home" target="_blank" rel="noopener noreferrer">Clover Developer Dashboard</a>.</p>

        <ul>
          <li>Toggle to your desired environment (Sandbox or Production).</li>
          <li>Click <strong>Create new app</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Fill in app details">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Complete the app creation form.</p>

        <ul>
          <li>App Name: `StackOne Integrations`</li>
          <li>Select the target country for your merchants.</li>
          <li>App Type: select <strong>Web</strong> in the Web app section.</li>
          <li>Click <strong>Create App</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Copy your App ID and App Secret">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>After creation, the <strong>App Settings</strong> page displays your credentials.</p>

        <ul>
          <li>Navigate to <strong>Your Apps</strong> > <strong>App name</strong> > <strong>App Settings</strong>.</li>
          <li>Copy the <strong>App ID</strong> and <strong>App Secret</strong> values and store them securely for use later.</li>
        </ul>
      </div>
    </Step>

    <Step title="Configure REST settings">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Set the redirect URI so Clover can redirect merchants back to StackOne after authorization.</p>

        <ul>
          <li>In <strong>App Settings</strong>, click <strong>REST Configuration</strong>.</li>
          <li>Site URL: `https://api.stackone.com/connect/oauth2/clover/callback`</li>
          <li>Default OAuth Response: select <strong>Code</strong>.</li>
          <li>Click <strong>Save</strong>.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Select your region</h2>

  <p>Your Clover merchant region determines which API endpoints are used.</p>

  <ul>
    <li><strong>North America (US & Canada)</strong> — default region, no additional configuration needed</li>
    <li><strong>Europe</strong> — select if your merchants are on the Clover Europe platform</li>
    <li><strong>Latin America</strong> — select if your merchants are on the Clover Latin America platform</li>
    <li>If unsure, check the URL when signed in to the Clover Merchant Dashboard — `clover.com` is North America, `eu.clover.com` is Europe, `la.clover.com` is Latin America.</li>
  </ul>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure app permissions</h2>

  <p>Select the permissions your app needs to access Clover merchant data.</p>

  <Steps>
    <Step title="Set requested permissions">
      <div data-guide-step data-guide-scopes="MERCHANT_R,MERCHANT_W,ORDERS_R,ORDERS_W,INVENTORY_R,INVENTORY_W,CUSTOMERS_R,CUSTOMERS_W,EMPLOYEES_R,EMPLOYEES_W,PAYMENTS_R,PAYMENTS_W" data-guide-display-scopes-list="MERCHANT_R,MERCHANT_W,ORDERS_R,ORDERS_W,INVENTORY_R,INVENTORY_W,CUSTOMERS_R,CUSTOMERS_W,EMPLOYEES_R,EMPLOYEES_W,PAYMENTS_R,PAYMENTS_W">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="MERCHANT_R,MERCHANT_W,ORDERS_R,ORDERS_W,INVENTORY_R,INVENTORY_W,CUSTOMERS_R,CUSTOMERS_W,EMPLOYEES_R,EMPLOYEES_W,PAYMENTS_R,PAYMENTS_W" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Create A Customer, Create A Discount, Create A Discount On An Order, Create A New Line Item, Create A Phone Number For A Customer, Create A Tax Rate For A Merchant, Create An Address For A Customer, Create An Email Address For A Customer, Create An Employee, Create An Inventory Item, Create An Item Category, Create Custom Orders, Create Shift For An Employee, Delete A Customer, Delete A Single Item Category, Delete A Single Shift, Delete An Employee, Delete An Inventory Item, Delete An Order, Delete An Order Discount, Get A Category, Get A List Of Customers, Get A Merchant's Address, Get A Merchant's Properties, Get A Single Customer, Get A Single Discount, Get A Single Employee, Get A Single Inventory Item, Get A Single Merchant, Get A Single Order, Get A Single Payment, Get A Single Refund, Get A Single Tax Rate, Get All Cash Events, Get All Categories, Get All Devices Provisioned To A Merchant, Get All Discounts, Get All Employees, Get All Inventory Items, Get All Line Items For An Order, Get All Modifiers, Get All Order Types For A Merchant, Get All Payments, Get All Payments For An Order, Get All Refunds For A Merchant, Get All Roles For A Merchant, Get All Shifts For An Employee, Get All Tags, Get All Tax Rates, Get All Tenders For A Merchant, Gets A List Of Orders, Update A Category, Update A Customer, Update A Line Item, Update A Phone Number For A Customer, Update A Single Shift, Update An Address For A Customer, Update An Email Address For A Customer, Update An Employee, Update An Existing Inventory Item, Update An Order, Update Merchant Properties, Update The Stock Of An Inventory Item, Void A Line Item</span>
        </div>

        <p>In <strong>App Settings</strong>, click <strong>Requested Permissions</strong>. Select the required Read or Write permissions for each category.</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container connector-guide-scopes-container--scrollable">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="MERCHANT_R">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy MERCHANT_R" title="Copy scope" data-copy="MERCHANT_R">
                  <span className="connector-guide-scope-copy__label">MERCHANT\_R</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="MERCHANT_W">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy MERCHANT_W" title="Copy scope" data-copy="MERCHANT_W">
                  <span className="connector-guide-scope-copy__label">MERCHANT\_W</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="ORDERS_R">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ORDERS_R" title="Copy scope" data-copy="ORDERS_R">
                  <span className="connector-guide-scope-copy__label">ORDERS\_R</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="ORDERS_W">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy ORDERS_W" title="Copy scope" data-copy="ORDERS_W">
                  <span className="connector-guide-scope-copy__label">ORDERS\_W</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="INVENTORY_R">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy INVENTORY_R" title="Copy scope" data-copy="INVENTORY_R">
                  <span className="connector-guide-scope-copy__label">INVENTORY\_R</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="INVENTORY_W">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy INVENTORY_W" title="Copy scope" data-copy="INVENTORY_W">
                  <span className="connector-guide-scope-copy__label">INVENTORY\_W</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="CUSTOMERS_R">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy CUSTOMERS_R" title="Copy scope" data-copy="CUSTOMERS_R">
                  <span className="connector-guide-scope-copy__label">CUSTOMERS\_R</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="CUSTOMERS_W">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy CUSTOMERS_W" title="Copy scope" data-copy="CUSTOMERS_W">
                  <span className="connector-guide-scope-copy__label">CUSTOMERS\_W</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="EMPLOYEES_R">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy EMPLOYEES_R" title="Copy scope" data-copy="EMPLOYEES_R">
                  <span className="connector-guide-scope-copy__label">EMPLOYEES\_R</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="EMPLOYEES_W">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy EMPLOYEES_W" title="Copy scope" data-copy="EMPLOYEES_W">
                  <span className="connector-guide-scope-copy__label">EMPLOYEES\_W</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="PAYMENTS_R">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy PAYMENTS_R" title="Copy scope" data-copy="PAYMENTS_R">
                  <span className="connector-guide-scope-copy__label">PAYMENTS\_R</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="PAYMENTS_W">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy PAYMENTS_W" title="Copy scope" data-copy="PAYMENTS_W">
                  <span className="connector-guide-scope-copy__label">PAYMENTS\_W</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Save permissions">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Provide a brief justification for each selected permission describing how the integration uses the data, then click <strong>Save</strong>.</p>

        <ul>
          <li>Note: If merchants have already installed the app, permission changes only take effect after they uninstall and reinstall it.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Clover</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>Clover</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Merchant ID</strong></li>
          <li><strong>Region</strong> (Optional)</li>
          <li><strong>App ID</strong></li>
          <li><strong>App Secret</strong></li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/guides/accounts-section#linking-accounts">Link Accounts</a> for <strong>Clover</strong>.
