Skip to content
FunksjonerPriserPartnerBloggHjelpOm ossKontakt
Kom i gangLogg inn
Tilbake til Bloggen
guides2026-07-276 min lesing

Toveis Square POS-synkronisering med thMenu: Webhook + REST Polling

Case fra en Brooklyn-kafé: Square catalog.version.updated webhook med 30-minutters polling backup og US/NO-skattemapping.

th

thMenu Team

thmenu.com

Driver du en 32-seters specialty-kafé i Brooklyn med både Square Terminal og en thMenu QR-meny, kan prissynkronisering bli et operasjonelt mareritt. Baristaen endrer latten fra 5,50 til 5,75 USD, men QR-menyen viser fortsatt gammel pris. Denne artikkelen beskriver en hybridarkitektur: webhook først, polling som sikkerhetsnett.

Webhook som hovedkanal

Squares catalog.version.updated event utløses ved enhver endring av item, variation eller modifier. Rute det til thMenu Worker-endepunktet /api/integrations/square/webhook: verifiser HMAC-SHA256-signaturen, les object_id, og hent detaljer med /v2/catalog/object/{id}.

Workeren mapper svaret til D1_MENU: variations[0].price_money.amount i øre (575) blir products.price = 5,75 USD. Kolonnen square_object_id muliggjør upsert. Squares SLA leverer 99,2 % av webhooks innen 15 minutter.

Polling og rate limit

Ved nettverksbrudd eller sjeldne Square-forsinkelser på 5+ minutter dekker en 30-minutters cron hullene ved å spørre /v2/catalog/search filtrert på de siste 35 minuttene.

Squares grense er 10 forespørsler/sek. For 500 varer: 100 per batch_retrieve og 1 sekunds pause.

Skattemapping: US vs NO

Brooklyn krever 8,875 % NY sales tax; en kafé i Oslo krever 15 % MVA på matvarer. Legg til tax_us_pct og tax_no_pct i products.

FAQ

Hva hvis webhooks feiler?Polling utligner innen 30 minutter.

Synkroniseres lager?Nei, kun katalog.

Hvilken plan?Pro og Platinum.

Var dette nyttig? Del det.