# Square

> Connect Square with production credentials — the Application ID, access token and Location ID, the location's currency, and the webhook ESTAGE adds.

Source: https://support.estage.com/commerce-payments-square
Part of the ESTAGE Support help center (https://support.estage.com). Full knowledge base: https://support.estage.com/llms-full.txt

---

**Square** takes card payments in a Square card form on your page — on order forms, paid meetings
and the online store — into your own Square account. It charges in the currency of the Square
location you connect.

| Where | What Square does |
| --- | --- |
| **[Order forms](https://support.estage.com/order-forms)** | One-time products, subscriptions, free trials and coupons. Returning buyers can pay with a [saved card](https://support.estage.com/order-forms-buyer-experience#saved-cards-returning-buyers). |
| **[Paid meetings](https://support.estage.com/rooms-meeting-booking)** | The booking is paid on the page. A cancelled booking is flagged **Refund by hand**, and you refund it in Square. |
| **[Online store](https://support.estage.com/store)** | The storefront checkout, in the location's currency. |

## Before you start

- **A Square account and an application** in the Square Developer Console. The application is
  where the credentials come from.
- **Production credentials only.** ESTAGE connects to Square's production environment, so sandbox
  credentials don't work. To test, make a small real purchase and refund it.
- **One location.** Payments go to the location whose ID you enter, in that location's currency.
- **Business Details.** Square can't be ticked on an order form until every required field in
  [Business Details](https://support.estage.com/project-settings-business-details) is saved.

## Getting your credentials

1. Sign in to the [Square Developer Console](https://developer.squareup.com/apps) and open your
   application.
2. Choose **Credentials** in the left pane, then **Production** at the top of the page.
3. Copy the **Application ID**.
4. In the **Production Access token** box, select **Show** and copy the token.
5. Open **Locations** and copy the ID of the location that should receive the payments.

Square's guides: [Access tokens](https://developer.squareup.com/docs/build-basics/access-tokens)
and [Locations](https://developer.squareup.com/docs/locations-api).

## Connecting Square

1. In Genesis, open **Settings → Payment Processing**.
2. On the **Square** card, select **Connect**.
3. Paste the **Application ID**, the **Access Token** and the **Location ID**.
4. Select **Connect My Account**.

*Square connected* appears and the card shows **ACTIVE**. If Square refuses the access token, the
error begins with *Square:* and says why.

From your CRM it's the same: **Settings → Payments**, **Connect** on Square, the same three
fields, then **Connect**.

## The webhook

ESTAGE registers a webhook on your Square account as you connect; there's nothing to paste.
Through it ESTAGE records:

- refunds you make in Square on [store orders](https://support.estage.com/store-orders#refunds-and-cancelling);
- each paid invoice of a subscription, so the order links to the latest one.

A refund you make in Square for an order-form purchase or a paid booking isn't sent to ESTAGE:
the order and the access it granted stay as they were. If the access should end, remove it on the
buyer's [contact record](https://support.estage.com/crm-contacts#the-contact-record) in the CRM.

## Turning Square on for products

1. In the CRM, open **Products** and then the product.
2. On the **Pricing** tab, add **Square** under **Payment providers**. The **Currency** menu
   disappears: the product takes the currency of your Square location.
3. Enter the price, then select **Update**. For a monthly or annual product, saving creates its
   plan in your Square account.
4. In the [order form](https://support.estage.com/order-forms-configuring), tick **Square** in step 2.

A store product works the same way: with **Square** among its **Payment providers**, it's priced
in the location's currency.

## Testing and going live

There's no test mode, so try it with real money:

1. Connect Square with your production credentials and turn it on for an inexpensive product.
2. On your published site, buy it with a real card.
3. Check the order in the CRM under **Orders**, then refund the payment in Square. The order in
   ESTAGE stays as it is.

To move to another Square account or location, disconnect Square, connect it with the new
credentials, then add **Square** back under **Payment providers** on each product and select
**Update**.

## Things worth knowing

- **Square sells in one currency** — its location's. Choosing Square beside another provider
  prices the product in Square's currency, and a store cart in any other currency is refused
  with *Square location takes …, the cart is in …*.
- **Refunds are made in Square.** A store order records the refund by itself; for other orders,
  see [The webhook](#the-webhook).
- **Paid bookings aren't refunded automatically.** Cancelling one flags it **Refund by hand** in
  [Bookings](https://support.estage.com/crm-bookings#acting-on-a-booking); refund it in Square.

Related: [Payment Processing](https://support.estage.com/commerce-payments) · [Online store](https://support.estage.com/store)
