# 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](https://dev-developers.berlinesa.com.ar/docs/conceptos/modos-de-facturacion.md).

## 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](https://dev-developers.berlinesa.com.ar/docs/ambientes.md) exportadas como variables:

```bash
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](https://dev-developers.berlinesa.com.ar/docs/autenticacion.md). Verificá que funciona:

```bash
curl "$API_URL/users/me" -H "Authorization: Bearer $TOKEN"
```

## 2. Cargar el CUIT que factura

```bash
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.

1. **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](https://dev-developers.berlinesa.com.ar/docs/ambientes.md)).
2. **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](https://www.afip.gob.ar/ws/documentacion/ws-factura-electronica.asp).

## 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:

```bash
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](https://dev-developers.berlinesa.com.ar/docs/referencia/catalogos-por-campo.md).

## 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.**

```bash
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](https://dev-developers.berlinesa.com.ar/docs/guias/emitir-factura.md#qué-hacer-con-la-respuesta)). |
| `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

```bash
curl "$API_URL/invoices/<id>/pdf" \
  -H "Authorization: Bearer $TOKEN" \
  -o factura.pdf
```

## Siguientes pasos

- [Emitir comprobantes](https://dev-developers.berlinesa.com.ar/docs/guias/emitir-factura.md): notas de crédito y débito, servicios, exportación y turismo.
- [Convenciones](https://dev-developers.berlinesa.com.ar/docs/conceptos/convenciones.md): errores, paginación y formato de datos.
- [Referencia de la API](https://dev-developers.berlinesa.com.ar/api/): todos los endpoints.
