Emitir una boleta
Una boleta de venta (tipo 03) se emite a un consumidor final. Su serie empieza con B.
La boleta de mostrador
Sección titulada «La boleta de mostrador»Lo que se cobró, con el IGV incluido, a un comprador que no se identificó:
curl https://api.emitay.com/v1/receipts \ -H "Authorization: Bearer $EMITAY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "series": "B001", "items": [ { "description": "Polo de algodón", "quantity": 1, "unit_price": "59.00", "price_includes_tax": true } ] }'$cabeceras = @{ Authorization = "Bearer $env:EMITAY_API_KEY"}$cuerpo = @'{ "series": "B001", "items": [ { "description": "Polo de algodón", "quantity": 1, "unit_price": "59.00", "price_includes_tax": true } ]}'@Invoke-RestMethod -Method Post ` -Uri https://api.emitay.com/v1/receipts ` -Headers $cabeceras ` -ContentType "application/json; charset=utf-8" ` -Body $cuerpoimport { Emitay } from "emitay";
const emitay = new Emitay(); // toma la llave de EMITAY_API_KEY
const boleta = await emitay.receipts.create({ series: "B001", items: [ { description: "Polo de algodón", quantity: 1, unit_price: "59.00", price_includes_tax: true, }, ],});price_includes_tax: truedice queunit_pricees el precio final. Emitay separa el IGV: de S/ 59.00 salen S/ 50.00 de valor y S/ 9.00 de IGV.- Sin
customer, la boleta sale a «CLIENTES VARIOS», y el comprobante devuelve ese cliente para que lo veas. Vale en soles y hasta S/ 700: por encima, o en otra moneda, hay que identificar al comprador y la API responde422sobrecustomer, sin consumir número.
Con el comprador identificado
Sección titulada «Con el comprador identificado»curl https://api.emitay.com/v1/receipts \ -H "Authorization: Bearer $EMITAY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "series": "B001", "customer": { "document_type": "1", "document_number": "45678912", "name": "MARÍA QUISPE HUAMÁN", "email": "maria@correo.pe" }, "items": [ { "description": "Zapatillas urbanas", "quantity": 1, "unit_price": "890.00", "price_includes_tax": true } ] }'$cabeceras = @{ Authorization = "Bearer $env:EMITAY_API_KEY"}$cuerpo = @'{ "series": "B001", "customer": { "document_type": "1", "document_number": "45678912", "name": "MARÍA QUISPE HUAMÁN", "email": "maria@correo.pe" }, "items": [ { "description": "Zapatillas urbanas", "quantity": 1, "unit_price": "890.00", "price_includes_tax": true } ]}'@Invoke-RestMethod -Method Post ` -Uri https://api.emitay.com/v1/receipts ` -Headers $cabeceras ` -ContentType "application/json; charset=utf-8" ` -Body $cuerpoimport { Emitay } from "emitay";
const emitay = new Emitay(); // toma la llave de EMITAY_API_KEY
const boleta = await emitay.receipts.create({ series: "B001", customer: { document_type: "1", document_number: "45678912", name: "MARÍA QUISPE HUAMÁN", email: "maria@correo.pe", }, items: [ { description: "Zapatillas urbanas", quantity: 1, unit_price: "890.00", price_includes_tax: true, }, ],});customer.document_type es un código del catálogo 06 de SUNAT. Los habituales:
| Código | Documento | document_number |
|---|---|---|
1 |
DNI | 8 dígitos |
4 |
Carné de extranjería | — |
6 |
RUC | 11 dígitos, con dígito verificador válido |
7 |
Pasaporte | — |
0 |
Sin documento | - |
Solo el RUC se deduce de su número. Ocho dígitos también pueden ser un pasaporte, así que para un DNI el tipo se indica.
Lo que cambia respecto a una factura
Sección titulada «Lo que cambia respecto a una factura»Una boleta acepta los mismos campos que una factura —ítems, descuentos, anticipos, moneda, observaciones— con estas diferencias:
- No admite
detractionni cuotas (payment.installments): son de la factura. - La ventana de envío es de 5 días desde la fecha de emisión, no de 3.
- Se anula por resumen diario en lugar de comunicación de baja. Para tu código es la misma llamada.
Todos los campos están en la referencia.