Primeros pasos
Esta guía te lleva de cero a tu primera emisión aceptada por DGII en ~5 minutos, asumiendo que ya cumples los pre-requisitos.
Pre-requisitos
Antes de usar la API necesitas:
- Ser Emisor Electrónico certificado por DGII. Si todavía no lo eres, desde Digimart hay una guía paso a paso gratuita que te acompaña hasta la aprobación — ve a Configuración → DGII → Emisor Electrónico. El proceso suele tomar pocas semanas dependiendo de DGII.
- Tu certificado digital
.p12subido a Digimart (te lo entrega DGII al certificarte como Emisor Electrónico). - Una cuenta activa en Digimart con permisos de administrador.
- Tu RNC y datos fiscales configurados en Configuración → DGII.
- Tus secuencias NCF asignadas y vigentes para los prefijos que vayas a emitir (E31, E32, E33, E34, etc.).
Sin la certificación de Emisor Electrónico, DGII rechaza cualquier e-CF a nombre de tu RNC — sin importar que el proveedor técnico (nosotros) esté correctamente certificado. Es un requisito legal del lado del contribuyente.
Activa el API en tu tenant
- Inicia sesión en Digimart.
- Ve a Configuración → Integraciones → API Facturación Electrónica.
- Haz click en "Activar API".
- Lee el acuerdo de cobros automáticos completo y marca el checkbox.
- Opcional: agrega un correo de contacto técnico para notificaciones operativas.
- Click en "Aceptar y activar".
A partir de ese momento Digimart crea automáticamente la cuenta interna en APPWORK SRL para ti.
Genera tu primera API key
En el mismo panel:
- Click en "Nueva API key".
- Asigna un nombre descriptivo (ej. "Servidor de producción").
- Elige el ambiente:
- Producción (
ecf) → emite e-CFs reales facturables. - Certificación (
certecf) → pruebas oficiales DGII, gratis. - Pruebas (
testecf) → desarrollo libre, gratis.
- Producción (
- Click en "Crear".
El apiSecret se muestra UNA sola vez. Guárdalo inmediatamente en un
gestor de contraseñas o variable de entorno. Si lo pierdes, deberás revocar
la key y crear una nueva.
Intercambia tus credenciales por un JWT
curl -X POST https://digimart-api-v2.appworkcloud.com/api/v1/fe/login \
-H "Content-Type: application/json" \
-d '{
"apiKeyId": "fak_a1b2c3d4e5f6",
"apiSecret": "tu_secret_aqui"
}'Respuesta:
{
"accessToken": "eyJhbGciOiJIUzI1NiIs...",
"tokenType": "Bearer",
"expiresIn": 3600,
"environment": "ecf",
"scopes": ["invoices:write", "invoices:read", "usage:read", "billing:read"]
}El JWT dura 1 hora. Vuelve a hacer POST /login cuando expire.
Emite tu primer e-CF
curl -X POST https://digimart-api-v2.appworkcloud.com/api/v1/fe/invoices \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"format": "digimart",
"clientRequestId": "factura-001-2026-06-15",
"payload": {
"Encabezado": {
"Version": "1.0",
"IdDoc": {
"TipoeCF": "31",
"eNCF": "E310000000001",
"FechaVencimientoSecuencia": "31-12-2026"
}
}
}
}'Respuesta inmediata (202):
{
"dgiiLogId": "a3f...",
"status": "queued",
"environment": "ecf",
"billable": true,
"message": "Invoice queued for processing"
}El clientRequestId es opcional pero recomendado — si reintentas la
misma request con el mismo id, devolvemos el envío existente en vez de
duplicar.
Consulta el estado
DGII responde típicamente en 1-3 segundos. Consulta el estado:
curl https://digimart-api-v2.appworkcloud.com/api/v1/fe/invoices/a3f... \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."Respuesta cuando DGII ya respondió:
{
"dgiiLogId": "a3f...",
"trackId": "DGII-2026-06-15-...",
"environment": "ecf",
"status": "Aceptado",
"qrCodeUrl": "https://ecf.dgii.gov.do/...",
"securityCode": "abc123",
"ncfExpiration": "31-12-2026",
"fechaHoraFirma": "2026-06-15T14:23:11Z",
"submittedAt": "2026-06-15T14:23:10Z",
"updatedAt": "2026-06-15T14:23:13Z"
}status: "Aceptado" significa que DGII aceptó tu e-CF. Eres oficialmente
emisor. 🎉
¿Qué sigue?
- Autenticación → — Detalles del JWT, rotación de secrets, scopes.
- Endpoints → — Referencia completa de cada endpoint con todos los campos opcionales.
- Códigos de error → — Qué hacer cuando algo sale mal.
- Ejemplos completos → — Snippets para integraciones reales.