Primeros pasos

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:

  1. 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.
  2. Tu certificado digital .p12 subido a Digimart (te lo entrega DGII al certificarte como Emisor Electrónico).
  3. Una cuenta activa en Digimart con permisos de administrador.
  4. Tu RNC y datos fiscales configurados en Configuración → DGII.
  5. 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

  1. Inicia sesión en Digimart.
  2. Ve a Configuración → Integraciones → API Facturación Electrónica.
  3. Haz click en "Activar API".
  4. Lee el acuerdo de cobros automáticos completo y marca el checkbox.
  5. Opcional: agrega un correo de contacto técnico para notificaciones operativas.
  6. 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:

  1. Click en "Nueva API key".
  2. Asigna un nombre descriptivo (ej. "Servidor de producción").
  3. Elige el ambiente:
    • Producción (ecf) → emite e-CFs reales facturables.
    • Certificación (certecf) → pruebas oficiales DGII, gratis.
    • Pruebas (testecf) → desarrollo libre, gratis.
  4. 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?