Shop deposit keys only. This is not the FenceAI.app subscription.
Settings vs Billing
Settings → Payments is where this shop’s Square deposit keys go. A homeowner pays with Pay deposit with Square. Billing (/admin/your-slug/billing) is the FenceAI.app subscription, team seats, and the Stripe Customer Portal for that subscription. Do not paste Square keys on Billing.
FenceAI.app stores this shop’s Square access token and Location ID, plus an Environment of Sandbox or Production. It does not store a Square Application ID, and it does not use Square OAuth. If the Developer Dashboard shows an Application ID, leave it there. The same Payments section also connects Stripe or PayPal. This page is only Square.
1. Copy the token and location in Square
- Open developer.squareup.com → Applications and open this shop’s app, or create one.
- Open Credentials. Stay on Sandbox until this shop should charge real cards. Production is a different token.
- Copy the Access token for that environment. Sandbox shows a sandbox token. Production uses the production token. Square may show a production token only when you reveal it. Treat it like a password.
- The same Credentials page shows an Application ID. Do not paste it into FenceAI. Admin has no field for it.
- Copy the Location ID for the location that should receive the deposit, in the same environment as the token. In the Developer Dashboard, open Locations for that app (Sandbox or Production). A location ID looks like
L…. A sandbox token only works with a sandbox location. A production token only works with a production location.
2. Paste them under Settings → Payments
- Sign in at
https://fence-ai-vdg2.vercel.app/admin/your-slug/login(use your shop slug) and open Settings. - Scroll to Payments and select Square.
- If Square already shows Connected, click Replace credentials so the fields appear.
- Paste into Square access token. Paste the full token, not the masked value.
- Paste into Location ID.
- Set Environment to Sandbox or Production so it matches the token and location you copied. Use sandbox until this shop should charge real cards. Production tokens move real money.
- Click Connect Square. The page shows Saved. and Connected. Sandbox stays Sandbox. Production shows Production. The connected view lists Location ID and Access token as the last 4 characters only. The token is encrypted.
3. Test a deposit
Keep Environment on Sandbox. Finish a test quote and click Pay deposit with Square. That opens a Square payment link for this shop. On the sandbox checkout use card 4111 1111 1111 1111, CVV 111, any future expiration, and any postal code. That is Square’s public sandbox card. No real charge is made. After you return, the quote should show the deposit paid.
Move to production only when this shop should take real money. In Square, switch Credentials to Production, copy that access token and the production location ID, click Replace credentials, set Environment to Production, and connect again.
Keep the keys private
- Never paste the access token or location ID into chat, email, Discord, or Slack — including messages to FenceAI.app support. Paste them only into these admin fields.
- FenceAI.app staff never need a tenant to send keys to anyone on the team.
- Sandbox credentials practice the flow. Production credentials charge real cards. A sandbox token will not work when Environment is Production, and the reverse fails too.
- Treat the access token like a password. Square shows it rarely after you copy it. If it leaks, replace the token in the Square Developer Dashboard, then Replace credentials and paste the new token. Disconnect deletes the saved keys for this shop.
