Web Check-In API: How to Add Auto Check-In to Your OTA or Travel App

A common way to offer check-in in a travel app is a button that opens the airline's own web page. The traveller still types the PNR, picks a seat and confirms, and on IndiGo domestic flights the window opens 48 hours before departure, whatever hour that is. A web check-in API that finishes the job for them is a different thing, and this post covers how to add one.
A web check-in API is a service your OTA or app calls to check passengers in. The basic kind only gives you a link. The useful kind completes the check-in when the airline's window opens and returns the boarding pass.
Table of Contents
- What Is a Web Check-In API?
- How Does Auto Check-In Work Behind the API?
- How to Offer Web Check-In in a Travel App
- Web Check-In Integration: What Goes Wrong
- Which Airlines Do Not Allow Automated Check-In?
- How to Choose a Web Check-In API
- Your First 30 Days With a Web Check-In API
- Where Flyo Fits Into This
- Frequently Asked Questions
- The Bottom Line
What Is a Web Check-In API?
Airline check-in APIs for OTAs come in three kinds, and they do very different jobs.
| Type | What it does | Good for | Limit |
|---|---|---|---|
| Link API or reminder | Returns the airline's check-in URL, or sends a timed reminder | A "Check in now" button | The traveller still does the check-in |
| Airline-direct API | The airline lets partner sites check in its own passengers | One airline's bookings | Covers that airline only. One airline's launch version covers only flights leaving its home hub |
| Automated check-in API | Completes check-in when the window opens and returns the boarding pass | Selling auto check-in as an extra | Depends on airline coverage and permission |
If you only need a button, a link is enough. If you want the traveller to do nothing, you need the third kind. That is auto web check-in for an OTA, and most of this post covers it.
A sandbox shows your calls work. It cannot show that an airline will accept a real booking, so test with live bookings.
How Does Auto Check-In Work Behind the API?
You send the booking once. The service waits for the window, checks everyone in and returns the boarding passes.
| Step | What happens | What your app does |
|---|---|---|
| 1. Request | You send the PNR, flights and passengers once, with each flight's local departure time | Save the check-in reference |
| 2. Wait | The service holds it until the window opens, possibly days away | Show "Scheduled" and the time |
| 3. Execute | Check-in runs for every passenger on the booking | Nothing |
| 4. Status | The request moves from scheduled to in progress to completed or failed | Read it by webhook or by polling |
| 5. Deliver | Once generated, the boarding-pass links are included in the API response. They can lag behind "completed" | Send by push or WhatsApp and show on the trip screen |
| 6. Change | Details are missing, or the booking is cancelled or rescheduled | Update or cancel the request |
The details you need to collect first:
| Input | Why it matters |
|---|---|
| Airline PNR and surname | The OTA's own reference will not find the booking at the airline |
| Operating airline and flight | On codeshares, send the operating carrier's flight and the PNR it recognises |
| Passport details (international) | Number, issue and expiry dates, place of issue, nationality. A scan alone is not enough |
| An email or phone contact | Where the boarding pass goes |
The window itself is set by each airline. On IndiGo domestic flights, web check-in opens 48 hours before departure and check-in counters close 60 minutes before. Other airlines differ, so check each one.
How to Offer Web Check-In in a Travel App
Offer it when the traveller is most likely to say yes, then keep them informed until the boarding pass arrives.
| Moment | What to show | Why |
|---|---|---|
| Booking confirmation | An opt-in: "Check me in automatically", with what it includes | The traveller has the details to hand |
| Just after purchase | The same offer by push or email, one tap | Catches people who skipped it |
| Trip screen | A status: Scheduled, Checked in, Needs attention | Replaces "did it work?" messages |
| Window opens, or it fails | The boarding pass, or a plain message with a fallback link | Nobody should be left guessing |
Ask for consent in plain words, and keep a record of the yes.
Web Check-In Integration: What Goes Wrong
Most failures come from six places, and your app needs a plan for each.
| Cause | How it shows up | What to do |
|---|---|---|
| The airline is not supported | The request is refused, or held for manual handling | Show which airlines are covered |
| Missing or wrong details | The booking waits, or check-in cannot find it | Collect the missing items and re-check the airline PNR before the window |
| Duplicate or late requests | A retry creates two requests, or a late one is rejected | One request per PNR and departure. Check status before resubmitting. Know the cutoff |
| Flight rescheduled or cancelled | The scheduled time is now wrong | Update or cancel the request on every schedule change |
| "Completed" but no pass yet | The status is done and the pass link is empty | Keep listening. Do not resubmit to get a pass |
| Timeouts, errors and repeated events | You cannot tell whether a call worked | Check status before retrying. Dedupe repeated or out-of-order events |
A pass link may not say which passenger or flight it belongs to, so design your trip screen for that.
Which Airlines Do Not Allow Automated Check-In?
Only a handful. In our experience, a small number of airlines, mostly limited local carriers, do not allow web check-in through a third party. A few large airlines also restrict it in their terms: Ryanair says third-party check-in on a customer's behalf breaches its General Terms and Conditions of Carriage. Terms change, so ask your vendor which airlines it does not support before you promise anything.
There is a second permission: the traveller's. We also need their consent to provide this service, so you, as our customer, need a way to capture and keep it. Record who agreed, when and to what, at the opt-in, and be ready to show it.
| Ask your vendor | Why it matters |
|---|---|
| Which airlines are not supported, and why? | You can only promise what is allowed |
| How are traveller consent and airline declarations handled? | You act for the traveller, and some airlines need the passenger to declare |
| What happens when an airline blocks it? | You need a refund rule and a fallback message |
| Who is responsible if a check-in fails? | Settle it before launch, not after |
How to Choose a Web Check-In API
Choose on coverage you can verify, success rate by airline and how it fails, not on the headline airline count.
| Check | What to ask |
|---|---|
| Coverage | A list of the airlines you actually sell, not a total |
| Success rate | Share of check-ins completed per airline, on your own test bookings |
| Speed | Time from the window opening to the boarding pass delivered |
| Status and changes | Status you can read any time, plus update and cancel calls |
| Testing | Real-PNR testing, not only a sandbox |
| Limits | Rate limits, lead-time cutoffs, unsupported journeys |
| Data and security | How requests are authenticated, and what passport data is stored and for how long (India's Digital Personal Data Protection Act, 2023 applies) |
| Permission | Clear answers to the questions in the previous section |
If you build it yourself, you take on each airline's flow and window rules, and you fix it whenever one changes. Count that ongoing work, not only the first build.
Your First 30 Days With a Web Check-In API
| Timeframe | What to actually do |
|---|---|
| Days 1-10 | List your top 10 airlines by bookings. Ask the vendor for coverage and permission on each, and test internally first. |
| Days 11-30 | Offer it to a small slice of travellers. Track success rate by airline and time to boarding pass. Fix the biggest failure first, then widen. |
Where Flyo Fits Into This
Flyo's Web Check-in API is built for OTAs and TMCs. It covers 500+ airlines, and our API page reports 60,000+ check-ins in the last six months. Here is how it handles the points above. Full detail is in the API documentation.
| Point | How Flyo's API handles it |
|---|---|
| Calls | REST: subscribe, update, status, list. One static API key; 60 requests a minute, 1,000 an hour |
| Timing | We watch each airline's window. Requests need 6+ hours before departure |
| Status | Scheduled, in progress, completed, failed or cancelled, with a typed list of missing details |
| Updates | By webhook or polling. Events can repeat or arrive out of order, so dedupe by event ID |
| Missing details | Accepted and held until you send the complete passenger list |
| Duplicates | Same PNR and departure returns "already subscribed", no second charge |
| Boarding pass | Once generated, links come back in the boarding_passes field of the status and list responses and the webhook. "Completed" can come first |
| Limits | One-way, one airline per request. Codeshares need the operating airline. We do not detect a traveller's own check-in |
| Testing | A portal for real PNRs; first 100 check-ins free |
| Traveller consent | You capture and keep it. We need it before we check anyone in |
| API security | Keys scoped to your enterprise and revocable from the dashboard. Encrypted in transit. Webhooks use a header you set |
| Data and compliance | Retention follows India's DPDP Act. We are compliant with the DPDP Act and GDPR, with access controls, and sensitive fields are not stored in plain text |
Coverage and features vary by airline and plan, so test the airlines you sell before you promise auto web check-in to travellers. Pricing and portal access are on the API page.
Frequently Asked Questions
What is a web check-in API?
How do you offer web check-in in a travel app?
What details do you need to automate passenger check-in?
Which airlines do not allow automated check-in?
What happens if automated check-in fails?
Should you use webhooks or poll for check-in status?
The Bottom Line
Decide first whether you need a link or a completed check-in. For a completed one, settle airline and traveller permission and failure handling before price. Then pilot on your top 10 airlines for 30 days.
🛫 Check Passengers In Automatically When the Window Opens
Flyo's Web Check-in API completes check-in across 500+ airlines the moment the window opens, and returns the boarding pass to your app by webhook or polling. Test it on real PNRs in the portal before you ship: your first 100 check-ins are free.
See the Web Check-in API →First 100 check-ins free • Built for OTAs and TMCs
Related Reading
- Automatic Web Check-In for Travel Agents: What to Charge: pricing for agents
- AI Automation for OTAs: What Actually Works in 2026: the wider post-booking case
- What Is Web Check-In?: the basics and windows
- Post-Booking Automation in Travel: where check-in fits
Sources & References
- IndiGo, airport check-in requirements. Domestic check-in opens 48 hours before departure, counters close 60 minutes before, and gates close 25 minutes before.
- Amadeus Flight Check-in Links API and the Airhex airline check-in API. Link APIs return a URL, and Airhex states that it checks no one in.
- Singapore Airlines developer portal. An airline-direct API for partner sites, whose launch version covers flights from SIN only.
- Ryanair help centre. Third-party check-in breaches its terms.
- Flyo Web Check-in API page and the API documentation, read October 2026. Endpoints, statuses, webhooks, limits, coverage and check-in volume.
Airline rules and check-in windows differ by airline and change often. Verify them with each airline, and note that Flyo features may vary by plan.
Written by
Utpal is a founder at Flyo who works hands-on with Indian travel agents on commissions, IATA registration, and cross-border compliance. He writes from real conversations with agencies running international tours and handling flight disruptions every week.
Connect on LinkedIn