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

•9 min read•By Utpal Ravi
View .md
Web Check-In APIOTAAPI IntegrationTravel TechnologyAutomationBoarding Pass
Web Check-In API: How to Add Auto Check-In to Your OTA or Travel App
How OTAs and travel apps can integrate a web check-in API: the three API types, how auto check-in works, what goes wrong, airline and traveller permission, and how to choose a vendor.

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

  1. What Is a Web Check-In API?
  2. How Does Auto Check-In Work Behind the API?
  3. How to Offer Web Check-In in a Travel App
  4. Web Check-In Integration: What Goes Wrong
  5. Which Airlines Do Not Allow Automated Check-In?
  6. How to Choose a Web Check-In API
  7. Your First 30 Days With a Web Check-In API
  8. Where Flyo Fits Into This
  9. Frequently Asked Questions
  10. 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.

TypeWhat it doesGood forLimit
Link API or reminderReturns the airline's check-in URL, or sends a timed reminderA "Check in now" buttonThe traveller still does the check-in
Airline-direct APIThe airline lets partner sites check in its own passengersOne airline's bookingsCovers that airline only. One airline's launch version covers only flights leaving its home hub
Automated check-in APICompletes check-in when the window opens and returns the boarding passSelling auto check-in as an extraDepends 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.

StepWhat happensWhat your app does
1. RequestYou send the PNR, flights and passengers once, with each flight's local departure timeSave the check-in reference
2. WaitThe service holds it until the window opens, possibly days awayShow "Scheduled" and the time
3. ExecuteCheck-in runs for every passenger on the bookingNothing
4. StatusThe request moves from scheduled to in progress to completed or failedRead it by webhook or by polling
5. DeliverOnce 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. ChangeDetails are missing, or the booking is cancelled or rescheduledUpdate or cancel the request

The details you need to collect first:

InputWhy it matters
Airline PNR and surnameThe OTA's own reference will not find the booking at the airline
Operating airline and flightOn 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 contactWhere 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.

MomentWhat to showWhy
Booking confirmationAn opt-in: "Check me in automatically", with what it includesThe traveller has the details to hand
Just after purchaseThe same offer by push or email, one tapCatches people who skipped it
Trip screenA status: Scheduled, Checked in, Needs attentionReplaces "did it work?" messages
Window opens, or it failsThe boarding pass, or a plain message with a fallback linkNobody 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.

CauseHow it shows upWhat to do
The airline is not supportedThe request is refused, or held for manual handlingShow which airlines are covered
Missing or wrong detailsThe booking waits, or check-in cannot find itCollect the missing items and re-check the airline PNR before the window
Duplicate or late requestsA retry creates two requests, or a late one is rejectedOne request per PNR and departure. Check status before resubmitting. Know the cutoff
Flight rescheduled or cancelledThe scheduled time is now wrongUpdate or cancel the request on every schedule change
"Completed" but no pass yetThe status is done and the pass link is emptyKeep listening. Do not resubmit to get a pass
Timeouts, errors and repeated eventsYou cannot tell whether a call workedCheck 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 vendorWhy 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.

CheckWhat to ask
CoverageA list of the airlines you actually sell, not a total
Success rateShare of check-ins completed per airline, on your own test bookings
SpeedTime from the window opening to the boarding pass delivered
Status and changesStatus you can read any time, plus update and cancel calls
TestingReal-PNR testing, not only a sandbox
LimitsRate limits, lead-time cutoffs, unsupported journeys
Data and securityHow requests are authenticated, and what passport data is stored and for how long (India's Digital Personal Data Protection Act, 2023 applies)
PermissionClear 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

TimeframeWhat to actually do
Days 1-10List your top 10 airlines by bookings. Ask the vendor for coverage and permission on each, and test internally first.
Days 11-30Offer 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.

PointHow Flyo's API handles it
CallsREST: subscribe, update, status, list. One static API key; 60 requests a minute, 1,000 an hour
TimingWe watch each airline's window. Requests need 6+ hours before departure
StatusScheduled, in progress, completed, failed or cancelled, with a typed list of missing details
UpdatesBy webhook or polling. Events can repeat or arrive out of order, so dedupe by event ID
Missing detailsAccepted and held until you send the complete passenger list
DuplicatesSame PNR and departure returns "already subscribed", no second charge
Boarding passOnce generated, links come back in the boarding_passes field of the status and list responses and the webhook. "Completed" can come first
LimitsOne-way, one airline per request. Codeshares need the operating airline. We do not detect a traveller's own check-in
TestingA portal for real PNRs; first 100 check-ins free
Traveller consentYou capture and keep it. We need it before we check anyone in
API securityKeys scoped to your enterprise and revocable from the dashboard. Encrypted in transit. Webhooks use a header you set
Data and complianceRetention 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?
It is a service your app calls to check passengers in. There are three kinds: link APIs that return the airline's check-in URL, airline-direct APIs for one airline's passengers, and automated APIs that complete check-in when the window opens (48 hours before departure on IndiGo domestic flights).
How do you offer web check-in in a travel app?
Offer an opt-in at booking confirmation, show a status on the trip screen, and send the boarding pass when the window opens. Plan a fallback link early: IndiGo domestic check-in counters close 60 minutes before departure.
What details do you need to automate passenger check-in?
The airline PNR and surname, the operating airline for codeshares, and an email or phone contact. International trips also need passport details. Collect everything before the window opens, 48 hours ahead on IndiGo domestic flights.
Which airlines do not allow automated check-in?
Only a handful, in our experience, mostly limited local airlines. A few large ones, such as Ryanair, restrict third-party check-in in their terms. Ask your vendor which airlines it does not support.
What happens if automated check-in fails?
Your app should alert the traveller and send a fallback link at once, after checking the request's status to avoid a duplicate. IndiGo's boarding gates close 25 minutes before departure, so a failure found at the airport leaves almost no time.
Should you use webhooks or poll for check-in status?
Use webhooks for speed and polling as a backstop. Events can repeat or arrive out of order, so dedupe by event ID and reconcile by reading the status. Flyo's docs allow 60 requests a minute and 1,000 an hour per key, which favours webhooks.

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


Sources & References

  1. IndiGo, airport check-in requirements. Domestic check-in opens 48 hours before departure, counters close 60 minutes before, and gates close 25 minutes before.
  2. 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.
  3. Singapore Airlines developer portal. An airline-direct API for partner sites, whose launch version covers flights from SIN only.
  4. Ryanair help centre. Third-party check-in breaches its terms.
  5. 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.

U

Written by

Utpal Ravi

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