Integrations ยท Payment providers
Squarespace orders and refunds, each linked to the buyer's visit.
Allow Tally on Squarespace's own confirmation page, or paste an API key made on the site. A year of orders comes in, refunds included, then each new one within seconds, and two pieces of code in Code Injection tie every order to the visit that brought its buyer.
Tally isn't endorsed by or affiliated with Squarespace.
14 days free, no card needed.
01What Tally reads
- Every paid order, dated when it was placed, counted as its grand total minus tax: shipping stays in, discounts are already taken off, and the amount is read to the cent in the store's currency.
- Each refund on the day it happened, from the order's transactions, carrying the order's share of tax, since Squarespace records none on a refund.
- The past 365 days as soon as you connect, then each new order within seconds through one webhook subscription, when the store is connected in one click.
- A catch-up that reads every order changed since it last looked: each 30 minutes for a one-click connection, each 10 for an API key, which gets no notifications.
- Only what the numbers need: amounts, dates, payment state, and hashes of the customer's email and the order number. Names, addresses, phone numbers, line items, form answers and notes are never stored.
02How a sale finds its visit
- Order status pageTally's lines in Code Injection's Order Status Page and Order Confirmation Page fields send the order number as the buyer lands there after checkout. It's hashed on arrival and matched to the order. High confidence.
- EmailWithout those lines, the customer's email on the order, hashed as soon as it's read, links the sale when your site called tally('identify') with that address. Medium confidence.
- RefundsA refund takes the link of the Squarespace order whose money it gives back.
03What it can't read
- Orders placed while the site's checkout is in test mode aren't counted.
- An order on a payment plan isn't counted until it's fully paid.
- Refunds made outside Squarespace, such as in Stripe's dashboard, aren't in Squarespace's API, so they aren't counted either.
- Squarespace runs no app's code on a store, so the snippet goes in by hand through Code Injection, which Squarespace offers on the Core, Plus and Advanced plans and some legacy ones, not on Basic or Personal.
- With an API key there are no webhooks, which Squarespace gives only to apps: new orders arrive every 10 minutes instead of within seconds.
04Connecting it
- On your site's Integrations page, open Squarespace and choose Connect with Squarespace, then Continue to Squarespace. Sign in as the site's owner or an administrator, pick the site, and press Allow on Squarespace's confirmation page.
- The confirmation page asks to read orders and transactions, offline, so Tally keeps reading between your visits. The past 365 days come in, and a webhook subscription brings each order after that.
- Or make an API key: in Squarespace, Settings, Developer Tools, Developer API Keys, with Orders and Transactions read only, and paste it on the same panel.
- In Squarespace, open Pages, Custom Code, Code Injection. Paste the snippet into Header, and the order status lines below into both the Order Status Page and the Order Confirmation Page fields.
- Check from a private window, signed out: a signed-in owner is sent to the editor and never sees the store as a visitor.
What the API key needs
Tally asks for an API key that can do only this, and checks each permission with a real call when you paste it, so a missing one is named:
| Permission | Access | Why |
|---|---|---|
| Orders | Read | Every paid order: its total and tax, and the customer's email (hashed at once, never stored). Names and addresses are never stored. |
| Transactions | Read | When each refund happened, and how much it gave back. |
How to make it: Squarespace's guide.
The order status lines (the Order Status Page and Order Confirmation Page fields)
{.if firstPageView}
<script>
window.tally = window.tally || function () { (tally.q = tally.q || []).push(arguments); };
String('{orderId}').split(/[^0-9]+/).filter(Boolean).forEach(function (order) {
tally('squarespace_order', { order: order });
});
</script>
{.end}
05Questions
Does Tally change anything in my store?
No. It reads orders and their transactions, and makes one webhook subscription so new orders reach it; it never changes an order. The code in Code Injection only counts visits and sends the order number from the order status page.
Why paste the same lines into two order page fields?
Squarespace sends buyers of physical, download and service products to its order status page, and buyers of gift cards, subscriptions and memberships to its order confirmation page. With the lines in both, every kind of order can be linked to its visit.
Should I connect in one click or with an API key?
In one click if you can. Squarespace gives webhooks only to apps, so a one-click connection sees each new order within seconds, while a key's orders arrive every 10 minutes. Both import the past 365 days and link orders the same way.
Are test orders counted?
No. An order placed while the site's checkout is in test mode isn't a sale, so it stays out of revenue. The first linked order you'll see on Sales is a real one.
How do I disconnect Tally from my store?
In Squarespace's Extensions panel, under Connected extensions, or on Tally's Integrations page; the orders already imported stay, with their receipts. Disconnecting in Tally doesn't take it off Squarespace's list, so disconnect it there as well.