Emitir una factura
Factura (SUNAT 01) a un cliente con RUC, al contado o al crédito, en soles o dólares.
Una factura se emite a un cliente con RUC. SUNAT valida que el RUC exista y esté activo; si no, el comprobante se rechaza.
Al contado
Terminal
curl -X POST https://api.krezka.com/api/v1/invoicing/invoices \
-H "Authorization: Bearer $KREZKA_API_KEY" \
-H "Idempotency-Key: 5f7c1e2a-9b3d-4a6e-8c1f-2d4b6e8a0c12" \
-H "Content-Type: application/json" \
-d '{
"issuer_id": "iss_8Kp2Qm3x",
"document_type": "invoice",
"customer": { "document_type": "ruc", "document_number": "20601234567", "name": "COMERCIAL ANDINA S.A.C." },
"items": [
{ "description": "Laptop 14\" 16GB", "product_code": "LT-14-16", "quantity": 2, "unit": "NIU", "unit_value": 2500.00 },
{ "description": "Mouse inalámbrico", "quantity": 2, "unit": "NIU", "unit_value": 45.00 }
],
"payment_terms": { "type": "cash" }
}'Los totales los calcula Krezka: taxable 5,090.00, tax 916.20, total 6,006.20.
Al crédito
SUNAT exige fecha de vencimiento o cronograma de cuotas. La suma de las cuotas debe ser igual al total.
JSON
"payment_terms": {
"type": "credit",
"installments": [
{ "amount": 3003.10, "due_date": "2026-12-02" },
{ "amount": 3003.10, "due_date": "2027-01-02" }
]
}En dólares
JSON
"currency": "USD",
"exchange_rate": 3.72Si omites exchange_rate se usa el tipo de cambio del día de emisión.
Operaciones exoneradas o inafectas
Cada línea lleva su propia afectación. Un comprobante puede mezclarlas:
JSON
"items": [
{ "description": "Arroz", "quantity": 10, "unit": "KGM", "unit_value": 4.50, "tax_affectation": "exempt" },
{ "description": "Aceite", "quantity": 2, "unit": "LTR", "unit_value": 9.00, "tax_affectation": "taxed" }
]unit_value es sin IGV
Envía siempre el valor sin IGV. Si tu sistema guarda precios con IGV, divide entre
1.18 antes de enviar. Krezka calcula el impuesto según tax_affectation.
