Build your travel integration with the OnArrival API.
Explore SDK examples, booking workflows and error handling. Request sandbox access to test the integration, then confirm the requirements for your production setup.
Search a flight in ~12 lines.
Stays, ground, activities and Travel Fintech take the same call shape. Learn the auth header and the offer model once; they don't change between products.
Build something real.
Use these examples to plan your integration. Confirm the supported calls and supplier conditions in the API reference.
Sell a flight + insurance bundle in one checkout
Shop live air inventory, price a CFAR policy against the exact offer, and settle both on one payment intent. One booking comes back.
Rebook a disrupted passenger automatically
Subscribe to schedule changes and cancellations, then exchange the affected segment for the best protected alternative inside your own SLA. No agent in the loop.
Settle multi-currency payouts to suppliers
Capture the traveller in their currency, lock FX at booking, and reconcile each supplier leg to the cent against a double-entry ledger you can export nightly.
Embed a full trip: air, stay and ground
Air, stay and transfer share one offer schema, so you can search all three in parallel and compose the trip. The themed React checkout drops straight in.
How the SDK handles the hard parts.
Travel infrastructure lives or dies on what happens when a supplier drops a connection mid-booking. One error shape, idempotency on every mutation, and failure modes you can rehearse in sandbox.
Idempotency keys
Every mutating call takes an idempotency key. Replay a capture after a timeout and you get the original result back, never a second booking, never a double charge. Keys are retained 24h.
Typed errors
One error model across flights, stays, ground, activities and fintech. Same fields, same codes, same retryable flag, so your handler is written once and works everywhere.
Webhook replay
Missed an event during a deploy? Re-deliver any event or range from the dashboard or API. Signed, ordered, and deduplicated by event id so consumers stay exactly-once.
Sandbox parity
Trigger the failure modes on demand with magic inputs: dropped sessions, slow suppliers, declined cards, schedule changes. The errors you handle in sandbox are the errors you get in prod.
Same fields on every product. Pass the same idempotency_key on retry and the capture resolves once. The second request returns the first result, not a second booking.
What's in the docs.
These are the sections the full API reference covers. Request sandbox credentials to test the examples.
