Download the PHP package rbbsoft/arca-sdk without Composer
On this page you can find all versions of the php package rbbsoft/arca-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download rbbsoft/arca-sdk
More information about rbbsoft/arca-sdk
Files in rbbsoft/arca-sdk
Package arca-sdk
Short Description SDK PHP PSR-4 standalone para facturacion electronica contra ARCA (WSAA + WSFE).
License MIT
Informations about the package arca-sdk
Rbbsoft\ArcaSdk
SDK PHP PSR-4 standalone para facturación electrónica contra ARCA (ex AFIP). Autenticación WSAA y factura electrónica WSFE para Facturas A/B/C/M y Notas de Crédito A/B/C/M, con idempotencia atómica, recuperación de zombies y retry policy incluidos.
- Guía de uso completa: docs/GUIA_DE_USO.md
- Mantenimiento del proyecto (auditor docs ↔ código, etc.): docs/MAINTENANCE.md
- Historial de versiones: CHANGELOG.md
- Manuales oficiales de ARCA: docs/ARCA/
- Estado: v0.7.0 — single-tenant, un CUIT por proceso PHP-FPM. Multi-tenant está explícitamente fuera de alcance.
Quickstart
Para la instalación detallada, las variables de entorno, los códigos de error, el diagnóstico, las operaciones administrativas y todo lo demás, ver la guía de uso completa.
Plantilla visual estilo ARCA (v0.7.0+)
Desde v0.7.0 el SDK puede generar PDFs con una plantilla visual completa que replica la estructura de un comprobante ARCA real (basada en el template "RBB Autoradio"), además del layout mínimo retrocompatible de v0.6.x. Se activa pasando un ComprobantePdfMetadata como 3er parámetro de ComprobantePdfGenerator::generar() (o de ArcaSdk::generarPdf()). Los datos del emisor se obtienen por Padrón A13 (obtenerEmisor()); los datos que ARCA no expone se completan manualmente (nombre de fantasía, ingresos brutos, inicio de actividades, condición IVA, nombre del receptor, etc.). Documentación completa y ejemplo en examples/factura_c_basica_pdf_plantilla.php. Soporte actual: Factura C (la firma del método ya acepta el metadata para cualquier tipo, pero el render completo solo está implementado para C hasta que se extienda).
Regeneración de PDF
Una vez que ARCA asigna un CAE a un comprobante, esa emisión es inmutable (idempotencia atómica). Pero el PDF generado por el SDK puede necesitar regenerarse en estos casos:
- El layout v0.7.0+ (plantilla visual estilo ARCA real) se desarrolló después de varias emisiones reales. Los PDFs emitidos con la plantilla v0.6.x quedaron con el layout mínimo retrocompatible. Este script permite volver a emitirlos con el layout nuevo conservando el mismo CAE.
- Cambian datos manuales del emisor/receptor (por ejemplo, se completa el nombre de fantasía después de una primera emisión, o se corrige la condición IVA). No amerita pedir un CAE nuevo a ARCA: solo se regenera el PDF con los datos actualizados del
ComprobantePdfMetadata. - El PDF original se perdió del filesystem (borrado accidental, deploy que no incluye
comprobantes/— directorio gitignored). La fuente de verdad para el comprobante es la tablaarca_emisiones_idempotenciadel SDK; el PDF se reconstruye a partir de los datos almacenados.
ARCA no conserva un "PDF maestro": el comprobante electrónico es el CAE + el QR + el JSON del response. El PDF es materialización local para impresión o entrega al receptor. Regenerarlo es siempre seguro; volver a emitir contra ARCA no lo es (asignaría un CAE nuevo).
El script examples/regenerar_pdf_plantilla.php hace exactamente esto: lee un array merge típico con los datos del comprobante autorizado, construye un ComprobanteEmitido inmutable vía ComprobanteEmitido::fromArray(), le pasa un ComprobantePdfMetadata con la metadata v0.7.0, y sobreescribe comprobantes/{cbte_tipo}-{cbte_nro}.pdf con el layout completo (3 páginas, tildes, formato 90000,00 sin separador de miles, DNI sin puntos, COD. 011 uppercase, banda "RBB AUTORADIO" italic+quotes, etc.). El script es local y offline — no habla con ARCA.
Uso:
El array $mergeDemo y el ComprobantePdfMetadata están embebidos como demo del comprobante 11-29 (Factura C, Pto Vta 2, CUIT emisor 20940361444, CAE 86320746470438). Para regenerar otro comprobante, editar esas dos variables con los datos del comprobante autorizado (los reales vienen de la tabla de idempotencia del SDK o del sistema del operador).
Instalación
El SDK se distribuye vía Composer como rbbsoft/arca-sdk. Requisitos: PHP 8.1 o superior con las extensiones ext-soap, ext-bcmath, ext-openssl y ext-pdo_mysql.
Para integrarlo a un proyecto existente:
Para probarlo de forma aislada (crea un directorio nuevo con el SDK y todas sus dependencias; incluye el smoke test como composer test):
La configuración del .env, los certificados y la base de datos se documentan en la guía de uso completa, sección 6.
Validación en entorno de homologación (ARCA)
El SDK se prueba de manera regular contra el entorno de homologación de ARCA (wsfev1 homo, https://wswhomo.afip.gov.ar/...). La homologación es un ambiente de prueba provisto por ARCA que replica los contratos y reglas de validación del ambiente productivo, pero no tiene validez fiscal y no se persiste más allá de un periodo breve.
La validación cubre dos ejes:
-
Suite automatizada de tests: 582 tests / ~2 750 assertions, ejecutada con PHPUnit. La suite cubre el armado de payloads, el parseo de respuestas, la clasificación de errores, la política de retry, la idempotencia atómica y la recuperación de emisiones zombie. No requiere conectividad con ARCA: se ejecuta offline contra dobles de prueba (
SoapClientDouble). - Emisión real de los ocho tipos de comprobante soportados mediante los scripts de
examples/. Cada invocación genera un comprobante con CAE asignado por ARCA homologación, persistido enarca_emisiones_idempotencia. Los tipos validados son:
| Tipo de comprobante | Código | Total | CAE asignado por ARCA homo |
|---|---|---|---|
| Factura A | 1 | 121,00 | 86310728860034 |
| Factura B | 6 | 121,00 | 86310728860050 |
| Factura C | 11 | 100,00 | 86310728860063 |
| Factura M | 51 | 100,00 | 86310728860089 |
| Nota de Crédito A | 3 | 121,00 | 86310728860092 |
| Nota de Crédito B | 8 | 121,00 | 86310728860123 |
| Nota de Crédito C | 13 | 100,00 | 86310728860136 |
| Nota de Crédito M | 53 | 100,00 | 86310728860152 |
Las emisiones se realizaron con punto de venta 2, CUIT emisor y CUIT receptor configurados por el operador en su .env (variables ARCA_CUIT y ARCA_CUIT_RECEPTOR) y fecha 2026-08-04. La sección 0 de la guía de uso documenta el contrato de las variables de entorno. Los CUITs reales no se versionan en el repositorio.
Para reproducir la validación:
Alcance de la validación: el SDK se considera validado únicamente en el entorno de homologación descripto. No se ha emitido contra el ambiente productivo de ARCA; la presente versión (v0.7.0) no se encuentra en producción. Antes de cualquier pase a producción se requiere una corrida de homologación con el CUIT y el punto de venta definitivos, junto con la verificación manual de los CAE resultantes.
Estructura
Costo de utilización
El SDK se distribuye bajo licencia MIT y su utilización es libre y gratuita, sin distinción entre el entorno de homologación y el entorno de producción. No se requiere el pago de licencia, canon ni suscripción por su empleo en ninguno de los dos entornos.
Atribución obligatoria
Toda aplicación que utilice el SDK debe incluir, en una sección accesible para el usuario final (por ejemplo, "Acerca de", "Créditos" o "Información legal"), una atribución visible al repositorio oficial del proyecto, con un enlace funcional a la fuente upstream en https://github.com/rbb-soft/ARCASdk.
Licencia
MIT. Texto legal completo en LICENCIA.md (traducción de referencia al castellano, no oficial).
All versions of arca-sdk with dependencies
ext-bcmath Version *
ext-gd Version *
ext-libxml Version *
ext-openssl Version *
ext-pdo_mysql Version *
ext-simplexml Version *
ext-soap Version *
mpdf/mpdf Version ^8.3
mpdf/qrcode Version ^1.2
psr/log Version ^1.1 || ^2.0 || ^3.0