Download the PHP package ecfx/ecf-dgii-php without Composer

On this page you can find all versions of the php package ecfx/ecf-dgii-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package ecf-dgii-php

ECF DGII PHP SDK

Packagist Version Packagist Downloads

PHP SDK para integrar la facturacion electronica (e-CF) en Republica Dominicana a traves de ECF SSD.

Packagist Version Packagist Downloads CI


Que es ECF SSD

ECF SSD es una plataforma que simplifica la emision de comprobantes fiscales electronicos (e-CF) en Republica Dominicana. En vez de que cada empresa implemente todo el proceso de comunicacion con la DGII (firmado XML, autenticacion por semilla, manejo de certificados, reintentos, almacenamiento, etc.), ECF SSD lo hace por ti.

Tu solo envias el comprobante en JSON a traves de este SDK, y el servicio se encarga de:

Usas WooCommerce? Tenemos un plugin listo para facturacion electronica sin escribir codigo.

Buscas otro lenguaje? Tambien disponible en .NET, TypeScript, React, Python, Java, Kotlin, Swift y C++. Ver todos los SDKs y plugins.

Instalacion

Requisitos

Como Empezar

Paso 1: Registrate en ECF SSD

Visita https://ecf.ssd.com.do y crea tu cuenta.

Paso 2: Obten tu API Key

  1. Una vez logueado, selecciona el ambiente Test en el selector de ambientes (esquina superior derecha)
  2. Ve a Settings > API Key > Generate API Key
  3. Copia tu API Key -- la usaras como bearer token para autenticarte con el SDK

Paso 3: Contacta a ECF SSD para la Integracion

Contacta al equipo de ECF SSD ([email protected]) para iniciar el proceso de integracion y certificacion de tu sistema (no de las empresas de tus clientes -- la certificacion es para tu plataforma). El equipo te guiara a traves del proceso usando el ambiente de certificacion (Cert).

Paso 4: Usa Produccion

Una vez que tu sistema este integrado y certificado, podras usar el ambiente de produccion (Prod) para emitir comprobantes fiscales electronicos reales.

Vienes de otro proveedor? ECF SSD soporta migracion desde otros proveedores de facturacion electronica. Contacta al equipo para coordinar la transicion.

Configuracion

Ambientes

Ambiente URL Uso
Test https://api.test.ecfx.ssd.com.do Desarrollo y pruebas internas
Cert https://api.cert.ecfx.ssd.com.do Proceso de certificacion con la DGII
Prod https://api.prod.ecfx.ssd.com.do Produccion

Autenticacion

El SDK utiliza JWT Bearer Token. Puedes configurar el token de dos formas:

  1. Directamente en el codigo: pasando el API Key con setAccessToken()
  2. Variable de entorno: ECF_DGII_TOKEN

Ejemplo: Factura de Consumo (ECF 32)

Cada tipo de ECF tiene su propio conjunto de clases con el prefijo del tipo (ej. Ecf32ECF, Ecf32Encabezado, Ecf32Item para Factura de Consumo).

Usando EcfService (auto-routing + polling)

El EcfService enruta automaticamente al endpoint correcto segun el tipo de ECF y hace polling hasta que la DGII termine de procesar:

Como Funciona sendEcf

  1. Enrutamiento automatico: Determina el endpoint correcto (/ecf/31, /ecf/32, etc.) basandose en el tipoeCF
  2. Envio: POST al endpoint correspondiente
  3. Polling: Consulta periodicamente el estado hasta que la DGII responda (Finished o Error)
  4. Resultado: Retorna el EcfResponse con el estado final, codigo de seguridad, URL de impresion, etc.

Respuesta (EcfResponse)

Al completarse el envio, recibes un EcfResponse con los datos necesarios para cumplir con los requisitos de impresion de la DGII:

Campo Descripcion
ImpresionUrl URL para generar el codigo QR requerido por la DGII en el comprobante impreso
CodSec Codigo de seguridad -- debe aparecer en el comprobante impreso
FechaFirma Fecha y hora de la firma digital del comprobante
Estatus Estado DGII: Aceptado, AceptadoCondicional, Rechazado
Progress Estado del procesamiento: Queued, Sending, Polling, Finished, Error
Encf Numero de comprobante fiscal electronico (eNCF)
Mensaje Mensaje de respuesta de la DGII
Errors Detalle de errores (si los hay)
MontoTotal Monto total del comprobante

QR e Impresion

La DGII requiere que todo comprobante impreso incluya un codigo QR. El campo ImpresionUrl contiene la URL que debe codificarse como QR. Adicionalmente, el CodSec (codigo de seguridad) y la FechaFirma deben aparecer impresos en el comprobante.

Tipos de Comprobantes (ECF)

Cada tipo de ECF tiene su propio conjunto de clases. Usa las clases que correspondan a tu tipo de documento:

Tipo Prefijo eNCF Descripcion Endpoint
31 Ecf31* E31 Factura de Credito Fiscal recepcionEcf31()
32 Ecf32* E32 Factura de Consumo recepcionEcf32()
33 Ecf33* E33 Nota de Debito recepcionEcf33()
34 Ecf34* E34 Nota de Credito recepcionEcf34()
41 Ecf41* E41 Compras recepcionEcf41()
43 Ecf43* E43 Gastos Menores recepcionEcf43()
44 Ecf44* E44 Regimenes Especiales recepcionEcf44()
45 Ecf45* E45 Gubernamental recepcionEcf45()
46 Ecf46* E46 Exportaciones recepcionEcf46()
47 Ecf47* E47 Pagos al Exterior recepcionEcf47()

Por ejemplo, para enviar una Factura de Credito Fiscal usa Ecf31ECF, Ecf31Encabezado, Ecf31Item, etc. y llama $ecfApi->recepcionEcf31($ecf).

Funcionalidades del API

Ademas de enviar comprobantes, el SDK expone todos los endpoints del API:

Clase Descripcion
EcfService Envio de ECF con auto-routing y polling
EcfApi Envio de ECF (tipos 31-47), consultas, busquedas, anulaciones
CompanyApi CRUD de empresas y gestion de certificados
DgiiApi Consultas DGII (directorio, estado, timbre, track IDs, etc.)
RecepcionApi Seguimiento de solicitudes de recepcion
ApiKeyApi Gestion de API keys

Funcionalidades adicionales

Funcionalidad Descripcion
Empresas Crear, consultar y eliminar empresas registradas
Certificados Subir y consultar certificados digitales
Consulta de e-CF Buscar comprobantes por RNC, eNCF, fecha, monto, etc.
Aprobacion Comercial Enviar aprobacion/rechazo comercial (ACECF)
Anulacion de Rangos Solicitar anulacion de secuencias de eNCF
Consultas DGII Directorio, estado, resultado, timbre, RFCE, track IDs
Estatus de Servicios Verificar disponibilidad de servicios DGII
API Keys Crear API keys para acceso programatico

Uso Directo de los Clientes API

Para control total, usa las clases API generadas directamente:

Manejo de Errores

Excepcion Cuando
EcfProcessingException La DGII rechaza el ECF durante el procesamiento
EcfPollingTimeoutException El polling excede el maximo de intentos sin resultado final
ApiException Errores HTTP/red al comunicarse con el API

Variables de Entorno

Variable Descripcion
ECF_DGII_TOKEN API key para autenticacion (desde ecf.ssd.com.do Settings > API Key)

Ejemplos

Regenerar desde OpenAPI Spec

Contribuir

  1. Fork el repositorio
  2. Crea tu feature branch (git checkout -b feature/mi-feature)
  3. Haz commit de tus cambios (git commit -m 'Agregar mi feature')
  4. Push al branch (git push origin feature/mi-feature)
  5. Abre un Pull Request

Los tests corren automaticamente via GitHub Actions en cada push y PR.

Documentacion del API

La documentacion completa del API de ECF SSD esta disponible en:

https://ecf.ssd.com.do/documentacion/api-ecf-ssd

Incluye referencia de todos los endpoints, schemas, codigos de error y ejemplos de request/response.

Arquitectura Backend / Frontend

Flujo detallado

  1. El cliente (browser/app) envía los datos de la factura al backend (POST /invoice, /order, /sale)
  2. El backend valida, guarda y convierte la factura interna al formato ECF
  3. El backend envía el ECF a la API de ECF SSD (POST /ecf/{tipo}) y recibe un messageId
  4. El backend retorna el messageId al cliente — el cliente no espera, puede continuar
  5. Cuando el cliente necesita consultar el estado del ECF, usa EcfFrontendClient que internamente:
    • Verifica si hay un token de solo lectura en cache
    • Si no existe o expiró: llama a getToken() (que el consumidor provee — típicamente un fetch('/ecf-token') a su backend), luego llama a cacheToken(token) para almacenarlo
    • Si la API retorna 401: automáticamente llama a getToken() de nuevo, actualiza el cache, y reintenta
  6. El cliente hace polling directamente contra la API de ECF SSD (GET /ecf/{rnc}/{encf}) hasta que progress sea Finished

Ejemplo: Backend (PHP)

Ejemplo: Frontend (TypeScript con EcfFrontendClient)

El cliente envía la factura al backend PHP, recibe el messageId y encf, y luego usa EcfFrontendClient para consultar el estado directamente contra la API de ECF SSD:

Plugin WooCommerce

Si usas WooCommerce, tenemos un plugin listo para facturacion electronica sin escribir codigo:

ECF SSD para WooCommerce

Soporte

Otros SDKs y Plugins

Este SDK es parte de una coleccion de SDKs oficiales para multiples plataformas:

Plataforma Paquete Instalacion
.NET NuGet dotnet add package SSDDO.ECF_DGII.SDK
TypeScript npm npm install ecf-dgii-client
React npm npm install ecf-dgii-react
Python PyPI pip install ecf-dgii-client
PHP Packagist composer require ecfx/ecf-dgii-php
Java Maven Central Ver java/README.md
Kotlin Maven Central Ver kotlin/README.md
iOS/Swift Swift Package Manager Ver ios/README.md
C++ vcpkg / Conan Ver C++/README.md
WooCommerce GitHub Plugin WordPress

Licencia

MIT


Hecho con platano power por SSD Smart Software Development SRL


All versions of ecf-dgii-php with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
ext-curl Version *
ext-json Version *
ext-mbstring Version *
guzzlehttp/guzzle Version ^7.3
guzzlehttp/psr7 Version ^1.7 || ^2.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package ecfx/ecf-dgii-php contains the following files

Loading the files please wait ...