View FAQ →

Payments

Connect Square

Take card payments on quotes through your own Square account.

Category
Payments
Setup time
Under 15 minutes
Sync
Two-way

Overview

Square + TackQuote

TackQuote's Square integration creates a Square hosted payment link for a quote and sends the buyer to Square's own checkout page, so card details never touch TackQuote. Buyer checkout tries connected gateways in a fixed order and Square sits third — below Stripe and Authorize.net, above Adyen — so a quote only reaches Square when neither of those is connected. The quote is carried in a marker Square copies onto the resulting payment and echoes in its webhook, which is what ties the money back to the right quote. Settlement is signature-verified before it is believed: Square signs the notification URL together with the raw body, and the paid amount and currency are compared against the stored quote total before the quote is marked paid.

Connect a Square access token and location, register the per-tenant webhook URL TackQuote shows you, and quotes start routing to Square.

Where to connect. Setup happens in the seller portal — most connectors under Integrations, the rest on the Settings page named in the setup steps below.

Before you start

What you'll need

  • Square account with a location that can take card payments
  • Square application access token (Developer Dashboard → Credentials)
  • The Location ID payment links should be created against
  • A webhook subscribed to payment.updated, and its signature key

Setup

How to connect Square

  1. Create a Square application

    In the Square Developer Dashboard open your application → Credentials and copy the access token. Sandbox and production tokens are separate.
  2. Find your Location ID

    Payment links are created against one Square location. Copy the ID of the location the quote payments should belong to.
  3. Add a webhook subscription

    Subscribe a webhook to payment.updated pointing at the per-tenant URL shown in TackQuote Settings → Payments, and copy its signature key. Square signs the URL as well as the body, so it must match character for character.
  4. Connect and go live

    Enter the access token, Location ID and signature key in Settings → Payments → Square, and pick sandbox or production. A quote routes to Square only when neither Stripe nor Authorize.net is connected.

Capabilities

What you get

Hosted Payment Link

Each quote gets its own Square-hosted checkout page created against the location you choose, so card details never reach TackQuote.

Signed Webhooks

Square signs the registered notification URL together with the raw request body. TackQuote recomputes that signature with your own signature key and rejects anything that does not match.

Amount and Currency Check

A quote is marked paid only when Square reports the payment COMPLETED and the amount and currency equal the stored quote total. An authorised-but-not-captured payment settles nothing.

Your Other Square Sales Are Left Alone

Square notifies on every payment your account takes, including in-person POS sales. Only payments carrying the TackQuote quote marker are acted on; the rest are acknowledged and ignored.

FAQ

Square questions

Will my in-person Square sales affect TackQuote quotes?

No. Square sends payment.updated for every payment your account takes, including POS sales that have nothing to do with a quote. TackQuote settles only payments carrying its own quote marker and acknowledges the rest without acting on them, so an unrelated sale can never mark a quote paid.

Can TackQuote refund a Square payment?

No. Refunds are not implemented for Square — issue them from the Square dashboard. A refund made there is not reflected back onto the quote.

Square keeps rejecting my webhook signature. What is wrong?

Almost always the URL. Square includes the notification URL in what it signs, so the URL registered in Square has to match the one TackQuote verifies against exactly. If your Square subscription points at a different public hostname, paste that URL into the optional Registered Notification URL field so both sides sign the same string.

See the Square overview page