Go-live checklist
Everything to confirm before you ask Localoy for a review and act for real partners with a production key.
Work through this list before you ask your partnerships contact for a review and your production key.
Keys#
- Every provider key lives in a secret manager or an environment variable on your servers — never in a browser, a mobile app, a plugin you ship to partners or a repository.
- Each of your systems has its own key, and you have a written procedure for replacing a key through Localoy.
- A
403 provider_suspendedstops your work and alerts someone; it is never retried.
Connecting partners#
- Your product has a Connect to Localoy control that opens your deep link.
- The code field accepts what partners paste: case, spaces and hyphens do not matter.
- A
404 connection_code_invalidasks the partner for a new code. - A claim that timed out is retried with the same code, and a
200counts as success. - Each connection's
partnerIdis stored against the partner's account in your system, and no code is ever stored or logged. - After a claim, you compare
scopeswith what you need and tell the partner what is missing.
Acting for partners#
- Every partner-scoped call sends
X-Localoy-Partner-Id, and one partner's work can never go out with another partner's ID. -
403 connection_pausedholds your work for that partner;404 connection_not_foundends it. -
403 open_network_scope_requiredis shown to the partner as a missing permission, not retried. - Your
externalIds are prefixed so they cannot collide with the partner's own, and you handle409 open_network_item_managed_elsewhere. - Each partner has its own checkout URL and inventory endpoint URL, and each inventory check is verified with that partner's secret.
- Test items written with the sandbox key are deleted: the catalogue is shared.
Personal data#
- You ask for
PAYMENTandBOOKINGSonly if your product uses customers' names, phone numbers and email addresses. - You have decided what happens to a partner's customer data when it disconnects you, and your partners know.
Webhooks#
- A production endpoint is subscribed to
connection.updatedandconnection.revoked, and to the booking and payment events you rely on. - Your receiver verifies signatures against the raw body, rejects stale
timestamps and de-duplicates on
X-Localoy-Event-Id. - It routes each event by its
partnerId, and answers2xxfor partners it no longer knows. - It answers
2xxwithin 10 seconds and does slow work afterwards. - You watch your deliveries, and know how to re-enable an endpoint and replay what failed.
Limits#
- A partner's sync stays within 240 requests per 15 minutes, and all partners together within 12,000.
- Every
429waits for itsRetry-Afterbefore retrying.