Generación de CUF

En esta etapa las pruebas se centran en la generación del Código Único de Factura (CUF), la generación del CUF será por tipo documento sector que va a emitir el Contribuyente. Cada caso de prueba (sugerido como base) queda detallado en el archivo adjunto de tipo Excel, en el que encontrará una pestaña (hoja de cálculo) con el listado de casos de prueba.

La hoja de cálculo contiene las siguientes columnas:

CAMPO

DESCRIPCION

TIPO

LONGITUD

NIT (Emisor)

NIT del contribuyente

Numérico

13

FECHA/HORA (Emisión)

Fecha y Hora del Emisor

yyyyMMddHHmmssSSS

Numérico

17

SUCURSAL (de donde se emite la factura)

0 = Casa Matriz

1 = Sucursal 1

2 = Sucursal 2

N = Sucursal N

Numérico

4

MODALIDAD

1 = Electrónica

2 = Computarizada

3 = Manual

Numérico

1

TIPOEMISION

1 = Online

2 = Offline

Numérico

1

CÓDIGO DOCUMENTO FISCAL

1 = Factura

2 = Nota Debito/Crédito

3 = Nota Fiscal

4 = Documento Equivalente

Numérico

1

TIPO DOCUMENTO SECTOR

1 = Factura Estandar

2 = Factura Sector Educativo

…….

22 = Boleto Aereo

Numérico

2

NRO FACTURA

Número de Factura

Numérico

8

PUNTO DE VENTA (POS)

Número de punto de venta

0 = No corresponde

1,2,3,4,….n

Numérico

4

CÓDIGO AUTOVERIFICADOR

Base 11

Numérico

1

TOTAL

52

Nota: Todos los campos deben completarse conforme a la longitud indicada.

 

Incorporar a la cadena (52 dígitos) resultante, un digito auto verificador utilizando Modulo 11. La cadena resultante debe ser codificada utilizando para ello Base 16 dando como resultado el CUF buscado (código Único de Factura).

Ejemplo:

Dado los siguientes datos:

· NIT EMISOR = 123456789

· FECHA / HORA = 20190113163721231

· SUCURSAL = 0

· MODALIDAD = 1

· TIPOEMISION = 1

· CODIGODOCUMENTOFISCAL = 1

· TIPODOCUMENTOSECTOR = 1

· NUMERO DE FACTURA = 1

· POS: 0

1. Se completa cada campo según la longitud definida con ceros a la izquierda:

· NIT EMISOR = 0000123456789

· FECHA / HORA = 20190113163721231

· SUCURSAL = 0000

· MODALIDAD = 1

· TIPOEMISION = 1

· CODIGODOCUMENTOFISCAL = 1

· TIPODOCUMENTOSECTOR = 01

· NUMERO DE FACTURA = 00000001

· POS: 0000

2. Se concatena los campos:

000012345678920190113163721231000011101000000010000

3. Se obtiene el módulo 11 de la cadena y se lo adjunta al final de la cadena

0000123456789201901131637212310000111010000000100003

Nota

Previa a la obtención del digito verificador mediante el módulo 11, se debe convertir la cadena concatenada al tipo de dato bigint, BigInteger, Int64 o el equivalente a este en el lenguaje en el cual se está desarrollando el Sistema de Facturación. Posteriormente debería realizar la conversión, usando algo similar al ejemplo en JAVA:

BigInteger toHex = new BigInteger(numero, 16);

4. Se aplica al número resultante la Base 16

159FFE6FB1986A24BB32DBE5A2A34214B245A6A3

El Contribuyente debe realizar pruebas de la generación del CUF para todos los tipos de documento sector que estén asociados a su actividad económica. Estas pruebas nos permitirán validar la generación correcta del CUF para los documentos fiscales emitidos por el sistema de facturación.

Para vencer esta etapa, inicialmente se debe realizar 2 pruebas obligatorias de generación de Código Único de Factura, esta cantidad podrá variar durante el proceso de certificación, obteniéndose a partir de ello un porcentaje que le permitirá superar este ciclo.