GuíaEjemplosReferencia API
apisunat.netIngresar

Primeros pasos

  • API SUNAT
  • Inicio rápido
  • Integra con IA
  • Autenticación
  • Planes y límites

Configurar el RUC

  • Emisores
  • Establecimientos y series

Emitir

  • Documentos
  • Idempotencia
  • Estados
  • Correos
  • Catálogos

Integración

  • Errores
  • Webhooks
  • Cambios

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.

bash
curl "https://api.apisunat.net/api/v1/issuer/series?ruc=20123456789" \
  -H "X-API-Key: $APISUNAT_KEY"
json
{
  "data": [
    { "documentType": "01", "series": "F001", "nextNumber": 125, "mode": "automatic", "active": true, "establishmentCode": "0000" },
    { "documentType": "03", "series": "B001", "nextNumber": 3407, "mode": "automatic", "active": true, "establishmentCode": "0000" }
  ]
}

Filtra por local con ?establishmentCode=0001.

Numeración

  • Automática (mode: "automatic"): omite number o envíalo como null y la API asigna el siguiente correlativo.
  • Manual (mode: "manual"): debes enviar number. Si falta, responde NUMBER_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:

DocumentoSerie
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.

bash
curl "https://api.apisunat.net/api/v1/issuer/establishments?ruc=20123456789" \
  -H "X-API-Key: $APISUNAT_KEY"

Crear un establecimiento con sus series

bash
curl https://api.apisunat.net/api/v1/issuer/establishments \
  -H "X-API-Key: $APISUNAT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ruc": "20123456789",
    "code": "0001",
    "name": "Tienda Miraflores",
    "address": "Av. Larco 123",
    "ubigeo": "150122",
    "series": [
      { "documentType": "01", "series": "F002", "mode": "automatic" },
      { "documentType": "03", "series": "B002", "mode": "automatic" }
    ]
  }'

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.

CampoRegla
code4 dígitos, distinto de 0000.
ubigeo6 dígitos (código INEI).
series[].series4 caracteres alfanuméricos. Debe ser única en el RUC.
series[].modeautomatic (por defecto) o manual.
series[].nextNumberObligatorio en series manuales.
Emisores< PreviousDocumentosNext >

Powered by heyo

On this page

SeriesNumeraciónSeries por defectoEstablecimientosCrear un establecimiento con sus series