Square Setup
A few Square settings to configure before connecting will save you headaches later.
Before connecting to InkFronts
These settings live inside your Square account, not in InkFronts.
Disable other online booking channels
If you have Square's built-in online booking page enabled, clients can book through both it and your InkFronts storefront. Double-bookings won't happen — Square handles scheduling conflicts — but InkFronts can only see appointments booked through your storefront. For the best experience, we recommend directing all clients through InkFronts. In your Square dashboard, go to Appointments → Online Booking → Channels and disable any channels you're not using through InkFronts.
Also note: InkFronts creates a Square service called Flash Tattoo to power flash bookings, with each of your uploaded flash pieces as individual variations. If your Square booking channel is enabled, these may appear publicly as bookable items — which you likely don't want. Disabling your Square channel ensures clients only see and book flash through your InkFronts storefront.
Auto-accept vs. manual review for appointments
Square lets you choose whether new appointments are automatically accepted or held as pending until you review them. InkFronts works with both, but they behave differently:
- Auto-accept: Appointments go straight to your calendar. Good if you want a fully hands-off flow for flash bookings.
- Manual review: Appointments sit as "Pending" until you accept them in Square. Useful for custom requests where you want to review the details before confirming. Note: due to a Square API limitation, InkFronts cannot accept appointments on your behalf — see Known Limitations.
This setting is in Square Appointments → Settings → Booking preferences.
Square Appointments Plus (optional)
Square's free tier handles scheduling fine. Appointments Plus adds automated SMS reminders, follow-up messages, and richer client communication tools — these are Square features that run independently of InkFronts. If you were previously using Square's automated messaging, those will continue to work after connecting InkFronts. Just be aware that some words in outbound messages (like "discount" or "promotion") can be blocked by Square's filters — this is a Square policy, not an InkFronts issue.
After connecting
What gets synced from Square
When you connect Square, InkFronts pulls your appointment services from your Square catalog. These appear as bookable services on your storefront alongside your flash. The sync runs automatically on connect and can be triggered manually from Dashboard → Settings.
What doesn't sync
Flash pieces are not synced from Square. You manage your flash library directly in InkFronts under Dashboard → Flash. This gives you control over the gallery layout, categories, pricing, and deposit amounts without affecting your Square catalog.
Setting your deposit percentage
Your deposit percentage is configured in Dashboard → Settings. It applies to every booking — for flash it's multiplied by the piece's fixed price; for custom bookings it's multiplied by the total price you enter on the booking page when you tap Request Deposit.
Install Square Point of Sale for in-person balance charges
InkFronts collects the balance in person by handing off to the Square Point of Sale app on your phone via a deep link — so you keep Square's card-present rates and can prompt for a tip inside the Square flow. Install the Square app on the phone you bring to appointments and sign in once; after that, tapping Charge balance in Square on any booking opens Square POS pre-filled with the outstanding balance.
On iPhone 16.4 or newer, Square supports Tap to Pay on iPhone — no reader required. On Android you can use an NFC-capable device or a Square reader.
Managing bookings day-to-day
Dashboard → My Bookings is your central hub for managing everything after a client books. From there you can:
- See payment status at a glance — know immediately whether a deposit has been paid before the appointment date.
- View reference images — client-uploaded inspiration photos are attached to each booking so you have everything in one place.
- Request deposits for custom work — once you and a client agree on a price, tap Request Deposit to create a Square payment link for your deposit percentage and copy the link to send wherever you talk to them.
- Charge balance + tip in person — tap Charge balance in Square at the appointment to hand off to Square POS, where the client adds a tip and you take the payment at card-present rates.
One-time platform setup (for InkFronts operators)
These are configured once per deployment in the Square Developer Console — artists don't need to touch them.
Register the POS callback URL
In the Square Developer Console, open the InkFronts application and under Point of Sale API → Web add <NEXT_PUBLIC_APP_URL>/api/square/pos-callback as a web callback URL (one entry per environment, e.g. a production URL and a staging URL). Square requires the exact URL to be registered before it will redirect back to us after a POS charge.
The dashboard reads SQUARE_APP_ID server-side and passes it to the browser as the POS deep link's client_id, so no additional public env var is needed.