Saltar al contenido principal
Versión: 1.21.1

Crear solicitud de certificado

POST 

/certificate-request

Crea una solicitud de certificado digital para la empresa del usuario autenticado y consume un cupo del tipo de emisión y la vigencia pedidos (life). Tipo de emisión (issuance_flow, opcional): BIOMETRIC o DOCUMENTARY. Si no se envía se usa el de la empresa: issuance_provider = viafirma → BIOMETRIC; mail → DOCUMENTARY; dual (la empresa puede elegir en cada solicitud) → DOCUMENTARY. Se valida contra los tipos que la empresa tiene habilitados (viafirma solo BIOMETRIC, mail solo DOCUMENTARY, dual ambos). El tipo queda guardado en la solicitud y no cambia después; decide el proveedor, las acciones disponibles y el saldo que se consume (un cupo de un tipo nunca se consume en el otro). BIOMETRIC: exige legal_rep_email, legal_rep_first_name y legal_rep_last_name; los adjuntos son opcionales (si llegan se guardan sin validar cantidad ni tamaño); la solicitud nace en PROCESSING y la emisión automática se encola (llega el enlace de verificación por correo y WhatsApp). Si la emisión biométrica está apagada en la plataforma responde 400 ISSUANCE_FLOW_UNAVAILABLE. DOCUMENTARY: attachments es obligatorio, con 2 a 3 archivos, máximo 7 MB por archivo y 10 MB en total (valores por defecto, configurables en el servidor); formatos esperados: PDF, JPG o PNG; el servidor genera y adjunta además un Excel con los datos de la solicitud; la solicitud nace en DRAFT. En todos los casos: no puede existir otra solicitud de la misma empresa con el mismo NIT y DV en DRAFT, SENT, PENDING, ACCEPTED o PROCESSING; terms_version_id debe ser la versión vigente de los Términos y Condiciones; los archivos viajan en Base64 dentro del JSON (no multipart). Las etiquetas HTML (<...>) se eliminan sin error de document_number, address, legal_representative, legal_rep_first_name, legal_rep_last_name, company_name, info, phone y mobile antes de guardar (un < sin cerrar seguido de un carácter distinto de espacio, p. ej. en Calle 5 &lt;3 piso 2, elimina todo el texto que le sigue); legal_rep_email se guarda sin cambios. Nota sobre el cupo: el cupo se consume en la misma transacción que crea la solicitud; si la creación falla, no se consume. Límite: 10 solicitudes por minuto por usuario.

Request​

Responses​

Solicitud creada. dataRecords trae la solicitud con sus files y su issuance_flow (y también city e identity cuando el tipo de emisión es DOCUMENTARY). Solo incluye los datos asignados al crear: no incluye uuid (lo asigna la base de datos al insertar): obténgalo con GET /certificate-request/{id} usando el id devuelto; el uuid es el identificador que piden los endpoints de descarga y revocación. Tampoco incluye pin, expiration_date, issued_at ni cert_valid_to (la clave no aparece, ni siquiera como null); entity_document_type_id solo aparece si se envió (si se omite se guarda 1); info llega como cadena vacía si no se envió; dv llega como número. Use GET /certificate-request/{id} para el registro completo.