Registra consentimientos vía terceros
Registra consentimientos vía terceros
Tienes dos caminos, que producen exactamente el mismo registro:
- Registro autocontenido: un solo request con la declaración completa. El camino más directo cuando registras desde tu backend con todos los datos a mano.
- Flujo con action token: el mismo flujo de la integración vía API — creas un token de acción declarando la procedencia (viaja firmada dentro de él) y luego registras la acción con ese token. Úsalo si tu integración ya lo ocupa o si separas la declaración del registro en dos momentos.
Regístralo en un solo request
Envía la declaración completa al endpoint de registro autocontenido — los mismos campos que llevaría el token (template, kind, origin, channel, timestamp y contexto) — junto con la procedencia:
{
"user_reference": "1234567890",
"template_id": "constpl_1B2M2Y8AsgTpgAmY7PhCfg",
"kind": "grant",
"origin": "carga-corredoras",
"channel": "in_person",
"timestamp": "2026-07-20T15:30:00Z",
"capture_kind": "third_party_attestation",
"third_party": {
"id": "tp_1B2M2Y8AsgTpgAmY7PhCfg",
"agent": {
"tin": "12.345.678-5",
"name": "Juan Pérez",
"internal": false
}
}
}
La respuesta y los webhooks son los mismos del registro estándar. Para registrar varias acciones juntas usa POST /api/v1/third_parties/consent_commits, declarando la procedencia una sola vez para todo el grupo:
{
"user_reference": "1234567890",
"capture_kind": "third_party_captured",
"third_party": { "id": "tp_1B2M2Y8AsgTpgAmY7PhCfg" },
"consent_actions": [
{
"template_id": "constpl_1B2M2Y8AsgTpgAmY7PhCfg",
"kind": "grant",
"origin": "opt-in-corredora",
"channel": "digital",
"timestamp": "2026-07-20T15:30:00Z",
"contextual_data": { "ip": "190.161.10.10", "user_agent": "Mozilla/5.0" }
},
{
"template_id": "constpl_wAspvmEr4ACDZaPUtfwjsA",
"kind": "grant",
"origin": "opt-in-corredora",
"channel": "digital",
"timestamp": "2026-07-20T15:30:00Z",
"contextual_data": { "ip": "190.161.10.10", "user_agent": "Mozilla/5.0" }
}
]
}
Los significados de capture_kind y agent son los mismos en ambos caminos: están descritos en las secciones del flujo con token, más abajo.
Declara la procedencia en el token de acción
Al crear el token de acción, agrega capture_kind y third_party:
{
"origin": "carga-corredoras",
"kind": "grant",
"channel": "in_person",
"timestamp": "2026-07-20T15:30:00Z",
"capture_kind": "third_party_attestation",
"third_party": {
"id": "tp_1B2M2Y8AsgTpgAmY7PhCfg",
"agent": {
"tin": "12.345.678-5",
"name": "Juan Pérez",
"internal": false
}
}
}
Cómo se capturó: capture_kind
| Valor | Cuándo usarlo |
|---|---|
direct (default) | Tu empresa capturó el consentimiento directamente. Es el comportamiento actual: no declares nada |
third_party_captured | El tercero te transfiere una acción realizada por el propio titular en su plataforma (por ejemplo, un opt-in en el sitio de la corredora) |
third_party_attestation | El tercero declara haber obtenido el consentimiento, sin acción registrada del titular (por ejemplo, una firma en papel en la sucursal del concesionario) |
Los valores third-party requieren un tercero registrado y activo en third_party.id. Revisa la guía de registro de terceros.
La procedencia aplica a cualquier tipo de acción, no solo otorgamientos: si el titular revoca su consentimiento a través del tercero, usa kind: revoke con la misma declaración. La revocación queda registrada con igual trazabilidad de origen.
Quién actuó por el tercero: agent
Opcionalmente identifica a la persona que capturó el consentimiento (el ejecutivo de la corredora, el vendedor del concesionario): name es obligatorio, tin (RUT) es opcional, y external_reference te permite usar el identificador de la persona en tus sistemas. Usa internal: true cuando quien actúa es un ejecutivo de tu propia empresa operando por el tercero.
Para capturas de plataforma (third_party_captured con opt-in digital) normalmente no hay una persona involucrada: omite agent.
Registra la acción
Con el token en mano, crea la acción de consentimiento — o un commit de consentimiento si registras varias acciones juntas — exactamente igual que en el flujo directo. No necesitas repetir la procedencia: viaja dentro del token.
La respuesta incluye los campos de procedencia:
{
"id": "consact_1B2M2Y8AsgTpgAmY7PhCfg",
"kind": "grant",
"capture_kind": "third_party_attestation",
"third_party_id": "tp_1B2M2Y8AsgTpgAmY7PhCfg",
"third_party_name": "Corredora Andes",
"attestor": {
"tin": "12345678-5",
"name": "Juan Pérez",
"internal": false
}
}
Los mismos campos llegan en los webhooks consent_action.created y consent_commit.created, para que tus sistemas registren la procedencia sin consultas adicionales.
En un commit de consentimiento, todos los tokens deben compartir la misma procedencia: mismo tercero y mismo capture_kind. Tokens con procedencias distintas se rechazan con 422.
Errores de validación
La creación del token — y el registro autocontenido — fallan con 422 cuando la declaración es incoherente:
| Caso | Qué revisar |
|---|---|
capture_kind third-party sin third_party | Incluye el id del tercero |
third_party presente con capture_kind direct u omitido | Declara un capture_kind third-party |
| Tercero inexistente o deshabilitado | Verifica el id y el status del tercero |
agent sin name o con tin inválido | Completa el nombre y usa un RUT válido |
Y con 403 cuando el módulo de consentimiento de terceros no está habilitado en tu cuenta.