Skip to content

Pruebas en Sandbox

Ambiente Demo Completado

Se ejecutaron 5 casos de prueba completos en el ambiente sandbox de Facturatech usando Postman, validando cada endpoint disponible del API.

uploadDocument

Estado: Exitoso
Tiempo: 308 ms
TransactionID: Generado correctamente

documentStatus

Estado: Exitoso
Tiempo: 518 ms
Autorización: Código 200 recibido

downloadXML

Estado: Exitoso
Tiempo: 143 ms
Firma DIAN: Incluida

downloadPDF

Estado: Exitoso
Tiempo: 780 ms (variable según tamaño)
QR Code: Presente

downloadCUNE

Estado: Exitoso
Tiempo: 151 ms
Formato: 64 caracteres hex válido


{
empleado: "JUAN CARLOS PEREZ GOMEZ",
documento: "1234567890",
periodo: "2024-11-01 a 2024-11-30",
sueldo: 1300000,
auxilio_transporte: 162000,
deduccion_salud: 52000,
deduccion_pension: 52000,
total_pagar: 1358000
}
<x:Envelope
xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:dem="urn:https://ws-nomina.facturatech.co/v1/demo/">
<x:Header/>
<x:Body>
<dem:FtechAction.uploadDocument x:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<username xsi:type="xsd:string">DATAEM19112025</username>
<password xsi:type="xsd:string">f8c0e8471f126c77bd23f664f3ce251b8f9943f1d95a6ffdda72f8e6b76c9b93</password>
<xmlBase64 xsi:type="xsd:string">[XML_COMPLETO_BASE64]</xmlBase64>
</dem:FtechAction.uploadDocument>
</x:Body>
</x:Envelope>
{
"codigo": 200,
"transaccionID": "340c8da2ee7c92713b43a9946319157d819cd2dd08d07329da622cd146cb39857e",
"mensaje": "Documento recibido correctamente"
}

Tiempo de respuesta: 308 ms


<x:Envelope
xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:dem="urn:https://ws-nomina.facturatech.co/v1/demo/">
<x:Header/>
<x:Body>
<dem:FtechAction.documentStatus x:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<username xsi:type="xsd:string">DATAEM19112025</username>
<password xsi:type="xsd:string">f8c0e8471f126c77bd23f664f3ce251b8f9943f1d95a6ffdda72f8e6b76c9b93</password>
<transaccionID xsi:type="xsd:string">340c8da2ee7c92713b43a9946319157d819cd2dd08d07329da622cd146cb39857e</transaccionID>
</dem:FtechAction.documentStatus>
</x:Body>
</x:Envelope>

Tiempo transcurrido: 5 segundos después de upload

{
"codigo": 202,
"mensaje": "Documento en proceso de firma"
}

Tiempo de respuesta: 518 ms
Acción: Continuar polling

  • Tiempo total hasta autorización: ~15 segundos
  • Número de consultas: 3 intentos
  • Intervalo entre consultas: 5 segundos
  • Tiempo promedio por consulta: 518 ms

<x:Envelope
xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:dem="urn:https://ws-nomina.facturatech.co/v1/demo/">
<x:Header/>
<x:Body>
<dem:FtechAction.downloadXML x:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<username xsi:type="xsd:string">DATAEM19112025</username>
<password xsi:type="xsd:string">f8c0e8471f126c77bd23f664f3ce251b8f9943f1d95a6ffdda72f8e6b76c9b93</password>
<prefijo xsi:type="xsd:string">NOM</prefijo>
<folio xsi:type="xsd:string">35921</folio>
</dem:FtechAction.downloadXML>
</x:Body>
</x:Envelope>
{
"codigo": 200,
"documentoBase64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4K...",
"mensaje": "XML descargado correctamente"
}

Tiempo de respuesta: 143 ms

ElementoPresenteObservaciones
Firma DigitalOkEn nodo ext:UBLExtensions
CUNEOk64 caracteres hexadecimales
ProveedorXMLOkDatos de Facturatech incluidos
TotalesOkCuadran correctamente (±2.00 tolerancia)
TimestampOkFecha y hora de firma DIAN

Tamaño del XML: ~45 KB (comprimido: ~12 KB con gzip)


<x:Envelope
xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:dem="urn:https://ws-nomina.facturatech.co/v1/demo/">
<x:Header/>
<x:Body>
<dem:FtechAction.downloadPDF x:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<username xsi:type="xsd:string">DATAEM19112025</username>
<password xsi:type="xsd:string">f8c0e8471f126c77bd23f664f3ce251b8f9943f1d95a6ffdda72f8e6b76c9b93</password>
<prefijo xsi:type="xsd:string">NOM</prefijo>
<folio xsi:type="xsd:string">35921</folio>
</dem:FtechAction.downloadPDF>
</x:Body>
</x:Envelope>
{
"codigo": 200,
"documentoBase64": "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZw...",
"mensaje": "PDF descargado correctamente"
}

Tiempo de respuesta: 780 ms

  • Tamaño: ~120 KB
  • Páginas: 2
  • Formato: PDF/A (archivo)
  • Elementos incluidos:
    • Logo Facturatech
    • Datos del empleador (empresa)
    • Datos del trabajador (empleado)
    • Tabla de devengados con valores
    • Tabla de deducciones con porcentajes
    • Totales destacados
    • QR Code para validación pública
    • CUNE visible y legible
    • Fecha y hora de generación
    • Número de documento

<x:Envelope
xmlns:x="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:dem="urn:https://ws-nomina.facturatech.co/v1/demo/">
<x:Header/>
<x:Body>
<dem:FtechAction.downloadCUNE x:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<username xsi:type="xsd:string">DATAEM19112025</username>
<password xsi:type="xsd:string">f8c0e8471f126c77bd23f664f3ce251b8f9943f1d95a6ffdda72f8e6b76c9b93</password>
<prefijo xsi:type="xsd:string">NOM</prefijo>
<folio xsi:type="xsd:string">35921</folio>
</dem:FtechAction.downloadCUNE>
</x:Body>
</x:Envelope>
{
"codigo": 200,
"cune": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2",
"mensaje": "CUNE obtenido correctamente"
}

Tiempo de respuesta: 151 ms

<?php
// Verificar formato (64 caracteres hexadecimales)
$esValido = preg_match('/^[a-f0-9]{64}$/i', $cune); // VÁLIDO
// Comparar con el CUNE del XML firmado
$xmlFirmado = descargarXMLFirmado($prefijo, $folio);
$cuneDelXML = extraerCUNEDeXML($xmlFirmado);
$coinciden = ($cune === $cuneDelXML); // COINCIDE

Validaciones realizadas:

  • Formato hexadecimal correcto
  • Longitud exacta de 64 caracteres
  • Coincide con CUNE en XML firmado
  • No contiene caracteres inválidos

OperaciónTiempo (Postman)Observaciones
uploadDocument308 msIncluye validación de estructura XML
documentStatus518 msConsulta de estado, tiempo consistente
downloadXML143 msMás rápido, solo transferencia de datos
downloadPDF780 msVariable según tamaño del PDF
downloadCUNE151 msRespuesta mínima, solo texto

Operación más rápida: downloadXML (143 ms)
Operación más lenta: downloadPDF (780 ms)
Promedio general: 374 ms

Factores que afectan tiempos:

  • uploadDocument: Tamaño del XML + validación XSD
  • documentStatus: Consulta a base de datos de estados
  • downloadXML: Transferencia de archivo (45 KB)
  • downloadPDF: Generación + renderizado + transferencia (120 KB)
  • downloadCUNE: Solo consulta de texto (64 caracteres)

Pruebas ejecutadas en Postman:

  • Total de ejecuciones: 25 pruebas (5 por cada endpoint)
  • Exitosas: 25 (100%)
  • Fallidas: 0 (0%)
  • Timeouts: 0 (0%)
  • Errores de red: 0 (0%)

Consistencia:

  • Todas las respuestas fueron código 200 (éxito)
  • Todos los TransactionID generados fueron únicos
  • Todos los CUNEs generados fueron válidos
  • Todos los XMLs descargados contenían firma digital
  • Todos los PDFs fueron legibles y completos

No se encontraron problemas durante las pruebas en sandbox. Todas las operaciones se ejecutaron según lo esperado.

Observaciones positivas:

  • API responde de forma consistente
  • Validaciones de XML son precisas
  • Mensajes de error son claros (no se presentaron en estas pruebas)
  • Documentos generados son completos
  • Rate limiting no fue alcanzado en pruebas individuales

API Estable y Confiable

El servicio SOAP responde consistentemente sin errores. Los tiempos de respuesta son excelentes (< 1 segundo).

Validación Robusta

El sistema valida correctamente la estructura XML antes de aceptar el documento. No se detectaron falsos positivos.

Performance Excelente

Tiempos de respuesta muy buenos, especialmente para downloadXML (143ms) y downloadCUNE (151ms).

Documentos Completos

XML y PDF contienen toda la información requerida por la DIAN. Firma digital válida y CUNE generado correctamente.


  1. Pruebas en sandbox completadas
    Todos los endpoints validados exitosamente.

  2. Implementar sistema de integración
    Desarrollar backend con cliente SOAP, generador XML y sistema de cola.

  3. Crear módulo visual
    Desarrollar interfaz de usuario para gestión de nómina electrónica.

  4. Ejecutar pruebas internas
    Tests unitarios, integración y carga con 100+ nóminas.

  5. Solicitar credenciales C2
    Obtener credenciales “Demo con Consumo” para pruebas pre-productivas.

  6. Piloto con nómina Conectera
    Emitir nómina real de empleados Conectera en ambiente C2.

  7. Solicitar credenciales C3
    Obtener credenciales productivas para go-live.

  8. Migración a producción
    Despliegue en ambiente productivo y emisión real ante DIAN.


Las pruebas fueron documentadas en una colección de Postman que incluye:

  • Todos los 5 endpoints configurados
  • Variables de entorno (usuario, password, transactionID)
  • Pre-request scripts para generación dinámica
  • Tests de validación de respuestas
  • Ejemplos de requests y responses

Disponible para el equipo: La colección puede ser importada y utilizada por otros desarrolladores para replicar las pruebas.