Payments

Set up Square

Take card payments through Square in your booking widget and on your booking page. Customers pay by card, and Apple Pay and Google Pay work once you register your website. The money goes straight into your own Square account. FullClass never receives or holds it.

What you get

  • Set up in one click by signing in to Square. There is nothing to copy or paste, and FullClass renews the connection for you.
  • A card form inside your booking widget. Square provides it, so card numbers go straight to Square.
  • Apple Pay and Google Pay on the websites you register. You do not need to add any file to your website.
  • Refunds you can give from the booking's page in the admin.
  • Optional syncing of refunds you make in Square, so the booking in FullClass™ updates too. This uses a webhook (see below).

What you need

  • A Square account.
  • The owner login for FullClass. Only the owner can open the payment settings.
  • About 15 minutes to set up a test, plus a short test booking.

Connect with Square (the easy way)

With Connect with Square, you do not copy anything. FullClass fills in your Square details for you and sets Square as the way customers pay.

  1. Sign in to FullClass as the owner and open Settings → Payments.
  2. Under Choose how customers pay, pick Square. Then click Connect with Square.
  3. Sign in to Square and approve access. You come back to the Payments page, which says Square connected successfully.
  4. That is it. To stop taking Square payments later, click Disconnect on the same page.
Renewals are automatic. Signing in to Square gives FullClass a pass that it renews for you. Your connection keeps working and you never have to enter anything again. Prefer to paste your details yourself? Open Enter credentials manually instead and follow the steps below.
Don't see the button? Use the manual setup below. Once saved, it works exactly the same.

Sandbox setup (recommended first)

The sandbox is Square's test mode. You can book and pay with test card numbers, and no real money moves. Test there first. When you are happy, swap in your live details, which Square calls "production".

Step 1. Get your Square details

  1. Sign in to developer.squareup.com. This is Square's site for connecting other apps, like FullClass.
  2. Open an existing application, or create a new one. An application here is just a named connection to your Square account.
  3. Under Credentials, copy the Application ID (the name of the connection) and the Access token (the secret password for it). Sandbox IDs start with sandbox-. Production IDs start with sq0idp-.
  4. Open Locations in the same app, or in your Square Dashboard. Copy the Location ID of the location that should receive the payments.
FullClass spots test or live for you. It reads the start of the Application ID to tell sandbox from production. There is no switch to set. Just copy all your details from the same tab in Square.

Step 2. Paste the details into FullClass

  1. Sign in to FullClass as the owner.
  2. Open Settings → Payments.
  3. Under Choose how customers pay, pick Square. If you see Connect with Square, open Enter credentials manually instead to reach the boxes.
  4. Paste the Application ID, Access token and Location ID.
  5. Click Save changes. (You can add the optional webhook key later, see below.)
Switching to Stripe later. Once Square is set up, you cannot pick Stripe, so a stray click cannot lose your Square details. To move to Stripe, click Disconnect first. This erases your saved Square details, and then you can pick Stripe. To change your Square details, just edit them and save. You do not need to disconnect.

Test a booking from start to finish

  1. Open your booking page, the way a customer would.
  2. Pick a paid event and fill in the booking form.
  3. Pay with a Square sandbox test card. Square lists them on its Square sandbox test cards page.
  4. Check that the booking appears in the admin, paid through Square, with a Square payment ID.
Test mode in FullClass. While your sandbox details are saved, FullClass is in test mode. Every admin page shows a Test mode banner. Your booking page shows a notice that no real payment will be taken. Both go away as soon as you save your production details. Anything sold in test mode stays out of your revenue reports and dashboard takings, even after you go live. To learn more, see Test bookings before you go live.

Apple Pay and Google Pay

Square checks your website itself, so there is no file to add to it. Open Settings → Payments → Wallet payment domains. Find each website where your widget appears and click Register.

For the full steps and fixes, see Apple Pay and Google Pay.

Removing a registered website. Square does not let other apps remove a registered website. Deleting it in FullClass only removes it from your list. To remove it from Square too, contact Square support.

Go live

  1. On developer.squareup.com, switch to the Production tab.
  2. Copy the production Application ID (it starts with sq0idp-), the Access token and the Location ID.
  3. Paste them into Settings → Payments in FullClass and click Save changes.
  4. Make one small real booking. Then refund it from the booking's page, to check that both payments and refunds work.

Webhook signature key (optional, recommended)

A webhook is a message Square sends to FullClass when something changes in Square. Without one, a refund you make inside Square (not from the FullClass admin) will not show on the booking. The webhook signature key is a secret that lets FullClass check each message really came from Square.

  1. On developer.squareup.com, open your app's Webhooks tab.
  2. Add a webhook subscription that points at https://your-fullclass-domain/webhooks/square.
  3. Subscribe to refund events.
  4. Square makes a signature key. Copy it.
  5. Paste it into the Webhook signature key box on Settings → Payments in FullClass.
Live messages need the key. In production, FullClass refuses Square webhook messages that are not signed with a valid key. If you have a Square webhook subscription switched on, make sure its signature key is saved here.
Connected with Square sign-in? The webhook key is separate from signing in. To sync refunds you make inside Square back to your bookings, you still add the webhook subscription and paste its signature key here. Open Update credentials manually to find the box. Charges and refunds you make in FullClass work without it.

Refunds

  • Refund from the booking's page in the admin. You can refund the full amount or part of it.
  • If you also set up the webhook above, refunds you make in Square (for example from the Square Dashboard) update the booking automatically.

A refund from FullClass reaches Square as an amount of money, not as a return of the items sold. That is because Square does not let other apps return single items. If Square syncs to QuickBooks Online, the refund is booked against the Square sales item with no tax, whatever the original sale was. Ask your bookkeeper to correct these refunds as follows.

  • Gift card refunds (a card with a money balance): move the amount from sales income to your gift card liability account, where the sale was recorded.
  • Other refunds (bookings, class passes, private events): move the tax included in the refund from sales income to your sales tax payable account.

Each refund in QuickBooks Online carries the description of the original sale, such as Gift card purchase or the booking number. Use it to find them.

Gift cards in your books

A gift card sold through Square reaches Square as a sale with one item. That way your bookkeeping can tell it apart from class income.

  • Gift card: a card with a money balance and no tax on it. Tax is charged later, when the card pays for a class.
  • Class pass: a pass for a number of classes. It carries the tax you set for class passes in your gift card settings.

If Square syncs to QuickBooks Online, map the Gift card item to your gift card liability account, not to sales income. Then unused cards are not counted as income.

A refunded gift card does not follow that mapping. See Refunds for the correction to make.

Troubleshooting

Card form doesn't appear
Check that Square is picked under Choose how customers pay, and that all three details are saved. The Application ID decides test or live, so an Access token from the other tab will make the card check fail.
The card check fails
The Application ID and Access token must come from the same tab in Square (Sandbox or Production). You cannot mix them.
Apple Pay button missing on a registered website
Check the customer's browser. Apple Pay needs Safari on a Mac, iPhone or iPad. Google Pay needs Chrome with a payment card set up. Also check that the website shows Registered under Wallet payment domains.
A refund made in Square didn't update the booking
You need a webhook subscription in Square and a saved signature key in FullClass. See Webhook signature key.

See also Troubleshooting → Payment fails.