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
| Tramo | Dígitos | Qué es |
|---|---|---|
| Tipo de documento | 2 | 01 factura, 04 autofactura, 05 nota de crédito, 06 nota de débito, 07 nota de remisión |
| RUC del emisor | 8 | Sin el dígito verificador, completado con ceros a la izquierda |
| DV del RUC | 1 | El dígito verificador del RUC del emisor |
| Establecimiento | 3 | La sucursal — 001, 002… |
| Punto de expedición | 3 | La caja o el sistema que emite |
| Número de documento | 7 | El correlativo de ese punto de expedición |
| Tipo de contribuyente | 1 | 1 persona física, 2 persona jurídica |
| Fecha de emisión | 8 | AAAAMMDD — solo la fecha, sin hora |
| Tipo de emisión | 1 | 1 normal, 2 contingencia |
| Código de seguridad | 9 | Aleatorio, generado por el emisor |
| Dígito verificador | 1 | Mó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.
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.
SEGUÍ LEYENDO