Primeros pasos
Esta guía te lleva de cero a una factura B autorizada por ARCA en el modo plataforma, el camino por defecto: el contribuyente que factura no genera ningún certificado, le delega el servicio al CUIT de Berlinesa. Si vas a facturar en nombre de varios clientes con tu propio certificado, mirá además Modos de facturación.
Antes de empezar
- Una cuenta en la app web de Berlinesa.
- El CUIT que va a emitir los comprobantes, con Clave Fiscal nivel 3.
- Las URLs de Ambientes exportadas como variables:
export API_URL="<URL base de la API>"
export TOKEN="<access token>"
1. Conseguir un token
Para una integración, creá un API Client y pedí un token con client_credentials. El paso a paso está en Autenticación. Verificá que funciona:
curl "$API_URL/users/me" -H "Authorization: Bearer $TOKEN"
2. Cargar el CUIT que factura
curl -X PATCH "$API_URL/users/me" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "cuit": "20111111112" }'
El CUIT va con 11 dígitos, sin guiones. Si el contribuyente está adherido a la RG 2904 (facturación con detalle de ítems), mandá también "rg2904_adherent": true: cambia qué datos exige ARCA en sus comprobantes locales.
Una vez que emitiste un comprobante con ese CUIT, ya no se puede cambiar (409).
3. Habilitar la facturación en ARCA
Esto lo hace el contribuyente, con su Clave Fiscal, en el sitio de ARCA. La API no puede hacerlo ni verificarlo de antemano: si falta, ARCA rechaza el comprobante recién al emitirlo.
- Delegar el servicio. En Administrador de Relaciones de Clave Fiscal, creá una nueva relación para el servicio de Facturación Electrónica con el CUIT de la plataforma como representante (ver Ambientes).
- Habilitar un punto de venta para facturar por sistema. En Administración de puntos de venta y domicilios, agregá un punto de venta nuevo y elegí como sistema la opción para facturación por sistema que corresponda a la condición frente al IVA (en el sitio de ARCA, por ejemplo, figura como "Factura Electrónica - Monotributo - Web Services" para monotributistas). No reutilices un punto de venta de otro sistema.
La navegación del sitio de ARCA cambia seguido. La referencia oficial es la documentación de Factura Electrónica de ARCA.
4. Consultar los datos de referencia
Los campos codificados de una factura salen de los catálogos de ARCA. Como mínimo, confirmá el punto de venta:
curl "$API_URL/catalogs/puntos-venta" -H "Authorization: Bearer $TOKEN"
La tabla completa de qué catálogo usar para cada campo está en Catálogos por campo.
5. Emitir la factura
Una factura B de productos por $121,00 (IVA 21% incluido) a un consumidor identificado por CUIT. Los montos van en centavos.
curl -X POST "$API_URL/invoices" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"letter": "B",
"kind": "FACTURA",
"sales_point_number": 1,
"concept_type": "PRODUCTS",
"issue_date": "2026-09-29",
"receptor": {
"identification_category": "NATIONAL_DOCUMENT",
"document_type": 80,
"identification_value": "20222222223",
"tax_condition_id": 5
},
"total_amount": 12100,
"taxable_amount": 10000,
"non_taxable_amount": 0,
"exempt_amount": 0,
"vat_amount": 2100,
"other_taxes_amount": 0,
"currency_code": "PES",
"exchange_rate": 1,
"vat_items": [
{ "vat_rate_id": 5, "taxable_base": 10000, "amount": 2100 }
]
}'
La respuesta es 201 con el comprobante completo y un header Location apuntando a /invoices/{id}. Mirá el campo status:
status | Qué significa |
|---|---|
APPROVED | ARCA otorgó el CAE. El comprobante es válido. |
OBSERVED | ARCA otorgó el CAE con observaciones. El comprobante es válido; las observaciones están en provider_errors. |
REJECTED | ARCA no lo autorizó. El motivo está en provider_errors (ver Emitir comprobantes). |
PENDING | Todavía no hay respuesta final de ARCA. |
issue_date tiene que estar dentro de la ventana que exige ARCA respecto de hoy: ±5 días para productos, ±10 para servicios.
6. Descargar el PDF
curl "$API_URL/invoices/<id>/pdf" \
-H "Authorization: Bearer $TOKEN" \
-o factura.pdf
Siguientes pasos
- Emitir comprobantes: notas de crédito y débito, servicios, exportación y turismo.
- Convenciones: errores, paginación y formato de datos.
- Referencia de la API: todos los endpoints.