Download OpenAPI specification:
Crea reservas con tu propio identificador, obtén el enlace de registro del huésped, recibe webhooks de cada avance y consulta, modifica o cancela reservas.
La llave decide el ambiente: dgt_test_ (pruebas, TRA y SIRE simulados) o
dgt_live_ (producción). Guía completa en guia-integracion.md; webhooks en
webhooks.md.
{- "properties": [
- {
- "property_id": "05003a8a-8f3c-454b-8884-a906ec46f5f5",
- "external_id": "string",
- "rnt_id": "string",
- "name": "string",
- "internal_name": "string",
- "checkin_enabled": true,
- "compliance": {
- "tra": true,
- "sire": true
}, - "requires_contract_signature": true,
- "requires_document_photos": true
}
]
}Todo o nada. external_id en null quita la asociación.
required | Array of objects [ 1 .. 500 ] items |
{- "mappings": [
- {
- "property_id": "3f1c2b9a-0d4e-4a51-9a7e-2b6f0c8d1e23",
- "external_id": "64f1a2b3c4d5e6f7a8b9c0d1"
}
]
}{- "ok": true,
- "mappings": [
- {
- "property_id": "05003a8a-8f3c-454b-8884-a906ec46f5f5",
- "external_id": "string"
}
]
}Idempotente por external_id: el mismo cuerpo devuelve 200 con la misma
reserva; otro cuerpo con el mismo external_id devuelve 409
reservation_conflict.
| external_id required | string <= 120 characters |
| source | string <= 50 characters |
| property_id | string <uuid> |
| property_external_id | string <= 120 characters |
| rnt_id | string |
| room_number | string <= 50 characters |
| check_in required | string <date> |
| check_out required | string <date> |
| guest_name required | string <= 255 characters |
| guests_count required | integer >= 1 |
| expected_guests | integer >= 1 |
| total_amount | number >= 0 |
| currency | string Enum: "COP" "USD" |
| guest_email | string <email> |
| guest_phone | string <= 30 characters |
| notes | string <= 2000 characters |
object Máx. 4 KB | |
| sandbox_simulate | string Enum: "tra_failed" "sire_failed" Solo con llave de pruebas |
{- "external_id": "65a1b2c3d4e5f6a7b8c9d0e1",
- "source": "guesty",
- "property_external_id": "64f1a2b3c4d5e6f7a8b9c0d1",
- "check_in": "2026-10-10",
- "check_out": "2026-10-12",
- "guest_name": "María Pérez",
- "guests_count": 2,
- "guest_email": "huesped@ejemplo.com",
- "metadata": {
- "canal": "airbnb"
}
}{- "ok": true,
- "reservation_id": "string",
- "external_id": "string",
- "status": "pending_checkin",
- "reservation_status": "confirmed",
- "sandbox": true,
- "checkin_token": "string",
- "checkin_status": "string",
- "guests_registered": 0,
- "tra": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "sends_on": "2019-08-24",
- "mincit_code": 0
}, - "sire": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "foreign_guests": 0
}, - "source": "string",
- "metadata": { },
- "created_at": "2019-08-24T14:15:22Z",
- "idempotent_replay": true
}Con el TRA ya reportado (se reporta el día de llegada) solo se puede
ampliar la salida; las noches nuevas se registran ante MinCIT
automáticamente. Mover la llegada, acortar la estadía o cambiar fechas
cuya entrada ya se reportó a SIRE responde 409 already_reported. Una
reserva cancelada responde 409 reservation_cancelled.
| external_id required | string |
| check_in | string <date> |
| check_out | string <date> |
| guests_count | integer [ 1 .. 50 ] |
| guest_name | string |
| guest_email | string or null <email> |
| guest_phone | string or null |
| notes | string or null |
object |
{- "external_id": "65a1b2c3d4e5f6a7b8c9d0e1",
- "check_out": "2026-10-13",
- "guests_count": 3
}{- "ok": true,
- "reservation_id": "string",
- "external_id": "string",
- "status": "pending_checkin",
- "reservation_status": "confirmed",
- "sandbox": true,
- "checkin_token": "string",
- "checkin_status": "string",
- "guests_registered": 0,
- "tra": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "sends_on": "2019-08-24",
- "mincit_code": 0
}, - "sire": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "foreign_guests": 0
}, - "source": "string",
- "metadata": { },
- "created_at": "2019-08-24T14:15:22Z",
- "idempotent_replay": true,
- "changed": [
- "dates"
]
}Una reserva cancelada no se reporta a TRA ni a SIRE. Idempotente. Si algo
ya se había reportado, already_reported lo indica.
| external_id required | string <= 120 characters |
| reason | string <= 500 characters |
{- "external_id": "65a1b2c3d4e5f6a7b8c9d0e1",
- "reason": "Cancelada en Guesty"
}{- "ok": true,
- "reservation_id": "string",
- "external_id": "string",
- "status": "pending_checkin",
- "reservation_status": "confirmed",
- "sandbox": true,
- "checkin_token": "string",
- "checkin_status": "string",
- "guests_registered": 0,
- "tra": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "sends_on": "2019-08-24",
- "mincit_code": 0
}, - "sire": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "foreign_guests": 0
}, - "already_cancelled": true,
- "already_reported": {
- "tra": true,
- "sire": true
}, - "warning": "string"
}| external_id required | string |
| include | string Value: "guests"
|
{- "ok": true,
- "reservation_id": "string",
- "external_id": "string",
- "status": "pending_checkin",
- "reservation_status": "confirmed",
- "sandbox": true,
- "checkin_token": "string",
- "checkin_status": "string",
- "guests_registered": 0,
- "tra": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "sends_on": "2019-08-24",
- "mincit_code": 0
}, - "sire": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "foreign_guests": 0
}, - "source": "string",
- "metadata": { },
- "created_at": "2019-08-24T14:15:22Z",
- "idempotent_replay": true,
- "property_id": "05003a8a-8f3c-454b-8884-a906ec46f5f5",
- "check_in": "2019-08-24",
- "check_out": "2019-08-24",
- "guests_count": 0,
- "completed_at": "2019-08-24T14:15:22Z",
- "guests": [
- {
- "is_primary": true,
- "tipo_documento": "Pasaporte",
- "numero_documento": "string",
- "nombre": "string",
- "apellido": "string",
- "nacionalidad": "string",
- "fecha_nacimiento": "2019-08-24",
- "email": "string",
- "phone": "string",
- "address": "string",
- "ciudad_residencia": "string",
- "pais_residencia": "string",
- "registered_at": "2019-08-24T14:15:22Z",
- "document_uploaded": true
}
]
}Flujo alternativo al enlace: tu sistema captura los datos de todos los huéspedes y los envía de una vez. Crea la reserva, cierra el registro y programa TRA y SIRE.
| external_id required | string |
| source | string |
| property_id | string <uuid> |
| property_external_id | string |
| rnt_id | string |
| room_number | string |
| check_in required | string <date> |
| check_out required | string <date> |
| guest_name required | string |
| guests_count required | integer |
| expected_guests | integer |
| total_amount | number |
| currency | string Enum: "COP" "USD" |
| motivo required | string Enum: "Vacaciones, recreo y ocio" "Trabajo" "Visita a familiares y a amigos" "Educación y formación" "Salud y atención médica" "Religión / peregrinaciones" "Compras" "Tránsito" "Otros motivos" |
| tipo_acomodacion required | string |
object | |
| sandbox_simulate | string Enum: "tra_failed" "sire_failed" |
required | Array of objects (GuestInput) [ 1 .. 30 ] items |
{- "external_id": "string",
- "source": "string",
- "property_id": "05003a8a-8f3c-454b-8884-a906ec46f5f5",
- "property_external_id": "string",
- "rnt_id": "string",
- "room_number": "string",
- "check_in": "2019-08-24",
- "check_out": "2019-08-24",
- "guest_name": "string",
- "guests_count": 0,
- "expected_guests": 0,
- "total_amount": 0,
- "currency": "COP",
- "motivo": "Vacaciones, recreo y ocio",
- "tipo_acomodacion": "Apartamento",
- "metadata": { },
- "sandbox_simulate": "tra_failed",
- "guests": [
- {
- "tipo_documento": "Pasaporte",
- "numero_documento": "string",
- "nombre": "string",
- "apellido": "string",
- "nacionalidad": "CO",
- "fecha_nacimiento": "2019-08-24",
- "pais_procedencia": "US",
- "ciudad_procedencia": "string",
- "pais_residencia": "US",
- "ciudad_residencia": "string",
- "email": "user@example.com",
- "phone": "string",
- "address": "string",
}
]
}{- "ok": true,
- "reservation_id": "string",
- "external_id": "string",
- "status": "pending_checkin",
- "reservation_status": "confirmed",
- "sandbox": true,
- "checkin_token": "string",
- "checkin_status": "string",
- "guests_registered": 0,
- "tra": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "sends_on": "2019-08-24",
- "mincit_code": 0
}, - "sire": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "foreign_guests": 0
}
}Si tu id lleva /, usa la forma con ?external_id=.
| external_id required | string |
| include | string Value: "guests" |
{- "ok": true,
- "reservation_id": "string",
- "external_id": "string",
- "status": "pending_checkin",
- "reservation_status": "confirmed",
- "sandbox": true,
- "checkin_token": "string",
- "checkin_status": "string",
- "guests_registered": 0,
- "tra": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "sends_on": "2019-08-24",
- "mincit_code": 0
}, - "sire": {
- "status": "pending",
- "reported_at": "2019-08-24T14:15:22Z",
- "warning": "string",
- "simulated": true,
- "foreign_guests": 0
}, - "source": "string",
- "metadata": { },
- "created_at": "2019-08-24T14:15:22Z",
- "idempotent_replay": true,
- "property_id": "05003a8a-8f3c-454b-8884-a906ec46f5f5",
- "check_in": "2019-08-24",
- "check_out": "2019-08-24",
- "guests_count": 0,
- "completed_at": "2019-08-24T14:15:22Z",
- "guests": [
- {
- "is_primary": true,
- "tipo_documento": "Pasaporte",
- "numero_documento": "string",
- "nombre": "string",
- "apellido": "string",
- "nacionalidad": "string",
- "fecha_nacimiento": "2019-08-24",
- "email": "string",
- "phone": "string",
- "address": "string",
- "ciudad_residencia": "string",
- "pais_residencia": "string",
- "registered_at": "2019-08-24T14:15:22Z",
- "document_uploaded": true
}
]
}{- "endpoints": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "events": [
- "*"
], - "include_guests": true,
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "secret_rotated_at": "2019-08-24T14:15:22Z"
}
]
}El secret se devuelve solo en esta respuesta.
| url required | string <uri> HTTPS pública |
| events | Array of strings (EventType) Items Enum: "*" "reservation.created" "reservation.updated" "reservation.cancelled" "registration.updated" "registration.completed" "contract.signed" "tra.reported" "tra.failed" "sire.reported" "sire.failed" "ping" |
| include_guests | boolean Default: false |
{- "events": [
- "*"
], - "include_guests": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "events": [
- "*"
], - "include_guests": true,
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "secret_rotated_at": "2019-08-24T14:15:22Z",
- "secret": "whsec_xxxxxxxxxxxxxxxxxxxxxxxx"
}| id required | string <uuid> |
| url | string <uri> |
| events | Array of strings (EventType) Items Enum: "*" "reservation.created" "reservation.updated" "reservation.cancelled" "registration.updated" "registration.completed" "contract.signed" "tra.reported" "tra.failed" "sire.reported" "sire.failed" "ping" |
| include_guests | boolean |
{- "events": [
- "*"
], - "include_guests": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "events": [
- "*"
], - "include_guests": true,
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "secret_rotated_at": "2019-08-24T14:15:22Z"
}| status | string Enum: "pending" "delivered" "failed" |
| event | string |
| external_id | string |
| limit | integer [ 1 .. 200 ] Default: 50 |
{- "deliveries": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "endpoint_id": "e9ce0d4f-d433-423d-9497-4c000544106c",
- "event_id": "string",
- "event": "string",
- "status": "pending",
- "attempts": 0,
- "last_http_status": 0,
- "last_error": "string",
- "next_attempt_at": "2019-08-24T14:15:22Z",
- "delivered_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "attempt_log": [
- {
- "attempted_at": "2019-08-24T14:15:22Z",
- "http_status": 0,
- "duration_ms": 0,
- "error": "string"
}
]
}
]
}