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).
Requires
- php: >=8.0
- ext-curl: *
- clonixdev/sri-accesskey-generator: ^1.0
- clonixdev/sri-sender: ^1.0
- clonixdev/sri-signer: ^1.0
- clonixdev/sri-xml-generator: ^1.0
Requires (Dev)
- phpunit/phpunit: ^10.0|^11.0
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
limitcontrola 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.