pronesoft-rd/ecf-sdk-php

## Descripción general API de nivel productivo para emitir Comprobantes Fiscales Electrónicos (e-CF) en la República Dominicana a través de la plataforma Pronesoft. ## Autenticación — OAuth 2.0 Client Credentials ### Pasos 1. Obtén tus credenciales desde el portal: - Sandbox: https://ecf.sandbo

Maintainers

Package info

github.com/ProneSoftSRL/pronesoft-ecf-sdk-php

Homepage

pkg:composer/pronesoft-rd/ecf-sdk-php

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.0.3 2026-06-10 19:00 UTC

This package is not auto-updated.

Last update: 2026-06-10 19:01:11 UTC


README

Descripción general

API de nivel productivo para emitir Comprobantes Fiscales Electrónicos (e-CF) en la República Dominicana a través de la plataforma Pronesoft.

Este SDK encapsula por completo el flujo de autenticación, renovación y reintento de tokens de seguridad mediante el wrapper principal EcfClient.

Primeros Pasos (Getting Started)

La forma recomendada de interactuar con el SDK es a través del cliente unificado EcfClient. Este se encarga de realizar la autenticación inicial, refrescar el token antes de su vencimiento e inyectar las cabeceras requeridas de forma transparente.

<?php
require_once __DIR__ . '/vendor/autoload.php';

use PronesoftEcfSdk\EcfClient;
use PronesoftEcfSdk\ApiException;

// 1. Configurar credenciales (ejemplo con Sandbox)
$host = 'https://api.ecf.sandbox.pronesoft.com/api/v1';
$tenantId = 'SBX-TU-EMPRESA-UUID'; // Mapeado como client_id para el token
$clientSecret = 'tu-client-secret-aqui';

try {
    // 2. Inicializar el cliente único (se autentica automáticamente en el constructor)
    $client = new EcfClient($host, $tenantId, $clientSecret);
    
    // 3. Consumir cualquier servicio de negocio directamente
    $documentsSentApi = $client->documentsSent();
    $logs = $documentsSentApi->getSentDocumentLogs('uuid-del-documento');
    
    print_r($logs);

} catch (ApiException $e) {
    echo "Error retornado por la API: " . $e->getResponseBody() . "\n";
} catch (\Exception $e) {
    echo "Error general: " . $e->getMessage() . "\n";
}

Delegación multi-empresa (Sucursales)

Para actuar en nombre de una empresa asociada (sucursal), puedes usar el método forTenant para obtener una instancia del cliente configurada con la cabecera x-tenant-id:

$sucursalClient = $client->forTenant('uuid-de-la-sucursal');
$logs = $sucursalClient->documentsSent()->getSentDocumentLogs('uuid-del-documento');

Instalación y Uso

Requisitos

PHP 8.1 y superior.

Instalación vía Composer

Para instalar las dependencias en tu proyecto utilizando Composer, agrega lo siguiente a tu archivo composer.json:

{
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/ProneSoftSRL/pronesoft-ecf-sdk-php.git"
    }
  ],
  "require": {
    "pronesoft-rd/ecf-sdk-php": "dev-main"
  }
}

Luego ejecuta en tu terminal:

composer install

Instalación Manual

Descarga los archivos del repositorio e incluye el cargador automático:

<?php
require_once('/ruta/a/pronesoft-ecf-sdk-php/vendor/autoload.php');

API Endpoints

All URIs are relative to https://api.ecf.sandbox.pronesoft.com/api/v1

Class Method HTTP request Description
AssociatedCompaniesApi createAssociatedCompany POST /associated-companies Crear empresa asociada / sucursal
AssociatedCompaniesApi deleteAssociatedCompany DELETE /associated-companies/{companyId} Eliminar empresa asociada
AssociatedCompaniesApi getCompanyDocumentMetrics GET /associated-companies/{companyId}/documents-metrics Métricas de documentos de la empresa
AssociatedCompaniesApi getCompanyMetrics GET /associated-companies/{companyId}/metrics Métricas de la empresa
AssociatedCompaniesApi listAssociatedCompanies GET /associated-companies Listar empresas asociadas / sucursales
AssociatedCompaniesApi updateAssociatedCompany PUT /associated-companies/{companyId} Actualizar empresa asociada
AuthenticationApi getAccessToken POST /oauth/token Obtener token de acceso (OAuth 2.0)
AutomatedCertificationApi downloadCertification GET /dgii-ecf/automated-certification/{id}/download Descargar ZIP de certificación
AutomatedCertificationApi getCertificationStatus GET /dgii-ecf/automated-certification/{id}/status Estado del proceso de certificación
AutomatedCertificationApi listCertificationNiches GET /dgii-ecf/automated-certification/niches Listar nichos de certificación
AutomatedCertificationApi startCertification POST /dgii-ecf/automated-certification/start Iniciar proceso de certificación
CommercialApprovalsApi getCommercialApprovalById GET /documents/approvals/{id} Obtener aprobación comercial por ID
CommercialApprovalsApi listCommercialApprovals GET /documents/approvals Listar aprobaciones comerciales
DigitalCertificatesApi uploadCertificate POST /{rnc}/certificates Subir certificado digital (P12/PFX)
DocumentsReceivedApi getReceivedDocumentById GET /documents/received/{id} Obtener documento recibido por ID
DocumentsReceivedApi getReceivedDocumentStatsBySupplier GET /documents/received/stats/by-supplier Top 10 proveedores por volumen de documentos recibidos
DocumentsReceivedApi getReceivedDocumentStatsSummary GET /documents/received/stats/summary Estadísticas de documentos recibidos
DocumentsReceivedApi listReceivedDocuments GET /documents/received Listar documentos recibidos
DocumentsSentApi downloadSentDocumentXml GET /documents/download Descargar XML del documento
DocumentsSentApi getSentDocumentById GET /documents/{id} Obtener detalle del documento
DocumentsSentApi getSentDocumentLogs GET /documents/logs/{id} Logs de procesamiento del documento
DocumentsSentApi getSentDocumentStats GET /documents/stats/summary Estadísticas de documentos enviados
DocumentsSentApi getSentDocumentStatsByEnvironment GET /documents/stats/by-environment Estadísticas agrupadas por ambiente y estado
DocumentsSentApi getSentDocumentStatusOptions GET /documents/status-options Opciones de filtro de estado disponibles
DocumentsSentApi getSentDocumentXml GET /documents/sent/{id}/xml Descargar XML del documento por ID
DocumentsSentApi listSentDocuments GET /documents/sent Listar documentos enviados
ECFSubmissionApi getEcfStats GET /{environment}/ecf/responses/stats Obtener estadísticas de envíos (últimos 30 días)
ECFSubmissionApi getEcfStatus GET /{environment}/ecf/status/{id} Consultar estado del documento por ID interno
ECFSubmissionApi getEcfSubmissionHistory GET /{environment}/ecf/responses/history Historial de envíos (paginado)
ECFSubmissionApi submitEcf POST /{environment}/ecf/submit Enviar documento e-CF a la DGII
ReportsApi export606 GET /dgii/606/export Exportar Formato 606 (Compras)
ReportsApi exportSentDocuments GET /dgii/sent/export Exportar reporte de documentos enviados
TaxSequencesApi createTaxSequence POST /tax-sequences/create Crear nueva secuencia de NCF
TaxSequencesApi getNextNumber GET /tax-sequences/next Obtener siguiente número fiscal disponible
TaxSequencesApi listTaxSequences GET /tax-sequences Listar secuencias de NCF
TaxSequencesApi updateTaxSequence PATCH /tax-sequences/update Actualizar secuencia de NCF
TaxSequencesApi voidTaxSequence POST /tax-sequences/void Anular rango de números fiscales
WebhookConfigurationApi getWebhook GET /{rnc}/webhooks/{webhookId} Detalle de un webhook
WebhookConfigurationApi getWebhookStats GET /{rnc}/webhooks/{webhookId}/stats Estadísticas de entregas del webhook
WebhookConfigurationApi listWebhooks GET /{rnc}/webhooks Listar configuraciones de webhooks

Models

Authorization

Authentication schemes defined for the API:

bearerAuth

  • Type: Bearer authentication (JWT)

oauth2

  • Type: OAuth
  • Flow: application
  • Authorization URL: ``
  • Scopes:
    • business:read: Consultar datos de la empresa.
    • business:create: Crear una nueva empresa.
    • business:update: Actualizar datos de la empresa.
    • members:read: Ver miembros del equipo.
    • members:invite: Invitar nuevos miembros.
    • members:revoke: Revocar acceso de miembros.
    • certificates:read: Ver certificados digitales.
    • certificates:upload: Subir nuevos certificados.
    • certificates:update: Actualizar certificados existentes.
    • documents:read: Listar y consultar detalles de documentos.
    • documents:create: Crear borradores o documentos internos.
    • documents:send: Enviar e-CF a la DGII.
    • documents:receive: Recibir e-CF de terceros.
    • documents:update: Modificar metadatos de documentos.
    • approvals:read: Ver estados de aprobación.
    • approvals:commercial: Realizar aprobaciones o rechazos comerciales.
    • sequences:read: Ver rangos de NCF/e-NCF.
    • sequences:create: Solicitar o agregar nuevas secuencias.
    • sequences:update: Modificar configuraciones de secuencias.
    • sequences:cancel: Cancelar secuencias no utilizadas.
    • business_info:read: Acceder a estadísticas y métricas del dashboard.
    • certification:read: Ver progreso de certificación DGII.
    • certification:write: Ejecutar pruebas de certificación automática DGII.
    • reports:read: Generar y exportar reportes (ej. formato 606).

Tests

To run the tests, use:

composer install
vendor/bin/phpunit

Author

support@pronesoft.com

About this package

This PHP package is automatically generated by the OpenAPI Generator project:

  • API version: 1.2.0
    • Generator version: 7.21.0
  • Build package: org.openapitools.codegen.languages.PhpClientCodegen