Saltar al contenido principal
Versión: 1.21.1

Viafirma

Operaciones específicas del proveedor Viafirma RA: link de verificación de identidad KYC (GET /certificate-request/{id}/kyc-link), rechazo voluntario de una solicitud en curso (POST /certificate-request/{id}/issuance/reject), revocación de un certificado emitido (POST /certificate-request/{uuid}/revoke) y callback público al que MetaMap redirige al suscriptor tras la verificación (GET /viafirma/kyc-callback/{publicId}, no destinado a integradores). El link KYC se captura automáticamente cuando Viafirma pasa la solicitud a 'accreditation' y queda guardado. Requieren un trámite en viafirma_certificate_requests.

📄️Obtener el link de verificación de identidad (KYC) del suscriptor

Devuelve el link del portal de verificación biométrica (MetaMap) que el suscriptor debe abrir para acreditar su identidad. Si el link ya fue capturado (se captura automáticamente cuando Viafirma pasa la solicitud a 'accreditation' y queda guardado), se devuelve siempre, sin importar el estado remoto actual. Si aún no fue capturado, solo se obtiene de Viafirma cuando el estado remoto es exactamente 'accreditation'; en ese caso se guarda para las siguientes consultas. Cuando el callback está habilitado, el link incluye los parámetros `redirect` (apunta a GET /viafirma/kyc-callback/{publicId}) y `target`. El mismo link se expone en GET /certificate-request/{id}/issuance (dataRecords.data.kyc_accreditation_link). Si la solicitud tiene varios trámites Viafirma (p. ej. un reintento), se usa el trámite vigente, el mismo que informa GET /certificate-request/{id}/issuance (prioridad: con certificado emitido > con KYC completado > en curso > fallido > cancelado > sin estado; a igual prioridad, el más reciente).

📄️Rechazar una solicitud Viafirma en curso (definitivo)

Rechaza la solicitud en Viafirma RA (PUT /request/reject, API v3.4.70), la marca como CANCELLED (la solicitud queda cancelada), detiene el polling, reintegra el cupo consumido y avisa a la cuenta maestra de la empresa por correo y WhatsApp. Uso típico: se llenaron mal los datos del certificado y debe crearse una solicitud NUEVA (la misma solicitud no puede volver a emitirse). NO anula certificados emitidos (para eso está POST /certificate-request/{uuid}/revoke). Es IRREVERSIBLE. Requisitos: solicitud tramitada con Viafirma, en PROCESSING, con el trámite en SUBMITTED, POLLING o FAILED_RECOVERABLE (sin certificado emitido) y en un estado remoto que Viafirma admita rechazar; can_reject en GET /certificate-request/{id}/issuance lo anticipa, pero la decisión final es de Viafirma. Si el trámite nunca llegó a Viafirma (sin cod_request) o Viafirma ya no lo encuentra, se cancela solo localmente. Si la solicitud tiene varios trámites Viafirma, se evalúa y rechaza el trámite vigente, el mismo que informa GET /certificate-request/{id}/issuance (prioridad: con certificado emitido > con KYC completado > en curso > fallido > cancelado > sin estado; a igual prioridad, el más reciente). Un administrador (users.is_admin) puede rechazar cualquier solicitud; los demás usuarios, solo las de su empresa (las ajenas responden 404).

📄️Revocar un certificado Viafirma ya emitido (irreversible)

Solicita a Viafirma RA la revocación del certificado con el código de revocación y el motivo indicados. Solo aplica a solicitudes tramitadas con Viafirma cuyo estado sea PROCESSED (certificado emitido). Si la solicitud tiene varios trámites Viafirma, se revoca y actualiza el trámite vigente, el mismo que informa GET /certificate-request/{id}/issuance (el que tiene el certificado emitido tiene prioridad sobre reintentos o duplicados). Si Viafirma la acepta: el trámite pasa a REVOKED, la solicitud a REVOKED y se registra en el historial el motivo y el código devuelto por Viafirma (que reemplaza a revocation_code en GET /certificate-request/{id}/issuance). El `revoking_code` se obtiene de GET /certificate-request/{id}/issuance → dataRecords.data.revocation_code, disponible desde que se descarga el certificado de Viafirma. Es IRREVERSIBLE. Para retirar una solicitud que aún no tiene certificado use POST /certificate-request/{id}/issuance/reject.