> ## 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.

# ApprovalMax OAuth 2.0 connector profile – StackOne setup guide

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

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;approvalmax_get_request_attachment&#x22;,&#x22;label&#x22;:&#x22;Get Request Attachment&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_upload_request_attachment&#x22;,&#x22;label&#x22;:&#x22;Upload Request Attachment&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_delete_request_attachment&#x22;,&#x22;label&#x22;:&#x22;Delete Request Attachment&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_request_comment_attachment&#x22;,&#x22;label&#x22;:&#x22;Get Request Comment Attachment&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_companies&#x22;,&#x22;label&#x22;:&#x22;List Companies&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_netsuite_vendor_bills&#x22;,&#x22;label&#x22;:&#x22;List NetSuite Vendor Bills&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_netsuite_vendor_bill&#x22;,&#x22;label&#x22;:&#x22;Get NetSuite Vendor Bill&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_netsuite_purchase_orders&#x22;,&#x22;label&#x22;:&#x22;List NetSuite Purchase Orders&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_netsuite_purchase_order&#x22;,&#x22;label&#x22;:&#x22;Get NetSuite Purchase Order&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_netsuite_expense_reports&#x22;,&#x22;label&#x22;:&#x22;List NetSuite Expense Reports&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_netsuite_expense_report&#x22;,&#x22;label&#x22;:&#x22;Get NetSuite Expense Report&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_netsuite_sales_orders&#x22;,&#x22;label&#x22;:&#x22;List NetSuite Sales Orders&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_netsuite_sales_order&#x22;,&#x22;label&#x22;:&#x22;Get NetSuite Sales Order&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_netsuite_invoices&#x22;,&#x22;label&#x22;:&#x22;List NetSuite Invoices&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_netsuite_invoice&#x22;,&#x22;label&#x22;:&#x22;Get NetSuite Invoice&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_netsuite_bill_payments&#x22;,&#x22;label&#x22;:&#x22;List NetSuite Bill Payments&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_netsuite_bill_payment&#x22;,&#x22;label&#x22;:&#x22;Get NetSuite Bill Payment&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_netsuite_journal_entries&#x22;,&#x22;label&#x22;:&#x22;List NetSuite Journal Entries&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_netsuite_journal_entry&#x22;,&#x22;label&#x22;:&#x22;Get NetSuite Journal Entry&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_netsuite_item_receipts&#x22;,&#x22;label&#x22;:&#x22;List NetSuite Item Receipts&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_netsuite_item_receipt&#x22;,&#x22;label&#x22;:&#x22;Get NetSuite Item Receipt&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_qbooks_bills&#x22;,&#x22;label&#x22;:&#x22;List QuickBooks Bills&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_qbooks_bill&#x22;,&#x22;label&#x22;:&#x22;Get QuickBooks Bill&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_qbooks_purchase_orders&#x22;,&#x22;label&#x22;:&#x22;List QuickBooks Purchase Orders&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_qbooks_purchase_order&#x22;,&#x22;label&#x22;:&#x22;Get QuickBooks Purchase Order&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_qbooks_expenses&#x22;,&#x22;label&#x22;:&#x22;List QuickBooks Expenses&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_qbooks_expense&#x22;,&#x22;label&#x22;:&#x22;Get QuickBooks Expense&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_standalone_documents&#x22;,&#x22;label&#x22;:&#x22;List Standalone Documents&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_standalone_document&#x22;,&#x22;label&#x22;:&#x22;Get Standalone Document&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_create_standalone_document&#x22;,&#x22;label&#x22;:&#x22;Create Standalone Document&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_edit_standalone_document&#x22;,&#x22;label&#x22;:&#x22;Edit Standalone Document&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_standalone_currencies&#x22;,&#x22;label&#x22;:&#x22;List Standalone Currencies&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_standalone_workflows&#x22;,&#x22;label&#x22;:&#x22;List Standalone Workflows&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_submit_standalone_document&#x22;,&#x22;label&#x22;:&#x22;Submit Standalone Document&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_mark_xero_purchase_order_as_billed&#x22;,&#x22;label&#x22;:&#x22;Mark Xero Purchase Order As Billed&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_user_profiles&#x22;,&#x22;label&#x22;:&#x22;List User Profiles&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_user_profile&#x22;,&#x22;label&#x22;:&#x22;Get User Profile&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_bills&#x22;,&#x22;label&#x22;:&#x22;List Xero Bills&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_xero_bill&#x22;,&#x22;label&#x22;:&#x22;Get Xero Bill&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_purchase_orders&#x22;,&#x22;label&#x22;:&#x22;List Xero Purchase Orders&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_xero_purchase_order&#x22;,&#x22;label&#x22;:&#x22;Get Xero Purchase Order&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_batch_payments&#x22;,&#x22;label&#x22;:&#x22;List Xero Batch Payments&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_xero_batch_payment&#x22;,&#x22;label&#x22;:&#x22;Get Xero Batch Payment&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_credit_notes&#x22;,&#x22;label&#x22;:&#x22;List Xero Credit Notes&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_xero_credit_note&#x22;,&#x22;label&#x22;:&#x22;Get Xero Credit Note&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_sales_invoices&#x22;,&#x22;label&#x22;:&#x22;List Xero Sales Invoices&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_xero_sales_invoice&#x22;,&#x22;label&#x22;:&#x22;Get Xero Sales Invoice&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_quotes&#x22;,&#x22;label&#x22;:&#x22;List Xero Quotes&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_get_xero_quote&#x22;,&#x22;label&#x22;:&#x22;Get Xero Quote&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_create_xero_quote&#x22;,&#x22;label&#x22;:&#x22;Create Xero Quote&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_edit_xero_quote&#x22;,&#x22;label&#x22;:&#x22;Edit Xero Quote&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_accounts&#x22;,&#x22;label&#x22;:&#x22;List Xero Accounts&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_branding_themes&#x22;,&#x22;label&#x22;:&#x22;List Xero Branding Themes&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_contacts&#x22;,&#x22;label&#x22;:&#x22;List Xero Contacts&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_currencies&#x22;,&#x22;label&#x22;:&#x22;List Xero Currencies&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_items&#x22;,&#x22;label&#x22;:&#x22;List Xero Items&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_taxes&#x22;,&#x22;label&#x22;:&#x22;List Xero Taxes&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_list_xero_tracking_categories&#x22;,&#x22;label&#x22;:&#x22;List Xero Tracking Categories&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/read&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_create_xero_bill&#x22;,&#x22;label&#x22;:&#x22;Create Xero Bill&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_edit_xero_bill&#x22;,&#x22;label&#x22;:&#x22;Edit Xero Bill&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_create_xero_purchase_order&#x22;,&#x22;label&#x22;:&#x22;Create Xero Purchase Order&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_edit_xero_purchase_order&#x22;,&#x22;label&#x22;:&#x22;Edit Xero Purchase Order&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_create_xero_sales_invoice&#x22;,&#x22;label&#x22;:&#x22;Create Xero Sales Invoice&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#x22;]},{&#x22;id&#x22;:&#x22;approvalmax_edit_xero_sales_invoice&#x22;,&#x22;label&#x22;:&#x22;Edit Xero Sales Invoice&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.approvalmax.com/scopes/public_api/write&#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>Register an OAuth Application</h2>

  <p>Register an application in the ApprovalMax Developer Portal to enable OAuth 2.0 authentication.</p>

  <Steps>
    <Step title="Prerequisites">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Before starting, ensure you have:</p>

        <ul>
          <li>An ApprovalMax account with a <strong>Premium subscription</strong>, <strong>trial</strong>, or <strong>All Features trial</strong></li>
          <li>Your role must be <strong>Account Owner</strong>, <strong>Account Manager</strong>, or <strong>Organization Administrator</strong></li>
          <li>Two-factor authentication enabled on your user profile</li>
        </ul>
      </div>
    </Step>

    <Step title="Open the My Applications tab">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Go to the <a href="https://developer.approvalmax.com/" target="_blank" rel="noopener noreferrer">ApprovalMax Developer Portal</a> and sign in. On the portal landing page, locate the <strong>Applications</strong> template and click <strong>View & Create</strong> to open the <strong>My Applications</strong> tab.</p>
      </div>
    </Step>

    <Step title="Create an ApprovalMax Application">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>Add new application</strong> to open the registration form, then enter a unique <strong>Application name</strong>.</p>
      </div>
    </Step>

    <Step title="Select OAuth scopes">
      <div data-guide-step data-guide-scopes="https://www.approvalmax.com/scopes/public_api/read,https://www.approvalmax.com/scopes/public_api/write" data-guide-display-scopes-list="https://www.approvalmax.com/scopes/public_api/read,https://www.approvalmax.com/scopes/public_api/write">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="https://www.approvalmax.com/scopes/public_api/read,https://www.approvalmax.com/scopes/public_api/write" 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 Standalone Document, Create Xero Bill, Create Xero Purchase Order, Create Xero Quote, Create Xero Sales Invoice, Delete Request Attachment, Edit Standalone Document, Edit Xero Bill, Edit Xero Purchase Order, Edit Xero Quote, Edit Xero Sales Invoice, Get NetSuite Bill Payment, Get NetSuite Expense Report, Get NetSuite Invoice, Get NetSuite Item Receipt, Get NetSuite Journal Entry, Get NetSuite Purchase Order, Get NetSuite Sales Order, Get NetSuite Vendor Bill, Get QuickBooks Bill, Get QuickBooks Expense, Get QuickBooks Purchase Order, Get Request Attachment, Get Request Comment Attachment, Get Standalone Document, Get User Profile, Get Xero Batch Payment, Get Xero Bill, Get Xero Credit Note, Get Xero Purchase Order, Get Xero Quote, Get Xero Sales Invoice, List Companies, List NetSuite Bill Payments, List NetSuite Expense Reports, List NetSuite Invoices, List NetSuite Item Receipts, List NetSuite Journal Entries, List NetSuite Purchase Orders, List NetSuite Sales Orders, List NetSuite Vendor Bills, List QuickBooks Bills, List QuickBooks Expenses, List QuickBooks Purchase Orders, List Standalone Currencies, List Standalone Documents, List Standalone Workflows, List User Profiles, List Xero Accounts, List Xero Batch Payments, List Xero Bills, List Xero Branding Themes, List Xero Contacts, List Xero Credit Notes, List Xero Currencies, List Xero Items, List Xero Purchase Orders, List Xero Quotes, List Xero Sales Invoices, List Xero Taxes, List Xero Tracking Categories, Mark Xero Purchase Order As Billed, Submit Standalone Document, Upload Request Attachment</span>
        </div>

        <p>In the <strong>Scopes</strong> field of the registration form, select the OAuth scopes that match the operations your integration needs. `openid` and `offline_access` are always included automatically. Selecting both read and write is recommended for full functionality.</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.approvalmax.com/scopes/public_api/read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.approvalmax.com/scopes/public_api/read" title="Copy scope" data-copy="https://www.approvalmax.com/scopes/public_api/read">
                  <span className="connector-guide-scope-copy__label">[https://www.approvalmax.com/scopes/public\_api/read](https://www.approvalmax.com/scopes/public_api/read)</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="https://www.approvalmax.com/scopes/public_api/write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.approvalmax.com/scopes/public_api/write" title="Copy scope" data-copy="https://www.approvalmax.com/scopes/public_api/write">
                  <span className="connector-guide-scope-copy__label">[https://www.approvalmax.com/scopes/public\_api/write](https://www.approvalmax.com/scopes/public_api/write)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Set the Redirect URL">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Set the <strong>Redirect URL</strong> field to: `https://api.stackone.com/connect/oauth2/approvalmax/callback`</p>
      </div>
    </Step>

    <Step title="Complete registration">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>CREATE</strong> to register the application. You will only see the Client Secret once on the next screen, so be ready to copy it immediately.</p>
      </div>
    </Step>

    <Step title="Copy Client Credentials">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>After creating the application:</p>

        <ul>
          <li>Copy the <strong>Client ID</strong></li>
          <li>Copy the <strong>Client Secret</strong> immediately - it is only shown once (it can be regenerated later if lost)</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configuring OAuth Scopes</h2>

  <p>Optionally override the OAuth scopes used during the connection flow. `openid` and `offline_access` are always included automatically. If not specified, read and write API scopes are used by default.</p>

  <Steps>
    <Step title="Choose your scopes">
      <div data-guide-step data-guide-scopes="https://www.approvalmax.com/scopes/public_api/read,https://www.approvalmax.com/scopes/public_api/write" data-guide-display-scopes-list="https://www.approvalmax.com/scopes/public_api/read,https://www.approvalmax.com/scopes/public_api/write">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="https://www.approvalmax.com/scopes/public_api/read,https://www.approvalmax.com/scopes/public_api/write" 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 Standalone Document, Create Xero Bill, Create Xero Purchase Order, Create Xero Quote, Create Xero Sales Invoice, Delete Request Attachment, Edit Standalone Document, Edit Xero Bill, Edit Xero Purchase Order, Edit Xero Quote, Edit Xero Sales Invoice, Get NetSuite Bill Payment, Get NetSuite Expense Report, Get NetSuite Invoice, Get NetSuite Item Receipt, Get NetSuite Journal Entry, Get NetSuite Purchase Order, Get NetSuite Sales Order, Get NetSuite Vendor Bill, Get QuickBooks Bill, Get QuickBooks Expense, Get QuickBooks Purchase Order, Get Request Attachment, Get Request Comment Attachment, Get Standalone Document, Get User Profile, Get Xero Batch Payment, Get Xero Bill, Get Xero Credit Note, Get Xero Purchase Order, Get Xero Quote, Get Xero Sales Invoice, List Companies, List NetSuite Bill Payments, List NetSuite Expense Reports, List NetSuite Invoices, List NetSuite Item Receipts, List NetSuite Journal Entries, List NetSuite Purchase Orders, List NetSuite Sales Orders, List NetSuite Vendor Bills, List QuickBooks Bills, List QuickBooks Expenses, List QuickBooks Purchase Orders, List Standalone Currencies, List Standalone Documents, List Standalone Workflows, List User Profiles, List Xero Accounts, List Xero Batch Payments, List Xero Bills, List Xero Branding Themes, List Xero Contacts, List Xero Credit Notes, List Xero Currencies, List Xero Items, List Xero Purchase Orders, List Xero Quotes, List Xero Sales Invoices, List Xero Taxes, List Xero Tracking Categories, Mark Xero Purchase Order As Billed, Submit Standalone Document, Upload Request Attachment</span>
        </div>

        <p>Enter the desired scopes as a space-separated list in the <strong>Scopes</strong> field of the auth configuration.</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.approvalmax.com/scopes/public_api/read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.approvalmax.com/scopes/public_api/read" title="Copy scope" data-copy="https://www.approvalmax.com/scopes/public_api/read">
                  <span className="connector-guide-scope-copy__label">[https://www.approvalmax.com/scopes/public\_api/read](https://www.approvalmax.com/scopes/public_api/read)</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="https://www.approvalmax.com/scopes/public_api/write">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.approvalmax.com/scopes/public_api/write" title="Copy scope" data-copy="https://www.approvalmax.com/scopes/public_api/write">
                  <span className="connector-guide-scope-copy__label">[https://www.approvalmax.com/scopes/public\_api/write](https://www.approvalmax.com/scopes/public_api/write)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>ApprovalMax</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>ApprovalMax</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>Client ID</strong></li>
          <li><strong>Client Secret</strong></li>
          <li><strong>Scopes</strong> (Optional)</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>ApprovalMax</strong>.
