# Generar link publico (sin auth) del comprobante: POST /bill/receipts/{comprobante_id}/public-link/

- Método y ruta: `POST /bill/receipts/{comprobante_id}/public-link/`
- Scope: `invoices:read`
- Recurso: Facturacion

## Qué hace

Requiere scope `invoices:read` (permiso `bill:invoices:view`). Valida primero que el comprobante existe y esta autorizado. Devuelve pdf_url/view_url/token listos para mandar por email/WhatsApp.

## Parámetros

| Parámetro | Dónde | Requerido | Tipo | Descripción |
| --- | --- | --- | --- | --- |
| `comprobante_id` | path | sí | string |  |

## Cuerpo del request (application/json)

| Campo | Tipo | Requerido | Descripción |
| --- | --- | --- | --- |
| `expires_in_seconds` | integer | no | Minimo 60s. |

## 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` |
| 503 | Public invoice links are not configured on the server (falta la signing secret). |  |

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