tefacturo

Issue sales receipt (boleta)

Service to issue SUNAT-valid electronic sales receipts (boletas). Boletas are used for B2C transactions.

Important usage rules

  • tipoIntegracion: OFFLINE → your own ERP handles the correlative (series/number). ERP → tefacturo handles the correlative.
  • numero (in datosDocumento): it cannot be duplicated. If the number was already used, map/track the correlative so it is not resent.
  • fechaEmision: an electronic document (CPE) can be declared with at most 3 days of backdating.
  • Replace the fixed example RUC with the issuer RUC used in the URL and token; all three must match.
  • Response 200 values such as series, number, hash, signature, and identifier are illustrative; the API generates their actual values for each request.
PUThttps://jarvis.tefacturo.pe/boleta-api/invoice2u/integracion/boleta/{ruc}

Service to issue electronic sales receipts (boletas). Replace {ruc} with the issuer RUC. The document will be digitally signed and submitted to SUNAT.

Headers

HeaderValueDescription
AuthorizationBearer {token}Authentication token obtained from the login endpoint.
Content-Typeapplication/jsonContent type for the request body.

Request Body

The JSON structure is similar to invoices. The right panel mirrors the same receipt cases from the JSON examples page: taxed receipt, unaffected receipt, and free-transfer receipt.

The complete examples are in the right panel for quick copy.

Successful Response (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.

Check the right panel to view and copy the sample response.

Differences vs Invoice

AspectInvoiceReceipt
SerieInicia con "F" (ej: FFA6)Inicia con "B" (ej: BBV5)
ReceptorSiempre RUCDNI, CE, Pasaporte o RUC
Envío a SUNATInmediato (tiempo real)Mediante resumen diario
UsoTransacciones B2BTransacciones B2C

Price Record Type

El campo tipoRegistro funciona igual que en la factura:

ValueDescription
PRECIOS_SIN_IGVLos precios NO incluyen IGV. El sistema calcula el 18% automáticamente.
PRECIOS_CON_IGVLos precios YA incluyen IGV. El sistema descompone base imponible e impuesto.

IGV Calculation Note

The field sent in each item depends on whether the operation is taxed with IGV and on close2u.tipoRegistro.

CaseField to sendSystem interpretation
Gravado + PRECIOS_SIN_IGVvalorVentaUnitarioItemValor de venta sin IGV. El sistema calcula el IGV y obtiene el precio de venta.
Gravado + PRECIOS_CON_IGVprecioVentaUnitarioItemPrecio de venta con IGV. El sistema lo descompone para reemplazar/obtener el valor de venta y el impuesto.
Exonerado o inafectovalorVentaUnitarioItemNo hay IGV por calcular. En ausencia de IGV, el sistema asume el valor enviado como base y lo usa como precio de venta.
Free transfer or withdrawalvalorReferencialUnitarioItemRequired when tipoAfectacion is a free transfer or withdrawal value. Without it the API rejects the item because it has no reference price.
ExporttipoAfectacion: "EXPORTACION"When informacionAdicional.tipoOperacion is export, every item must use the export affectation.

Detraction note: Only include the detraccion object when the sale amount reaches the required threshold: S/ 700 for general detraction cases and S/ 400 for passenger transport when applicable.

Field Reference

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.

Error Handling

CodeStatusDescription
400Bad RequestValidation errors in the request body.
401UnauthorizedInvalid or expired authentication token.
403ForbiddenYou do not have permission to issue receipts with the provided RUC.
404Not FoundEl RUC proporcionado no está registrado en el sistema.
500Internal Server ErrorInternal server error. Try again or contact support.

Related Endpoints