Comprobante emitido
Identificador del evento: voucher.issued
En pocas palabras
Sección titulada «En pocas palabras»IDPOS le avisa de que se emitió un comprobante: una boleta, una factura o una nota de crédito. El aviso trae sus importes, ítems, pagos y el documento que lo originó.
Cuándo llega
Sección titulada «Cuándo llega»Cuando se emite una boleta (RECEIPT), una factura (INVOICE) o una nota de crédito (CREDIT_NOTE).
| Campo | Qué indica |
|---|---|
type | El tipo de comprobante: RECEIPT, INVOICE o CREDIT_NOTE. |
document | El documento que originó el comprobante: ORDER (orden). |
related_voucher | El comprobante relacionado cuando existe. Si no existe, es null. |
Para qué le sirve
Sección titulada «Para qué le sirve»- Guardar el comprobante electrónico en su sistema contable, con su serie y su número.
- Conservar el detalle de impuestos de cada comprobante: base, IGV, ISC y monto exonerado.
- Relacionar el comprobante con su orden de origen y con sus pagos.
Qué hacer al recibirlo
Sección titulada «Qué hacer al recibirlo»-
Verifique la firma.
Calcule el HMAC con el cuerpo crudo y compárelo con
X-Webhook-Signature. Si no coincide, no procese el evento. Los pasos están en Autenticación y firma. -
Responda
2xxde inmediato.Guarde el evento en una cola y responda sin esperar a procesarlo. Si tarda más que el tiempo de espera, IDPOS lo trata como fallido y lo reintenta.
-
Descarte los duplicados.
Si ya procesó ese
event_iddel cuerpo, ya verificado, no lo procese otra vez. Como segunda clave useevent_typejunto condata.id(por ejemplo, voucher.issued y el id del comprobante). -
Procese el evento en segundo plano.
Guarde el comprobante en su sistema e identifíquelo por
data.ido por suseriesynumber. Usetypepara distinguir boletas, facturas y notas de crédito.
Ejemplo
Sección titulada «Ejemplo»{ "event_id": "01J9ZK7T4Y2Q5A8P9W1D6E3F2G", "event_type": "voucher.issued", "timestamp": "2026-10-12T19:46:00Z", "api_version": "v1", "data": { "id": "1c3e5a7b-9d1f-4a35-8c7e-0b2d4f6a8c14", "type": "RECEIPT", "series": "B001", "number": 4521, "issue_date": "2026-10-12 00:00:00", "due_date": "2026-10-12", "status": "sent", "observations": null, "currency": "PEN", "igv_percentage": "18.00000", "base_amount": "48.30508", "other_charges_amount": "0.00000", "isc_amount": "0.00000", "exonerated_amount": "0.00000", "igv_amount": "8.69492", "global_discount_amount": "0.00000", "total_discount_amount": "6.00000", "total_amount": "57.00000", "customer": { "identification_type": "DNI", "identification_value": "12345678", "name": "CLIENTE EJEMPLO", "address": null }, "document": { "id": "9b6f0c3e-1a2d-4c55-8f01-3d2a7e6b9a10", "type": "ORDER", "reference": "OV-001234", "datetime": "2026-10-12 19:30:00" }, "items": [ { "sku": "HAM-001", "external_id": "100234", "name": "Hamburguesa Clásica", "quantity": 2, "unit_value": "25.42373", "unit_price": "30.00000", "base_amount": "45.76271", "discount_amount": "6.00000", "discount_reason": "Promo almuerzo", "igv_type": 1, "igv_amount": "8.23729", "total_amount": "54.00000" }, { "sku": "TOP-QSO", "external_id": null, "name": "Queso extra", "quantity": 1, "unit_value": "2.54237", "unit_price": "3.00000", "base_amount": "2.54237", "discount_amount": "0.00000", "discount_reason": null, "igv_type": 1, "igv_amount": "0.45763", "total_amount": "3.00000" } ], "payments": [ { "method_id": "1b3d5f7a-9c2e-4d6b-8f1a-3c5e7a9b2d93", "method_name": "Visa", "method_type": "card", "amount": "57.00000", "last_four_digits": "1111", "reference_number": "123456", "approval_code": "A1B2C3" } ], "related_voucher": null, "store": { "id": "6a8c0e2f-5b7d-4d9b-9e3a-4f6b8d0c2e53", "name": "Tienda Centro", "external_id": "T01" } }}Cómo leer las tablas: el tipo aparece debajo del nombre del campo y «nulo» indica que puede venir como null. Los demás términos están en la guía de lectura de campos.
Comprobante
Sección titulada «Comprobante»| Campo | Descripción |
|---|---|
idstring (UUID) | Identificador del comprobante |
typestring · nulo | Tipo de comprobante: INVOICE (factura), RECEIPT (boleta) o CREDIT_NOTE (nota de crédito) |
seriesstring | Serie |
numberentero · nulo | Número |
issue_datestring · nulo | Fecha de emisión (AAAA-MM-DD HH:mm:ss) |
due_datestring · nulo | Fecha de vencimiento (AAAA-MM-DD) |
statusstring · nulo | Estado del comprobante |
observationsstring · nulo | Observaciones |
currencystring | Nombre de la moneda |
igv_percentagestring (5 dec) | Porcentaje de IGV |
base_amountstring (5 dec) | Base imponible |
other_charges_amountstring (5 dec) | Otros cargos |
isc_amountstring (5 dec) | Monto de ISC |
exonerated_amountstring (5 dec) | Monto exonerado |
igv_amountstring (5 dec) | Monto de IGV |
global_discount_amountstring (5 dec) | Descuento global |
total_discount_amountstring (5 dec) | Descuento total por líneas |
total_amountstring (5 dec) | Monto total |
storeobjeto | Tienda (id, name, external_id) |
Cliente (customer)
Sección titulada «Cliente (customer)»| Campo | Descripción |
|---|---|
customerobjeto | Cliente |
customer.identification_typestring · nulo | Tipo de documento de identidad |
customer.identification_valuestring · nulo | Número de documento de identidad |
customer.namestring · nulo | Nombre o razón social |
customer.addressstring · nulo | Dirección del cliente |
Documento de origen (document)
Sección titulada «Documento de origen (document)»| Campo | Descripción |
|---|---|
documentobjeto | Documento de origen |
document.idstring (UUID) · nulo | Identificador del documento |
document.typestring · nulo | Tipo de documento de origen: ORDER (orden) |
document.referencestring · nulo | Referencia del documento |
document.datetimestring · nulo | Fecha y hora del documento (AAAA-MM-DD HH:mm:ss) |
Ítems (items[])
Sección titulada «Ítems (items[])»| Campo | Descripción |
|---|---|
itemslista | Ítems del comprobante |
items[].skustring · nulo | Código del ítem |
items[].external_idstring · nulo | Código externo del ítem |
items[].namestring | Descripción del ítem |
items[].quantitynúmero | Cantidad |
items[].unit_valuestring (5 dec) | Valor unitario |
items[].unit_pricestring (5 dec) | Precio unitario |
items[].base_amountstring (5 dec) | Base imponible de la línea |
items[].discount_amountstring (5 dec) | Descuento de la línea |
items[].discount_reasonstring · nulo | Motivo del descuento |
items[].igv_typeentero | Código de afectación al IGV |
items[].igv_amountstring (5 dec) | Monto de IGV de la línea |
items[].total_amountstring (5 dec) | Total de la línea |
Pagos (payments[])
Sección titulada «Pagos (payments[])»| Campo | Descripción |
|---|---|
paymentslista | Pagos |
payments[].method_idstring (UUID) | Identificador del medio de pago |
payments[].method_namestring | Nombre del medio de pago |
payments[].method_typestring | Tipo de medio de pago |
payments[].amountstring (5 dec) | Monto del pago |
payments[].last_four_digitsstring · nulo | Últimos cuatro dígitos de la tarjeta |
payments[].reference_numberstring · nulo | Número de referencia |
payments[].approval_codestring · nulo | Código de aprobación |
Comprobante relacionado (related_voucher)
Sección titulada «Comprobante relacionado (related_voucher)»| Campo | Descripción |
|---|---|
related_voucherobjeto · nulo | Comprobante relacionado |
related_voucher.idstring (UUID) | Identificador del comprobante |
related_voucher.typestring · nulo | Tipo de comprobante |
related_voucher.seriesstring · nulo | Serie |
related_voucher.numberentero · nulo | Número |
related_voucher.statusstring · nulo | Estado |
related_voucher.issue_datestring · nulo | Fecha de emisión |
related_voucher.due_datestring · nulo | Fecha de vencimiento |