PHPackages                             grodtech/ecf-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. grodtech/ecf-php

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

grodtech/ecf-php
================

SDK PHP oficial para integrar aplicaciones con la pasarela ECF GRODTECH (facturación electrónica DGII República Dominicana). Soporta envío de comprobantes en JSON o XML, conversión y firma server-side.

v1.0.0(3w ago)00MITPHPPHP ^8.1

Since May 15Pushed 3w agoCompare

[ Source](https://github.com/Rguezpjm/Grodtech-ECF)[ Packagist](https://packagist.org/packages/grodtech/ecf-php)[ Docs](https://ecf.grodtech.com)[ RSS](/packages/grodtech-ecf-php/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

grodtech/ecf-php
================

[](#grodtechecf-php)

[![PHP Version](https://camo.githubusercontent.com/acffb6ae1962992d26e4466782832787e79504a6250f80d732c4283458b9f497/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545382e312d626c75652e737667)](https://www.php.net/)[![License: Proprietary](https://camo.githubusercontent.com/c9c5ac243ff31c0b48c8a2fe2219a486d03e7620bf4f8b676f9991de5b8c87cb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d70726f70726965746172792d7265642e737667)](LICENSE)[![PSR-4 Autoloading](https://camo.githubusercontent.com/5e16a952538e13f5ed876433d45e161bf1a02ffae0ce2c25b0c5dd60e4b388f8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6175746f6c6f61642d5053522d2d342d627269676874677265656e2e737667)](https://www.php-fig.org/psr/psr-4/)[![Zero runtime dependencies](https://camo.githubusercontent.com/bbe41f831684a9df3fb6dec2eb24be2f139420e1156f8b6147a037826153acb3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646570656e64656e636965732d302d737563636573732e737667)](composer.json)

SDK PHP oficial para consumir la pasarela **ECF GRODTECH** (facturación electrónica DGII República Dominicana).

El SDK se encarga de:

- abrir la conexión HTTPS contra la pasarela con TLS estricto,
- enviar el comprobante (en JSON o XML),
- mantener la API Key fuera de los logs,
- normalizar la respuesta heterogénea de DGII a un enum `DgiiOutcome`.

> **Solo servidor.** Nunca incruste la API Key en aplicaciones front‑end (navegador, móvil, escritorio) ni en repositorios públicos.

---

Índice
------

[](#índice)

- [Cómo encaja en tu arquitectura](#c%C3%B3mo-encaja-en-tu-arquitectura)
- [Requisitos](#requisitos)
- [Instalación](#instalaci%C3%B3n)
- [Uso](#uso)
- [API del SDK](#api-del-sdk)
- [Estados (`DgiiOutcome`)](#estados-dgiioutcome)
- [Endpoints cubiertos](#endpoints-cubiertos)
- [Entornos disponibles](#entornos-disponibles)
- [Seguridad](#seguridad)
- [Manejo de errores](#manejo-de-errores)
- [Buenas prácticas](#buenas-pr%C3%A1cticas)
- [Pruebas](#pruebas)
- [FAQ](#faq)
- [Soporte](#soporte)
- [Licencia](#licencia)

---

Cómo encaja en tu arquitectura
------------------------------

[](#cómo-encaja-en-tu-arquitectura)

```
┌──────────────┐    JSON / XML       ┌─────────────────────┐    XMLDSig firmado     ┌──────────────┐
│ Tu backend   │  ─────────────────► │ ECF GRODTECH (CRM) │ ─────────────────────► │     DGII     │
│ (este SDK)   │ ◄───────────────── │  (firma con .p12)   │ ◄───────────────────── │ (recepción)  │
└──────────────┘   trackId / raw     └─────────────────────┘    trackId             └──────────────┘
       Bearer                                           Bearer
       configurada en el portal                                  emitido por DGII al CRM

```

- **Tu backend autentica al CRM con la API Key** que generaste en `https://ecf.grodtech.com`. La API Key viaja en el header `Authorization: Bearer …`.
- **El CRM autentica con DGII por su cuenta**: usa el certificado `.p12` que cargaste en el portal y obtiene el token DGII vía el flujo `semilla → validacioncertificado`. Tu sistema **nunca** ve ese token.
- **Tu sistema nunca firma localmente**: el CRM firma cada XML con tu `.p12` antes de reenviarlo a DGII.

---

Requisitos
----------

[](#requisitos)

- PHP **8.1** o superior
- Extensiones PHP: `json`, `curl`
- Cuenta activa en [ecf.grodtech.com](https://ecf.grodtech.com) con:
    - RNC autorizado como emisor electrónico ante DGII
    - Certificado `.p12` cargado en el portal
    - **API Key** generada desde el panel

---

Instalación
-----------

[](#instalación)

El paquete se distribuye dentro del repositorio de la aplicación, como **path repository** de Composer. En el `composer.json` de tu proyecto:

```
{
  "repositories": [
    {
      "type": "path",
      "url": "packages/grodtech-ecf-php"
    }
  ],
  "require": {
    "grodtech/ecf-php": "@dev"
  }
}
```

```
composer update grodtech/ecf-php
```

> Si más adelante el paquete se publica en un Git privado (GitHub, GitLab, Bitbucket), basta con cambiar el bloque `repositories` a `"type": "vcs"` apuntando a la URL del repo y declarar la versión deseada.

---

Uso
---

[](#uso)

### 1. Enviar un e‑CF en JSON

[](#1-enviar-un-ecf-en-json)

El SDK acepta el mismo árbol JSON que documenta `DOCUMENTACION_API_ECF_GRODTECH.txt` — raíz `ECF` para los tipos 31, 32, 33, 34, 41, 43, 44, 45, 46 y 47, raíz `RFCE` para el Resumen de Factura de Consumo (Tipo 32 &lt; RD$250 000).

```
