PHPackages                             dazza-dev/sri-signer - 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. dazza-dev/sri-signer

ActiveLibrary

dazza-dev/sri-signer
====================

Paquete para firmar XML de documentos electrónicos (Factura, Guía de remisión, Nota crédito, Nota débito y Comprobante de retención) basado en las especificaciones del Servicio de Rentas Internas (SRI) de Ecuador.

v1.0.0(6mo ago)1117↑87.5%1MITPHPPHP &gt;=8.0

Since Oct 13Pushed 6mo agoCompare

[ Source](https://github.com/dazza-dev/sri-signer)[ Packagist](https://packagist.org/packages/dazza-dev/sri-signer)[ RSS](/packages/dazza-dev-sri-signer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (1)

SRI Signer 🇪🇨
=============

[](#sri-signer-)

Paquete para firmar XML de documentos electrónicos (Factura, Guía de remisión, Nota crédito, Nota débito y Comprobante de retención) basado en las especificaciones del Servicio de Rentas Internas (SRI) de Ecuador.

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

[](#instalación)

```
composer require dazza-dev/sri-signer
```

Guía de uso
-----------

[](#guía-de-uso)

```
use DazzaDev\SriSigner\Signer;

// Instanciar el signer
$signer = new Signer(
    certificatePath: __DIR__ . '/certificado.p12',
    certificatePassword: 'clave_certificado',
);

// XML como string o DOMDocument
$xmlString = file_get_contents(__DIR__ . '/factura.xml');

// Cargar el XML en el signer
$signer->loadXML($xmlString);

// Firmar el XML
$signedXML = $signer->sign();
```

Notas importantes sobre la estructura del XML
---------------------------------------------

[](#notas-importantes-sobre-la-estructura-del-xml)

- El documento XML a firmar debe contener únicamente el nodo raíz (por ejemplo: `factura`, `notaCredito`, `notaDebito`) con su atributo `id="comprobante"`, el atributo `version` correspondiente, y sus elementos hijos que describen el contenido del documento, sin incluir otros namespaces adicionales.

```

  ...
  ...
  ...

```

- La factura debe estar en formato UTF-8.
- Sin namespaces (xmlns).

```

...

```

En este ejemplo, el xmlns:ds="..." debe ser eliminado. Como contexto, ningún namespace es necesario para la factura en sí. Este paquete se encarga de colocar los namespaces necesarios en la firma digital generada.

Nota importante sobre los certificados
--------------------------------------

[](#nota-importante-sobre-los-certificados)

El paquete se ha probado satisfactoriamente usando certificados .p12 de estos proveedores:

- Uanataca.
- Security Data.

Si pruebas el paquete con .p12 de otros proveedores y encuentras problemas, por favor crea un [issue](https://github.com/dazza-dev/sri-signer/issues)

Envio de XML firmado
--------------------

[](#envio-de-xml-firmado)

Una vez firmado el XML, puedes enviarlo al SRI usando el paquete [SRI Sender](https://github.com/dazza-dev/sri-sender).

Generar XML
-----------

[](#generar-xml)

Si necesitas generar un XML para firmar, puedes usar el paquete [SRI XML Generator](https://github.com/dazza-dev/sri-xml-generator).

Contribuciones
--------------

[](#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
-----

[](#autor)

SRI Signer fue creado por [DAZZA](https://github.com/dazza-dev).

Licencia
--------

[](#licencia)

Este proyecto está licenciado bajo la [Licencia MIT](https://opensource.org/licenses/MIT).

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance70

Regular maintenance activity

Popularity14

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

208d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0a4e49637e94903e3732c3cf0c3e23b2e7a85286ab196f1ff078b0cea058f8b6?d=identicon)[dazza-dev](/maintainers/dazza-dev)

---

Top Contributors

[![dazza-dev](https://avatars.githubusercontent.com/u/21293561?v=4)](https://github.com/dazza-dev "dazza-dev (1 commits)")

---

Tags

srisignerecuadorfactura-electronicafirmar xmlFirmaxades-bes

### Embed Badge

![Health badge](/badges/dazza-dev-sri-signer/health.svg)

```
[![Health](https://phpackages.com/badges/dazza-dev-sri-signer/health.svg)](https://phpackages.com/packages/dazza-dev-sri-signer)
```

###  Alternatives

[elhebert/laravel-sri

Subresource Integrity hash generator for laravel

40225.5k](/packages/elhebert-laravel-sri)[baibaratsky/php-wmsigner

WebMoney Signer: a native PHP implementation of the WMSigner module

16399.8k3](/packages/baibaratsky-php-wmsigner)[sebdesign/laravel-sri

Subresource Integrity (SRI) package for Laravel

2339.7k](/packages/sebdesign-laravel-sri)[tavo1987/ec-validador-cedula-ruc

Ecuador ID (Cedula) and RUC Validator

1642.9k5](/packages/tavo1987-ec-validador-cedula-ruc)[multinexo/php-afip-ws

Librería PHP para interactuar con el webservice de AFIP (Argentina -&gt; factura electrónica).

229.9k](/packages/multinexo-php-afip-ws)[jeidison/signer-php

Open-source PHP library for PDF digital signing with multiple signatures, RFC3161 timestamping, PAdES profiles, and PDF protection

132.1k](/packages/jeidison-signer-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
