Emitir Boleta de Venta
Servicio para emitir boletas de venta electrónicas validadas por SUNAT. La boleta es el comprobante de pago utilizado en transacciones con consumidores finales (B2C).
Reglas de uso importantes
tipoIntegracion:OFFLINE→ tu propio ERP se encarga del correlativo (serie/número).ERP→ tefacturo se encarga del correlativo.numero(endatosDocumento): no puede estar duplicado. Si el número ya fue utilizado, mapea/controla el correlativo para no reenviarlo.fechaEmision: un comprobante (CPE) se puede declarar con un máximo de 3 días de anterioridad.- Reemplaza el RUC fijo del ejemplo por el RUC emisor usado en la URL y el token; los tres deben coincidir.
- Los valores de la respuesta 200, como serie, número, hash, firma e identificador, son ilustrativos; el API genera sus valores reales en cada solicitud.
https://jarvis.tefacturo.pe/boleta-api/invoice2u/integracion/boleta/{ruc}Servicio para emitir boletas de venta electrónicas. Reemplaza {ruc} con el RUC del emisor. El comprobante será firmado digitalmente y enviado a SUNAT de forma automática.
Headers
| Header | Valor | Descripción |
|---|---|---|
| Authorization | Bearer {token} | Token de autenticación obtenido del endpoint de login |
| Content-Type | application/json | Tipo de contenido del cuerpo de la solicitud |
Cuerpo de la Solicitud
La estructura del JSON es similar a la de la factura. El panel derecho replica los mismos casos de la página de Ejemplos JSON: boleta gravada, boleta inafecta y boleta gratuita.
Respuesta Exitosa (200)
La respuesta confirma que la boleta fue emitida correctamente y retorna los datos generados del comprobante: firma, hash, identificador, serie, número, total, observación y tipo_documento. A diferencia de las facturas, las boletas se envían a SUNAT a través de resúmenes diarios.
Diferencias con la Factura
| Aspecto | Factura | Boleta |
|---|---|---|
| Serie | Inicia con "F" (ej: FFA6) | Inicia con "B" (ej: BBV5) |
| Receptor | Siempre RUC | DNI, CE, Pasaporte o RUC |
| Envío a SUNAT | Inmediato (tiempo real) | Mediante resumen diario |
| Uso | Transacciones B2B | Transacciones B2C |
Tipo de Registro de Precios
El campo tipoRegistro funciona igual que en la factura:
| Valor | Descripción |
|---|---|
| PRECIOS_SIN_IGV | Los precios NO incluyen IGV. El sistema calcula el 18% automáticamente. |
| PRECIOS_CON_IGV | Los precios YA incluyen IGV. El sistema descompone base imponible e impuesto. |
Nota técnica de cálculo IGV
El campo que se envía por ítem depende de si la operación está gravada con IGV y del valor de close2u.tipoRegistro.
| Caso | Campo a enviar | Interpretación del sistema |
|---|---|---|
| Gravado + PRECIOS_SIN_IGV | valorVentaUnitarioItem | Valor de venta sin IGV. El sistema calcula el IGV y obtiene el precio de venta. |
| Gravado + PRECIOS_CON_IGV | precioVentaUnitarioItem | Precio de venta con IGV. El sistema lo descompone para reemplazar/obtener el valor de venta y el impuesto. |
| Exonerado o inafecto | valorVentaUnitarioItem | No hay IGV por calcular. En ausencia de IGV, el sistema asume el valor enviado como base y lo usa como precio de venta. |
| Transferencia gratuita o retiro | valorReferencialUnitarioItem | Obligatorio cuando tipoAfectacion es una transferencia gratuita o un retiro. Sin este campo, la API rechaza el ítem porque no tiene precio referencial. |
| Exportación | tipoAfectacion: "EXPORTACION" | Cuando informacionAdicional.tipoOperacion es exportación, cada ítem debe usar la afectación EXPORTACION. |
Nota sobre detracción: Incluye el objeto detraccion solo cuando el importe de venta alcance el mínimo requerido: S/ 700 para casos generales de detracción y S/ 400 para transporte de personas cuando corresponda.
Referencia de Campos
Los campos son idénticos a los de la factura. Consulta la referencia completa de campos de factura para la tabla detallada de cada objeto.
Nota: Para boletas, el campo tipoDocumentoIdentidad del receptor puede ser DNI, CE o PASAPORTE además de RUC. Si el monto total es menor a S/ 700, el receptor puede omitir su documento de identidad.
Manejo de Errores
| Código | Estado | Descripción |
|---|---|---|
| 400 | Bad Request | Errores de validación en el cuerpo de la solicitud. |
| 401 | Unauthorized | Token de autenticación inválido o expirado. |
| 403 | Forbidden | No tiene permisos para emitir boletas con el RUC indicado. |
| 404 | Not Found | El RUC proporcionado no está registrado en el sistema. |
| 500 | Internal Server Error | Error interno del servidor. Intente nuevamente o contacte soporte. |