Comprobantes
Facturas y boletas se emiten desde un solo endpoint, /comprobantes/emitir — este es el mapa antes de entrar a cada endpoint.
Factura o boleta: un solo recurso
No hay endpoints separados para facturas y boletas. El tipo de comprobante lo define documento.tipoComprobante (y la serie, consistente con él) que envías al crearlo:
- Factura (tipoComprobante "01", serie F001) — para clientes con RUC.
- Boleta (tipoComprobante "03", serie B001) — para consumidores finales (DNI o sin documento).
La respuesta guarda esto como data.documento.tipo (FACTURA o BOLETA) y data.documento.tipoCodigo (01 o 03).
Cálculo de IGV
Cada ítem lleva un tipoIgv que determina cómo se calcula el IGV (18%) sobre esa línea:
| Código | Afectación |
|---|---|
10 | Gravado — operación onerosa, afecta al IGV. |
20 | Exonerado. |
30 | Inafecto. |
13 | Gratuito — retiro por bonificación. Ver Factura gratuita. Existe un rango más amplio de códigos de retiro/gratuito (11–17, 21, 31–37) en el catálogo SUNAT 07, no todos verificados contra Facto todavía. |
40 | Exportación — no afecto a IGV, su monto va a totales.exportacion en vez de totales.gravada. Va junto con documento.sunatTransaccion "0200". Ver Factura de exportación. |
Del formulario a SUNAT
Todo comprobante sigue el mismo flujo:
- Lo emites — crea el comprobante y lo envía a SUNAT en la misma llamada (Crear comprobante).
- Confirmas el resultado en estados de documento —
data.documento.estado:ACEPTADA,EN_PROCESOoRECHAZADA. - Descargas el PDF/XML (Descargar PDF/XML) o usas los enlaces de
data.enlacesde la respuesta directamente.
Comprobantes observados
data.documento.estado pasa a RECHAZADA y data.sunat.mensaje trae el motivo — no hay reintento automático, debes corregir y crear un nuevo comprobante.Anulación y notas de crédito/débito
Un comprobante aceptado no se elimina: se anula con un endpoint dedicado — ver Anular factura o Anular boleta. Para ajustes que no requieren anular el comprobante completo (descuentos, correcciones, intereses), ver Notas de crédito y débito.