Authorize your Square account so the agent can search the catalog, look up orders, and create Square-hosted payment links
Authorizing Square creates an agent that reads your Square catalog live, looks up a customer’s orders, previews order pricing, and creates Square-hosted checkout links, on the web widget and every other channel. Square is connected in the browser, not with lua integrations, and the same authorization also enables the appointments tools.Verified against lua-cli 3.33.0.Before you begin
A Square account with the business you want to connect; if it has several businesses you choose one during authorization.
An email Lua can link your admin account to: the merchant owner’s email, else the main location’s business email, else the first team member marked as owner.
Choosing the business when the Square account has more than one.
Review the permissions and select Allow. Lua requests items (read), orders (read and write), payments (write), customers (read and write), appointments and appointment settings (read and write), team members (read), and the merchant profile (read).
Square's permission screen for Lua.
2
Admin dashboard: finish setup
Square redirects to the admin dashboard, where the agent and its organization exist already and a persona is being drafted from your business details. Refine the persona and connect channels from there.
The admin dashboard after a successful Square authorization.
3
Try it
On the web widget or a connected channel, ask “Do you have a medium blue sundress?”. The agent searches the catalog and, on request, previews the order and creates a payment link.
Search catalog items by text, category, and product type (regular items, services, food and beverage, events, digital goods, donations); search catalog objects of any type; retrieve one object by ID.
Create the Square customer for the end user, or return the existing one, and read it back.
List the seller’s locations and retrieve one.
Search a customer’s orders by state, date range, fulfillment type, and fulfillment state; retrieve orders by ID; preview an order’s pricing without creating it.
Create a Square-hosted checkout link for an order, and read the merchant’s and a location’s checkout settings (accepted payment methods, tipping, policies).
Catalog, orders, and customers are read from Square on every call. Nothing is synced, so Products and Baskets stay empty for a Square agent, and inventory counts aren’t read: keep sold-out items out of the catalog, or mark them in the item name.
Square isn’t a Unified.to integration type, so there is no Integrations.passthrough('square', …). For endpoints the tools don’t cover, write a tool that calls Square’s API with your own access token from env() (see Call your API). To add your own tools to this agent, run lua init --agent-id <id> in a new folder (find the ID with lua agents --json --ci), then follow Add a tool.
One Square account (merchant) per agent; every location of that account is reachable. For an agent per location, create separate agents and authorize each.
Lua refreshes the Square access token itself. Revoking the app in Square (Settings › App Integrations › Lua › Disconnect App) stops the agent’s access; repeating the authorization reconnects it.
Disconnecting Lua under App Integrations in the Square Dashboard.
The business wasn’t selected, a permission was declined, or Square couldn’t provide an email to link (owner, main location, or an owner team member). Fix the account in Square and start again at auth.heylua.ai/square/auth.
The agent can't find an item
Search matches item and variation names within the product types it was asked for, live from Square. Give the item a descriptive name and try the exact name; there is no sync to wait for.
The wrong business is connected
Disconnect Lua under App Integrations in the Square Dashboard, start the authorization again, and pick the other business when asked.
Services, staff, availability, and bookings from the same authorization.
Channels
Sell on WhatsApp, Instagram, and Messenger with the same agent.
About the persona
Shape how the agent recommends and sells.
Call your API
A tool for Square endpoints the agent doesn’t have.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Lua CLI","colors":{"primary":"#ff173a","light":"#fe1052","dark":"#fe1052"},"logo":{"light":"https://mintcdn.com/luaglobal/UOJyCcnsFnLhTG7C/logo/light.png?fit=max\u0026auto=format\u0026n=UOJyCcnsFnLhTG7C\u0026q=85\u0026s=69c56f899e0ed6e1baf7e8af2844aeda","dark":"https://mintcdn.com/luaglobal/UOJyCcnsFnLhTG7C/logo/dark.png?fit=max\u0026auto=format\u0026n=UOJyCcnsFnLhTG7C\u0026q=85\u0026s=cd36baf234c6b37e1fe2a2018ba0a46c"},"favicon":"https://mintcdn.com/luaglobal/UOJyCcnsFnLhTG7C/favicon.png?fit=max\u0026auto=format\u0026n=UOJyCcnsFnLhTG7C\u0026q=85\u0026s=8e869fe65763f56356c86d09dcaaf9a6","navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Platform","href":"https://heylua.ai"}},"footer":{"socials":{"discord":"https://discord.gg/SRPEuwCzaD"}},"integrations":{"gtm":{"tagId":"GTM-P43XVQLH"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"luaglobal","hasAudioNarration":false,"actualSubdomain":"luaglobal","customDomains":["docs.heylua.ai"],"gitSource":{"type":"github","owner":"lua-ai-global","repo":"lua-dev-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae461b581cc57ac631e8572","collectionId":"299034ac-7832-4815-a6ba-2ec3899a53bc","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae461b581cc57ac631e8572"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ae461b581cc57ac631e8572","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Docs","count":178},{"language":"default","tag":"Reference","count":105},{"language":"default","tag":"CLI","count":42},{"language":"default","tag":"SDK","count":39},{"language":"default","tag":"Channels","count":38},{"language":"default","tag":"Build","count":30},{"language":"default","tag":"Concepts","count":26},{"language":"default","tag":"Primitives","count":25},{"language":"default","tag":"Ship logs to your stack","count":24},{"language":"default","tag":"REST API","count":24}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"integrations/square-ecommerce","slug":"/integrations/square-ecommerce","pageMetadata":{"title":"Square","description":"Authorize your Square account so the agent can search the catalog, look up orders, and create Square-hosted payment links","type":"how-to","href":"/integrations/square-ecommerce"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Authorize your Square account so the agent can search the catalog, look up orders, and create Square-hosted payment links\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,Columns,Frame,Heading,OptimizedImage,Step,Steps}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Authorizing Square creates an agent that reads your Square catalog live, looks up a customer’s orders, previews order pricing, and creates Square-hosted checkout links, on the web widget and every other `,_jsx(_components.a,{href:`/channels/overview`,children:`channel`}),`. Square is connected in the browser, not with `,_jsx(_components.code,{children:`lua integrations`}),`, and the same authorization also enables the `,_jsx(_components.a,{href:`/integrations/square-appointments`,children:`appointments tools`}),`.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.em,{children:`Verified against lua-cli 3.33.0.`})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Before you begin`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A Square account with the business you want to connect; if it has several businesses you choose one during authorization.`}),`\n`,_jsx(_components.li,{children:`An email Lua can link your admin account to: the merchant owner’s email, else the main location’s business email, else the first team member marked as owner.`}),`\n`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Browser: authorize Square`,children:[_jsxs(_components.p,{children:[`Open `,_jsx(_components.a,{href:`https://auth.heylua.ai/square/auth`,children:`https://auth.heylua.ai/square/auth`}),`, sign in to Square, and pick the business if asked.`]}),_jsx(Frame,{caption:`Choosing the business when the Square account has more than one.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-select-business.png?fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=a6990b9b4a34dabbe9441f796e008a70`,alt:`Square business selection`,\"data-og-width\":`1916`,width:`1916`,\"data-og-height\":`893`,height:`893`,\"data-path\":`images/integrations/square-select-business.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-select-business.png?w=280\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=c08a95e1b28337d8e777bca9eacb81f4 280w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-select-business.png?w=560\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=333cd11b727dd27c76df3ddcdba808e9 560w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-select-business.png?w=840\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=86d8f6fccabbecb11eb3c86fe717652c 840w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-select-business.png?w=1100\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=70937364e51444b8614a6981bdfc356e 1100w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-select-business.png?w=1650\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=7d8ffbd755d63b376315994a385ac640 1650w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-select-business.png?w=2500\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=e7f6028a18c95b88223429775b2ec7d4 2500w`})}),_jsxs(_components.p,{children:[`Review the permissions and select `,_jsx(_components.strong,{children:`Allow`}),`. Lua requests items (read), orders (read and write), payments (write), customers (read and write), appointments and appointment settings (read and write), team members (read), and the merchant profile (read).`]}),_jsx(Frame,{caption:`Square's permission screen for Lua.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-give-permissions.png?fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=272361fb037582ff20fc5e5047306c69`,alt:`Square permissions screen`,\"data-og-width\":`1916`,width:`1916`,\"data-og-height\":`893`,height:`893`,\"data-path\":`images/integrations/square-give-permissions.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-give-permissions.png?w=280\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=d9e36f2fc69da5504c4bd5d8969d4fb8 280w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-give-permissions.png?w=560\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=184f6c033bad758540b3eadcc6605b4e 560w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-give-permissions.png?w=840\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=f1e18c4c0d3e5ddb4a9f803566d997cc 840w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-give-permissions.png?w=1100\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=fbb560e32b276a86d4a1e275e3540945 1100w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-give-permissions.png?w=1650\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=15fa917f9c134d3329ef5b3ba276c619 1650w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-give-permissions.png?w=2500\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=28b48d58029731d6232ebbf21216c380 2500w`})})]}),_jsxs(Step,{title:`Admin dashboard: finish setup`,children:[_jsx(_components.p,{children:`Square redirects to the admin dashboard, where the agent and its organization exist already and a persona is being drafted from your business details. Refine the persona and connect channels from there.`}),_jsx(Frame,{caption:`The admin dashboard after a successful Square authorization.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-lua-dashboard.png?fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=182db5ac1fe55b510b4617779173eee0`,alt:`Lua admin dashboard after connecting Square`,\"data-og-width\":`1916`,width:`1916`,\"data-og-height\":`893`,height:`893`,\"data-path\":`images/integrations/square-lua-dashboard.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-lua-dashboard.png?w=280\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=478b8195a04fd3fc594851a4f0bd8e2d 280w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-lua-dashboard.png?w=560\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=74cf60c02f3ccc7a35e2d8c16839aa64 560w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-lua-dashboard.png?w=840\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=9f8f3915210efa820da043a3ec99fbd4 840w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-lua-dashboard.png?w=1100\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=9a74451b6924dad04594047e27975109 1100w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-lua-dashboard.png?w=1650\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=ba1917483c0bf41de868b232eec286f0 1650w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-lua-dashboard.png?w=2500\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=3918ba6bf85fec0e537e178263517c32 2500w`})})]}),_jsx(Step,{title:`Try it`,children:_jsx(_components.p,{children:`On the web widget or a connected channel, ask “Do you have a medium blue sundress?”. The agent searches the catalog and, on request, previews the order and creates a payment link.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-the-agent-can-do`,children:`What the agent can do`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Search catalog items by text, category, and product type (regular items, services, food and beverage, events, digital goods, donations); search catalog objects of any type; retrieve one object by ID.`}),`\n`,_jsx(_components.li,{children:`Create the Square customer for the end user, or return the existing one, and read it back.`}),`\n`,_jsx(_components.li,{children:`List the seller’s locations and retrieve one.`}),`\n`,_jsx(_components.li,{children:`Search a customer’s orders by state, date range, fulfillment type, and fulfillment state; retrieve orders by ID; preview an order’s pricing without creating it.`}),`\n`,_jsx(_components.li,{children:`Create a Square-hosted checkout link for an order, and read the merchant’s and a location’s checkout settings (accepted payment methods, tipping, policies).`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Catalog, orders, and customers are read from Square on every call. Nothing is synced, so `,_jsx(_components.a,{href:`/reference/sdk/products`,children:_jsx(_components.code,{children:`Products`})}),` and `,_jsx(_components.a,{href:`/reference/sdk/baskets`,children:_jsx(_components.code,{children:`Baskets`})}),` stay empty for a Square agent, and inventory counts aren’t read: keep sold-out items out of the catalog, or mark them in the item name.`]}),`\n`,_jsx(Heading,{level:`2`,id:`raw-api-access`,children:`Raw API access`}),`\n`,_jsxs(_components.p,{children:[`Square isn’t a Unified.to integration type, so there is no `,_jsx(_components.code,{children:`Integrations.passthrough('square', …)`}),`. For endpoints the tools don’t cover, write a tool that calls Square’s API with your own access token from `,_jsx(_components.code,{children:`env()`}),` (see `,_jsx(_components.a,{href:`/build/call-your-api`,children:`Call your API`}),`). To add your own tools to this agent, run `,_jsx(_components.code,{children:`lua init --agent-id \u003cid>`}),` in a new folder (find the ID with `,_jsx(_components.code,{children:`lua agents --json --ci`}),`), then follow `,_jsx(_components.a,{href:`/build/add-a-tool`,children:`Add a tool`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`limits`,children:`Limits`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`One Square account (merchant) per agent; every location of that account is reachable. For an agent per location, create separate agents and authorize each.`}),`\n`,_jsxs(_components.li,{children:[`Lua refreshes the Square access token itself. Revoking the app in Square (`,_jsx(_components.strong,{children:`Settings`}),` › `,_jsx(_components.strong,{children:`App Integrations`}),` › Lua › `,_jsx(_components.strong,{children:`Disconnect App`}),`) stops the agent’s access; repeating the authorization reconnects it.`]}),`\n`]}),`\n`,_jsx(Frame,{caption:`Disconnecting Lua under App Integrations in the Square Dashboard.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-disconnect-lua.png?fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=c855ff7d20bc1c05b9ac2b16d27c5b7b`,alt:`Square App Integrations with Lua listed`,\"data-og-width\":`1916`,width:`1916`,\"data-og-height\":`893`,height:`893`,\"data-path\":`images/integrations/square-disconnect-lua.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-disconnect-lua.png?w=280\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=04126199b425a579b11b876b3cafcf39 280w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-disconnect-lua.png?w=560\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=f5a46dd343d66a1c7e19c5d6693c5078 560w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-disconnect-lua.png?w=840\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=d09a299ba15f247ce8a1155402d01af2 840w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-disconnect-lua.png?w=1100\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=4cbe12595003359d484e0016f4fecd59 1100w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-disconnect-lua.png?w=1650\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=db9e67b6b29cfaa3ea7a005defbf8206 1650w, https://mintcdn.com/luaglobal/rumPLfJPc8qBvrVo/images/integrations/square-disconnect-lua.png?w=2500\u0026fit=max\u0026auto=format\u0026n=rumPLfJPc8qBvrVo\u0026q=85\u0026s=494989793a1ef0dc6979460d1b634286 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`if-it-isn’t-working`,children:`If it isn’t working`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Authorization fails or returns to Square`,id:`authorization-fails-or-returns-to-square`,children:_jsx(_components.p,{children:`The business wasn’t selected, a permission was declined, or Square couldn’t provide an email to link (owner, main location, or an owner team member). Fix the account in Square and start again at auth.heylua.ai/square/auth.`})}),_jsx(Accordion,{title:`The agent can't find an item`,id:`the-agent-cant-find-an-item`,children:_jsx(_components.p,{children:`Search matches item and variation names within the product types it was asked for, live from Square. Give the item a descriptive name and try the exact name; there is no sync to wait for.`})}),_jsx(Accordion,{title:`The wrong business is connected`,id:`the-wrong-business-is-connected`,children:_jsxs(_components.p,{children:[`Disconnect Lua under `,_jsx(_components.strong,{children:`App Integrations`}),` in the Square Dashboard, start the authorization again, and pick the other business when asked.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`Square Appointments`,href:`/integrations/square-appointments`,children:`Services, staff, availability, and bookings from the same authorization.`}),_jsx(Card,{title:`Channels`,href:`/channels/overview`,children:`Sell on WhatsApp, Instagram, and Messenger with the same agent.`}),_jsx(Card,{title:`About the persona`,href:`/concepts/persona`,children:`Shape how the agent recommends and sells.`}),_jsx(Card,{title:`Call your API`,href:`/build/call-your-api`,children:`A tool for Square endpoints the agent doesn’t have.`})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Square","description":"Authorize your Square account so the agent can search the catalog, look up orders, and create Square-hosted payment links","type":"how-to","href":"/integrations/square-ecommerce"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What the agent can do","slug":"what-the-agent-can-do","depth":2,"children":[]},{"title":"Raw API access","slug":"raw-api-access","depth":2,"children":[]},{"title":"Limits","slug":"limits","depth":2,"children":[]},{"title":"If it isn’t working","slug":"if-it-isn’t-working","depth":2,"children":[]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"luaglobal","siteName":"Lua CLI","title":"Square - Lua CLI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-13T08:09:43.295Z","originalFileLocation":"integrations/square-ecommerce.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Authorize your Square account so the agent can search the catalog, look up orders, and create Square-hosted payment links\">\u003cmeta data-mint-head name=\"application-name\" content=\"Lua CLI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/luaglobal/J64lPDADMxYATwfp/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/luaglobal/J64lPDADMxYATwfp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/luaglobal/J64lPDADMxYATwfp/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/luaglobal/J64lPDADMxYATwfp/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/luaglobal/J64lPDADMxYATwfp/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/luaglobal/J64lPDADMxYATwfp/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/luaglobal/J64lPDADMxYATwfp/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/luaglobal/J64lPDADMxYATwfp/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/luaglobal/J64lPDADMxYATwfp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Square - Lua CLI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Authorize your Square account so the agent can search the catalog, look up orders, and create Square-hosted payment links\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Lua CLI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.heylua.ai/integrations/square-ecommerce\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://luaglobal.mintlify.app/_mintlify/api/og/v2?division=Integrations\u0026amp;title=Square\u0026amp;description=Authorize+your+Square+account+so+the+agent+can+search+the+catalog%2C+look+up+orders%2C+and+create+Square-hosted+payment+links\u0026amp;theme=a3f5381ffcff7cb3f7370a15\u0026amp;signature=85bf31bcda7840b66f4d12c1bb52c7752846850589a25e780bbd63e6408df4ed\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Square - Lua CLI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Authorize your Square account so the agent can search the catalog, look up orders, and create Square-hosted payment links\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://luaglobal.mintlify.app/_mintlify/api/og/v2?division=Integrations\u0026amp;title=Square\u0026amp;description=Authorize+your+Square+account+so+the+agent+can+search+the+catalog%2C+look+up+orders%2C+and+create+Square-hosted+payment+links\u0026amp;theme=a3f5381ffcff7cb3f7370a15\u0026amp;signature=85bf31bcda7840b66f4d12c1bb52c7752846850589a25e780bbd63e6408df4ed\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/luaglobal/J64lPDADMxYATwfp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Lua CLI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff173a\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.heylua.ai/integrations/square-ecommerce\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integrations/square-ecommerce.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.heylua.ai/#organization\",\"name\":\"Lua CLI\",\"url\":\"https://docs.heylua.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/luaglobal/UOJyCcnsFnLhTG7C/logo/light.png?fit=max\u0026auto=format\u0026n=UOJyCcnsFnLhTG7C\u0026q=85\u0026s=69c56f899e0ed6e1baf7e8af2844aeda\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.heylua.ai#website\",\"name\":\"Lua CLI\",\"url\":\"https://docs.heylua.ai\",\"publisher\":{\"@id\":\"https://docs.heylua.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.heylua.ai/integrations/square-ecommerce#webpage\",\"url\":\"https://docs.heylua.ai/integrations/square-ecommerce\",\"name\":\"Square\",\"description\":\"Authorize your Square account so the agent can search the catalog, look up orders, and create Square-hosted payment links\",\"dateModified\":\"2026-09-13T08:09:43.295Z\",\"isPartOf\":{\"@id\":\"https://docs.heylua.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.heylua.ai/integrations/square-ecommerce#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.heylua.ai/integrations/square-ecommerce#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://docs.heylua.ai/integrations/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Square\",\"item\":\"https://docs.heylua.ai/integrations/square-ecommerce\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.heylua.ai/integrations/square-ecommerce#article\",\"headline\":\"Square\",\"name\":\"Square\",\"description\":\"Authorize your Square account so the agent can search the catalog, look up orders, and create Square-hosted payment links\",\"url\":\"https://docs.heylua.ai/integrations/square-ecommerce\",\"mainEntityOfPage\":{\"@id\":\"https://docs.heylua.ai/integrations/square-ecommerce#webpage\"},\"dateModified\":\"2026-09-13T08:09:43.295Z\",\"publisher\":{\"@id\":\"https://docs.heylua.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.heylua.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Lua CLI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Lua CLI","nav":{"global":null,"tabs":[{"tab":"Docs","groups":[{"group":"Get started","pages":[{"title":"Lua documentation","href":""},{"title":"Install the CLI and sign in","href":"/get-started/install"},{"title":"Build and release your first agent","sidebarTitle":"Quickstart","href":"/get-started/quickstart"},{"title":"Build a support agent","href":"/get-started/build-an-agent"},{"title":"Project structure","href":"/get-started/project-structure"},{"title":"Choose a primitive","href":"/get-started/choose-a-primitive"},{"title":"For operators","href":"/get-started/for-operators"},{"title":"Glossary","href":"/get-started/glossary"}]},{"group":"Concepts","pages":[{"title":"Agents","href":"/concepts/agents"},{"title":"Skills and tools","href":"/concepts/skills-and-tools"},{"title":"Persona","href":"/concepts/persona"},{"title":"Models","href":"/concepts/models"},{"title":"Environments","href":"/concepts/environments"},{"title":"Releases and versions","href":"/concepts/releases-and-versions"},{"title":"Execution contexts","href":"/concepts/execution-contexts"},{"title":"Credentials","href":"/concepts/credentials"},{"title":"Organizations and roles","href":"/concepts/organizations-and-roles"},{"title":"Approvers and notifications for shared agents","href":"/concepts/shared-agent-approvers"},{"title":"Channels","href":"/concepts/channels"},{"title":"Webhooks","href":"/concepts/webhooks"},{"title":"Triggers","href":"/concepts/triggers"},{"title":"Jobs","href":"/concepts/jobs"},{"title":"Workflows","href":"/concepts/workflows"},{"title":"Web apps","href":"/concepts/apps"},{"title":"Processors","href":"/concepts/processors"},{"title":"MCP servers","href":"/concepts/mcp-servers"},{"title":"Knowledge and features","href":"/concepts/knowledge-and-features"},{"title":"Integrations","href":"/concepts/integrations"},{"title":"Devices","href":"/concepts/devices"},{"title":"Voice","href":"/concepts/voice"},{"title":"Spaces","href":"/concepts/spaces"},{"title":"Governance","href":"/concepts/governance"},{"title":"Security and data","href":"/concepts/security-and-data"},{"title":"Agent templates","href":"/concepts/agent-templates"}]},{"group":"Build","pages":[{"title":"Add a tool to a skill","href":"/build/add-a-tool"},{"title":"Write skill context","href":"/build/write-skill-context"},{"title":"Call your API from a tool","href":"/build/call-your-api"},{"title":"Let your agent handle OAuth","href":"/build/handle-oauth"},{"title":"Store and search data","href":"/build/store-and-search-data"},{"title":"Identify users","href":"/build/identify-users"},{"title":"Handle a webhook","href":"/build/handle-a-webhook"},{"title":"Create a trigger","href":"/build/create-a-trigger"},{"title":"Schedule a recurring job","href":"/build/schedule-a-job"},{"title":"Send proactive messages","href":"/build/send-proactive-messages"},{"title":"Add human handoff","href":"/build/add-human-handoff"},{"title":"Add knowledge","href":"/build/add-knowledge"},{"title":"Use an MCP server","href":"/build/use-an-mcp-server"},{"title":"Use the browser","href":"/build/use-the-browser"},{"title":"Add a processor","href":"/build/add-a-processor"},{"title":"Compose agents","href":"/build/compose-agents"},{"title":"Supervise another agent","href":"/build/supervise-agents"},{"group":"Workflows","pages":[{"title":"Build and run your first workflow","href":"/build/workflows/quickstart"},{"title":"Author a workflow","href":"/build/workflows/authoring"},{"title":"Add approvals and signals","href":"/build/workflows/approvals-and-signals"},{"title":"Operate workflow runs","href":"/build/workflows/operate-runs"},{"title":"Use the Job tier","href":"/build/workflows/job-tier"},{"title":"Stage agent changes from a coding step","href":"/build/workflows/stage-agent-changes"},{"title":"Declare connections in a workflow","href":"/build/workflows/connections"},{"title":"Schedule a workflow and set goals","href":"/build/workflows/goals-and-schedules"},{"title":"Watch schedule health","href":"/build/workflows/schedule-health"},{"title":"Test a workflow offline","href":"/build/workflows/test-offline"}]},{"group":"Apps","pages":[{"title":"Build and open your first web app","href":"/build/apps/quickstart"},{"title":"Write routes and pages for a web app","href":"/build/apps/routes-and-pages"},{"title":"Talk to the agent from your app","href":"/build/apps/agent-pane"}]}]},{"group":"Channels","pages":[{"title":"Channels","href":"/channels/overview"},{"title":"Test an agent on Lua's channels","href":"/channels/quick-testing"},{"title":"Connect WhatsApp","href":"/channels/whatsapp"},{"title":"Connect Facebook Messenger","href":"/channels/messenger"},{"title":"Connect Instagram","href":"/channels/instagram"},{"title":"Connect Slack","href":"/channels/slack"},{"title":"Slack permissions","href":"/channels/slack-permissions"},{"title":"Connect Microsoft Teams","href":"/channels/teams"},{"title":"Bring your own Azure Bot to Teams","href":"/channels/teams-byo-azure-bot"},{"title":"Teams permissions","href":"/channels/teams-permissions"},{"title":"Connect email","href":"/channels/email"},{"title":"SMS and phone numbers","href":"/channels/sms-and-phone-numbers"},{"title":"Voice calls","href":"/channels/voice-calls"},{"title":"RCS","href":"/channels/rcs"},{"title":"iMessage","href":"/channels/imessage"},{"title":"Front","href":"/channels/front"},{"title":"MessageBird","href":"/channels/messagebird"},{"title":"Meetings","href":"/channels/meetings"},{"group":"Web widget","pages":[{"title":"Add the chat widget to your website","href":"/channels/web-widget/quickstart"},{"title":"Widget configuration","href":"/channels/web-widget/configuration"},{"title":"Style the widget","href":"/channels/web-widget/styling"},{"title":"Track widget events","href":"/channels/web-widget/events-and-analytics"},{"title":"Add the widget to a React, Vue, Angular, or Svelte app","sidebarTitle":"Frameworks","href":"/channels/web-widget/frameworks"},{"title":"Voice chat in the widget","href":"/channels/web-widget/voice-chat"},{"title":"Troubleshoot the widget","href":"/channels/web-widget/troubleshooting"}]},{"group":"Response formatting","pages":[{"title":"Response formatting","href":"/channels/formatting/overview"},{"title":"Block syntax","href":"/channels/formatting/syntax"},{"title":"list-item","href":"/channels/formatting/list-item"},{"title":"horizontal-list-item","href":"/channels/formatting/horizontal-list-item"},{"title":"actions","href":"/channels/formatting/actions"},{"title":"links","href":"/channels/formatting/links"},{"title":"images","href":"/channels/formatting/images"},{"title":"documents","href":"/channels/formatting/documents"},{"title":"form","href":"/channels/formatting/form"},{"title":"payment","href":"/channels/formatting/payment"},{"title":"flow","href":"/channels/formatting/flow"},{"title":"navigate","href":"/channels/formatting/navigate"},{"title":"reaction","href":"/channels/formatting/reaction"}]}]},{"group":"Integrations","pages":[{"title":"Integrations","href":"/integrations/overview"},{"title":"Connect a Unified.to integration","href":"/integrations/connect"},{"title":"Subscribe to integration events","href":"/integrations/events"},{"title":"Manage integration MCP tools","href":"/integrations/mcp"},{"title":"Add a custom MCP server","href":"/integrations/custom-mcp-servers"},{"title":"Call an integration's API directly","href":"/integrations/passthrough"},{"title":"Shopify","href":"/integrations/shopify"},{"title":"WooCommerce","description":"Install the Lua plugin on your WordPress store to give your agent an hourly synced catalog, baskets, checkout links, and a storefront widget","href":"/integrations/woocommerce"},{"title":"Square","href":"/integrations/square-ecommerce"},{"title":"Square Appointments","description":"Authorize your Square account so the agent can list services and staff, check availability, and book appointments","href":"/integrations/square-appointments"},{"title":"SimplyBook.me","href":"/integrations/simplybook"}]},{"group":"Devices","pages":[{"title":"Build your first device","sidebarTitle":"Start here","href":"/devices/quickstart"},{"title":"The device connection lifecycle","sidebarTitle":"How devices work","href":"/devices/how-it-works"},{"title":"Create a device credential","href":"/devices/credentials"},{"title":"Node device client","sidebarTitle":"Node client","href":"/devices/node-client"},{"title":"Python device client","sidebarTitle":"Python client","href":"/devices/python-client"},{"title":"MicroPython device client","sidebarTitle":"MicroPython client","href":"/devices/micropython-client"},{"title":"MQTT protocol","href":"/devices/mqtt-protocol"},{"title":"Expose device commands as tools","href":"/devices/commands-and-tools"},{"title":"Handle device triggers","href":"/devices/triggers"},{"title":"Upload files from a device","href":"/devices/cdn-uploads"},{"title":"Device reliability and limits","sidebarTitle":"Reliability and limits","href":"/devices/reliability-and-limits"},{"group":"Device examples","pages":[{"title":"Control a laptop from chat","sidebarTitle":"Laptop controller","href":"/devices/examples/mac-controller"},{"title":"Run a device on a Raspberry Pi Pico W","sidebarTitle":"Raspberry Pi Pico W","href":"/devices/examples/raspberry-pi-pico"},{"title":"Build a warehouse station","sidebarTitle":"Warehouse station","href":"/devices/examples/warehouse-inventory"},{"title":"Run a smart office with device groups","sidebarTitle":"Smart office","href":"/devices/examples/smart-office"},{"title":"Monitor a machine with a Pico W","sidebarTitle":"Factory monitor","href":"/devices/examples/industrial-sensor"}]}]},{"group":"Ship and operate","pages":[{"title":"Test an agent before you release","href":"/ship/testing"},{"title":"Release an agent to production","href":"/ship/releasing"},{"title":"Run the go-live checklist","href":"/ship/go-live-checklist"},{"title":"Automate releases in CI","sidebarTitle":"Automate with --ci","href":"/ship/ci-and-automation"},{"title":"Read logs and debug an agent","href":"/ship/logs-and-debugging"},{"title":"Back up and restore agent source","href":"/ship/backups-and-restore"},{"title":"Platform limits","href":"/ship/limits"},{"title":"Troubleshoot the CLI","href":"/ship/troubleshooting"}]},{"group":"Ship logs to your stack","pages":[{"title":"Ship logs to your stack","href":"/drains/overview"},{"title":"Event schema","href":"/drains/event-schema"},{"title":"Emit your own fields","href":"/drains/emit-your-own-fields"},{"title":"Delivery records","sidebarTitle":"delivery","href":"/drains/sources/delivery"},{"title":"Workflow audit records","sidebarTitle":"workflow-audit","href":"/drains/sources/workflow-audit"},{"title":"Generic HTTPS","href":"/drains/generic-https"},{"title":"OpenTelemetry","href":"/drains/opentelemetry"},{"title":"Datadog","href":"/drains/datadog"},{"title":"Better Stack","href":"/drains/better-stack"},{"title":"Splunk","href":"/drains/splunk"},{"title":"Grafana Loki","href":"/drains/loki"},{"title":"Axiom","href":"/drains/axiom"},{"title":"New Relic","href":"/drains/new-relic"},{"title":"Sumo Logic","href":"/drains/sumo-logic"},{"title":"Object storage","href":"/drains/object-storage"},{"title":"Verify signatures","href":"/drains/verify-signatures"},{"title":"Protecting your destination","href":"/drains/protecting-your-destination"},{"title":"Delivery guarantees","href":"/drains/delivery-guarantees"},{"title":"Drain notices","href":"/drains/notifications"},{"title":"Usage and plan quotas","href":"/drains/usage-and-quotas"},{"title":"Egress addresses and delivery policy","href":"/drains/egress"},{"title":"Datadog monitor pack","href":"/drains/packs/datadog-monitors"},{"title":"Grafana dashboard","href":"/drains/packs/grafana-dashboard"},{"title":"OpenTelemetry Collector config","href":"/drains/packs/otel-collector"}]},{"group":"Marketplace","pages":[{"title":"Marketplace","href":"/marketplace/overview"},{"title":"Publish an agent template","href":"/marketplace/publish-a-template"},{"title":"Template manifest","href":"/marketplace/manifest"},{"title":"Lifecycle hooks","href":"/marketplace/lifecycle-hooks"},{"title":"Lints and consent","href":"/marketplace/lints-and-consent"},{"title":"Install and apply a template","href":"/marketplace/install-and-apply"},{"title":"Check fleet health","href":"/marketplace/fleet-health"},{"title":"Publish and install marketplace skills","href":"/marketplace/skills"}]},{"group":"Build with AI","pages":[{"title":"Build a Lua agent with a coding assistant","sidebarTitle":"Overview","href":"/build-with-ai/overview"},{"title":"Add the docs MCP server to your coding assistant","sidebarTitle":"Docs MCP server","href":"/build-with-ai/docs-mcp"},{"title":"Build with the Claude Code plugin","sidebarTitle":"Claude Code plugin","href":"/build-with-ai/claude-code-plugin"}]},{"group":"Examples","pages":[{"title":"Examples","href":"/examples/overview"},{"title":"Customer support agent","href":"/examples/customer-support"},{"title":"E-commerce shopping agent","href":"/examples/ecommerce-assistant"},{"title":"Healthcare patient portal","href":"/examples/healthcare-portal"},{"title":"Door access over WhatsApp","href":"/examples/iot-door-assistant"},{"title":"Greenhouse relay control","href":"/examples/iot-smart-light"}]}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/sdk/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Square - Lua CLI","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DXXFP6nH.js","DynamicMarkdown-B54_zNBF.js","zoom-image-lightbox-BG6oD64b.js","lightbox-handle-r17bVUz3.js"]}