Ferramentas para busca de disponibilidade¶
API Endpoints¶
DEV: http://localhost:8080
PROD: https://api.theifriend.com
Cenário experiencia sem variação¶
tool disponibilidade calendario¶
GET /experiences/{id}/availability/{monthYear}
{monthYear} usado no formato YYYY-MM exemplo 2025-01 para janeiro
Response:
[
"2025-11-01",
"2025-11-02",
"2025-11-03",
"2025-11-04",
"2025-11-05",
"2025-11-06",
"2025-11-07"
]
tool disponibilidade de horário no dia¶
GET /experiences/{id}/availability/{day}/hours
Response:
[
"10:00",
"14:00",
"16:00"
]
tool obter valor atualizado dado que tem o dia e horario para o tour¶
POST /bookings/price
Request body:
{
"product": "experience",
"productId": 2,
"customerId": 7,
"context": {
"dates": [
{
"day": "2025-11-21",
"hours": 2,
"period": "10:00",
"numAdult": 1,
"numChild": 0,
"numHalfPrice": 0,
"isIfriendCar": true
}
]
}
}
Response:
{
"currencyCode": "USD",
"total": 176,
"total_per_adult": 176,
"total_without_tax": 176,
"total_per_adult_without_tax": 176,
"down_payment_price": 0,
"total_down_payment_price": 0,
"tariff_item": null,
"taxes": {
"service": 0
},
"affiliate": {
"comission": null,
"taxType": null
},
"coupon": {
"code": null,
"type": null,
"amount": null,
"amountCurrencyCode": null
},
"contextData": {
"dates": [
{
"day": "2025-11-21",
"hours": 2,
"period": "10:00",
"numAdult": 1,
"numChild": 0,
"numHalfPrice": 0,
"isIfriendCar": true
}
]
}
}
Cenário experiencia com variação¶
Para saber se uma experiencia é do tipo que tem variação antes execute a chamada
GET /experiences/{product_id}
Response:
{
"experienceVariations": [
"/experience_variations/129363"
]
}
Olhe o campo experienceVariations se ele não for vazio é um produto que tem que executar o cenário com variação.
Passo 1. Obter variações na data informada
Se não foi obtida data do contexto não incluir o parâmetro availableAt, nesse caso para saber se uma experiencia é com variação o resultado irá indicar
GET /experience_variations?experience.id=401&availableAt=2025-11-20
Response:
[
{
"id": 129363,
"name": "Tour completo na Catedral da S\u00e9 de S\u00e3o Paulo",
"description": "De 1-20 pessoas ",
"mode": "person",
"type": "shared",
"experience": "/experiences/401",
"experienceTariffs": [
{
"id": 129573,
"name": "Tour completo na Catedral da S\u00e9 de S\u00e3o Paulo",
"experience": "/experiences/401",
"experienceTariffItems": [
{
"id": 392341,
"dateIni": "2025-10-24T00:00:00+00:00",
"dateEnd": "2027-12-31T00:00:00+00:00",
"currencyCode": "BRL",
"priceNet": "60.00",
"price": "66.67",
"experience": "/experiences/401"
}
]
}
],
"experienceAgePolicies": [
{
"id": 335592,
"name": "Adulto",
"ageFrom": 11,
"ageTo": 99,
"discountPercent": "0.00",
"experience": "/experiences/401"
},
{
"id": 335593,
"name": "Beb\u00ea",
"ageFrom": 0,
"ageTo": 10,
"discountPercent": "100.00",
"experience": "/experiences/401"
}
],
"sharedMinPax": 1,
"sharedMaxPax": 20,
"providerSku": null
}
]
Passo 2. Mostrar as variações obtidas para o usuário escolher qual gostaria, para calcular os preços das variações use
POST /bookings/price
Request:
{
"product":"experience",
"productId":401,
"customerId":null,
"context":{
"dates":[
{
"day":"2025-11-20",
"hours":2,
"period":"14:00",
"isIfriendCar":false,
"participants":{
"adulto":1,
"bebê":0
},
"date":"2025-11-20T00:00:00.000Z"
}
],
"variations":[
{
"id":129363,
"quantity":1,
"name":"Tour completo na Catedral da Sé de São Paulo",
"agePolicies":[
{
"id":335592,
"name":"Adulto",
"quantity":1
}
],
"allowPaxQuantity":true
}
]
},
"coupon":null,
"affiliateId":null,
"taxType":"gross"
}
Response:
{
"currencyCode": "USD",
"total": 13.02,
"total_per_adult": 13.02,
"total_without_tax": 13.02,
"total_per_adult_without_tax": 13.02,
"down_payment_price": 0,
"total_down_payment_price": 0,
"tariff_item": null,
"taxes": {
"service": 2.6
},
"affiliate": {
"comission": null,
"taxType": null
},
"coupon": {
"code": null,
"type": null,
"amount": null,
"amountCurrencyCode": null
},
"contextData": {
"dates": [
{
"day": "2025-11-20",
"hours": 2,
"period": "14:00",
"isIfriendCar": false,
"participants": {
"adulto": 1,
"beb\u00ea": 0
},
"date": "2025-11-20T00:00:00.000Z"
}
],
"variations": [
{
"id": 129363,
"quantity": 1,
"name": "Tour completo na Catedral da S\u00e9 de S\u00e3o Paulo",
"agePolicies": [
{
"id": 335592,
"name": "Adulto",
"quantity": 1
}
],
"allowPaxQuantity": true,
"tariff_item": {
"id": 392341,
"dateIni": "2025-10-24T00:00:00+00:00",
"dateEnd": "2027-12-31T00:00:00+00:00",
"currencyCode": "BRL",
"priceNet": "60.00",
"price": "66.67",
"experienceTariff": "\/experience_tariffs\/129573",
"experience": "\/experiences\/401",
"experienceVariation": null,
"experienceTransfer": null
}
}
]
}
}