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

# Square

> When a merchant picks Square on the connect page, one click authorizes via OAuth and Ringup settles on their Square account.

Square is one of the processors on Ringup's hosted connect page (reached from the generic Connect button, see [Payment providers](/payment-providers/overview)). When a merchant picks **Square**, one click authorizes via **OAuth** and Ringup settles on their Square account from then on. You embed nothing Square-specific, and you never touch card data or the merchant's password.

## What happens

<Steps>
  <Step title="The merchant opens your Connect button">
    It lands on Ringup's hosted connect page, where Square is listed.
  </Step>

  <Step title="They pick Square and approve">
    Square's own authorization screen opens; they approve and return to a confirmation page.
  </Step>

  <Step title="They're live immediately">
    The merchant can take payments the moment they connect, with nothing else for you to do. Ringup fires `merchant.connected` (carrying `merchant_id`) so you can reflect it in your own UI if you like.
  </Step>
</Steps>

## What the merchant grants

Square requests only what Ringup needs to recognize callers and settle on the merchant's account:

<ParamField path="MERCHANT_PROFILE_READ">Read the business profile (name, locations).</ParamField>
<ParamField path="PAYMENTS_WRITE">Take payments on the merchant's account.</ParamField>
<ParamField path="PAYMENTS_WRITE_SHARED_ONFILE">Charge a caller's saved card across the merchants on your app (the recognition primitive).</ParamField>
<ParamField path="ORDERS_WRITE">Attach payment to the order.</ParamField>
<ParamField path="CUSTOMERS_READ, CUSTOMERS_WRITE">Recognize the caller and keep their card on file.</ParamField>

<Note>Square redirects back to Ringup, which exchanges the code for the merchant's token on the server. The client secret never touches your dashboard or the button, and no card data ever passes through your systems.</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="All payment providers" href="/payment-providers/overview">The generic Connect button and the hosted page.</Card>
  <Card title="Webhooks" href="/concepts/webhooks">Handle `merchant.connected` and payment events.</Card>
</CardGroup>
