Preparar la habilitación de nómina electrónica¶
Preparación no es habilitación conseguida
Corte: xdiegob/BPSPayrollE/dev-fase3, SHA 067ec7a21cf049451cd349ae473e872883f98e77, revalidado el 2026-09-13. URL Development 37956195 identificada por la extensión. El Test: Success corresponde a la comprobación previa del mismo día; el historial de Odoo.sh no pudo releerse en esta ampliación. Estado PARCIAL: formulario de consolidación NIE abierto con Operador UAT; configuración administrativa, resultados locales y cadena de firma pendientes de sesión autorizada y prueba. No se transmitió ni consultó DIAN.
Objetivo y responsables¶
Preparar una compañía, su software, un documento y una evidencia local que permitan al PO decidir el siguiente paso de habilitación. No producir una aceptación, consumir intentos ni sustituir el portal DIAN.
| Responsable | Qué hace | Qué no debe delegar a esta guía |
|---|---|---|
| RR. HH. | Datos del trabajador y códigos oficiales DSNE de la ficha laboral | Contraseñas o custodia de certificados |
| Operador | Insumos de nómina, consolidación local y controles permitidos | Permisos de administrador o envíos |
| Administrador BPS autorizado | Configuración por compañía/ambiente y evaluación local | No convierte una evaluación en habilitación oficial |
| Revisor/auditor | Revisa resultados conservados según acceso real | No se presume que pueda ejecutar botones de administrador |
| PO / custodio autorizado | Autenticación, certificado y secretos en privado; decisiones y acciones externas | Nunca compartir P12/PFX, PIN o contraseñas en chat o capturas |
Las sesiones que faltan están agrupadas en Accesos para completar los recorridos. No elevar operador_uat para evitar cambiar de usuario.
1. Confirmar compañía y ambiente¶
Clasificación: disponible por interfaz; verificación administrativa pendiente.
- Comprobar que se está en el proyecto
xdiegob-bpspayrolle, rama y build autorizados de Development. Una URL de desarrollo no equivale al ambiente tributario de la configuración. - Seleccionar exclusivamente la compañía sintética autorizada. Para el ejemplo mensual se conserva InfoCenter Ejemplo Colombia / Ana Ejemplo InfoCenter / agosto de 2026, todavía pendiente de preparar; D-19 no lo sustituye.
- Verificar país Colombia, COP, identificación y ubicación del emisor. RR. HH. completa códigos DSNE del trabajador con fuente: tipo/subtipo, período, método de pago y ubicación. No inventar códigos para superar un control.
- En Nómina BPS → DSNE → Firmante DIAN BPS → Configuración DSNE, verificar compañía y ambiente habilitación antes de evaluar. Esta entrada es para administrador/auditor, no para el operador observado.
Resultado esperado: contexto inequívoco. Si faltan permisos, cambiar a sesión autorizada con intervención del PO; no usar enlaces técnicos para saltar el menú.
2. Configurar el software¶
Clasificación: interfaz definida en el código fusionado, pendiente de recorrer con administrador.
En Configuración DSNE, el formulario agrupa:
| Datos | Uso y comprobación |
|---|---|
| Ambiente, Software ID, estado y fuente | Identificar el registro propio de la compañía; no reutilizar datos de otra empresa |
| Modo de operación, TestSetID | Deben corresponder al registro del PO ante DIAN; no inventar un set ni sus cantidades |
| Endpoint y fuente del endpoint | Contrato técnico oficial del ambiente correcto, no una URL de memoria |
| Certificado vigente | Referencia a metadata de certificado, no el archivo privado |
| País/departamento/municipio NIE y fuente | Ubicación oficial del emisor |
| Naturaleza del participante y su fuente | Documentar el dato requerido según el caso |
Guardar únicamente datos autorizados de prueba cuando exista sesión preparada. No se ha guardado una configuración nueva en esta entrega. La ausencia de TestSetID o endpoint tiene una recuperación explícita en el panel, no se resuelve poniendo valores de ejemplo como si fueran reales.
3. Intervención privada del PO: certificado¶
Clasificación: reservada al PO/custodio. No ejecutada por el agente.
El código fusionado ofrece Cargar certificado al vault desde la configuración en habilitación. Abre un formulario HTTPS administrado que recibe PKCS#12, contraseña y PIN; existe además metadata en Certificados DIAN y un asistente Validar material PKCS#12. Estos nombres explican dónde interviene el custodio, no son instrucciones para que el agente abra, cargue o lea material real.
El PO debe completar la operación privada por el procedimiento aprobado y devolver solo un resumen sin secretos: compañía, ambiente, vigencia y resultado autorizado. No ejecutar validación del material real ni Firmar candidato XAdES para producir una captura. No abrir el vault para inspeccionarlo. Un certificado válido localmente no prueba aceptación DIAN.
4. Evaluar preparación local¶
Certificado de firma y certificado de conexión se evalúan por criterios distintos. El perfil WS-Security exige catálogo con OID, fuente, versión y vigencia; la aptitud XAdES verifica llave/vigencia y usos de firma. La validez de uno no prueba la del otro. Los validadores de material del vault pueden abrir PKCS#12: no confundirlos con los botones de preflight documental que no firman. En este encargo no se ejecutan sobre material real; la intervención privada sigue reservada al PO. Cambio fuenteado en PayrollBPS PR #39 (61b6a653, e4e6e3cb), presente en el canon actual.
Clasificación: botón fusionado para Administrador BPS; ejecución y captura de resultado pendientes.
- Abrir la configuración correcta y pulsar Evaluar habilitación DIAN local, solo sobre la configuración sintética autorizada y sin material real.
- Leer estado, fecha, número de evaluación y resumen; luego revisar los ítems vigentes. Cada ítem aporta código, severidad, mensaje, fuente y acción sugerida.
- Conservar la evidencia y su SHA-256, sin capturar secretos ni información personal. Las evaluaciones anteriores se distinguen de las vigentes.
| Estado | Lectura correcta |
|---|---|
| Borrador | Aún no evaluado |
| Incompleta | Faltan datos, credenciales o fuentes |
| Bloqueada | Existe condición inválida o contradictoria |
| Lista técnica no transmisible | Preparación local; no habilitación oficial ni autorización de envío |
Bloqueos fuenteados en el código del corte¶
No son errores provocados en esta sesión; son códigos de la evaluación fusionada.
| Código | Qué revisar | Responsable y recuperación |
|---|---|---|
PENDIENTE_CONFIG_DSNE / PENDIENTE_MODO_OPERACION |
Identificación del software y modo | Administrador/PO: completar desde registro autorizado |
PENDIENTE_DATO_DIAN_TESTSETID |
Set de pruebas | PO: obtener el dato en el portal oficial; no reiniciar sets |
PENDIENTE_DATO_DIAN_ENDPOINT |
Endpoint por ambiente y fuente | PO/implantador: contrastar contrato técnico oficial |
PENDIENTE_CERTIFICADO_DIAN |
Metadata del certificado | Custodio: completar operación privada |
CERTIFICADO_NO_VIGENTE / CERTIFICADO_AMBIGUO |
Vigencia o varios certificados | Custodio: resolver selección/vigencia sin entregar secretos |
PENDIENTE_VAULT / PKCS12_MATERIAL_INVALIDO |
Presencia/estado del material | Custodio: revisar por canal privado; no intentar descifrar |
PREFLIGHT_CERTIFICADO_FIRMA_XADES / PREFLIGHT_CERTIFICADO_WS_SECURITY |
Perfil y fuente de certificado | Seguir mensaje y fuente del ítem; escalar al custodio/implantador |
XSD_OFICIAL_LOCAL_NO_DISPONIBLE |
XSD local ausente o que no compila | Equipo de producto: conservar diagnóstico; no modificar producto desde InfoCenter |
Corregir solo el dato autorizado de origen; reevaluar localmente y conservar ambos resultados. No repetir envíos para diagnosticar.
5. Del recibo al NIE local¶
Clasificación: asistente observado por interfaz; consolidación pendiente de recibo finalizado del caso.
Ruta del corte: Nómina BPS → DSNE → Consolidar documento NIE. A menor ancho puede estar dentro de +. El asistente observado se titula Consolidar documento DSNE y muestra Trabajador, Periodo, Politica D-5 y Origen, con botones Consolidar y Cancelar. Origen aparece como «Recibo productivo finalizado (DSNE local, HU-083B)».
- Preparar y revisar realmente el recibo del mismo trabajador y período.
- Abrir el asistente, seleccionar trabajador/período y documentar la política de origen requerida.
- Consolidar solo cuando los insumos estén completos. El aviso observado aclara que no firma, no genera CUNE ni transmite.
- En DSNE BPS → Documentos NIE, revisar vínculo al recibo, totales y líneas, estado y errores. La lista no tiene creación manual: el documento nace del flujo de consolidación.
Punto de parada del ejemplo: H-8 todavía impide completar el recibo nuevo. PR #17 fue consultado de nuevo: abierto, no fusionado. No consolidar desde un recibo precargado y presentarlo como el caso de agosto. El formulario se leyó en vivo, pero la extensión se desconectó antes de completar su captura; no se fabrica una imagen.
6. Notas de ajuste NIA¶
Clasificación: consulta definida en interfaz; creación por interfaz no demostrada.
Ruta observada en menú: DSNE → DSNE BPS → Notas de ajuste (NIA). Las vistas fusionadas de esta ruta deshabilitan crear/editar. Permiten examinar documento origen, tipo, período, motivo, soporte, estado XSD y datos oficiales conservados.
No indicar «Nuevo → guardar NIA» porque esa ruta no lo permite. La preparación de una nota nueva queda pendiente de una ruta operable verificada; no usar un servicio, SQL ni una nota precargada como sustituto. Si ya existe una nota autorizada, el revisor debe cotejar su origen y soporte sin fabricar estados. Cantidades o pasos del set DIAN requieren intervención del PO en el portal, no se infieren aquí.
7. Validaciones, candidato y evidencia¶
Clasificación: controles locales fusionados; ejecución del caso pendiente. Separar los botones que no descifran de los que usan material privado.
| Acción del formulario | Responsable del botón | Resultado y frontera |
|---|---|---|
| Validación XSD oficial | Según permisos efectivos del documento | Estado/errores del esquema local, no aceptación DIAN |
| Preflight firma XAdES | Operador o Administrador BPS | Matriz local y digest técnico; no firma ni descifra secretos |
| Preflight SOAP DIAN | Operador o Administrador BPS | Requisitos locales y externos; no envía ni consulta DIAN |
| Exportar evidencia TXT | Operador o Administrador BPS | Evidencia del preflight, no XML firmado ni sobre SOAP |
| Ejecutar preflight DIAN | Administrador BPS | Asistente por documento/ambiente; auditor consulta |
| Generar paquete local | Administrador BPS | ZIP técnico con XML, manifiesto y preflight; no envío |
| Preparar pre-envío DIAN habilitación | Administrador BPS | Matriz local previa al envío; no respuesta del tercero |
| Firmar candidato XAdES | Administrador; intervención privada del PO para material real | Usa PKCS#12 custodiado; prohibido ejecutarlo con certificado real en este encargo |
| Preparar expediente DIAN | Administrador BPS, desde candidato válido | Expediente local SendNominaSync; no transmite |
No se ha generado candidato, ZIP ni firma del ejemplo. No confundir Preparar pre-envío con Preparar expediente DIAN ni con Enviar. Registrar referencias y hash de cada objeto efectivamente generado cuando se retome.
8. Antes de cualquier acción externa¶
Dos ZIP distintos: el paquete de evidencia local no es el ZIP candidato transmisible. PayrollBPS PR #51 (a9dce162, 59d3d548), presente en el canon actual, exige que el ZIP candidato contenga exactamente un XML firmado, con nombre esperado y bytes idénticos al candidato persistido; rechaza directorios, cifrado o topología inválida. Ante ZIP_DSNE_TOPOLOGIA_INVALIDA o ZIP_DSNE_XML_DIFIERE_CANDIDATO, conservar diagnóstico y escalar. No recomprimir ni sustituir el XML manualmente, no firmar con material real para probarlo y no enviar. Este control fue contrastado en código; no se generó un ZIP del ejemplo. Fuente.
Clasificación: reservada al PO y fuera de la ejecución autorizada al agente.
El conector fusionado contiene Envíos DIAN (habilitación). El expediente distingue estado local, candidato, hash de paquete, consentimiento, intento real, origen de respuesta y aceptación externa. En su cabecera existen Emitir boleto de consentimiento, Enviar a DIAN habilitación y Consultar estado DIAN. Que estén implementados no concede autorización para usarlos.
Detenerse antes de estos botones. El consentimiento es por documento y de un solo uso; no emitirlo como parte de una captura. No abrir conexiones externas, consumir intentos, reiniciar sets ni sincronizar a producción. El PO debe intervenir si necesita el portal; no se documentan pantallas del portal que no se observaron.
9. Revisar respuestas conservadas y recuperar errores¶
Qué cambió respecto del conector histórico¶
Contraste de código final en S; ningún intercambio externo ejecutado aquí.
| Antes / interpretación que debe retirarse | Comportamiento vigente y acción del responsable |
|---|---|
Expedientes del contrato SendTestSetAsync como si fueran la ruta actual |
Se preservan como legado. El expediente nominal NIE distingue SendNominaSync y GetStatus; no trasladar aceptación entre expedientes ni pulsar esas acciones en este encargo |
NumeroSoftware y un sc estático como requisitos nuevos de captura |
El contrato vigente deriva SoftwareSecurityCode por documento a partir de SoftwareID, PIN custodiado y número. No pedir al PO un sc estático ni revelar el PIN; los registros anteriores permanecen históricos |
| Bandera persistente de compañía autoriza todos los envíos | Sustituida por boleto de un uso ligado al documento/candidato, con vencimiento y consumo controlado. PUERTA_PERSISTENTE_DEPRECADA no se recupera activando la bandera antigua |
| Una NIA con candidato local ya puede enviarse | La ruta local puede preparar NIA, pero S conserva PENDIENTE_CONTRATO_SOAP_NIA en el envío real. No probarla contra DIAN; la presencia del botón o de permisos no elimina el gate |
| El límite configurado de espera es el tiempo que tardó el error | El diagnóstico distingue duración medida y límite, y fase TCP/TLS/escritura/lectura. El timeout SOAP es gobernado por compañía/ambiente (10–90 s, predeterminado técnico 60); modificarlo requiere responsable y traza, no garantiza respuesta |
| Cualquier excepción inmediata es timeout | El transporte separa falta de CA, identidad TLS, error HTTP/Fault y agotamiento real del plazo. Conserva el error vivo en el intercambio, no el texto viejo de una evaluación anterior |
Recuperar sin reenviar ni modificar la seguridad¶
| Evidencia local | Acción segura | No hacer |
|---|---|---|
PENDIENTE_ALMACEN_CA_TLS |
Instalador revisa almacén de confianza del entorno y diagnóstico; el control impide abrir red | Desactivar verificación TLS o aceptar cualquier certificado |
TLS_DIAN_SAN_AUSENTE / TLS_DIAN_HOSTNAME_NO_COINCIDE |
Escalar host/ambiente y diagnóstico redactado | Cambiar endpoint a uno no fuenteado o saltar identidad del servidor |
TIMEOUT_TRANSPORTE_DIAN[...] |
Registrar fase, duración medida, límite y expediente; el PO decide seguimiento por su procedimiento externo autorizado | Reenviar el mismo ZIP o suponer aceptación por falta de respuesta |
HTTP_DIAN_... con Fault |
Conservar Code/Subcode/Reason redactados, sin sobre SOAP ni material privado | Confundir HTTP 500 con fallo de nómina o inventar respuesta DIAN normalizada |
| Panel evaluado antes del cambio de contrato | Distinguir ítems históricos de vigentes y reevaluar localmente con los datos autorizados | Reescribir la evidencia anterior como si perteneciera a S |
| Candidato antiguo con XML y manifiesto juntos | Conservarlo inmutable y solicitar a producto/custodio la regeneración autorizada desde el origen con contrato vigente | Recomprimir a mano, sustituir bytes o firmar con material real para tomar evidencia |
Raíz y firma: instrucciones para interpretar, no para repararlas¶
La raíz literal protegida por 5d21202 debe mantener xsi:schemaLocation; no reconstruirla con otro serializador ni cambiar prefijos desde el InfoCenter. La verificación XAdES vigente examina su contrato completo, no solo una firma criptográficamente válida. Su canonicalización inclusiva no debe confundirse con la exclusiva de WS-Security ni con el digest técnico previo a la firma.
Si el diagnóstico menciona SigningTime, conserva el valor y el SHA para el carril de producto: el código declara una convención horaria específica que esta guía no certifica como equivalencia semántica de zona horaria. Ni el contrato local ni los vectores/replays sintéticos acreditan aceptación externa. Fuentes: transporte y fases, expediente y gate NIA, contrato XAdES, fecha de firma.
Capturas pendientes: metadata/configuración autorizada, resultado del preflight y diagnóstico local redactado, referencia del candidato y condición de recuperación. No se ejecutan firmas ni acciones externas para conseguirlas.
Clasificación: consulta local con rol autorizado; evidencia externa pendiente para este ejemplo.
- Firmante DIAN BPS → Respuestas DIAN (local) conserva evidencia importada. Registrar respuesta DIAN local importa un archivo y lo interpreta; no ejecuta GetStatus ni demuestra aceptación productiva. No cargar respuestas inventadas.
- Envíos DIAN (habilitación) conserva intercambios, tiempos, hashes, errores redactados y resultado normalizado. Leer evidencia existente no es pulsar Consultar estado DIAN, que sí es una acción externa y está prohibida en esta ejecución.
- Ante rechazo o respuesta incierta: conservar referencia del expediente, fecha, estado, fase del error y evidencia redactada; informar al PO. No reenviar, no cambiar el estado a mano y no resolver ZE02 modificando la raíz XML desde este encargo.
- Mantener protegida la corrección
raiz_oficialde5d21202: es código de producto fuera de alcance, no un ajuste editorial.
Resultado que se deberá comprobar al completar¶
Configuración y evaluación identificadas por compañía/ambiente; documento relacionado con recibo real del caso; diagnósticos y referencias conservados; cada paso privado/externo asignado al PO. La aceptación DIAN solo puede afirmarse con evidencia externa específica, nunca por CI, XSD o firma local.
Fuentes y QA¶
Código consultado en el SHA indicado: configuración y panel, evaluación y códigos, conector y expediente, vistas NIE/NIA.
Fuentes oficiales consultadas el 2026-09-13: DIAN — documento soporte de pago de nómina electrónica, documentación técnica DIAN, Resolución 13 de 2021, compilación DIAN. La distinción entre habilitación y operación proviene de esas fuentes; este manual no fija plazos ni cantidades de prueba sin verificar el caso en el portal.
QA documental y visual se registra aparte en la cobertura integral. La cabecera del manual local fue capturada a 1280/480/360; la primera tabla permite llegar a la última columna y regresar a 360 mediante desplazamiento interno. Esto no acredita las demás tablas ni el producto. Pantallas administrativas Odoo, sus capturas 1280/480/360 y el recorrido positivo siguen pendientes; no declarar QA global por la portada del manual.