Documentación de la API de Basset
La API de Basset permite realizar reservaciones asincrónicas a través de solicitudes HTTP. A continuación, se describe cómo interactuar con la API utilizando el ejemplo de solicitud cURL proporcionado.
Recurso de Reservaciones Asincrónicas
Crear una Reservación Asincrónica
Crea una nueva reservación asincrónica utilizando los datos proporcionados.
- URL del recurso:
https://api.basset.ws/reservations/async
- Método HTTP: POST
Parámetros de Consulta
Parámetro | Descripción | Ejemplo |
---|---|---|
site | Sitio específico para la reservación. | AR |
channel | Canal de acceso a la API. | WEB, DESKTOP, API, MOBILE |
Encabezados
Encabezado | Descripción | Ejemplo |
---|---|---|
x-api-key | Clave de API para autenticación y autorización. | API-KEY |
x-client-id | ID del cliente que realiza la solicitud. | CLIENT-ID |
Content-Type | Tipo de contenido de la solicitud. | application/json |
Cuerpo de la Solicitud
El cuerpo de la solicitud debe estar en formato JSON e incluir la información necesaria para la reservación.
Ejemplo de Solicitud cURL
curl --location --request POST 'https://api.basset.ws/reservations/async?site=AR&channel=API' \
--header 'x-api-key: API-KEY' \
--header 'x-client-id: CLIENT-ID' \
--header 'Content-Type: application/json' \
--data-raw '{
"products": [
{
"item_id": "68b8b5ef-d528-453c-b29a-5b696820941c",
"type": "ACCOMMODATION",
"rooms": [
{
"firstname": "jorge",
"lastname": "sanchez",
"document": {
"type": "PAS",
"number": "958587845221"
}
}
]
}
],
"fiscal_identification": {
"type": "CUIL",
"number": "205245254582"
},
"fiscal_data": {
"identification": {
"type": "CUIL",
"number": "205854855452",
"fiscal_name": "jorg sanchez",
"tax_situation": "CF"
},
"address": {
"state": "",
"city": "",
"country": "AR",
"street": "",
"number": "",
"floor": "",
"door": "",
"postal_code": ""
}
},
"contact": {
"language": "es",
"email": "mail@mailpropio.com",
"telephone": {
"type": "M",
"country_code": "54",
"area_code": "011",
"number": "65524585"
}
},
"autocomplete_billing_info": true
}'
Respuesta
La respuesta contendrá la confirmación de la creación de la reservación asincrónica en el formato deseado. Esta le generara un ID
Ahora, ¿cuál es el servicio que sustituye al price-check? la API /accommodations/rates/ estaria evaluando las distintas respuestas y enviando los distintos estatus según lo que nos responda cada proveedor, estos serían:
“EXPIRATION_DATE_CHANGE” = La fecha de expiración cambio.
“REFUNDABLE_CHANGE” = Habitación cambio de gratuita a paga. (true/false)
“PRICE_CHANGE” = Cambio de precio en la tarifa. Acompañada del objeto old_fare con la tarifa anterior.
“UNCHECKED” “OK” = Sin cambios, la tarifa se mantiene. (Ambos son lo mismo)“SOLD_OUT” = Habitación no disponible. (No muestra modal, mensaje “Por poco”)
{
"rooms": [
{
"id": "817214215",
"name": "Standard Suite with two single beds, a sofa bed, and a small kitchenette",
"capacity": 2,
"bed_configuration": []
}
],
"rates": [
{
"id": "b00fc85e-85c5-4dab-b327-ebf030882ae9",
"status": "PRICE_CHANGE",
"provider": "DOTW",
"accommodation_id": "655dabefff9b450001cad127",
"available_rooms": 0,
"checkin": "2024-08-21T00:00:00Z",
"checkout": "2024-08-23T00:00:00Z",
"meal_plan": "FREE_BREAKFAST",
"refundable": false,
"cancel_penalties": [],
"fare": {
"base_rate": 422,
"net_rate": 422,
"nightly_basis": 211,
"total": 805.1315789473684,
"currency": "USD",
"original_currency": {
"currency_code": "USD",
"ratio": 1
},
"charges": [
{
"type": "commission",
"amount": 0,
"vat": 0,
"currency": "USD",
"collector": "PROVIDER"
},
{
"type": "markup",
"amount": 22.210526315789473,
"vat": 2.221052631578947,
"currency": "USD",
"collector": "AGENCY"
}
],
"fees": [
{
"type": "PAIS",
"amount": 126.6,
"currency": "USD",
"collector": "AGENCY"
},
{
"type": "RG4815/20",
"amount": 126.6,
"currency": "USD",
"collector": "AGENCY"
},
{
"type": "RG5272/22",
"amount": 105.5,
"currency": "USD",
"collector": "AGENCY"
}
],
"taxes": [],
"additional_charges": ""
},
"price": {
"total": 915.9065789473684,
"nightly_basis": 0,
"base_rate": 0,
"extra_cost": 915.91,
"provider_vat": 0,
"agency_commission": {
"total": 22.210526315789473,
"percentage": 0,
"currency": ""
},
"agency_ceded_commission": null,
"reseller_commission": {
"total": 0,
"percentage": 0,
"currency": ""
},
"markup": 22.210526315789473,
"commission": 0,
"currency": "USD",
"price_detail": {
"charges": [
{
"type": "tax_and_service_fee",
"amount": 22.210526315789473,
"vat": 2.221052631578947,
"currency": "USD"
},
{
"type": "base_rate",
"amount": 0,
"vat": 0,
"currency": "USD"
}
],
"fees": [
{
"type": "PAIS",
"amount": 126.6,
"vat": 0,
"currency": "USD"
},
{
"type": "RG4815/20",
"amount": 164.58,
"vat": 0,
"currency": "USD"
},
{
"type": "RG5272/22",
"amount": 178.295,
"vat": 0,
"currency": "USD"
}
],
"taxes": [],
"commissions": [
{
"type": "tax_and_service_fee",
"amount": 22.210526315789473,
"vat": 0,
"currency": "USD",
"collector": "AGENCY"
}
]
},
"original_currency": {
"currency_code": "USD",
"ratio": 1
},
"agency_charges": {
"operating_cost": {
"vat_value": 0,
"gross_value": 0
},
"markup": {
"vat_value": 2.221052631578947,
"gross_value": 22.210526315789473
},
"admin_cost": {
"vat_value": 0,
"gross_value": 0
},
"ceded_amount": {
"vat_value": 0,
"gross_value": 0
}
}
},
"comments": "Room1 Standard Suite with two single beds, a sofa bed, and a small kitchenette:\nNON-REFUNDABLE RATE\n.",
"rooms": [
{
"id": "817214215",
"name": "Standard Suite with two single beds, a sofa bed, and a small kitchenette",
"capacity": 2,
"bed_configuration": []
}
],
"type": "STANDALONE",
"expiration_date": "2024-07-24T21:25:39.397663388Z",
"custom_expiration_date": "2024-07-21T21:25:39.397663388Z",
"tracking_id": "ed7811fe-8d15-4969-ae84-d981dfb2cae2"
}
],
"payments_url": "",
"old_fare": { // TARIFA ANTERIOR
"base_rate": 443.75,
"net_rate": 443.75,
"charges": [
{
"type": "commission",
"amount": 0,
"vat": 0,
"currency": "USD",
"original_currency": {
"code": "USD",
"ratio": 1
},
"collector": "PROVIDER"
},
{
"type": "markup",
"amount": 23.355263157894736,
"vat": 2.335526315789474,
"currency": "USD",
"collector": "AGENCY"
}
],
"fees": [
{
"type": "PAIS",
"amount": 133.125,
"currency": "USD",
"collector": "AGENCY"
},
{
"type": "RG4815/20",
"amount": 133.125,
"currency": "USD",
"collector": "AGENCY"
},
{
"type": "RG5272/22",
"amount": 110.9375,
"currency": "USD",
"collector": "AGENCY"
}
],
"total": 846.6282894736842,
"currency": "USD",
"original_currency": {
"code": "USD",
"ratio": 1
},
"additional_charges": ""
}
}
Esta documentación proporciona una guía detallada sobre cómo utilizar el ejemplo de solicitud cURL para interactuar con la API de Basset y crear una reservación asincrónica. Puedes ampliar esta documentación agregando ejemplos de respuestas, descripciones de campos en las respuestas y otros detalles relevantes para los usuarios de la API.