carloschininin / facturax-contracts
Contratos DTO versionados y bundle Symfony opcional para la API de Facturax.
Package info
github.com/carloschininin/facturax-contracts
Type:symfony-bundle
pkg:composer/carloschininin/facturax-contracts
dev-main
2026-04-03 06:31 UTC
Requires
- php: ^8.5
- symfony/config: ^8.0
- symfony/dependency-injection: ^8.0
- symfony/http-kernel: ^8.0
- symfony/serializer: ^8.0
- symfony/validator: ^8.0
Requires (Dev)
- phpunit/phpunit: ^11.5
This package is auto-updated.
Last update: 2026-04-03 06:40:30 UTC
README
Contratos DTO versionados para la API de Facturax, con Bundle Symfony opcional para registrar servicios de validación y normalización.
Objetivo
Este package permite que:
- Facturax valide localmente los payloads antes de persistirlos y mapearlos a Greenter.
- Los sistemas cliente construyan y validen el JSON antes de invocar la API.
El contrato público está desacoplado de Greenter\Model\*, pero conserva la semántica necesaria para mapearse internamente a Greenter.
Requisitos
- PHP 8.5+
- Symfony 8.x
Instalación
composer require carloschininin/facturax-contracts
Bundle Symfony opcional
Si el proyecto consumidor usa Symfony, puede registrar el bundle:
<?php return [ CarlosChininin\FacturaxContracts\CarlosChinininFacturaxContractsBundle::class => ['all' => true], ];
Servicios incluidos:
CarlosChininin\FacturaxContracts\Service\ContractValidatorCarlosChininin\FacturaxContracts\Service\ContractNormalizer
Familias de contratos actuales
Venta
Api\V1\Dto\Comprobante\ComprobanteRequestDtoApi\V1\Dto\Nota\NotaRequestDto
Resúmenes y anulaciones
Api\V1\Dto\Resumen\ResumenDiarioRequestDtoApi\V1\Dto\Baja\ComunicacionBajaRequestDtoApi\V1\Dto\Reversion\ReversionRequestDto
Logística
Api\V1\Dto\Guia\GuiaRemisionRequestDto
Retención / percepción
Api\V1\Dto\Percepcion\PercepcionRequestDtoApi\V1\Dto\Retencion\RetencionRequestDto
Objetos compartidos
- receptor / dirección
- totales
- forma de pago / cuotas
- cargos / descuentos
- leyendas
- anticipos
- detracción
- percepción de venta
- pagos / tipo de cambio
- atributos de detalle
Ejemplos JSON
Ver docs/examples/v1/:
comprobante-factura.jsonnota-credito.jsonresumen-diario.jsoncomunicacion-baja.jsonguia-remision.jsonpercepcion.jsonretencion.jsonreversion.json
Testing
composer install vendor/bin/phpunit
Notas
- Los DTOs están versionados por namespace en
Api\V1\Dto\.... - El emisor autenticado, credenciales SOL, certificados y endpoints SUNAT/OSE no forman parte del contrato público.
- El package cubre las familias principales usadas en
thegreenter/demo/examplespara entrada de documentos.