clonixdev/sri-ec

Paquete para generar, firmar y enviar documentos electrónicos (Factura, Guía de remisión, Nota crédito, Nota débito y Comprobante de retención) al SRI (Ecuador).

Maintainers

Package info

github.com/clonixdev/sri-ec

pkg:composer/clonixdev/sri-ec

Statistics

Installs: 4

Dependents: 1

Suggesters: 0

Stars: 0

1.1.0 2026-05-29 04:40 UTC

This package is auto-updated.

Last update: 2026-05-29 05:13:42 UTC


README

Paquete para generar, firmar y enviar documentos electrónicos (Factura, Guía de remisión, Nota crédito, Nota débito y Comprobante de retención) al SRI (Ecuador).

Instalación

composer require clonixdev/sri-ec

Configuración

use DazzaDev\SriEc\Client;

$client = new Client(test: true); // true or false

$client->setCertificate([
    'path' => _DIR_ . '/certificado.p12',
    'password' => 'clave_certificado',
]);

// Ruta donde se guardarán los archivos xml
$client->setFilePath(_DIR_ . '/sri');

Uso

Enviar un documento electrónico

Para enviar un documento electrónico como Factura, Guía de remisión, Nota crédito, Nota débito o Comprobante de retención. primero debes pasar la estructura de datos que puedes encontrar en: dazza-dev/sri-xml-generator.

Ejemplo de uso (Factura)

// Usar el valor en inglés de la tabla
$client->setDocumentType('invoice');

// Datos del documento
$client->setDocumentData($documentData);

// Enviar el documento
$document = $client->sendDocument();

Tipos de documentos disponibles

Documento Valor
Factura invoice
Nota de crédito credit-note
Nota de débito debit-note
Guía de remisión delivery-guide
Comprobante de retención withholding-receipt

Obtener los listados

SRI tiene una lista de códigos que este paquete te pone a disposición para facilitar el trabajo de consultar esto en el anexo técnico:

use DazzaDev\SriEc\Listing;

// Obtener los listados disponibles
$listings = Listing::getListings();

// Consultar los datos de un listado por tipo
$listingByType = Listing::getListing('identification-types');

Consulta de RUC

Aviso: este servicio consume endpoints REST internos del portal SRI en línea. No forman parte de la documentación oficial de comprobantes electrónicos y pueden cambiar sin previo aviso.

Consulta contribuyentes por número de RUC o por razón social / nombre completo:

use DazzaDev\SriEc\RucConsulta\RucConsulta;

$consulta = new RucConsulta();

// Por RUC (13 dígitos)
$resultado = $consulta->porRuc('1790016919001');

// Por razón social (admite coincidencias parciales)
$resultados = $consulta->porRazonSocial('CORPORACION FAVORITA', limit: 20);

Formato de respuesta

[
    'success' => true,
    'count' => 1,
    'total' => 2, // solo en búsqueda por razón social
    'results' => [
        [
            'numero_ruc' => '1790016919001',
            'razon_social' => 'CORPORACION FAVORITA C.A.',
            'nombre_comercial' => 'CORPORACION FAVORITA C.A.',
            'estado_contribuyente' => 'ACTIVO',
            'tipo_contribuyente' => 'SOCIEDAD',
            'obligado_contabilidad' => 'SI',
            'actividad_economica' => 'VENTA AL POR MAYOR...',
            'regimen' => 'GENERAL',
            'categoria' => null,
            'establecimientos' => [
                [
                    'numero_establecimiento' => '001',
                    'nombre_comercial' => 'CORPORACION FAVORITA C.A.',
                    'direccion_completa' => 'PICHINCHA / QUITO / ...',
                    'estado' => 'ABIERTO',
                    'tipo_establecimiento' => 'MAT',
                    'matriz' => 'SI',
                ],
            ],
        ],
    ],
]

Notas de búsqueda por razón social

  • Para personas naturales, el portal del SRI recomienda: APELLIDO1 APELLIDO2 NOMBRES.
  • La búsqueda admite coincidencias parciales (por ejemplo, FAVORITA).
  • El parámetro limit controla cuántos resultados enriquecer con detalle completo (máximo 50).

Contribuciones

Contribuciones son bienvenidas. Si encuentras algún error o tienes ideas para mejoras, por favor abre un issue o envía un pull request. Asegúrate de seguir las guías de contribución.

Autor

SRI Ecuador fue creado por DAZZA.

Licencia

Este proyecto está licenciado bajo la Licencia MIT.