This package makes it easy to use the ARCA (ex AFIP) web services in your Laravel application.
You can install the package via composer:
composer require agustinzamar/laravel-arca-sdkYou can publish the config file with:
php artisan vendor:publish --tag="arca-sdk-config"Optionally, you can publish the views using
php artisan vendor:publish --tag="arca-sdk-views"To Start using the ARCA Web Services you need to register a certificate on their system.
- Create CSR file:
2. Run
openssl genrsa -out arca.key 20483. Runopenssl req -new -key arca.key -subj "/C=AR/O=YourName/CN=AppName/serialNumber=CUIT XXXXXXXXXXX" -out arca.csr - Login into ARCA using your CUIT and password
- Search for WSAS - Autogestión Certificados Homologación"
- Select "Nuevo Certificado"
- Set a name and paste the contents of the arca.csr file, then click on "Crear DN y obtener certificado"
- Copy the result on a plain text file and save it as arca.crt
- Paste
arca.key,arca.csr, andarca.crtinstorage/app/arca/ - You are now ready to use the package
You can use the package by using the Arca facade. Here is an example of how to use it:
Arca::getInvoiceTypes()Arca::getRecipientVatConditions();$pointOfSale = 1; // Your point of sale number
Arca::getLastInvoiceNumber($pointOfSale, InvoiceType::FACTURA_A);$pointOfSale = 1; // Your point of sale number
$invoiceNumber = 123; // Invoice number to query
Arca::getInvoiceDetails($pointOfSale, InvoiceType::FACTURA_C, $invoiceNumber);$pointOfSale = 1; // Your point of sale number
$nextInvoiceNumber = Arca::getLastInvoiceNumber($pointOfSale, InvoiceType::FACTURA_C);
$request = new CreateInvoiceRequest(
concept: InvoiceConcept::GOODS,
pointOfSale: $pointOfSale,
identification: new Identification(
type: IdentificationType::CUIT,
number: 20111111112
),
invoiceType: InvoiceType::FACTURA_C,
invoiceFrom: $nextInvoiceNumber,
invoiceTo: $nextInvoiceNumber,
total: 150.0,
net: 150.0,
exempt: 0.0,
nonTaxableConceptsAmount: 0.0,
vatCondition: 1,
currency: Currency::ARS,
currencyQuote: 1.0,
invoiceDate: now()->addDays(3),
);
Arca::generateInvoice($request);
// Or automatically generate next invoice
$request = new CreateInvoiceRequest(
concept: InvoiceConcept::GOODS,
pointOfSale: 12,
identification: new Identification(
type: IdentificationType::CUIT,
number: 20111111112
),
invoiceType: InvoiceType::FACTURA_C,
total: 150.0,
net: 150.0,
exempt: 0.0,
nonTaxableConceptsAmount: 0.0,
vatCondition: 1,
currency: Currency::ARS,
currencyQuote: 1.0,
invoiceDate: now()->addDays(3),
);
Arca::generateNextInvoice($request);The package also offers a set of convenient Enums for commonly used values:
InvoiceType: Represents the different types of invoices (e.g., FACTURA_A, FACTURA_B, etc.).InvoiceConcept: Represents the concept of the invoice (e.g., GOODS, SERVICES, etc.).IdentificationType: Represents the type of identification (e.g., CUIT, CUIL, etc.).Currency: Represents the currency type (e.g., ARS, USD, etc.).RecipientVatCondition: Represents the VAT condition of the recipient (e.g., RESPONSABLE_INSCRIPTO, MONOTRIBUTISTA, etc.).
composer testPlease see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please report any security vulnerabilities to agustinzamar33@gmail.com
The MIT License (MIT). Please see License File for more information.