Establecimientos y series
Locales anexos del RUC, series por establecimiento y numeración automática o manual.
Series
Cada RUC tiene sus series por tipo de documento. Al registrar el RUC se crean las series iniciales; puedes agregar más al crear un establecimiento.
Filtra por local con ?establishmentCode=0001.
Numeración
- Automática (
mode: "automatic"): omitenumbero envíalo comonully la API asigna el siguiente correlativo. - Manual (
mode: "manual"): debes enviarnumber. Si falta, respondeNUMBER_REQUIRED.
El correlativo se reserva con bloqueo, así que dos emisiones simultáneas nunca reciben el mismo número. Si la serie está ocupada por otra emisión en ese instante, responde 409 SERIES_BUSY (puedes reintentar). Un número que ya existe responde 409 DOCUMENT_NUMBER_CONFLICT.
Si la emisión falla antes de enviarse a SUNAT, el número se libera. Una vez enviado a SUNAT, el número queda usado aunque SUNAT lo rechace.
Series por defecto
Si no envías series, se usa:
| Documento | Serie |
|---|---|
| Factura (01) | F001 |
| Boleta (03) | B001 |
| Nota de crédito (07) | FC01 si afecta a una factura, BC01 si afecta a una boleta |
| Nota de débito (08) | FD01 si afecta a una factura, BD01 si afecta a una boleta |
| Retención (20) | R001 |
| Guía (09) | T001 |
Establecimientos
El domicilio fiscal es siempre el establecimiento 0000. Los locales anexos usan códigos de 4 dígitos (0001, 0002, …) y aparecen en el XML con su dirección y ubigeo.
Crear un establecimiento con sus series
Responde 201 con el establecimiento y sus series. Si el código ya existe, se actualizan sus datos. El establecimiento y las series se guardan juntos: si una serie falla, no se crea nada.
Una serie pertenece a un solo establecimiento. Al emitir con establishmentCode, la serie debe ser de ese local; si no, responde SERIES_ESTABLISHMENT_MISMATCH.
| Campo | Regla |
|---|---|
code | 4 dígitos, distinto de 0000. |
ubigeo | 6 dígitos (código INEI). |
series[].series | 4 caracteres alfanuméricos. Debe ser única en el RUC. |
series[].mode | automatic (por defecto) o manual. |
series[].nextNumber | Obligatorio en series manuales. |
