Saltar al contenido principal

Proceso de certificacion DGII (CerteCF)

La certificacion es un paso obligatorio ante la DGII para que tu empresa pueda emitir e-CF en produccion. Zarela incluye un runner de certificacion (via API y portal) que ejecuta las pruebas de simulacion, hace polling del estado en la DGII y genera un evidence pack descargable.

Requisito previo

Antes de iniciar, ten una cuenta activa en Zarela, una API key de CerteCF con scope tenant:admin y un certificado digital valido (.p12) cargado.

Vision general


Paso 1 — Cargar certificado digital

Sube tu archivo .p12 a Zarela. Se usa para firmar todos los e-CF del entorno de certificacion (CerteCF).

  • En el portal, ve a Certificados e ingresa la contrasena del .p12.
  • Verifica el RNC asociado y la fecha de expiracion que muestra Zarela.

Paso 2 — Crear API Key para CerteCF

Genera una API key para el ambiente CerteCF con scope tenant:admin (y ecf:validate/ecf:create).

  • Ingresa una descripcion (por ejemplo CerteCF - certificacion DGII).
  • La key se muestra resumida; usa Copiar para obtener el valor completo desde el portal cuando lo necesites.

Paso 3 — Crear postulacion en el portal DGII

Registra tus datos y las URLs de integracion en el portal de certificacion DGII.

3.1 Crear la postulacion

  • En el portal DGII, en CertificacionEmisor Electronico, haz clic en CREAR POSTULACION.
  • Selecciona Representantes asociados para continuar.

3.2 Datos del software

CampoValor
Tipo de softwareEXTERNO
Nombre del softwareZarela
Version del software1.0
RNC proveedor(ingresar manualmente el RNC que Zarela te envio al activar tu cuenta)
URL de recepcionhttps://ecf.api.zarela.do/fe/recepcion/api/ecf?environment=CerteCF
URL de aprobacion comercialhttps://ecf.api.zarela.do/fe/aprobacioncomercial/api/ecf?environment=CerteCF
URL de autenticacion(dejar en blanco)
Las URLs publicas no llevan prefijo de ambiente

Los endpoints publicos DGII viven en la raiz del dominio (/fe/...); el ambiente se indica con el parametro ?environment=. Una URL con prefijo (/CerteCF/fe/...) responde 404 y la DGII no podra entregarte documentos.

URL de autenticacion en blanco

La URL de autenticacion B2B es opcional y debe quedar en blanco para esta configuracion. X-API-KEY se usa solamente entre tu ERP y la API privada de Zarela; no forma parte de los endpoints que invocan la DGII u otros contribuyentes.

3.3 Generar, firmar y subir el archivo de postulacion

  • En el portal DGII, haz clic en GENERAR ARCHIVO: se descarga un XML de postulacion sin firmar.
  • Firma el XML con tu certificado (.p12). Zarela incluye una herramienta de firma integrada: sube el XML sin firmar y se descarga firmado.
  • En el portal DGII, sube el XML firmado y haz clic en ENVIAR ARCHIVO.

Paso 4 — Ejecutar las pruebas de simulacion con el runner

Aqui esta el corazon del proceso en Zarela: el runner de certificacion envia un documento de prueba por cada tipo de e-CF al ambiente CerteCF, firmando y enviando cada uno automaticamente.

Puedes ejecutarlo desde el portal (asistente interactivo) o por API.

4.1 Importar el set de casos

El runner acepta documentos en el contrato simplificado de Zarela:

  • Por JSON, envia un arreglo documents o filas normalizadas en rows.
  • Para Excel, el portal procesa el archivo directamente. Por API debes enviar el contenido del archivo en workbookBase64.

Los ejemplos JSON DGII/XSD de Tipos de e-CF se usan con el endpoint normal de emision; no deben copiarse directamente dentro de documents del runner.

Ejemplo minimo de set-certificacion.json:

{
"documents": [
{
"type": "E31",
"encf": "E310000000801",
"issueDate": "2026-06-03T10:30:00-04:00",
"sequenceExpirationDate": "31-12-2028",
"buyer": { "rnc": "130701601", "name": "CLIENTE CERT SRL" },
"lines": [
{
"name": "Servicio de certificacion",
"quantity": 1,
"unitPrice": 1000,
"itbisRate": 18,
"itemKind": "service"
}
]
}
]
}

El runner completa el emisor con los datos de tu cuenta. Para notas E33/E34 agrega la referencia fiscal requerida en el contrato simplificado.

4.2 Prevalidar el set

POST /CerteCF/certificacion/prevalidar
curl -X POST \
https://ecf.api.zarela.do/CerteCF/certificacion/prevalidar \
-H 'X-API-KEY: zk_cert_...' \
-H 'Content-Type: application/json' \
-d @set-certificacion.json

Valida todos los casos (estructura, totales, XSD) sin crear el run definitivo ni enviar a la DGII.

4.3 Crear el run

POST /CerteCF/certificacion
curl -X POST \
https://ecf.api.zarela.do/CerteCF/certificacion \
-H 'X-API-KEY: zk_cert_...' \
-H 'Content-Type: application/json' \
-d @set-certificacion.json

Respuesta (202):

{
"ok": true,
"environment": "certecf",
"mode": "certification_run_started",
"run": {
"runId": "f0e1d2c3-...",
"jobId": "8b91...",
"documentIds": ["6f89..."],
"batches": [
{ "id": "direct_ecf", "label": "Comprobantes directos", "documentIds": ["6f89..."] }
]
},
"correlationId": "c0ffee00-1234-..."
}

Guarda run.runId; es el identificador utilizado para consultar y descargar la evidencia.

La respuesta run.batches muestra el orden planificado por el runner. Los tipos E33 y E34 deben incluir una referencia valida al comprobante que modifican; revisa el set y la prevalidacion antes de iniciar el run.

4.4 Consultar el estado del run

GET /CerteCF/certificacion/{runId}
curl -X GET \
https://ecf.api.zarela.do/CerteCF/certificacion/f0e1d2c3-... \
-H 'X-API-KEY: zk_cert_...'
{
"ok": true,
"environment": "certecf",
"status": {
"runId": "f0e1d2c3-...",
"jobStatus": "succeeded",
"runStatus": "completed",
"batchIndex": 1,
"overallSummary": {
"total": 10,
"inFlight": 0,
"succeeded": 10,
"failed": 0,
"pending": 0
},
"errors": []
}
}
status.runStatusSignificado
runningEnviando y haciendo polling de los casos en la DGII.
completedTodos los casos resueltos; evidence pack listo.
failedError durante el run.

status.jobStatus describe el job tecnico (queued, running, succeeded o failed). Para decidir el paso del proceso usa status.runStatus y revisa status.overallSummary y status.errors.


Paso 5 — Descargar el evidence pack

Cuando el run esta completed, descarga el evidence pack (ZIP):

GET /CerteCF/certificacion/{runId}/evidencia

La API responde JSON con el ZIP codificado en base64:

{
"ok": true,
"runId": "f0e1d2c3-...",
"fileName": "certificacion-f0e1d2c3-....zip",
"contentType": "application/zip",
"encoding": "base64",
"byteLength": 48321,
"sha256": "...",
"content": "UEsDB..."
}

Ejemplo de descarga y decodificacion:

curl -sS \
https://ecf.api.zarela.do/CerteCF/certificacion/f0e1d2c3-.../evidencia \
-H 'X-API-KEY: zk_cert_...' \
| jq -r '.content' \
| base64 --decode > evidencia-certificacion.zip

Verifica el SHA-256 del archivo contra sha256 antes de archivarlo o subir sus contenidos.

El ZIP contiene, por cada caso:

  • El JSON DGII enviado.
  • El XML firmado.
  • La representacion impresa (RI/PDF).
  • Las respuestas de la DGII (TrackID y estado).
  • Un manifest con el resumen del run.

Paso 6 — Subir RI/PDF al portal DGII

Sube las representaciones impresas (PDF) del evidence pack al portal de certificacion DGII:

  • Para cada documento, sube el PDF en el paso correspondiente del portal DGII.
  • Descarga tambien el XML de la Factura de Consumo < 250K y subelo donde el portal lo solicite.

Paso 7 — Esperar aprobacion de la representacion impresa

La DGII revisa la representacion impresa de tus documentos. Espera la notificacion de aprobacion. Si se demora, da seguimiento por tu canal de soporte de Zarela.


Paso 8 — Configurar URLs de produccion

Una vez aprobada la certificacion, actualiza las URLs en el portal DGII al entorno de produccion (eCF):

CampoURL
URL de recepcionhttps://ecf.api.zarela.do/fe/recepcion/api/ecf?environment=eCF
URL de aprobacion comercialhttps://ecf.api.zarela.do/fe/aprobacioncomercial/api/ecf?environment=eCF
URL de autenticacion(dejar en blanco)

Haz clic en Confirmar URLs en el portal DGII.


Paso 9 — Realizar la declaracion jurada

  • En el portal DGII, dirigete al paso de la declaracion jurada y haz clic en Generar archivo.
  • Firma el XML con tu certificado usando la herramienta de firma de Zarela.
  • Sube el XML firmado y haz clic en Enviar archivo.

Paso 10 — Asignacion de roles

Asigna roles al Representante Legal desde tu Oficina Virtual (OFV) cuando la DGII notifique la finalizacion del proceso de habilitacion.

Felicidades

Con la asignacion de roles concluye el flujo guiado. Empieza a emitir en eCF solo cuando la DGII haya confirmado la habilitacion del RNC y Zarela haya activado el ambiente productivo de tu cuenta.


Asistente interactivo del portal

Además de la API, el portal de Zarela incluye un Asistente de certificación DGII con 10 hitos guiados y auto-guardado de progreso en el navegador.

Los pasos 1–2 (certificado y API key) se completan solos cuando el sistema detecta que ya están configurados; también puedes subir el .p12 o crear la key inline en el asistente.

Qué hace el asistente

HitoAcción
1. CertificadoDetección automática + subida inline
2. API Key CerteCFDetección automática + crear key inline
3. Postulación DGIICopia-pega + firmar XML (subir/descargar) + confirmar subida a DGII
4. Aprobación internaCorreo pre-redactado o marcar como enviado
5. Simulación e-CFTabla por tipo (E31…E47) — enviar uno a uno o todos
6. Carga PDFsDescargar ZIP con RI/PDF
7. Esperar DGIIChecklist manual
8. URLs producciónCopia-pega eCF
9. Declaración juradaFirmar XML + confirmar subida
10. Roles OFVInstructivo DGII

Endpoints del asistente (portal autenticado)

MétodoRutaDescripción
GET/api/portal/certification/checklistConfiguración copia-pega, URLs y pasos
POST/api/portal/certification/sign-xmlFirma postulación o declaración jurada
GET/api/portal/certification/printed-pdfs?runId=ZIP con todas las RI/PDF del run

Mapeo a los 15 pasos DGII

Pasos DGIIHito del asistente
1 (postulación + URLs)Hito 3
2–4 (set e-CF + RFCE + simulación)Hito 5
5–6 (RI/PDF)Hito 6
7 (confirmar URLs)Hito 7
8–11 (recepción + ACECF)Cubierto por los endpoints públicos de Zarela + simulación B2B (hito 5)
12 (URLs producción)Hito 8
13–14 (declaración jurada)Hito 9
15 (certificación final)Hito 10
Progreso persistente

El asistente guarda qué pasos marcaste como completados en localStorage por RNC y ambiente, para que puedas pausar y retomar.

Video tutorial

(Próximamente: enlace a video demostrativo del asistente en el portal.)

¿Necesitas ayuda?

Si tienes dudas durante la certificacion, contacta al soporte de Zarela con el runId y el correlationId de las respuestas para un diagnostico rapido.