Saltar al contenido
Factuplan
Pantalla de laptop mostrando una secuencia de 49 dígitos numéricos resaltados sobre líneas de código, con manos de un desarrollador escribiendo

Cómo generar la clave de acceso de 49 dígitos para el SRI

Manual paso a paso para generar la clave de acceso de 49 dígitos del SRI Ecuador: estructura, módulo 11, dígito verificador y ejemplo completo con cálculo.

· 9 min de lectura · Equipo Factuplan

La clave de acceso es la huella digital de cada comprobante electrónico en Ecuador: 49 dígitos que el SRI usa para identificar, autorizar y consultar tu factura. Si te dedicas a desarrollar un sistema de facturación, integrar con la API del SRI o entender por qué tu XML está siendo rechazado, necesitas dominar cómo se arma esa cadena.

Este manual desglosa campo por campo los 49 dígitos, explica cómo se calcula el dígito verificador con módulo 11 y cierra con un ejemplo completo que puedes correr en JavaScript.

Si lo que quieres es solo verificar una clave de acceso ya emitida, ve a la guía de cómo verificar la clave de acceso de una factura en el SRI. Si lo que quieres es generarla, sigue leyendo.

Estructura de los 49 dígitos

La clave de acceso no es un número aleatorio. Es la concatenación de 10 campos definidos por la Ficha Técnica de Comprobantes Electrónicos del SRI:

#CampoLargoEjemplo
1Fecha de emisión812052026
2Tipo de comprobante201
3RUC del emisor131792146739001
4Tipo de ambiente12
5Serie (estab + pto. emisión)6001001
6Secuencial del comprobante9000000123
7Código numérico812345678
8Tipo de emisión11
9Dígito verificador (módulo 11)1?
Total49

Total real: 8 + 2 + 13 + 1 + 6 + 9 + 8 + 1 + 1 = 49 dígitos. Si tu cadena no suma exactamente 49, hay un campo con padding incorrecto.

Campo 1: Fecha de emisión (8 dígitos)

Formato ddmmaaaa. No es ISO ni con guiones: solo números, día primero. Padding con cero a la izquierda obligatorio.

  • 12 de mayo de 2026 → 12052026
  • 5 de enero de 2026 → 05012026 (no 5012026)
  • 31 de diciembre de 2025 → 31122025

Campo 2: Tipo de comprobante (2 dígitos)

Cada tipo de documento electrónico tiene su código:

CódigoDocumento
01Factura
03Liquidación de compra de bienes o prestación de servicios
04Nota de crédito
05Nota de débito
06Guía de remisión
07Comprobante de retención

Si pones 02 o cualquier otro código fuera de esa lista, el SRI rechaza el XML.

Campo 3: RUC del emisor (13 dígitos)

El RUC completo, exactamente como aparece en tu certificado de firma electrónica. Siempre 13 dígitos, terminando en 001, 002, etc., según el establecimiento.

  • Persona natural: 1712345678001
  • Sociedad: 1792146739001

No pongas guiones ni espacios. Si tu RUC es de persona natural y solo conoces la cédula (10 dígitos), agrégale 001 al final.

Campo 4: Tipo de ambiente (1 dígito)

CódigoAmbiente
1Pruebas (SRI Certificación)
2Producción

Durante el desarrollo, siempre usa 1. El día que pases a producción cambias a 2. Mezclar ambientes es uno de los errores más típicos: emites con clave de pruebas y mandas al endpoint de producción, o al revés.

Campo 5: Serie (6 dígitos)

Concatenación de establecimiento (3 dígitos) + punto de emisión (3 dígitos). Ambos vienen del registro del contribuyente en el SRI.

  • Establecimiento 001 + Punto de emisión 001001001
  • Establecimiento 002 + Punto de emisión 005002005

Si abres una sucursal nueva, debes registrarla primero en SRI en línea (Trámites → Comprobantes → Establecimientos) y el SRI te asignará el número.

Campo 6: Secuencial del comprobante (9 dígitos)

Número consecutivo de tu facturación, por establecimiento y punto de emisión. Padding con ceros a la izquierda.

  • Primera factura del punto de emisión: 000000001
  • Factura número 123: 000000123
  • Factura número 1.000.000: 001000000

El secuencial no puede repetirse dentro del mismo establecimiento + punto de emisión, aunque cambies de año o anules un comprobante. Si saltas un número (por ejemplo, vas del 122 al 124), el SRI no te marca error pero pierdes trazabilidad.

Campo 7: Código numérico (8 dígitos)

Número de control interno del emisor. La Ficha Técnica del SRI lo define como un número arbitrario que identifica unívocamente al comprobante dentro de tu sistema. No hay reglas estrictas sobre cómo generarlo, pero estas son las prácticas comunes:

  • Aleatorio: 8 dígitos generados con un RNG (Math.random o crypto).
  • Hash truncado: primeros 8 dígitos numéricos de un UUID o hash interno.
  • Secuencial paralelo: un contador independiente del secuencial oficial.

Lo importante es que no se repita para el mismo emisor en el mismo ambiente, porque la clave de acceso completa debe ser única.

Campo 8: Tipo de emisión (1 dígito)

CódigoSignificado
1Emisión normal (con conexión al SRI)
2Emisión por contingencia (SRI caído o sin internet)

El 99% de los comprobantes lleva 1. Solo se usa 2 cuando el SRI está caído y emites el comprobante físico con número de autorización propio, que luego debe regularizarse.

Campo 9: Dígito verificador (1 dígito) — el cálculo crítico

Este es el dígito que más cuesta entender. Es un check digit que se calcula sobre los 48 dígitos anteriores usando el algoritmo módulo 11, exactamente como funciona el dígito verificador del RUC.

El algoritmo paso a paso

  1. Toma los 48 dígitos anteriores (todo lo que armaste hasta el campo 8).
  2. Recorre los dígitos de derecha a izquierda.
  3. Multiplica cada dígito por un peso que cicla: 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, …
  4. Suma todos los productos.
  5. Calcula el residuo: suma mod 11.
  6. Aplica la regla:
    • Si 11 − residuo es 10, el dígito verificador es 1.
    • Si 11 − residuo es 11, el dígito verificador es 0.
    • En cualquier otro caso, el dígito verificador es 11 − residuo.

Implementación en JavaScript

function calcularDigitoVerificador(cadena48) {
  if (cadena48.length !== 48) {
    throw new Error("La cadena debe tener exactamente 48 dígitos")
  }

  const pesos = [2, 3, 4, 5, 6, 7]
  let suma = 0

  // Recorrer de derecha a izquierda
  for (let i = 0; i < cadena48.length; i++) {
    const digito = parseInt(cadena48[cadena48.length - 1 - i], 10)
    const peso = pesos[i % 6]
    suma += digito * peso
  }

  const residuo = suma % 11
  const resultado = 11 - residuo

  if (resultado === 11) return 0
  if (resultado === 10) return 1
  return resultado
}

Implementación en Python

def calcular_digito_verificador(cadena48: str) -> int:
    if len(cadena48) != 48:
        raise ValueError("La cadena debe tener exactamente 48 dígitos")

    pesos = [2, 3, 4, 5, 6, 7]
    suma = sum(
        int(cadena48[-(i + 1)]) * pesos[i % 6]
        for i in range(48)
    )
    residuo = suma % 11
    resultado = 11 - residuo

    if resultado == 11:
        return 0
    if resultado == 10:
        return 1
    return resultado

Ejemplo completo: armar una clave de acceso real

Supongamos que vas a emitir una factura con estos datos:

CampoValor
Fecha12 de mayo de 2026
Tipo de comprobanteFactura
RUC1792146739001
AmbienteProducción
Establecimiento001
Punto de emisión001
Secuencial123
Código numérico12345678
Tipo de emisiónNormal

Paso 1: concatenar los 48 dígitos

12052026 + 01 + 1792146739001 + 2 + 001001 + 000000123 + 12345678 + 1

Resultado:

120520260117921467390012001001000000123123456781

(Conteo: 8 + 2 + 13 + 1 + 6 + 9 + 8 + 1 = 48 dígitos ✓)

Paso 2: aplicar el algoritmo módulo 11

const cadena48 = "120520260117921467390012001001000000123123456781"
const dv = calcularDigitoVerificador(cadena48)
console.log(`Dígito verificador: ${dv}`)

Paso 3: armar la clave final

claveDeAcceso = cadena48 + dv  // 49 dígitos

Esa es la cadena que va al elemento <claveAcceso> del XML que envías al SRI.

Errores comunes al generar la clave de acceso

ErrorSíntomaSolución
Fecha en formato aaaammddXML rechazado con error de claveAccesoUsar ddmmaaaa
Cédula de 10 dígitos en vez de RUC de 13Clave no validaConcatenar 001 al final de la cédula
Padding de ceros faltanteClave de menos de 49 dígitosValidar .length === 49 antes de enviar
Ambiente de pruebas (1) enviado a producciónSRI rechaza la autorizaciónVerificar que el dígito 26 coincida con el endpoint
Dígito verificador hardcodeado en 0”Clave de acceso inválida”Implementar el módulo 11 correctamente
Secuencial duplicado”Comprobante ya autorizado”Llevar un contador en BD con bloqueo transaccional

¿Realmente necesito armarla a mano?

No, si usas un sistema de facturación autorizado por el SRI: te lo arma automáticamente cada vez que emites un comprobante, incluyendo dígito verificador, firma XAdES-BES y envío al SRI.

Sí, si estás:

  • Construyendo tu propio integrador con la API del SRI desde cero.
  • Migrando datos de un sistema a otro y necesitas reconstruir claves para auditar.
  • Debuggeando errores donde el SRI te dice “clave de acceso inválida” y necesitas saber qué dígito está mal.

Para todo lo demás, conviene usar un emisor autorizado y dedicar tu tiempo a tu negocio, no al módulo 11. Si te interesa cómo elegir uno, mira la guía completa de facturación electrónica y los requisitos del SRI.

Si lo que quieres es validar una clave de acceso ya generada (propia o ajena), el SRI tiene un consultor público: revisa cómo verificar la clave de acceso de una factura.

Preguntas frecuentes

¿Cuántos dígitos tiene la clave de acceso del SRI y cómo se compone?

La clave de acceso tiene exactamente 49 dígitos numéricos, formados por la concatenación de 10 campos: fecha de emisión (8), tipo de comprobante (2), RUC del emisor (13), tipo de ambiente (1), serie con establecimiento y punto de emisión (6), secuencial (9), código numérico (8), tipo de emisión (1) y dígito verificador (1) calculado con módulo 11 sobre los 48 dígitos anteriores.

¿Cómo se calcula el dígito verificador de la clave de acceso del SRI?

Se aplica el algoritmo módulo 11 sobre los 48 dígitos previos: se recorren de derecha a izquierda multiplicando cada uno por un peso que cicla en 2, 3, 4, 5, 6, 7. Se suman los productos, se calcula el residuo dividiendo entre 11 y el dígito verificador es 11 menos ese residuo. Casos especiales: si da 11 el dígito es 0, y si da 10 el dígito es 1.

¿En qué orden van los campos dentro de los 49 dígitos?

El orden fijo es: 1) fecha ddmmaaaa, 2) tipo de comprobante (01 factura, 04 nota crédito, 05 nota débito, 06 guía remisión, 07 retención, 03 liquidación), 3) RUC de 13 dígitos, 4) ambiente (1 pruebas, 2 producción), 5) establecimiento + punto de emisión, 6) secuencial de 9 dígitos, 7) código numérico de 8 dígitos, 8) tipo de emisión (1 normal, 2 contingencia), 9) dígito verificador.

¿Qué pasa si genero la clave de acceso con un dígito verificador incorrecto?

El SRI rechaza el XML antes de autorizarlo, con un error específico tipo 35 (clave de acceso inválida) o equivalente. La autorización nunca se emite, el comprobante no es válido y debes regenerar la clave con el dígito verificador correcto y reenviar. Por eso es crítico implementar el algoritmo módulo 11 exactamente como lo define la Ficha Técnica.

¿Necesito generar la clave de acceso manualmente para emitir facturas en Ecuador?

No, si usas un sistema de facturación electrónica autorizado por el SRI: el sistema arma la clave de 49 dígitos automáticamente, calcula el módulo 11, firma el XML con XAdES-BES y lo envía al SRI. Solo necesitas armarla manualmente si estás desarrollando tu propio integrador con la API del SRI desde cero o auditando claves existentes.

¿El código numérico de 8 dígitos puede ser cualquiera?

Sí, dentro de los 8 dígitos numéricos. La Ficha Técnica lo define como un número arbitrario que debe identificar de forma única al comprobante dentro del sistema del emisor. Las prácticas comunes son generarlo aleatoriamente, derivarlo de un UUID interno, o usar un contador secuencial paralelo. Lo único obligatorio es que no se repita y que respete el largo de 8 dígitos.

¿La clave de acceso cambia si emito en ambiente de pruebas o en producción?

Sí, en el dígito 26 (campo 4: tipo de ambiente). Si emites contra el ambiente de certificación o pruebas del SRI debe ser 1; si emites en producción debe ser 2. Mezclar valores genera errores de autorización: una clave con ambiente 1 enviada al endpoint de producción es rechazada y viceversa. Configura tu sistema para que cambie automáticamente al pasar a producción.

Equipo Factuplan

Especialista en facturación electrónica

Equipo editorial de Factuplan, especializado en facturación electrónica y normativa tributaria del SRI.

Conocer al equipo

Artículos relacionados

Empieza a facturar electrónicamente hoy

1 mes gratis al comprar tu firma electrónica con FirmaOK. Sin tarjeta de crédito, sin compromiso.