Switch environments
- Swap the base URL to
https://api.letsway.com- ideally via configuration, not code. - Swap credentials. Production has its own API keys - staging keys (
way_sk_test_...) return401in production. Create a production key (way_sk_live_...) in the production dashboard (Settings → Developers → API Keys) and store it as a secret, never in client-side code or the repository. (Still onWay-Brand-Id/Way-Secret-Keyheaders? See Legacy authentication.) - Swap the Stripe publishable key to the production key for your brand’s
paymentPlatform(confirm with your Way representative). - Confirm API access is enabled on the production brand/organization - a
403with valid credentials means it isn’t. See Environments.
Payments
- Test cards don’t work in production. Run one real card checkout end to end (book something refundable, then cancel and refund it).
- Verify your 3D Secure handling with
redirect: "if_required"and a realreturn_url- EU brands (stripe-eu) hit SCA challenges routinely. - Confirm your failure path in production conditions: on payment failure you discard the cart and retry with a fresh cart ID. Abandoned
processingbookings hold real inventory.
Error handling and limits
- Handle
429with exponential backoff - rate-limited endpoints allow 400 requests per 60 seconds. Batch and cache where you can (listings and availability data cache well). - Handle
422with the common-errors matrix: used cart,resourceQuantitymismatch, sold-out session, missing custom-question answers. - Log request/response pairs (redacting the
Authorizationheader) so support conversations have evidence.
Webhooks
- Register your production endpoint in the production dashboard - webhook configuration does not carry over from staging.
- Set a secret and verify signatures over the raw body.
- Return
2xxwithin 10 seconds; process asynchronously; dedupe on business keys (delivery semantics). - Have a reconciliation job ready: Get bookings with
updatedFromcovers gaps after downtime.
Final smoke test
-
GET /v1/brands/{brandId}/settingsreturns your production brand with the expectedcurrencyandpaymentMethods. -
GET /v3/listingsreturns the real published listings. - One real booking → confirmation email received → visible in dashboard →
booking.completedwebhook delivered → cancelled and refunded cleanly.