Recetas

Un JSON por caso de uso, listo para copiar en POST https://comprobia.stackealabs.com/api/v1/{ruc}/comprobantes. Cada receta se emite en nuestras pruebas automáticas contra la API: si una deja de pasar, nos enteramos antes que tú.

Las notas apuntan a F001-1: cámbialo por el comprobante que corriges, que tiene que estar aceptado por SUNAT. ¿Quieres ver el papel antes de emitir? Manda el mismo JSON a POST https://comprobia.stackealabs.com/api/v1/{ruc}/comprobantes/vista-previa y recibes el PDF con la marca «VISTA PREVIA», sin gastar número.

Factura con precio con IGV

Lo más común en un punto de venta: el precio que ve el cliente ya incluye el IGV. Manda precio_unitario y Comprobia separa la base y el IGV por línea (regla 3103).

{
    "tipo_documento": "01",
    "serie": "F001",
    "fecha_emision": "2026-10-14",
    "moneda": "PEN",
    "cliente": {
        "tipo_documento": "6",
        "numero_documento": "20100066603",
        "razon_social": "CLIENTE DE PRUEBA SAC"
    },
    "forma_pago": {
        "tipo": "Contado"
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "PRODUCTO DE PRUEBA",
            "unidad": "NIU",
            "cantidad": "1",
            "precio_unitario": "118.00",
            "tipo_afectacion": "10"
        }
    ]
}

Factura con valor sin IGV

Si tu sistema trabaja con el valor sin impuestos, manda valor_unitario en vez de precio_unitario (nunca los dos). El IGV se calcula por línea.

{
    "tipo_documento": "01",
    "serie": "F001",
    "fecha_emision": "2026-10-14",
    "moneda": "PEN",
    "cliente": {
        "tipo_documento": "6",
        "numero_documento": "20100066603",
        "razon_social": "CLIENTE DE PRUEBA SAC"
    },
    "forma_pago": {
        "tipo": "Contado"
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "PRODUCTO DE PRUEBA",
            "unidad": "NIU",
            "cantidad": "1",
            "tipo_afectacion": "10",
            "valor_unitario": "100.00"
        }
    ]
}

Boleta de mostrador sin identificar al cliente

Hasta S/ 700 la boleta puede ir sin documento: tipo 0, número -. Por encima, SUNAT exige DNI (RN-B1) y la API lo rechaza antes de gastar el número. La boleta no se envía sola: va en el resumen diario de la madrugada.

{
    "tipo_documento": "03",
    "serie": "B001",
    "fecha_emision": "2026-10-14",
    "moneda": "PEN",
    "cliente": {
        "tipo_documento": "0",
        "numero_documento": "-",
        "razon_social": "CLIENTES VARIOS"
    },
    "forma_pago": {
        "tipo": "Contado"
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "CONSULTA",
            "unidad": "NIU",
            "cantidad": "1",
            "precio_unitario": "25.00",
            "tipo_afectacion": "10"
        }
    ]
}

Boleta a una persona con DNI

Tipo de documento 1 y los 8 dígitos del DNI.

{
    "tipo_documento": "03",
    "serie": "B001",
    "fecha_emision": "2026-10-14",
    "moneda": "PEN",
    "cliente": {
        "tipo_documento": "1",
        "numero_documento": "45678912",
        "razon_social": "JUAN PEREZ QUISPE"
    },
    "forma_pago": {
        "tipo": "Contado"
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "PRODUCTO DE PRUEBA",
            "unidad": "NIU",
            "cantidad": "1",
            "precio_unitario": "118.00",
            "tipo_afectacion": "10"
        }
    ]
}

Factura en dólares

moneda: USD. El tipo de cambio lo puedes mandar (tipo_cambio.factor, 3 decimales) o dejar que Comprobia lo complete con el venta SBS publicado; se guarda y va al Registro de Ventas en soles.

{
    "tipo_documento": "01",
    "serie": "F001",
    "fecha_emision": "2026-10-14",
    "moneda": "USD",
    "cliente": {
        "tipo_documento": "6",
        "numero_documento": "20100066603",
        "razon_social": "CLIENTE DE PRUEBA SAC"
    },
    "forma_pago": {
        "tipo": "Contado"
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "PRODUCTO DE PRUEBA",
            "unidad": "NIU",
            "cantidad": "1",
            "precio_unitario": "59.00",
            "tipo_afectacion": "10"
        }
    ],
    "tipo_cambio": {
        "factor": "3.750"
    }
}

Factura al crédito con cuotas

El pendiente y cada cuota con su vencimiento. Las cuotas suman el pendiente y vencen después de la emisión (reglas 3249, 3265, 3267).

{
    "tipo_documento": "01",
    "serie": "F001",
    "fecha_emision": "2026-10-14",
    "moneda": "PEN",
    "cliente": {
        "tipo_documento": "6",
        "numero_documento": "20100066603",
        "razon_social": "CLIENTE DE PRUEBA SAC"
    },
    "forma_pago": {
        "tipo": "Credito",
        "monto_pendiente": "118.00",
        "cuotas": [
            {
                "importe": "59.00",
                "fecha_vencimiento": "2026-11-13"
            },
            {
                "importe": "59.00",
                "fecha_vencimiento": "2026-12-13"
            }
        ]
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "PRODUCTO DE PRUEBA",
            "unidad": "NIU",
            "cantidad": "1",
            "precio_unitario": "118.00",
            "tipo_afectacion": "10"
        }
    ]
}

Factura con detracción (SPOT)

Tipo de operación 1001, el bien o servicio del catálogo 54, el porcentaje, el monto en soles y la cuenta del Banco de la Nación. El monto lo calculas tú: depende del redondeo del SPOT.

{
    "tipo_documento": "01",
    "serie": "F001",
    "fecha_emision": "2026-10-14",
    "moneda": "PEN",
    "cliente": {
        "tipo_documento": "6",
        "numero_documento": "20100066603",
        "razon_social": "CLIENTE DE PRUEBA SAC"
    },
    "forma_pago": {
        "tipo": "Contado"
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "SERVICIO DE MANTENIMIENTO",
            "unidad": "ZZ",
            "cantidad": "1",
            "precio_unitario": "1180.00",
            "tipo_afectacion": "10"
        }
    ],
    "tipo_operacion": "1001",
    "detraccion": {
        "codigo_bien_servicio": "037",
        "porcentaje": "12.00",
        "monto": "141.60",
        "cuenta_bn": "00-123-456789"
    }
}

Factura de exportación

Tipo de operación 0200, todas las líneas con afectación 40 y el cliente del extranjero (tipo C, sin RUC).

{
    "tipo_documento": "01",
    "serie": "F001",
    "fecha_emision": "2026-10-14",
    "moneda": "USD",
    "cliente": {
        "tipo_documento": "C",
        "numero_documento": "98-7654321",
        "razon_social": "IMPORTADORA DEL NORTE LLC"
    },
    "forma_pago": {
        "tipo": "Contado"
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "PRODUCTO DE PRUEBA",
            "unidad": "NIU",
            "cantidad": "1",
            "tipo_afectacion": "40",
            "valor_unitario": "500.00"
        }
    ],
    "tipo_operacion": "0200",
    "tipo_cambio": {
        "factor": "3.750"
    }
}

Factura con descuento global

Un descuento sobre el total que sí rebaja la base del IGV (código 02). importe va con IGV; si prefieres la base, manda base.

{
    "tipo_documento": "01",
    "serie": "F001",
    "fecha_emision": "2026-10-14",
    "moneda": "PEN",
    "cliente": {
        "tipo_documento": "6",
        "numero_documento": "20100066603",
        "razon_social": "CLIENTE DE PRUEBA SAC"
    },
    "forma_pago": {
        "tipo": "Contado"
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "PRODUCTO DE PRUEBA",
            "unidad": "NIU",
            "cantidad": "1",
            "precio_unitario": "100.00",
            "tipo_afectacion": "10"
        }
    ],
    "descuento_global": {
        "importe": "10.00"
    }
}

Nota de crédito que anula la operación

Motivo 01. Va con la serie de lo que corrige (F con F, B con B) y sólo sobre algo que SUNAT ya aceptó (RN-C10). Una nota modifica un solo comprobante.

{
    "tipo_documento": "07",
    "serie": "F001",
    "fecha_emision": "2026-10-14",
    "moneda": "PEN",
    "cliente": {
        "tipo_documento": "6",
        "numero_documento": "20100066603",
        "razon_social": "CLIENTE DE PRUEBA SAC"
    },
    "forma_pago": {
        "tipo": "Contado"
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "PRODUCTO DE PRUEBA",
            "unidad": "NIU",
            "cantidad": "1",
            "precio_unitario": "118.00",
            "tipo_afectacion": "10"
        }
    ],
    "motivo": {
        "codigo": "01",
        "descripcion": "ANULACION DE LA OPERACION"
    },
    "documento_afectado": {
        "tipo_documento": "01",
        "serie": "F001",
        "correlativo": 1
    }
}

Nota de crédito por devolución de un ítem

Motivo 07: sólo las líneas devueltas, con su cantidad.

{
    "tipo_documento": "07",
    "serie": "F001",
    "fecha_emision": "2026-10-14",
    "moneda": "PEN",
    "cliente": {
        "tipo_documento": "6",
        "numero_documento": "20100066603",
        "razon_social": "CLIENTE DE PRUEBA SAC"
    },
    "forma_pago": {
        "tipo": "Contado"
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "PRODUCTO DE PRUEBA",
            "unidad": "NIU",
            "cantidad": "1",
            "precio_unitario": "50.00",
            "tipo_afectacion": "10"
        }
    ],
    "motivo": {
        "codigo": "07",
        "descripcion": "DEVOLUCION DE UN PRODUCTO"
    },
    "documento_afectado": {
        "tipo_documento": "01",
        "serie": "F001",
        "correlativo": 1
    }
}

Nota de débito por intereses

Motivo 01 del catálogo 10 (intereses por mora): suma al comprobante original.

{
    "tipo_documento": "08",
    "serie": "F001",
    "fecha_emision": "2026-10-14",
    "moneda": "PEN",
    "cliente": {
        "tipo_documento": "6",
        "numero_documento": "20100066603",
        "razon_social": "CLIENTE DE PRUEBA SAC"
    },
    "forma_pago": {
        "tipo": "Contado"
    },
    "items": [
        {
            "codigo_interno": "P001",
            "descripcion": "INTERESES POR MORA",
            "unidad": "ZZ",
            "cantidad": "1",
            "precio_unitario": "11.80",
            "tipo_afectacion": "10"
        }
    ],
    "motivo": {
        "codigo": "01",
        "descripcion": "INTERESES POR MORA"
    },
    "documento_afectado": {
        "tipo_documento": "01",
        "serie": "F001",
        "correlativo": 1
    }
}