# Facturar a un cliente usando su informacion fiscal registrada: POST /bill/receipts/invoice/customer/

- Método y ruta: `POST /bill/receipts/invoice/customer/`
- Scope: `invoices:write`
- Recurso: Facturacion

## Qué hace

Requiere scope `invoices:write` (permiso `administration:invoices:create`). customer_id resuelve los datos fiscales del cliente (documento, razón social y condición de IVA): no hace falta mandarlos en el body. `punto_venta` e `items` son obligatorios; los precios son finales (IVA incluido) salvo `precios_con_iva: false`. autorizar:true dispara la autorizacion AFIP en background (fire-and-forget): la respuesta solo trae authorization_pending, el caller debe consultar el comprobante despues para ver el CAE real. En un tenant que factura con SIFEN (Paraguay) responde 409 con `error_code: use_sifen_routes`: emití con `POST /sales/` y las notas con `POST /sales/{sale_id}/credit_note/`.

## Cuerpo del request (application/json)

| Campo | Tipo | Requerido | Descripción |
| --- | --- | --- | --- |
| `customer_id` | string | sí | Id del cliente en YoFacturo: documento, razón social y condición de IVA salen de su ficha. |
| `punto_venta` | integer | sí | Punto de venta habilitado en ARCA. Obligatorio. |
| `concepto` | integer | no | Concepto ARCA: 1 = productos, 2 = servicios, 3 = ambos. Valores: 1, 2, 3. Por defecto: 1. |
| `ambiente` | string | no | Ignorado: el ambiente sale de la configuración de la cuenta. Valores: production, testing. Por defecto: production. |
| `autorizar` | boolean | no | Por defecto: false. |
| `items` | array de object | sí |  |
| `items[].descripcion` | string | no |  |
| `items[].cantidad` | number | no |  |
| `items[].precio_unitario` | number | no | FINAL (IVA incluido) salvo `precios_con_iva: false`. |
| `items[].iva_id` | integer | no | Por defecto: 5. |
| `items[].bonificacion` | number | no |  |
| `importe_total` | number | no | Opcional: el backend lo calcula. |
| `precios_con_iva` | boolean | no | true (default con API token): precios finales, IVA incluido. false: netos de IVA. |

## Errores

| Estado | Descripción | Código |
| --- | --- | --- |
| 400 | Solicitud inválida (body ausente o con formato incorrecto). | `VALIDATION_ERROR` |
| 401 | Falta autenticación o el token es inválido/expiró. | `UNAUTHORIZED` |
| 403 | El token no tiene el/los scope(s) requeridos, o el plan del tenant no habilita el módulo. | `FORBIDDEN` |
| 429 | Se superó el rate limit del endpoint o del tenant. Ver headers `X-RateLimit-*` y `Retry-After`. | `RATE_LIMITED` |

Referencia completa: https://yo-facturo.com/dev/referencia/
