https://github.com/phpcfdi/ceutils
PHP library for Mexican SAT Electronic Accounting 1.3
https://github.com/phpcfdi/ceutils
Last synced: 6 months ago
JSON representation
PHP library for Mexican SAT Electronic Accounting 1.3
- Host: GitHub
- URL: https://github.com/phpcfdi/ceutils
- Owner: phpcfdi
- License: mit
- Created: 2021-09-12T03:16:19.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2023-12-18T23:03:02.000Z (over 2 years ago)
- Last Synced: 2025-10-04T05:26:42.637Z (10 months ago)
- Language: PHP
- Size: 233 KB
- Stars: 9
- Watchers: 4
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# phpcfdi/ceutils
[![Source Code][badge-source]][source]
[![Packagist PHP Version Support][badge-php-version]][php-version]
[![Discord][badge-discord]][discord]
[![Latest Version][badge-release]][release]
[![Software License][badge-license]][license]
[![Build Status][badge-build]][build]
[![Reliability][badge-reliability]][reliability]
[![Maintainability][badge-maintainability]][maintainability]
[![Code Coverage][badge-coverage]][coverage]
[![Violations][badge-violations]][violations]
[![Total Downloads][badge-downloads]][downloads]
> Librería de PHP para trabajar con contabilidad electrónica.
:us: The documentation of this project is in spanish as this is the natural language for the intended audience.
## Acerca de
En México, las personas físicas o morales requieren generar su contabilidad electrónica.
Esta librería permite generar, sellar y validar los XML para contabilidad electrónica 1.3.
## Instalación
Usa [composer](https://getcomposer.org/)
```shell
composer require phpcfdi/ceutils
```
## Ejemplo básico de uso `BalanzaCreator13`
```php
'01',
'Anio' => '2021',
'TipoEnvio' => 'N',
'FechaModBal' => '2015-01-01',
]);
$credential = Credential::openFiles(
$this->filePath('fake-csd/EKU9003173C9.cer'),
$this->filePath('fake-csd/EKU9003173C9.key'),
trim($this->fileContents('fake-csd/EKU9003173C9-password.txt'))
);
$creator->addSello($credential);
$balanza = $creator->balanza();
$balanza->addCuenta([
'NumCta' => '602.01.01',
'SaldoIni' => '100.50',
'Debe' => '40',
'Haber' => '40',
'SaldoFin' => '100.50'
]);
$balanza->addCuenta([
'NumCta' => '602.01.02',
'SaldoIni' => '200.00',
'Debe' => '20',
'Haber' => '20',
'SaldoFin' => '200.00'
]);
$xml = $creator->asXml();
```
## Ejemplo básico de uso `CatalogoCreator13`
```php
'01',
'Anio' => '2021',
'TipoEnvio' => 'N',
'FechaModBal' => '2015-01-01',
]);
/** @var Credential $credential */
$creator->addSello($credential);
$catalogo = $creator->catalogo();
$catalogo->addCuenta([
'CodAgrup' => '602',
'NumCta' => '602.01.01',
'Desc' => 'Account description',
'SubCtaDe' => '602.01',
'Nivel' => '3',
'Natur' => 'A'
]);
$catalogo->addCuenta([
'CodAgrup' => '602',
'NumCta' => '602.01.02',
'Desc' => 'Account description',
'SubCtaDe' => '602.01',
'Nivel' => '3',
'Natur' => 'A'
]);
$xml = $creator->asXml();
```
## Ejemplo básico de uso `AuxiliarFoliosCreator13`
```php
'01',
'Anio' => '2021',
'TipoSolicitud' => 'AF',
'NumTramite' => '123456',
]);
/** @var Credential $credential */
$creator->addSello($credential);
$reporteAuxiliarFolios = $creator->repAuxFol();
$detalleAuxiliarFolios = $reporteAuxiliarFolios->addDetalleAux([
'NumUnIdenPol' => '194756',
'Fecha' => '2021-03-25'
]);
$detalleAuxiliarFolios->addComprNal([
'UUID_CFDI' => 'fake uuid',
'MontoTotal' => '100',
'RFC' => 'fake rfc',
'MetPagoAux' => '',
'Moneda' => 'MXN',
]);
$xml = $creator->asXml();
```
## Ejemplo básico de uso `AuxiliarCuentasCreator13`
```php
'01',
'Anio' => '2021',
'TipoSolicitud' => 'AF',
'NumTramite' => '123456',
]);
/** @var Credential $crcedential */
$creator->addSello($crcedential);
$auxiliarCuentas = $creator->auxiliarCuentas();
$cuenta = $auxiliarCuentas->addCuenta([
'NumCta' => '602.01.01',
'DesCta' => 'descripción',
'SaldoIni' => '100.00',
'SaldoFin' => '100.00'
]);
$cuenta->addDetalleAux([
'Fecha' => '2021-03-25',
'NumUnIdenPol' => '123456',
'Concepto' => 'concepto 1',
'Debe' => '50',
'Haber' => '0'
]);
$xml = $creator->asXml();
```
## Ejemplo básico de uso `PolizasCreator13`
```php
'01',
'Anio' => '2021',
'TipoSolicitud' => 'AF',
'NumTramite' => '123456',
]);
/** @var Credential $credential */
$creator->addSello($credential);
$polizas = $creator->polizas();
$poliza = $polizas->addPoliza([
'NumUnIdenPol' => '123456',
'Fecha' => '2021-03-31',
'Concepto' => 'Concepto póliza'
]);
$transaccion = $poliza->addTransaccion([
'NumCta' => '123',
'DesCta' => 'Descripción cuenta',
'Concepto' => 'Concepto transacción',
'Debe' => '100.00',
'Haber' => '0.00',
]);
$transaccion->addCompNal([
'UUID_CFDI' => 'adf9d1d2-574d-4781-8874-a9fb1e79930a',
'RFC' => 'XAXX010101000',
'MontoTotal' => '100.00',
'Moneda' => 'MXN',
]);
$xml = $creator->asXml();
```
## Ejemplo básico de validación
Los objetos creadores tienen oportunidad de validar el documento que están creando.
```php
validate();
if ($asserts->hasErrors()) {
echo 'No se han encontrado errores', PHP_EOL;
} else {
echo print_r($asserts->errors(), true), PHP_EOL;
}
```
## Soporte
Puedes obtener soporte abriendo un ticker en Github.
Adicionalmente, esta librería pertenece a la comunidad [PhpCfdi](https://www.phpcfdi.com), así que puedes usar los
mismos canales de comunicación para obtener ayuda de algún miembro de la comunidad.
## Compatibilidad
Esta librería se mantendrá compatible con al menos la versión con
[soporte activo de PHP](https://www.php.net/supported-versions.php) más reciente.
También utilizamos [Versionado Semántico 2.0.0](docs/SEMVER.md) por lo que puedes usar esta librería
sin temor a romper tu aplicación.
## Contribuciones
Las contribuciones con bienvenidas. Por favor lee [CONTRIBUTING][] para más detalles
y recuerda revisar el archivo de tareas pendientes [TODO][] y el archivo [CHANGELOG][].
## Copyright and License
The `phpcfdi/ceutils` library is copyright © [PhpCfdi](https://www.phpcfdi.com)
and licensed for use under the MIT License (MIT). Please see [LICENSE][] for more information.
[contributing]: https://github.com/phpcfdi/ceutils/blob/main/CONTRIBUTING.md
[changelog]: https://github.com/phpcfdi/ceutils/blob/main/docs/CHANGELOG.md
[todo]: https://github.com/phpcfdi/ceutils/blob/main/docs/TODO.md
[source]: https://github.com/phpcfdi/ceutils
[php-version]: https://packagist.org/packages/phpcfdi/ceutils
[discord]: https://discord.gg/aFGYXvX
[release]: https://github.com/phpcfdi/ceutils/releases
[license]: https://github.com/phpcfdi/ceutils/blob/main/LICENSE
[build]: https://github.com/phpcfdi/ceutils/actions/workflows/build.yml?query=branch:main
[reliability]:https://sonarcloud.io/component_measures?id=phpcfdi_ceutils&metric=Reliability
[maintainability]: https://sonarcloud.io/component_measures?id=phpcfdi_ceutils&metric=Maintainability
[coverage]: https://sonarcloud.io/component_measures?id=phpcfdi_ceutils&metric=Coverage
[violations]: https://sonarcloud.io/project/issues?id=phpcfdi_ceutils&resolved=false
[downloads]: https://packagist.org/packages/phpcfdi/ceutils
[badge-source]: http://img.shields.io/badge/source-phpcfdi/ceutils-blue?logo=github
[badge-php-version]: https://img.shields.io/packagist/php-v/phpcfdi/ceutils?logo=php
[badge-discord]: https://img.shields.io/discord/459860554090283019?logo=discord
[badge-release]: https://img.shields.io/github/release/phpcfdi/ceutils?logo=git
[badge-license]: https://img.shields.io/github/license/phpcfdi/ceutils?logo=open-source-initiative
[badge-build]: https://img.shields.io/github/actions/workflow/status/phpcfdi/ceutils/build.yml?branch=main&logo=github-actions
[badge-reliability]: https://sonarcloud.io/api/project_badges/measure?project=phpcfdi_ceutils&metric=reliability_rating
[badge-maintainability]: https://sonarcloud.io/api/project_badges/measure?project=phpcfdi_ceutils&metric=sqale_rating
[badge-coverage]: https://img.shields.io/sonar/coverage/phpcfdi_ceutils/main?logo=sonarcloud&server=https%3A%2F%2Fsonarcloud.io
[badge-violations]: https://img.shields.io/sonar/violations/phpcfdi_ceutils/main?format=long&logo=sonarcloud&server=https%3A%2F%2Fsonarcloud.io
[badge-downloads]: https://img.shields.io/packagist/dt/phpcfdi/ceutils?logo=packagist