Quickstart
From creating the property to a report confirmed by SES, step by step.
Building an integration? Do these steps in test mode first, with a kinapi_test_ key: the same journey, up to an accepted or rejected report, without filing anything with the Ministry or paying anything.
1. Create your property
Each accommodation needs a record with its listingId (the id your PMS uses for the listing), its SES establishment code, and the owner details that will appear on the contract.
curl -X POST https://api.kinapi.es/api/v1/properties \
-H "ocp-apim-subscription-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"nickname": "Sol 3B Apartment",
"listingId": "38291",
"address": { "street": "Calle del Sol 3", "city": "Tarifa", "province": "Cádiz", "postalCode": "11380" },
"touristLicense": "VFT/CA/12345",
"ses": { "codigoEstablecimiento": "0000012345" },
"owner": { "legalName": "Gestora Costa SL", "nif": "B12345678" }
}'You can also create properties from the panel, under Properties — handy for trying the product out before wiring up your PMS. The establishment code is assigned to you by the SES Hospedajes portal, one per accommodation.
2. Create the check-in when a booking comes in
As soon as your system receives a confirmed booking, create its check-in. The call is idempotent: if it is repeated (a retry, a duplicate webhook) it returns the same check-in and the same URL, without duplicating anything.
curl -X POST https://api.kinapi.es/api/v1/checkins \
-H "ocp-apim-subscription-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"reservationId": "R-2026-0412",
"listingId": "38291",
"confirmationCode": "HMXK4L",
"checkInDate": "2026-08-14",
"checkOutDate": "2026-08-18",
"numGuests": 4,
"leadGuest": { "name": "María García", "email": "maria@example.com" }
}'{
"reservationId": "R-2026-0412",
"listingId": "38291",
"status": "pending",
"url": "https://checkinsas…/c/aGb3xKf9…",
"created": true
}3. Send the URL to the guest
The url in the response is the check-in link for that booking. Send it to the guest through whatever channel you already use (confirmation email, WhatsApp, your PMS’s automated message…). Every guest in the party shares the same link; each of them adds their own record and signature.
You do not have to create guests over the API: they register themselves from the link, with live validation of DNI/NIE/passport and the SES rules (INE municipality, relationship for minors, document support number…).
4. Follow the status
The check-in moves along on its own. Read its status whenever you like:
curl https://api.kinapi.es/api/v1/checkins/R-2026-0412 \ -H "ocp-apim-subscription-key: YOUR_API_KEY"
Statuses: pending → in_progress → completed → signed → submitted → confirmed (plus error and cancelled).
5. Retrieve the contract and the SES report
# Signed contract (PDF with signatures + evidence page) curl -OJ https://api.kinapi.es/api/v1/checkins/R-2026-0412/contract \ -H "ocp-apim-subscription-key: YOUR_API_KEY" # Status of the traveller report at SES Hospedajes curl https://api.kinapi.es/api/v1/checkins/R-2026-0412/ses \ -H "ocp-apim-subscription-key: YOUR_API_KEY"