Consentimientos

Tabla de contenidos

Introducción

En este artículo hablamos sobre las peticiones de la API, relacionadas con los consentimientos obligatorios del Registro General de Protección de Datos (RGPD o GDPR en inglés), y como gestionarlos en los contactos.

  • Crear consentimientos para un contacto
  • Listar y filtrar consentimientos de uno o varios contactos

Se entiende por consentimientos: permisos concedidos, términos o comunicaciones aceptados, u otras nomenclaturas, donde el huésped decide si autoriza a la empresa a enviarle comunicaciones.

En Fideltour, se contemplan los siguientes consentimientos:

  • Términos y condiciones (T)
  • Comunicaciones comerciales (C)
  • Comunicaciones comerciales personalizadas (P)
  • Comunicaciones comerciales por WhatsApp (WC)
  • WhatsApp habilitado (WE)
  • Comunicaciones comerciales por SMS (SC)

Endpoint: https://app.hoteldatahub.io/api/v1/consents/

Documentación Swagger: https://app.hoteldatahub.io/swagger/#/consents

Casos de uso

Este endpoint es necesario para cumplir con el RGPD y para la gestión de los diferentes tipos de consentimiento sobre los contactos en Fideltour. El endpoint de gestión de consentimientos requiere la existencia de contactos, nos permite consultar y añadir nuevos consentimientos a nuestros contactos.

Importante: Un consentimiento siempre va asociado a un contacto.

Es importante cumplir con el RGPD, por lo tanto, siempre que se disponga de la información o el dato donde se refleja si un contacto acepta o no alguno de los consentimientos nombrados, es conveniente añadir el consentimiento adecuado al contacto.

De este modo, nos aseguramos que el cliente está cumpliendo el RGPD al utilizar Fideltour y, no están llegando comunicaciones a contactos que no las hayan autorizado.

Métodos disponibles

Todos los métodos y filtros disponibles para trabajar con contactos se pueden consultar en la documentación Swagger. En este artículo nos centramos en los siguientes:

  • GET: Consulta de datos de uno o varios consentimientos
  • POST: Creación de un nuevo consentimiento

Tabla de parámetros

Campo Tipo Obligatorio Descripción
contact Integer ID del contacto en Fideltour
subscription_type String Tipo de consentimiento:
T = Términos y condiciones
C = Comunicaciones comerciales
P = Comunicaciones comerciales personalizadas
WC = Comunicaciones comerciales por WhatsApp
WE = WhatsApp habilitado
SC = Comunicaciones comerciales por SMS
change_type Integer Estado del consentimiento desde la perspectiva HDH:
1 = Acepta
0 = No acepta
> Nota: el valor se invierte internamente antes de enviarlo a Fideltour. La respuesta devuelve el valor almacenado en Fideltour (0=acepta, 1=rechaza), que es el opuesto al enviado.
source Integer Origen del consentimiento:
1 = Web / Booking Engine
2 = Wifi Login
3 = Guest Portal / Concierge
5 = PMS
6 = Importación
8 = Formulario (contact form, newsletter, landing)
11 = Chatbot
14 = Otros (Call Center, PMS Restaurante, PMS SPA, Intranet)
unsubscribe_reason Integer No Motivo de baja (cuando change_type=0):
1 = Motivo 1
2 = Motivo 2
3 = Motivo 3
4 = Motivo 4
5 = Motivo 5
ip String No Dirección IP desde donde se registró el consentimiento
opt_in String No Tipo de opt-in:
S = Simple opt-in
D = Doble opt-in
P = Doble opt-in pendiente
doble_opt_in_timestamp Datetime No Fecha de confirmación del doble opt-in.
Formato: YYYY-MM-DDTHH:MM:SS
doble_opt_in_ip String No IP de confirmación del doble opt-in

Ejemplos

A continuación mostramos algunos ejemplos de crear y listar consentimientos.

Petición (POST): Creación de un consentimiento

Creación de un consentimiento para un contacto de Fideltour

PROTOCOLO: HTTP/1.1 MÉTODO: POST HOST/ENDPOINT: https://app.hoteldatahub.io/api/v1/consents/

HEADERS:

Content-type: application/json
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

BODY:

{
    "contact": 11602828,
    "subscription_type": "C",
    "change_type": 1,
    "source": 1
}

Respuesta:

En caso de una respuesta 201, se recibe el siguiente JSON:

{
    "id": 6069294,
    "timestamp": "2023-11-13T13:29:15.469910",
    "change_type": 0,
    "subscription_type": "C",
    "unsubscribe_reason": null,
    "source": 0,
    "ip": null,
    "opt_in": "S",
    "doble_opt_in_timestamp": null,
    "doble_opt_in_ip": null,
    "contact": 11602828
}

Petición (GET): Listar consentimientos de un contacto

Listamos los consentimientos de un contacto

PROTOCOLO: HTTP/1.1 MÉTODO: GET HOST/ENDPOINT: https://app.hoteldatahub.io/api/v1/consents/?contact=11602828

HEADERS:

Content-type: application/json
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

QUERY: Es obligatorio enviar por query el ID del contacto a través del atributo contact

Respuesta:

En caso de una respuesta 200, se recibe el siguiente JSON:

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 6069294,
            "timestamp": "2023-11-13T13:29:15.469910",
            "change_type": 0,
            "subscription_type": "C",
            "unsubscribe_reason": null,
            "source": 0,
            "ip": null,
            "opt_in": "S",
            "doble_opt_in_timestamp": null,
            "doble_opt_in_ip": null,
            "contact": 11602828
        }
    ]
}

Petición (GET): Obtener un consentimiento por su ID

Obtenemos un consentimiento por su ID

PROTOCOLO: HTTP/1.1 MÉTODO: GET HOST/ENDPOINT: https://app.hoteldatahub.io/api/v1/consents/<consent_id>/

HEADERS:

Content-type: application/json
Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Respuesta:

En caso de una respuesta 200, se recibe el siguiente JSON:

{
    "id": 6069294,
    "timestamp": "2023-11-13T13:29:15.469910",
    "change_type": 0,
    "subscription_type": "C",
    "unsubscribe_reason": null,
    "source": 0,
    "ip": null,
    "opt_in": "S",
    "doble_opt_in_timestamp": null,
    "doble_opt_in_ip": null,
    "contact": 11602828
}