Ir al contenido

Qué es el CDC de una factura electrónica

Son 44 dígitos y ninguno está de adorno: cada tramo dice algo sobre el documento. Acá está desarmado, incluido el dígito verificador y los tres errores que casi todos cometen.

El CDC —Código de Control— es el número de 44 dígitos que identifica de forma única a cada documento electrónico ante SIFEN. Es lo que aparece impreso en el KuDE debajo del código de barras, lo que se usa para consultar un documento en el portal de la DNIT y lo que hay que tener a mano cuando se cancela una factura.

No es un número aleatorio ni un correlativo: es una cadena calculada, donde cada tramo significa algo. Se puede leer.

Los 44 dígitos, desarmados

TramoDígitosQué es
Tipo de documento201 factura, 04 autofactura, 05 nota de crédito, 06 nota de débito, 07 nota de remisión
RUC del emisor8Sin el dígito verificador, completado con ceros a la izquierda
DV del RUC1El dígito verificador del RUC del emisor
Establecimiento3La sucursal — 001, 002…
Punto de expedición3La caja o el sistema que emite
Número de documento7El correlativo de ese punto de expedición
Tipo de contribuyente11 persona física, 2 persona jurídica
Fecha de emisión8AAAAMMDD — solo la fecha, sin hora
Tipo de emisión11 normal, 2 contingencia
Código de seguridad9Aleatorio, generado por el emisor
Dígito verificador1Módulo 11 sobre los 43 anteriores

43 dígitos de datos más el verificador. Concatenados sin guiones ni espacios: en el XML viajan pegados, y los guiones que ves en un KuDE son solo para que se pueda leer.

Tres cosas que casi todos se equivocan

El timbrado no está adentro

Viniendo del papel, uno espera que el número de timbrado sea parte del identificador. No lo es: el CDC no lo incluye en ningún tramo. El timbrado viaja aparte, en su propio grupo del XML. Un documento se identifica por quién lo emitió, desde dónde, con qué número y qué día — no por con qué autorización.

La fecha va sin hora

Son ocho dígitos: AAAAMMDD. La hora de emisión existe, pero vive únicamente en el campo dFeEmiDE del XML, no en el CDC. Meter la hora acá es un error frecuente en implementaciones propias y da un CDC de largo equivocado, que SIFEN rechaza sin decir por qué.

El código de seguridad tiene que ser aleatorio de verdad

Nueve dígitos que elige el emisor, y la palabra importante es aleatorio: no puede ser un contador, ni la hora, ni algo que se pueda adivinar. Es lo que impide que un tercero, sabiendo tu RUC y tu numeración, pueda construir el CDC de una factura tuya y consultarla. Un generador secuencial vuelve pública la facturación de la empresa. Se usa un generador criptográfico, no la función de azar común del lenguaje.

El dígito verificador: módulo 11

El último dígito se calcula sobre los 43 anteriores con el algoritmo módulo 11 — el mismo que valida el DV de un RUC paraguayo. Se recorre el número de derecha a izquierda multiplicando cada dígito por un peso que arranca en 2 y sube hasta 11, y cuando llega a 11 vuelve a 2. Se suman los productos, se toma el resto de dividir por 11: si es 0 o 1 el dígito es 0, si no es 11 − resto.

El peso sube hasta 11, no hasta 9. Es el error más común al implementarlo, porque otros módulos 11 de la región paran en 9. Con el tope equivocado, la mayoría de los CDC salen bien igual y uno de cada tantos sale mal — que es la peor forma de tener un bug.

Para qué sirve en el día a día

  • Consultar un documento en el portal de la DNIT, escribiéndolo o escaneando el QR del KuDE
  • Cancelar una factura ante SIFEN: el evento de cancelación se identifica por CDC
  • Referenciar el documento asociado en una nota de crédito o de débito
  • Reclamar: si un cliente dice que no recibió la factura, el CDC es lo que zanja la discusión

Como usuario de un sistema de facturación nunca vas a tener que calcularlo: aparece solo en cada documento. Vale la pena entenderlo igual, porque el día que algo no cierre, el CDC es por donde se empieza a mirar.

Esto lo resolvemos nosotros, si querés.

El CDC, la firma, el XML, el envío a SIFEN, el KuDE: todo eso lo hace GCOMPY por debajo. Vos cargás la factura y sale. Desde Gs. 150.000 por mes, sin instalar nada.