Hostkit API Documentation
Our REST based API allow you to get access to the Hostkit application. On this page we explain you a little bit more detailed what you need for your use case as a host.
Please contact us before you start coding. Tell us a few words about your ideas and plans. We are always happy to help our customers and partners to build the best integrated applications.
All our GET endpoints are also available on Make. Get our app here.
If you have any questions about our API, please feel free to open a ticket in our Helpdesk.
API Authentication
Authentication is done by using the following URL: https://app.hostkit.pt/api/endpoint?APIKEY=[Your_API_Key]
CURL components:
- The API endpoint shall be added after
/api/ - The
APIKEYparameter is mandatory - API calls must be requested with
GET - Special characters need to be
encoded
For enhanced security, API keys are property based, therefore must be generated and maintained in the Hostkit App -> Properties -> API key tab of each property.
API Rate Limit
We have a rate limit of 10 requests per minute. If you need more, please contact us.
API Enumerations
The possible enumerations that our API may request are:
| Reservations providers (lower case): | |||
| 9flats | abreu | agoda | airbnb |
| amin | archipelago | atraveo | belvilla |
| booked | booking.com | campcation | camping.info |
| campspace | clickstay | corporate | direct |
| dorms.com | dtravel | ectravel | edreams |
| eurofun | eurohike | expedia | |
| flatio | flipkey | glampings.com | |
| hometogo | hostelworld | hostelsclub | hotels.com |
| housinganywhere | housetrip | hrs | inntravel |
| jetcamp | marriott | mbtravel | melotravel |
| misterbnb | monvoyageamadere | muchosol | mycamper |
| odisseias | olimar | oliverstravels | oyo |
| phone | pincamp | pitchup | plumguide |
| profitroom | roomarama | scapetravel | seabreeze |
| solmar | spotahome | splvillas | stsurleshauteurs |
| traum | travelagency | travelagent | travelstaytion |
| trip.com | tripadvisor | uniplaces | villacollection |
| villamore | villaplus | vintage | vistaverde |
| voucher | vrbo | walkin | website |
| wolters | wix | - | - |
| Properties license types: | |
| RNAL | Short-term rental (Alojamento local) |
| RNET | Touristic development (Empreendimento turístico) |
| RRAL | Regional short-term rental (Alojamento local regional) |
| MIDT | Mid-term rental (Arrendamento a médio prazo) |
| RNAAT | Tourism entertainment agent (Agente de Animação Turística) |
| RNAVT | Travel and tourism agency (Agência de Viagens e Turismo) |
| Guests document types: | |
| P | Passport (Passaporte) |
| ID | ID card (Cartão cidadão) |
| O | Other (Outro) |
| Invoices types: | |
| FR | Invoice-Receipt (Fatura-Recibo) |
| FT | Invoice (Fatura) |
| Invoices sources: | |
| api | API invoices (faturas via API) |
| automatic | Automatic invoices (faturas automáticas) |
| bulk | Bulk invoices (faturas geradas em massa) |
| pmc | Property management invoices (faturas de comissões de gestão) |
| manual | Manual invoices (faturas manuais) |
| Invoices payment methods: | |
| CC | Credit card (Cartão crédito) |
| CD | Debit card (Cartão débito) |
| CH | Bank check (Cheque bancário) |
| CI | International documentary credit (Crédito documentário internacional) |
| CO | Cheque or gift card (Cheque ou cartão oferta) |
| CS | Clearing of current account balances (Compensação de saldos em conta corrente) |
| DE | Electronic money (Dinheiro eletrónico) |
| LC | Commercial bills (Letra comercial) |
| MB | ATM (Multibanco) |
| NU | Cash (Numerário) |
| PR | Exchange of goods (Permuta de bens) |
| TB | Bank transfer or authorised direct debit (Transferência bancária ou débito direto autorizado) |
| OU | Other means not listed here (Outros meios aqui não assinalados) |
| Invoicing product types: | |
| S | Service (Serviço) |
| P | Product (Produto) |
| I | Tax (Imposto) |
| Invoicing product regions: | |
| PT | Mainland (Continente) |
| PT-MA | Madeira |
| PT-AC | Azores (Açores) |
| Invoicing product VAT exemption codes: | |
| M01 | Article 16, nr. 6 of CIVA (Artigo 16.º n.º 6 do CIVA) |
| M02 | Article 6 of Decree-Law 198/90 of 19 June (Artigo 6.º do Decreto-Lei n.º 198/90, de 19 de Junho) |
| M03 | Cash requirement (Exigibilidade de caixa) |
| M04 | Exempt Article 13 of CIVA (Isento Artigo 13.º do CIVA) |
| M05 | Exempt Article 14 of CIVA (Isento Artigo 14.º do CIVA) |
| M06 | Exempt Article 15 of CIVA (Isento Artigo 15.º do CIVA) |
| M07 | Exempt Article 9 of CIVA (Isento Artigo 9.º do CIVA) |
| M09 | VAT no right to deduction (IVA não confere direito a dedução) |
| M10 | VAT exemption scheme (IVA regime de isenção) * |
| M11 | Special tobacco regime (Regime particular do tabaco) |
| M12 | Profit margin scheme, travel agencies (Regime da margem de lucro, agências de viagens) |
| M13 | Profit margin scheme, second-hand goods (Regime da margem de lucro, bens em segunda mão) |
| M14 | Profit margin scheme, works of art (Regime da margem de lucro, objectos de arte) |
| M15 | Profit margin scheme, collectors' items and antiques (Regime da margem de lucro, objectos de colecção e antiguidades) |
| M16 | Exempt Article 14 of the RITI (Isento Artigo 14.º do RITI) |
| M19 | Other exemptions (Outras isenções) |
| M20 | VAT flat-rate scheme (IVA regime forfetário) |
| M21 | VAT no right to deduction or similar expression (IVA não confere direito à dedução ou expressão similar) |
| M25 | Goods on consignment (Mercadorias à consignação) |
| M26 | VAT exemption with right of deduction on food baskets (Isenção de IVA com direito à dedução no cabaz alimentar) |
| M30 | VAT reverse charge, Article 2, nr. 1, line i of CIVA (IVA autoliquidação, Artigo 2.º n.º 1 alínea i do CIVA) |
| M31 | VAT reverse charge, Article 2, nr. 1, line j of CIVA (IVA autoliquidação, Artigo 2.º n.º 1 alínea j do CIVA) |
| M32 | VAT reverse charge, Article 2, nr. 1, line l of CIVA (IVA autoliquidação, Artigo 2.º n.º 1 alínea l do CIVA) |
| M33 | VAT reverse charge, Article 2, nr. 1, line m of CIVA (IVA autoliquidação, Artigo 2.º n.º 1 alínea m do CIVA) |
| M34 | VAT reverse charge, Article 2, nr. 1, line n of CIVA (IVA autoliquidação, Artigo 2.º n.º 1 alínea n do CIVA) |
| M40 | VAT reverse charge, Article 6, nr. 6, line a of CIVA to the contrary (IVA autoliquidação, Artigo 6.º n.º 6 alínea a do CIVA, a contrário) |
| M41 | VAT reverse charge, Article 8, nr. 3 of RITI (IVA autoliquidação, Artigo 8.º n.º 3 do RITI) |
| M42 | VAT reverse charge, Decree-Law no. 21/2007, of 29 January (IVA autoliquidação, Decreto-Lei n.º 21/2007, de 29 de janeiro) |
| M43 | VAT reverse charge, Decree-Law no. 362/99, of 16th September (IVA autoliquidação, Decreto-Lei n.º 362/99, de 16 de setembro) |
| M99 | Not subject, not taxed (Não sujeito, não tributado) ** |
* Most common exemption scheme | ** City tax
API Errors
The possible errors that our API may return are:
| Missing parameter | There is a mandatory parameter for SIBA missing. |
| Incorrect format | The format of one of the parameters is wrong. |
| Departure is before arrival | Arrival date is earlier than departure date. |
| Parameter is invalid | The parameter is not valid. |
| Parameter too long | The parameter exceeded the maximum size. |
| SIBA error | Specific SIBA error. |
| Reservation already exists | The reservation you are trying to add/edit already exists. |
| Reservation not found | The reservation you are trying to edit/delete doesn't exist. |
| Unknown reservation code | The reservation code you are trying to obtain doesn't exist. |
| Guest already exists | The guest you are trying to add already exists. |
| Guest not found | The guest you are trying to edit/delete doesn't exist. |
| Invalid format for check-in/out | Incorrect check-in/out date format, must be YYYY-MM-DD. |
| Invalid property ID for your user | Specified property is not licensed to the API key user. |
| No APIKEY provided | API key not specified. |
| Account expired | Your Hostkit account license expired. |
| Invalid plan | Your plan does not allow access to the API. |
| Incorrect APIKEY provided | An incorrect API key has been specified. |
| Limit exceeded | Requests rate limit exceeded. |
| Incorrect protocol | Incorrect API protocol call. |
| Internal error | Internal Hostkit error, please contact us. |
| Unknown error | An unknown error has occurred. |
API Endpoints
getProperty
This endpoint returns the details of a single property, given an ID.
curl "https://app.hostkit.pt/api/getProperty?APIKEY=[Your_API_Key]&id=[Property_ID]"
{
"owner": "owner@myproperty.com",
"activated": "1",
"id": "1",
"address": "R. das Quintinhas, 7",
"property_name": "Quintinhas",
"cp": "1000-000", // zip
"localidade": "Lisboa", // city
"nif": "123456789",
"seforder": "0",
"sefcode": "10938247374",
"lat": "38",
"lon": "-9",
"default_checkin": "15",
"default_checkout": "12",
"invoicing_nif": "123456789",
"invoicing_name": "Gestão Lda",
"invoicing_email": "email@gestao.pt",
"invoicing_phone": "+351928617112",
"invoicing_address": "Av. Republica, 36, 1o",
"codigo_al": "12345", // registration number
"tmt": "2", // city tax
"comm_email": "mail@myproperty.com",
"property_info":"PHAVG....", // base64
"default_series": "2022",
"default_product": "Alojamento"
}
getProperties
This endpoint returns ALL properties, similar data as getProperty but as a list.
curl "https://app.hostkit.pt/api/getProperties?APIKEY=[Your_API_Key]"
addProperty
This endpoint allows to add a single property, using any existing APIKEY. Returns the ID and the corresponding APIKEY.
curl "https://app.hostkit.pt/api/addProperty?APIKEY=[Your_API_Key]&property_name=[Property_Name]&address=[Property_Address]&zip=[Property_ZIP_Code]&city=[Property_City]"
{
"status": "success",
"apid": "12345",
"apikey": "XXXXXXX"
}
Mandatory parameters:
property_name=[Property_Name] |
property_name=Best Seaview |
address=[Property_Address] |
address=Rua do Exemplo 1 |
zip=[Property_ZIP_Code] |
zip=1234-567 |
city=[Property_City] |
city=Lisboa |
Optional parameters:
latitude=[Property_Latitude] |
latitude=37.0171342508058 |
longitude=[Property_Longitude] |
longitude=-8.9424204826355 |
default_checkin=[Property_Checkin_Time] |
default_checkin=16 |
default_checkout=[Property_Checkout_Time] |
default_checkout=11 |
license_number=[Property_License_Number] |
license_number=123456 |
license_type=[Property_License_Type] |
license_type=RNAL |
siba_id=[Property_SIBA_ID] |
siba_id=567890123 |
siba_order=[Property_SIBA_Establishment_Number] |
siba_order=0 |
siba_code=[Property_SIBA_Activation_Code] |
siba_code=1234567890 |
invoicing_nif=[Property_Invoicing_VAT_ID] |
invoicing_nif=567890123 |
invoicing_name=[Property_Invoicing_Name] |
invoicing_name=My Company Lda |
invoicing_address=[Property_Invoicing_Address] |
invoicing_address=Rua da Empresa 1, 1234-567 Lisboa |
invoicing_email=[Property_Invoicing_Email] |
invoicing_email=myaccounting@email.com |
invoicing_phone=[Property_Invoicing_Phone] |
invoicing_phone=+351987654321 |
Please find all available licenses types here.
updateProperty
This endpoint allows to update a single property, given an ID.
curl "https://app.hostkit.pt/api/updateProperty?APIKEY=[Your_API_Key]&apid=[Property_ID]"
{
"status": "success"
}
Mandatory parameters:
apid=[Property_ID] |
apid=12345 |
Optional parameters:
property_name=[Property_Name] |
property_name=Best Seaview |
address=[Property_Address] |
address=Rua do Exemplo 1 |
zip=[Property_ZIP_Code] |
zip=1234-567 |
city=[Property_City] |
city=Lisboa |
latitude=[Property_Latitude] |
latitude=37.0171342508058 |
longitude=[Property_Longitude] |
longitude=-8.9424204826355 |
default_checkin=[Property_Checkin_Time] |
default_checkin=16 |
default_checkout=[Property_Checkout_Time] |
default_checkout=11 |
license_number=[Property_License_Number] |
license_number=123456 |
license_type=[Property_License_Type] |
license_type=RNAL |
siba_id=[Property_SIBA_ID] |
siba_id=567890123 |
siba_order=[Property_SIBA_Establishment_Number] |
siba_order=0 |
siba_code=[Property_SIBA_Activation_Code] |
siba_code=1234567890 |
invoicing_nif=[Property_Invoicing_VAT_ID] |
invoicing_nif=567890123 |
invoicing_name=[Property_Invoicing_Name] |
invoicing_name=My Company Lda |
invoicing_address=[Property_Invoicing_Address] |
invoicing_address=Rua da Empresa 1, 1234-567 Lisboa |
invoicing_email=[Property_Invoicing_Email] |
invoicing_email=myaccounting@email.com |
invoicing_phone=[Property_Invoicing_Phone] |
invoicing_phone=+351987654321 |
Please find all available licenses types here.
getReservation
This endpoint returns the details of a reservation. If the parameter get_archived=true is used it returns a reservation that is archived.
curl "https://app.hostkit.pt/api/getReservation?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]"
{
"owner": "owner@myproperty.com",
"rcode": "25901",
"apid": "1234",
"room": "",
"beds": "",
"firstname": "Antonio",
"lastname": "Ficelli",
"email": "email@guest.com",
"phone": "+39123456789",
"flight": "TP821",
"flight_time": "17:17",
"arrival_by": "",
"reservation_date": "1561489289", // unix timestamp
"in_date": "1574255100", // unix timestamp
"out_date": "1574726400", // unix timestamp
"arrival": "1574208000", // unix timestamp
"departure": "1574726400", // unix timestamp
"pax": "1",
"guest_data": [{
"name": " Antonio Ficelli",
"document_type": "P",
"document_number": "JH191HA",
"document_country": "ITA",
"nationality": "ITA",
"birthday": "1980-10-01",
"arrival": "2022-11-20",
"departure": "2022-11-26",
"country": "ITA",
"city": "Milan"
}],
"service_in": "",
"service_out": "",
"service_cleaning": "",
"service_laundry": "",
"service_transfer_arr": "",
"service_transfer_dep": "",
"service_notes": "",
"private_note": "",
"feedback": "",
"language": "en",
"sefdate": "0",
"provider": "airbnb",
"received_amount": "90",
"host_commission": "10",
"extra_fees": "0",
"city_tax": "0",
"shortlink": "https://icheckin.pt/?9DSCNKPE",
"block_sef": "0",
"block_emails": "0",
"block_payments": "0",
"block_invoicing": "0",
"block_updates": "0"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
Optional parameters:
get_archived=[Archived_Reservation] |
get_archived=true |
getReservationByCmId
This endpoint returns similar data as getReservation but by a Channel Manager reservation ID.
curl "https://app.hostkit.pt/api/getReservationByCmId?APIKEY=[Your_API_Key]&channelmanager=[CM_Name]&id=[CM_Reservation_ID]"
Mandatory parameters:
channelmanager=[CM_Name] |
channelmanager=avantio |
id=[CM_Reservation_ID] |
id=123456789 |
getReservations
This endpoint returns similar data as getReservation but as a list.
curl "https://app.hostkit.pt/api/getReservations?APIKEY=[Your_API_Key]"
Optional parameters:
get_archived=[Archived_Reservation] |
get_archived=true |
from_date=[Checkin_Date] |
from_date=2023-05-10 |
addReservation
curl "https://app.hostkit.pt/api/addReservation?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]&first_name=[Guest_FirstName]&last_name=[Guest_LastName]&check_in=[ArrivalDate]&check_out=[ArrivalDate]&pax=[Nr_Guests]"
{
"status": "success"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
first_name=[Guest_FirstName] |
first_name=Alana |
last_name=[Guest_LastName] |
last_name=Bolsch |
check_in=[ArrivalDate] |
check_in=2023-05-20 16:00 |
check_out=[ArrivalDate] |
check_out=2023-05-25 11:00 |
pax=[Nr_Guests] |
pax=2 |
Optional parameters:
email=[Guest_Email] |
email=myguest@email.com |
phone=[Guest_Phone] |
phone=00351123456789 |
received_amount=[Received_Amount] |
received_amount=1234.56 |
host_commission=[Channel_Commission] |
host_commission=123.45 |
cleaning_fee=[Cleaning_Fee_Amount] |
cleaning_fee=50 |
extra_fees=[Extra_Fees_Amount] |
extra_fees=10 |
city_tax=[City_Tax_Amount] |
city_tax=16 |
provider=[Channel_Name] |
provider=airbnb |
reservation_date=[Date_Reservation] |
reservation_date=2023-05-10 |
room=[Room] |
room=myroom |
beds=[Bed] |
beds=mybed |
vat_number=[Invoice_VAT_Number] |
vat_number=555555555 |
vat_name=[Invoice_VAT_Name] |
vat_name=Company Lda |
flight=[Flight_Nr] |
flight=FR1234 |
flight_time=[Flight_Time] |
flight_time=13:10 |
arrival_by=[Arrival_Transport] |
arrival_by=Taxi |
service_in=[Checkin_Service_User] |
service_in=myserviceuser@email.com |
service_out=[Checkout_Service_User] |
service_out=myserviceuser@email.com |
service_cleaning=[Cleaning_Service_User] |
service_cleaning=myserviceuser@email.com |
service_laundry=[Laundry_Service_User] |
service_laundry=myserviceuser@email.com |
service_transfer_arr=[Trans_Arr_Service_User] |
service_transfer_arr=myserviceuser@email.com |
service_transfer_dep=[Trans_Dep_Service_User] |
service_transfer_dep=myserviceuser@email.com |
Payment parameter:
create_payment=[Create_Payment] |
create_payment=1 |
Please find all available providers here.
updateReservation
curl "https://app.hostkit.pt/api/updateReservation?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]"
{
"status": "success"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
Optional parameters:
first_name=[Guest_FirstName] |
first_name=Alana |
last_name=[Guest_LastName] |
last_name=Bolsch |
check_in=[ArrivalDate] |
check_in=2023-05-20 16:00 |
check_out=[ArrivalDate] |
check_out=2023-05-25 11:00 |
pax=[Nr_Guests] |
pax=2 |
email=[Guest_Email] |
email=myguest@email.com |
phone=[Guest_Phone] |
phone=00351123456789 |
received_amount=[Received_Amount] |
received_amount=1234.56 |
host_commission=[Channel_Commission] |
host_commission=123.45 |
cleaning_fee=[Cleaning_Fee_Amount] |
cleaning_fee=50 |
extra_fees=[Extra_Fees_Amount] |
extra_fees=50 |
city_tax=[City_Tax_Amount] |
city_tax=16 |
provider=[Channel_Name] |
provider=airbnb |
flight=[Flight_Nr] |
flight=FR1234 |
flight_time=[Flight_Time] |
flight_time=13:10 |
arrival_by=[Arrival_Transport] |
arrival_by=Taxi |
service_in=[Checkin_Service_User] |
service_in=myserviceuser@email.com |
service_out=[Checkout_Service_User] |
service_out=myserviceuser@email.com |
service_cleaning=[Cleaning_Service_User] |
service_cleaning=myserviceuser@email.com |
service_laundry=[Laundry_Service_User] |
service_laundry=myserviceuser@email.com |
service_transfer_arr=[TrArr_Service_User] |
service_transfer_arr=myserviceuser@email.com |
service_transfer_dep=[TrDep_Service_User] |
service_transfer_dep=myserviceuser@email.com |
Please find all available providers here.
cancelReservation
This endpoint moves a specific reservation to our cancelations table.
curl "https://app.hostkit.pt/api/cancelReservation?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]"
{
"status": "success"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
deleteReservation
This endpoint deletes a specific reservation.
curl "https://app.hostkit.pt/api/deleteReservation?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]"
{
"status": "success"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
addReservationExtra
This endpoint adds an extra invoicing item to a specific reservation. Each extra is treated as an invoicing product, therefore use the same extra_id whenever possible.
curl "https://app.hostkit.pt/api/addReservationExtra?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]&extra_id=[Extra_ID]&extra_name=[Extra_Name]&extra_vat=[Extra_VAT_Rate]&extra_total=[Extra_Total]&extra_type=[Extra_Type]"
{
"status": "success"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
extra_id=[Extra_ID] |
extra_id=SURFLEASSON (max 20, no spaces or special chars) |
extra_name=[Extra_Name] |
extra_name=My special surf leason |
extra_vat=[Extra_VAT_Rate] |
extra_vat=23 |
extra_total=[Extra_Total] |
extra_total=300 |
extra_type=[Extra_Type] |
extra_type=S |
If extra ID doesn't exist as product, we will create it in the respective invoicing account.
Please find all available invoicing product types here.
deleteReservationExtras
This endpoint deletes all extra items of a specific reservation.
curl "https://app.hostkit.pt/api/deleteReservationExtras?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]"
{
"status": "success"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
getKeycode
This endpoint gets the keycode or invite code of smartlocks of a specific reservation.
curl "https://app.hostkit.pt/api/getKeycode?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]&provider=[Provider]"
{
"keycode": "1234" // keycode not found otherwise
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
provider=[Provider] |
provider=nuki (nuki, homeit, ttlock or salto) |
getPayments
This endpoint gets all payments for a specific reservation, as a list.
curl "https://app.hostkit.pt/api/getPayments?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]"
[
{
"amount": "250",
"info": "Security deposit",
"enabled": true, // false otherwise
"paid": true // false otherwise
},
...
]
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
getOnlineCheckin
This endpoint gets the link and online check-in status of a specific reservation.
curl "https://app.hostkit.pt/api/getOnlineCheckin?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]"
{
"shortlink": "https://icheckin.pt/?9DSCNKPE",
"status": "done" // empty otherwise
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
addGuest
This endpoint adds a single guest data to a specific reservation.
curl "https://app.hostkit.pt/api/addGuest?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]&arrival=[Arrival_Date]&departure=[Departure_Date]&first_name=[Guest_FirstName]&last_name=[Guest_LastName]&nationality=[Guest_Nacionality]&birthday=[Guest_Birthdate]&doc_id=[Guest_Document_Nr]&doc_type=[Guest_Document_Type]&doc_country=[Guest_Document_Country]&country_residence=[Guest_Country]"
{
"status": "success"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
arrival=[Arrival_Date] |
arrival=2023-05-20 |
departure=[Departure_Date] |
departure=2023-05-25 |
first_name=[Guest_FirstName] |
first_name=Alana (max. 40 chars) |
last_name=[Guest_LastName] |
last_name=Bolsch (max. 40 chars) |
nationality=[Guest_Nacionality_ICAO] |
nationality=FRA |
birthday=[Guest_Birthdate] |
birthday=1990-12-01 |
doc_id=[Guest_Document_Nr] |
doc_id=123456789 (max. 16 chars) |
doc_type=[Guest_Document_Type] |
doc_type=P |
doc_country=[Guest_Document_Country_ICAO] |
doc_country=FRA |
country_residence=[Guest_Country_ICAO] |
country_residence=FRA |
city_residence=[Guest_City_Name] |
city_residence=Paris (if not available, send dash "-") |
Please find all available guests document types here.
removeGuest
This endpoint removes a single guest data in a specific reservation.
curl "https://app.hostkit.pt/api/removeGuest?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]&name=[Guest_First_or_Last_Name]"
{
"status": "success"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
name=[Guest_First_or_Last_Name] |
name=Alana |
removeAllGuests
This endpoint removes all guests data in a specific reservation.
curl "https://app.hostkit.pt/api/removeAllGuests?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]"
{
"status": "success"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
validateSIBA
This endpoint receives data to be sent to SIBA and validates it by returning "success" if all data is correctly formatted.
curl "https://app.hostkit.pt/api/validateSIBA?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]"
{
"status": "success"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
sendSIBA
This endpoint performs the validation described above and, if everything is correct, triggers the submission of the SIBA bulletin within a specific reservation.
curl "https://app.hostkit.pt/api/sendSIBA?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]"
{
"status": "success"
}
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
getLastSIBADate
This endpoint returns the date and time of the last successfully submitted bulletin to SIBA in the format: YYYY-MM-DD HH:MM:SS
curl "https://app.hostkit.pt/api/getLastSIBADate?APIKEY=[Your_API_Key]"
{
"sefdate": "2023-05-22 10:00:00"
}
getInvoices
This endpoint returns the all invoices OR a single invoice, as a list.
curl "https://app.hostkit.pt/api/getInvoices?APIKEY=[Your_API_Key]"
[
{
"invoice_type": "FR",
"series": "2023",
"id": "10",
"nif": "123456789",
"name": "John Smith",
"address": "",
"value": "1.44",
"date": "1620644915", // unix timestamp
"closed": "0",
"rcode": "A8J2H8A",
"comment": "",
"partial": false,
"notes": "", // partial invoices
"invoice_token": "dXNlcm5hbWU9aGZjYW5kZWlhc0BnbWFpbC5jb20",
"invoice_url": "https://hostk.it/i/123/A1B2C3D4E5F6G7H8I9",
"has_receipt": "0" // 0 no receipt, 1 receipt available (only for invoice_type FT)
},
...
]
Optional parameters:
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 |
series=[Invoice_Series] |
series=2023 |
id=[Invoice_ID] |
id=1234 |
customer_id=[Invoice_Customer_ID] |
customer_id=123456789 |
date_start=[Invoice_Date_Start_UnixTimeStamp] |
date_start=1730000000 |
date_end=[Invoice_Date_End_UnixTimeStamp] |
date_end=1731000000 |
doc_type=[Invoice_Type] |
doc_type=FR |
source=[Invoice_Source] |
source=automatic |
Please find all available invoice types and sources here.
getReservationInvoices
This endpoint returns a list of all the invoices for a given reservation. Can be one (full invoice) or a set of partial invoices.
curl "https://app.hostkit.pt/api/getReservationInvoices?APIKEY=[Your_API_Key]&rcode=[Reservation_Code]"
[
{
"invoice_type": "FR",
"series": "2022",
"id": "9",
"nif": "123456789",
"name": "Melanie Johnson",
"address": "",
"value": "129.06",
"date": "1620641390", // unix timestamp
"closed": "1",
"rcode": "1BVD4R",
"comment": "",
"partial": false,
"notes": "", // partial invoices
"invoice_token": "dXNlcm5hbWU9aGZjYW5kZWlhc0BnbWFpbC5jb20",
"invoice_url": "https://hostk.it/i/123/A1B2C3D4E5F6G7H8I9",
"has_receipt": "0" // 0 no receipt, 1 receipt available (only for invoice_type FT)
},
...
]
Mandatory parameters:
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
Optional parameters:
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 |
addInvoice
This endpoint allows to create a new invoice. The invoice will NOT be created if a draft exists in the same invoicing VAT ID and series. If no VAT ID or series are specified, it will be used the default from the property.
curl "https://app.hostkit.pt/api/addInvoice?APIKEY=[Your_API_Key]&customer_id[Customer_ID]&name=[Invoice_Recipient_Name]&country=[Country_ICAO_Code]"
{
"status": "success",
"id": "35" // use this to addInvoiceLine, closeInvoice, addReceipt or addCreditNote
}
Mandatory parameters:
customer_id=[Customer_ID] |
customer_id=HA19837264 |
name=[Invoice_Recipient_Name] |
name=Alana Bolsch |
country=[Country_ICAO_Code] |
country=FRA |
Optional parameters:
invoice_type=[Invoice_Type] |
invoice_type=FR |
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 |
series=[Invoice_Series_ID] |
series=AL2023 |
address=[Invoice_Recipient_Address] |
address=Rua do Exemplo 10 |
cp=[Invoice_Recipient_ZIP] |
cp=12345-678 |
city=[Invoice_Recipient] |
city=Lisboa |
rcode=[Reservation_Code] |
rcode=HMK71DA91ALK |
payment_method=[Payment_Method] |
payment_method=TB |
comment=[Invoice_Comment] |
comment=My special comment |
The customer_id should either be guest's VAT ID, or document number, or 999999990 if final consumer.
Please find all available invoice types and payment methods here.
addInvoiceLine
This endpoint allows to add a new invoice line into an existing draft invoice.
curl "https://app.hostkit.pt/api/addInvoiceLine?APIKEY=[Your_API_Key]&id=[Invoice_ID]&product_id=[Invoice_Line_Product_ID]&custom_descr=[Invoice_Line_Description]&qty=[Invoice_Line_Quantity]&price=[Invoice_Line_Price]&discount=[Invoice_Line_Discount]&vat=[Invoice_Line_VAT]&reason_code=[Invoice_Line_Exemption_Code]"
{
"status": "success",
"line": "1"
}
Mandatory parameters:
id=[Invoice_ID] |
id=35 |
product_id=[Invoice_Line_Product_ID] |
product_id=AL |
custom_descr=[Invoice_Line_Description] |
custom_descr=Alojamento Local |
qty=[Invoice_Line_Quantity] |
qty=1 |
price=[Invoice_Line_Price] |
price=1234.56 |
discount=[Invoice_Line_Discount] |
discount=0 (int) |
vat=[Invoice_Line_VAT] |
vat=6 (int) |
reason_code=[Invoice_Line_Exemption_Code] |
only if VAT is 0, empty otherwise |
Optional parameters:
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 |
series=[Invoice_Series_ID] |
series=AL2023 |
type=[Invoice_Line_Product_Type] |
type=S |
region=[Invoice_Line_Product_Region] |
region=PT |
If product ID doesn't exist, we will create it in the respective invoicing account. During creation, if type and region are not available, default will be S for type and PT for region.
Please find all available reason codes, types and regions here.
closeInvoice
This endpoint closes a draft invoice.
curl "https://app.hostkit.pt/api/closeInvoice?APIKEY=[Your_API_Key]id=[Invoice_ID]"
{
"status": "success",
"invoice_token": "dXNlcm5hbWU9aGZjYW5kZWlhc0BnbWFpbC5jb20",
"invoice_url": "https://hostk.it/i/123/A1B2C3D4E5F6G7H8I9"
}
Mandatory parameters:
id=[Invoice_ID] |
id=35 |
Optional parameters:
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 |
series=[Invoice_Series_ID] |
series=AL2023 |
deleteInvoice
This endpoint deletes a DRAFT invoice.
curl "https://app.hostkit.pt/api/deleteInvoice?APIKEY=[Your_API_Key]&id=[Invoice_ID]"
{
"status": "success"
}
Mandatory parameters:
id=[Invoice_ID] |
id=35 |
Optional parameters:
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 |
series=[Invoice_Series_ID] |
series=AL2023 |
getReceipts
This endpoint returns the receipts as a list. If no invoicing VAT ID is specified, it will be used the default from the property.
curl "https://app.hostkit.pt/api/getReceipts?APIKEY=[Your_API_Key]
[
{
"series": "2023",
"id": "1",
"nif": "123456789",
"value": "1.44",
"date": "1620644915", // unix timestamp
"refseries": "2023",
"refid": "10",
"receipt_token": "dXNlcm5hbWU9aGZjYW5kZWlhc0BnbWFpbC5jb20",
"receipt_url": "https://hostk.it/i/123/A1B2C3D4E5F6G7H8I9"
},
...
]
Optional parameters:
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 |
series=[Invoice_Series] |
series=2023 |
id=[Invoice_ID] |
id=1234 |
customer_id=[Invoice_Customer_ID] |
customer_id=123456789 |
date_start=[Invoice_Date_Start_UnixTimeStamp] |
date_start=1730000000 |
date_end=[Invoice_Date_End_UnixTimeStamp] |
date_end=1731000000 |
addReceipt
This endpoint allows to create a receipt based on an EXISTING CLOSED invoice. If no invoicing VAT ID or series is specified, it will be used the default from the property.
curl "https://app.hostkit.pt/api/addReceipt?APIKEY=[Your_API_Key]&refid=[Invoice_ID]
{
"status": "success",
"id": "5"
}
Mandatory parameters:
refid=[Invoice_ID] |
refid=10 (from the original invoice) |
Optional parameters:
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 (from the original invoice) |
refseries=[Invoice_Series_ID] |
refseries=INVMD (from the original invoice) |
getCreditNotes
This endpoint returns the all credit notes as a list. If no invoicing VAT ID is specified, it will be used the default from the property.
curl "https://app.hostkit.pt/api/getCreditNotes?APIKEY=[Your_API_Key]"
[
{
"series": "2022",
"id": "9",
"nif": "123456789",
"name": "Melanie Johnson",
"address": "",
"value": "129.06",
"date": "1620641390", // unix timestamp
"reason": "",
"refseries": "2022",
"refid": "10",
"reftype": "FR",
"credit_note_token": "dXNlcm5hbWU9aGZjYW5kZWlhc0BnbWFpbC5jb20",
"credit_note_url": "https://hostk.it/i/123/A1B2C3D4E5F6G7H8I9"
},
...
]
Optional parameters:
invoice_type=[Invoice_Type] |
invoice_type=FR |
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 |
series=[Invoice_Series_ID] |
series=AL2023 |
id=[Invoice_ID] |
id=35 |
customer_id=[Invoice_Customer_ID] |
customer_id=123456789 |
date_start=[Invoice_Date_Start_UnixTimeStamp] |
date_start=1730000000 |
date_end=[Invoice_Date_End_UnixTimeStamp] |
date_end=1731000000 |
Please find all available invoice types here.
addCreditNote
This endpoint allows to create a credit note based on an EXISTING CLOSED invoice. If no invoicing VAT ID or series is specified, it will be used the default from the property.
curl "https://app.hostkit.pt/api/addCreditNote?APIKEY=[Your_API_Key]&refid=[Invoice_ID]"
{
"status": "success",
"id": "5"
}
Mandatory parameters:
refid=[Invoice_ID] |
refid=737 (from the original invoice) |
Optional parameters:
invoice_type=[Invoice_Type] |
invoice_type=FR (from the original invoice) |
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 (from the original invoice) |
refseries=[Invoice_Series_ID] |
refseries=INVMD (from the original invoice) |
Please find all available invoice types here.
generateSAFT
This endpoint allows to generate a SAFT based on an EXISTING invoicing account.
curl "https://app.hostkit.pt/api/generateSAFT?APIKEY=[Your_API_Key]&invoicing_nif=[Invoicing_VAT_ID]&year=[Year]&month=[Month]"
{
"status": "success"
}
Mandatory parameters:
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 |
year=[Year] |
year=2024 |
month=[Month] |
month=8 |
getSAFT
This endpoint allows to get a SAFT from an EXISTING invoicing account. SAFT content output is in base64.
curl "https://app.hostkit.pt/api/getSAFT?APIKEY=[Your_API_Key]&invoicing_nif=[Invoicing_VAT_ID]&year=[Year]&month=[Month]"
{
"generated": "2024-08-16 10:00:00",
"sent": "2024-08-16 10:00:01",
"saft": "PD94bWwgdmVyc..." // base64
}
Mandatory parameters:
invoicing_nif=[Invoicing_VAT_ID] |
invoicing_nif=234567890 |
year=[Year] |
year=2024 |
month=[Month] |
month=8 |
getExpenses
This endpoint returns the all expenses as a list, based on document date.
curl "https://app.hostkit.pt/api/getExpenses?APIKEY=[Your_API_Key]&date_start=[Document_Date_Start_UnixTimeStamp]&date_end=[Document_Date_End_UnixTimeStamp]"
[
{
"id": "1",
"active": "1", // 1 for active, 0 for inactive
"category": "furniture",
"type": "variable",
"vendor": "IKEA",
"description": "Lorem ipsum",
"number": "123456789",
"amount": "50.00",
"vat": "23", // rate percentage
"document_date": "1730000000", // unix timestamp
"creation_date": "1730000000", // unix timestamp
"payment_date": "1730000000", // unix timestamp
"last_update_date": "1730000000", // unix timestamp
"lines": [{
"line_id": "1",
"line_description": "Lorem ipsum",
"line_amount": "50.00",
"line_vat": "23"
}]
},
...
]
Mandatory parameters:
date_start=[Document_Date_Start_UnixTimeStamp] |
date_start=1730000000 |
date_end=[Document_Date_End_UnixTimeStamp] |
date_end=1731000000 |
getLicense
This endpoint returns the license expiration date.
curl "https://app.hostkit.pt/api/getLicense?APIKEY=[Your_API_Key]"
{
"plan": "Business",
"valid_until": "2022-01-04"
}
API Changelog
CW4 2024: New endpoints to add or delete reservation extra items were created, addReservationExtra and deteteReservationExtras.
CW49 2025: New endpoint to add a receipt was created, addReceipt.
CW47 2025: New endpoint to get receipts was created, getReceipts.
CW45 2025: Implemented create_payment in endpoint addReservation.
CW44 2025: Implemented room, vat_number and vat_name in endpoint addReservation.
CW41 2025: New endpoint to add properties was created, addProperty.
CW37 2025: New endpoint to update properties was created, updateProperty.
CW24 2025: sendSEF is now sendSIBA. validateSEF is now validateSIBA. getLastSEFDate is now getLastSIBADate.
CW20 2025: New endpoint to get expenses was created, getExpenses.
CW8 2025: New endpoint to get reservation by Channel Manager ID was created, getReservationByCmId.
CW43 2024: Updated endpoint getInvoices with new customer ID and date filters.
CW33 2024: New endpoints to generate and get SAFTs were created, generateSAFT and getSAFT.
CW19 2024: New endpoint to get smartlocks keycodes was created, getKeycode.
CW7 2024: New endpoint to get the status of online check-in was created, getOnlineCheckin.
CW2 2024: New endpoint to cancel reservations was created, cancelReservation.
CW47 2023: Implemented payment_method in endpoint addInvoice.
CW46 2023: Implemented invoice URL in endpoint closeInvoice.
CW44 2023: Implemented comment in endpoint addInvoice.
CW43 2023: Implemented a rate limit of 100 requests per each 10 seconds.
CW33 2023: New endpoint to update single reservation was created, updateReservation.
CW29 2023: Implemented invoice URL in endpoints getInvoices and getReservationInvoices.
CW22 2023: New endpoints for credit notes generation have been created, getCreditNotes and addCreditNote.
Copyright 2026 © Hostkit, Lda. All rights reserved. Hostkit is a registered trademark.