Default · Beta
Chekin
API integration
Ship Default features without building the integration. Full Chekin API access via Proxy and 60+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Chekin
Common scenarios for SaaS companies building Chekin integrations for their customers.
Automate guest compliance for property management systems
PMS and channel manager platforms can push reservations and property data into Chekin automatically, so their hosts get legal police and statistical reporting without leaving the PMS. This removes manual data entry and eliminates the risk of missed 24-hour reporting deadlines.
Gate smart lock access behind verified identity
Smart lock and access control platforms can subscribe to Chekin webhooks and only release digital keys after a guest passes ID verification and signs the rental agreement. This protects hosts from liability and enforces compliance before physical entry.
Embed biometric ID verification in a white-labeled guest app
Hotel groups and guest experience apps can call Chekin's OCR and face comparison endpoints directly from their own branded mobile app. Guests never leave the SaaS product, but the platform still handles passport parsing, liveness checks, and police reporting under the hood.
Sync tourist taxes and payments into reservation folios
Finance and booking platforms can create reservation payments and e-invoicing suppliers in Chekin to automatically generate compliant tax invoices for local tourist levies. This closes the loop between guest check-in data and the operator's accounting stack.
Provision new hospitality customers in minutes
SaaS platforms onboarding new property managers can programmatically create housings, bulk-create rooms, and register police and stat accounts in Chekin. What used to be a multi-day setup call becomes a self-serve flow inside the SaaS product.
What You Can Build
Ship these features with Truto + Chekin
Concrete product features your team can ship faster by leveraging Truto’s Chekin integration instead of building from scratch.
Two-way property and room sync
Mirror your users' property hierarchy into Chekin by listing, creating, and updating housings and rooms — including bulk room creation for large portfolios.
Automatic reservation push with dynamic check-in links
Create Chekin reservations the moment a booking lands in your platform and pull back the guest entry form so you can inject it into your own pre-arrival emails or SMS.
Event-driven compliance workflows via webhooks
Subscribe to Chekin webhooks to trigger downstream actions like releasing smart lock codes, sending welcome messages, or updating booking statuses when a guest is verified or a police report is filed.
Headless ID verification and OCR
Send passport and ID images directly to Chekin's OCR endpoints and run face-to-selfie comparisons inside your own app, keeping guests fully within your branded experience.
Force-resend police and statistical reports
Give your users a one-click way to re-trigger police check-in, police check-out, stat check-in, and stat check-out submissions when reservation details change after the fact.
Localized guest data collection forms
Fetch Chekin's guest schema dynamically so your check-in UI shows exactly the right fields for each guest's nationality and destination country, without hardcoding country-specific logic.
SuperAI
Chekin AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
chekin_auth_get_token
Request a Chekin JWT access token by sending an API key. Returns: api_key, token. Token expires after 1 hour. Required: api_key.
list_all_chekin_housings
List chekin housings in your account. Returns housing records including id, name, type, location, registration flags, and identity verification settings.
get_single_chekin_housing_by_id
Get a single chekin housing by id. Returns the housing record including id, name, type, location, registration flags, and identity verification settings. Required: id.
create_a_chekin_housing
Create a new chekin housing. Returns the created housing with id, name, type, location, and registration flags. Required: name. For HOT type, rooms_quantity is mandatory and rooms must be created separately.
update_a_chekin_housing_by_id
Update an existing chekin housing by id. Returns the updated housing record including id, name, type, location, registration flags, and identity verification settings. Required: id.
delete_a_chekin_housing_by_id
Delete a chekin housing by id. Returns an empty 204 response on success. Required: id.
chekin_housings_restore
Restore a deleted Chekin housing. Returns the restored housing object including id, name, origin, type, and is_deactivated. Required: housing_id.
list_all_chekin_rooms
List rooms in Chekin. Returns: id, number, external_id, external_name, housing.
get_single_chekin_room_by_id
Get a single Chekin room by id. Returns: id, number, external_id, external_name, housing. Required: id.
create_a_chekin_room
Create a new Chekin room. Returns: id, number, external_id, external_name, housing. Required: number, housing.
chekin_rooms_bulk_create
Create multiple Chekin rooms in one request. Returns an array of created rooms, each with id, number, external_id, external_name, and housing. Required: number and housing for each room in the array.
update_a_chekin_room_by_id
Update an existing Chekin room by id. Returns: id, number, external_id, external_name, housing. Required: id.
delete_a_chekin_room_by_id
Delete a room from chekin by id. This action permanently removes the room from the inventory. Returns an empty 204 response on success. Required: id.
list_all_chekin_police_accounts
List police accounts in Chekin. Returns: id, type, username, password, certificate_password, establishment_number, username_type, external_id, external_name, police_external_housing_id, external_administration_id, police_extra_data, certificate, payment_method, external_housing_code, renter_code, local_send_time, delay, is_sending_guest_cards_enabled, service_key. Optional filters: number,…
get_single_chekin_police_account_by_id
Get a single Chekin police account by id. Returns: id, type, username, password, certificate_password, establishment_number, username_type, external_id, external_name, police_external_housing_id, external_administration_id, police_extra_data, certificate, payment_method, external_housing_code, renter_code, local_send_time, delay, is_sending_guest_cards_enabled, service_key. Required: id.
create_a_chekin_police_account
Create a new police account in Chekin. Returns the created account including id, type, username, payment_method, and local_send_time. Required: type, username, password.
update_a_chekin_police_account_by_id
Update an existing Chekin police account. Returns the updated account including id, type, username, payment_method, and local_send_time. Required: id.
delete_a_chekin_police_account_by_id
Delete a Chekin police account by id. Returns an empty 204 response on success. Required: id.
list_all_chekin_stat_accounts
List statistical accounts in Chekin. Returns each account's id, type, username, password, external_housing_id, external_location_id, id_camera, created_by, delay, local_send_time, and send_mode.
get_single_chekin_stat_account_by_id
Get a single Chekin statistical account by id. Returns: id, type, username, password, external_housing_id, external_location_id, id_camera, created_by, delay, local_send_time, send_mode. Required: id.
create_a_chekin_stat_account
Create a new statistical account in Chekin. Returns the created account with id, type, username, password, external_housing_id, external_location_id, id_camera, created_by, delay, local_send_time, and send_mode. Required: type, username, password.
update_a_chekin_stat_account_by_id
Update an existing Chekin statistical account by id. Returns the updated account with id, type, username, password, external_housing_id, external_location_id, id_camera, created_by, delay, local_send_time, and send_mode. Required: id.
delete_a_chekin_stat_account_by_id
Delete a Chekin statistical account by id. Returns an empty 204 response on success. Required: id.
list_all_chekin_reservations
List reservations in Chekin, optionally filtered by housing, check-in date, external ID, booking reference, or guest name. Returns: id, housing_id, rooms ids, room_ids, default_leader_full_name, current_leader_full_name, default_invite_email, default_phone_number, default_email_language, language, check_in_date, check_out_date, created_at, night_of_stay, nights_of_stay, origin, source,…
get_single_chekin_reservation_by_id
Get a single Chekin reservation by id. Returns: id, housing_id, rooms ids, room_ids, default_leader_full_name, current_leader_full_name, default_invite_email, default_phone_number, default_email_language, language, check_in_date, check_out_date, created_at, night_of_stay, nights_of_stay, origin, source, external_id, booking_reference, guest_group, general_status, detailed_statuses, links,…
create_a_chekin_reservation
Create a new reservation in Chekin. Returns: id, housing_id, room_ids, rooms ids, default_leader_full_name, current_leader_full_name, default_invite_email, default_phone_number, default_email_language, language, check_in_date, check_out_date, created_at, night_of_stay, nights_of_stay, origin, source, external_id, booking_reference, guest_group, general_status, detailed_statuses, links,…
update_a_chekin_reservation_by_id
Update an existing Chekin reservation by id. Returns: id, housing_id, housing, room_ids, rooms ids, default_leader_full_name, current_leader_full_name, default_invite_email, default_phone_number, default_email_language, language, check_in_date, check_out_date, created_at, night_of_stay, nights_of_stay, origin, source, external_id, booking_reference, guest_group, general_status, detailed_statuses,…
delete_a_chekin_reservation_by_id
Delete a Chekin reservation by id. Returns an empty 204 response on success. Required: id.
chekin_reservations_resend_police_check_in
Force resend the police check-in report for a Chekin reservation. Returns an empty 204 response on success. Required: reservation_id.
chekin_reservations_resend_police_check_out
Force resend the police check-out report for a Chekin reservation. Returns an empty 204 response on success. Required: reservation_id. Only needed for police integrations with check-out reports.
chekin_reservations_resend_stat_check_in
Force resend the stat check-in report for a Chekin reservation. Returns an empty 204 response on success. Required: reservation_id.
chekin_reservations_resend_stat_check_out
Force resend the stat check-out report for a Chekin reservation. Returns an empty 204 response on success. Required: reservation_id. Only needed for stat integrations with check-out reports.
create_a_chekin_reservation_payment
Create a new payment for a reservation in Chekin. Returns the created payment object including status, type, amount, reservation_id, name, and e-invoicing metadata.
list_all_chekin_reservation_payments
List all payments for a Chekin reservation. Returns: status, type, amount, reservation_id, name, metadata. Required: reservation.
delete_a_chekin_reservation_payment_by_id
Delete a Chekin reservation payment by id. Returns an empty 204 response on success. Required: id.
create_a_chekin_einvoicing_supplier
Create a new e-invoicing supplier in Chekin. Returns the supplier record including id, name, vat_number, provider, country, series, webhook_configurations, created_at, and updated_at. Required: initial_housing_id, name, vat_number, provider, country, street, building_number, city, postal_code, payment_method, tax_category_key, series, and data.
get_single_chekin_einvoicing_supplier_by_id
Get an e-invoicing supplier in Chekin by id. Returns the supplier record including id, name, vat_number, provider, country, series, webhook_configurations, created_at, and updated_at. Required: id.
update_a_chekin_einvoicing_supplier_by_id
Update an e-invoicing supplier in Chekin by id. Returns the supplier record including id, name, vat_number, provider, country, series, webhook_configurations, created_at, and updated_at. Required: id.
chekin_guests_get_schema
Get the dynamic guest schema template from Chekin. Returns the form field definitions (default, iv) that depend on the reservation and nationality. Required: reservation_id.
create_a_chekin_guest
Create a new guest in Chekin. Returns the created guest record including id, name, surname, birth_date, document_number, and guestapp_status. Required: name, surname, birth_date, nationality, residence_country, document_type, document_number, document_issue_date, gender, reservation_id.
get_single_chekin_guest_by_id
Retrieve a guest's information from Chekin by id. Returns the full guest record including id, name, surname, birth_date, document_number, and guestapp_status. Required: id.
update_a_chekin_guest_by_id
Update an existing guest in Chekin by id. Returns the updated guest record including id, name, surname, birth_date, document_number, and guestapp_status. Required: id.
delete_a_chekin_guest_by_id
Delete a guest record from Chekin by id. Returns an empty 204 response on success. Required: id.
chekin_guests_pre_create_min
Pre-create a Chekin guest with minimal fields to prefill the online check-in form. Returns: name, surname, reservation_id. Required: name, surname.
chekin_guests_attach_ocr_checks
Attach ID document OCR scan results to a Chekin guest. Returns the updated guest object including id, name, surname, reservation_id, ocr_passed, and document scan fields. Required: guest_id, reservation_id, ocr_passed, external_documents_front_side_scan, external_documents_front_side_scan_service.
create_a_chekin_guest_entry_form
Generate a guest entry form for a Chekin guest. Returns the guestbook record including id, guest_id, reservation_id, status, and file metadata. Required: guest_id, reservation_id.
chekin_guest_entry_forms_get_status
Check the status of a Chekin guest entry form. Returns the guestbook record including id, status, file_path, and created_at. Required: guest_id, guestbook_id.
chekin_guest_entry_forms_download
Download the generated guest entry form file once its status is READY. Returns the file content (binary). Required: guest_id, guestbook_id.
chekin_identity_verification_extract_face_id
Extract a guest's face from an ID document image in Chekin. Returns: id, picture_field, status, is_face_detected. Required: picture_file.
chekin_identity_verification_get_face_id_status
Check the status of an ID facial-data extraction in Chekin. Returns: id, picture_field, status, is_face_detected. Required: indetification_id.
chekin_identity_verification_extract_face_selfie
Extract a guest's face from a selfie image in Chekin. Returns: id, picture_field, status, is_face_detected. Required: picture_file.
chekin_identity_verification_get_face_selfie_status
Check the status of a selfie facial-data extraction in Chekin. Returns: id, picture_field, status, is_face_detected. Required: person_id.
chekin_identity_verification_compare_faces
Compare ID and selfie facial data in Chekin. Returns: id, identification_picture, person_picture, status, distance, is_match. Required: identification_picture, person_picture.
chekin_identity_verification_get_comparison_result
Get the facial comparison result for a Chekin identity verification. Returns: id, identification_picture, person_picture, status, distance, is_match. Required: compare_id.
chekin_ocr_analyze_image
Submit an identity document image to Chekin's OCR service for MRZ detection and analysis. Returns the OCR request including id, status, mrz_detected, extracted document fields, and validity flags. Required: picture_file.
chekin_ocr_get_analysis
Retrieve the status and extracted MRZ data for an OCR analysis request by data_id. Returns the OCR result including id, status, mrz_detected, extracted traveler fields, and validity flags. Required: data_id.
chekin_webhooks_subscribe
Subscribe to Chekin webhook events in bulk. Returns the created subscriptions with id, event, target, housing_id, and whitelist. Required: events and target.
list_all_chekin_webhooks
List all webhook subscriptions for your Chekin account. Returns each subscription's id, event, target, housing_id, and whitelist.
chekin_webhooks_unsubscribe
Unsubscribe a Chekin webhook by id. Returns an empty 204 response on success. Required: webhook_id.
create_a_chekin_reservation_source
Create a reservation source in Chekin. Returns the created source with id and name. Required: name.
list_all_chekin_reservation_sources
List all reservation sources in Chekin. Returns each source's id and name.
delete_a_chekin_reservation_source_by_id
Delete a reservation source in Chekin by id. Returns an empty 204 response on success. Required: id.
list_all_chekin_spain_municipalities
List Spanish municipalities from Chekin. Returns each municipality's name and official code. Optional: q.
list_all_chekin_search_locations
Search Chekin location codes across countries and administrative divisions. Returns a list of locations, each containing a country object with code, alpha_3, name, and splitted. Hard limit: phone_code and country filters are mutually exclusive.
Why Truto
Why use Truto’s MCP server for Chekin
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Chekin in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Chekin account
Use Truto’s frontend SDK to connect your customer’s Chekin account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Chekin
Truto’s Proxy API is a 1-to-1 mapping of the Chekin API. You call us, we call Chekin, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Chekin’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Chekin on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication work with Chekin through Truto?
Chekin uses a token-based auth flow handled by the auth token endpoint. Truto manages token acquisition, storage, and refresh for each of your end users, so your app only sees a single connection identifier per customer.
Can we run biometric identity verification without redirecting the guest to Chekin's hosted flow?
Yes. You can call the OCR image analysis and identity verification endpoints (face ID extraction, selfie extraction, and face comparison) directly, then poll their status endpoints to get results inside your own app.
How do we know when a guest has completed check-in or when a police report is filed?
Use the Chekin webhook subscription endpoint to register a listener. Truto normalizes webhook delivery so you receive events like verification and reporting outcomes without managing Chekin's raw callback infrastructure.
Does Chekin support bulk operations for onboarding large portfolios?
Rooms support a dedicated bulk create endpoint, which is useful when provisioning a new property manager with dozens or hundreds of units. Housings, reservations, and guests are created individually via their standard create endpoints.
How do we handle country-specific guest data requirements?
Chekin exposes a guest schema endpoint that returns the exact fields required for a given reservation context. You can render your check-in UI dynamically from this schema instead of maintaining per-country form logic.
Can we re-trigger compliance reports if a booking changes after check-in?
Yes. Chekin exposes dedicated actions to resend police check-in, police check-out, stat check-in, and stat check-out reports on a reservation, which is critical for handling late edits, cancellations, or guest changes.
From the Blog
Chekin integration guides
Deep dives, architecture guides, and practical tutorials for building Chekin integrations.
Chekin
Get Chekin integrated into your app
Our team understands what it takes to make a Chekin integration successful. A short, crisp 30 minute call with folks who understand the problem.