Ir al contenido

Emitir e-CF

Emite con POST /companies/{companyId}/documents. Gravitas asigna el e-NCF, arma el XML oficial, lo valida contra el XSD de la DGII, lo firma con el certificado de la empresa y lo envía.

Ventana de terminal
# Emitir un e-CF 31 en test para la empresa 101000001 (respuesta 202 con documentId de Gravitas).
curl -s -X POST "https://tuempresa.gravitastec.com/api/v1/companies/0192f1a0-0000-7000-8000-000000000001/documents" \
-H "Authorization: Bearer $TOKEN" \
-H "Idempotency-Key: pedido-0001" \
-H "Content-Type: application/json" \
-d '{
"ecfType": 31,
"issueDate": "2026-11-02",
"incomeType": "01",
"paymentType": 1,
"buyer": { "rnc": "101672919", "name": "CLIENTE DE PRUEBA SRL" },
"lines": [
{ "itemName": "Servicio de transporte", "isService": true, "billingIndicator": 1, "quantity": 1, "unitPrice": 1000 }
]
}'

El encabezado Idempotency-Key es obligatorio. Si tu ERP reintenta con la misma clave y el mismo contenido, recibe el mismo documento; nunca se emite dos veces. Si reutilizas la clave con otro contenido, la respuesta es 409 idempotency_conflict.

Se admiten los tipos 31, 32, 33, 34, 41, 43, 44, 45, 46 y 47. Las reglas de cada tipo (campos obligatorios, ITBIS, retenciones, otra moneda) siguen el formato oficial de la DGII; los errores indican la ruta exacta del campo.

  • Tipo 32 menor de RD$250,000: Gravitas envía a la DGII el resumen (RFCE) y conserva el e-CF completo para entregarlo al comprador.
  • Notas de crédito y débito (33 y 34): indica el comprobante modificado y el código de modificación.

Un campo que no existe en el modelo devuelve 422: así detectas errores de integración temprano.

  1. 202 Accepted con el documentId.
  2. El estado avanza: validated → signed → sent → accepted | accepted_conditional | rejected.
  3. Si el comprador es electrónico, Gravitas le entrega el XML; si no, envía la representación impresa por correo cuando la empresa lo tiene configurado.