Facture electrónicamente desde su propio sistema.
Si su empresa usa un sistema hecho a la medida, su programador integra la API de VELTIX y cada venta sale como e-CF válido ante la DGII: nosotros generamos el XML, lo firmamos con su certificado, lo enviamos y le devolvemos el estado, el XML y el PDF.
Cómo empezar
- 1. Certificación de la empresa. VELTIX certifica a la empresa ante la DGII como emisora electrónica y carga sus secuencias e-NCF autorizadas.
- 2. Clave de pruebas. Le entregamos una clave
vx_test_…para integrar sin afectar la DGII: los comprobantes se firman de verdad, pero no consumen secuencias ni se envían. - 3. Clave de producción. Con la integración lista, cambia a
vx_live_…y cada llamada emite un e-CF real.
Autenticación
Todas las llamadas usan HTTPS y la cabecera Authorization: Bearer <clave>. La clave identifica a la empresa emisora; guárdela en el servidor, nunca en una aplicación de navegador o móvil. Envíe Idempotency-Key en cada emisión: si repite la llamada por un corte de red, recibe el mismo comprobante en lugar de uno nuevo.
URL base: https://app.veltixrd.com/api/v1
Endpoints
/ecf
Emite un e-CF: toma la secuencia, firma, envía a la DGII y responde con el estado.
/ecf/{encf}
Estado del e-CF. Si sigue en proceso, VELTIX consulta a la DGII antes de responder.
/ecf/{encf}/xml
XML firmado, tal como se envió a la DGII.
/ecf/{encf}/pdf
Representación impresa en PDF con QR y código de seguridad.
/ecf?limit=50&desde=2026-11-01&estado=aceptado
Últimos comprobantes emitidos.
/sequences
Secuencias e-NCF disponibles y vencimiento por tipo.
/me
Empresa de la clave, modo y estado de la facturación electrónica.
Emitir un e-CF
curl -X POST https://app.veltixrd.com/api/v1/ecf \
-H "Authorization: Bearer vx_live_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pedido-10482" \
-d '{
"tipo": "31",
"numero_interno": "F-10482",
"referencia_externa": "pedido-10482",
"comprador": { "rnc": "131880681", "nombre": "Distribuidora del Caribe SRL" },
"items": [
{ "nombre": "Resma papel bond", "tipo": "bien", "cantidad": 10, "precio": 325, "itbis": 18 },
{ "nombre": "Instalación", "tipo": "servicio", "cantidad": 1, "precio": 2500, "descuento": 250, "itbis": 18 }
],
"pago": { "tipo": "contado", "formas": [{ "forma": "transferencia", "monto": 6490 }] }
}'Respuesta (201)
{
"id": "4f0c…",
"encf": "E310000000123",
"tipo": "31",
"estado": "aceptado",
"ambiente": "produccion",
"total": 6490,
"codigo_seguridad": "Xy7Kp2",
"fecha_firma": "12-11-2026 10:42:05",
"qr_url": "https://ecf.dgii.gov.do/ecf/ConsultaTimbre?RncEmisor=…",
"dgii": { "estado": "Aceptado", "mensajes": [], "track_id": "a9c1…" },
"referencia_externa": "pedido-10482",
"enlaces": { "self": "…/ecf/E310000000123", "xml": "…/xml", "pdf": "…/pdf" }
}Campos del comprobante
- tipo
- 31 crédito fiscal · 32 consumo · 33 nota de débito · 34 nota de crédito · 41 compras · 43 gastos menores · 44 regímenes especiales · 45 gubernamental · 46 exportaciones · 47 pagos al exterior.
- comprador
- rnc (9 u 11 dígitos), nombre, correo, direccion; extranjero para el 47. Obligatorio en 31, 41 y 45, y en el 32 desde RD$250,000.
- items[]
- nombre, tipo (bien | servicio), cantidad, precio (sin ITBIS), descuento (monto), itbis (18 | 16 | 0 | "exento"). En 41 y 47: retencion_itbis y retencion_isr por línea.
- pago
- tipo (contado | credito | gratuito), fecha_limite (dd-MM-aaaa) y formas[] con forma (efectivo, transferencia, tarjeta, credito, bonos, permuta, nota_credito, otra) y monto.
- referencia
- Solo en 33 y 34: encf del comprobante modificado, fecha (dd-MM-aaaa), codigo (1 anula, 2 corrige texto, 3 corrige montos, 4 reemplazo de contingencia, 5 referencia consumo) y razon.
- fecha_emision
- Opcional (dd-MM-aaaa). Por defecto, la fecha de hoy en República Dominicana.
- referencia_externa
- Su identificador interno (pedido, venta). Se devuelve en cada consulta.
Los totales, el ITBIS por tasa, los exentos y el código de seguridad los calcula VELTIX. Los precios se envían sin ITBIS.
Estados
- aceptado
- La DGII aceptó el comprobante. Puede entregarlo al cliente.
- aceptado_condicional
- Aceptado con observaciones (vea dgii.mensajes). Es válido.
- en_proceso
- La DGII lo recibió y lo está validando. Consulte GET /ecf/{encf} en unos segundos.
- contingencia
- La DGII no respondió. El comprobante está firmado y VELTIX lo reenvía automáticamente.
- rechazado
- La DGII lo rechazó (motivo en dgii.mensajes). La secuencia se consumió: corrija y emita uno nuevo.
- prueba
- Emitido con una clave vx_test_: firmado con su certificado, sin secuencia real y sin envío a la DGII.
Errores
Formato: { "error": { "code", "message" } }
- 401 unauthorized
- Clave inválida, revocada o empresa inactiva.
- 403 ecf_not_enabled
- La empresa aún no tiene la facturación electrónica activa (certificación DGII pendiente).
- 422 validation_error / invalid_document
- Datos incompletos o una regla de la DGII no se cumple; el mensaje indica cuál. No se consume secuencia.
- 429 rate_limited
- Más de 120 solicitudes por minuto con la misma clave.
- 502 dgii_unavailable
- La DGII no respondió; el comprobante queda en contingencia.
¿Su cliente tiene un sistema propio?
Escríbanos con el RNC de la empresa y el lenguaje del sistema; le preparamos la certificación y las claves de prueba.