Si tu sistema ya vende, Inari factura.
Una API REST con llaves por alcance y webhooks firmados. El comercio electrónico, el punto de venta o el sistema propio emiten a través de Inari sin que nadie retipee nada.
contratoeventoestado
curl https://app.inarihq.com/api/v1/invoices \
-H "Authorization: Bearer ik_live_9f2c…" \
-H "Content-Type: application/json" \
-d '{
"client_id": "cli_8f2a",
"condition": "credito_30",
"lines": [
{ "service_id": "srv_11", "qty": 1,
"unit_price": "1250000.00" }
]
}'{
"id": "inv_0000000123",
"consecutivo": "00100001010000000123",
"clave": "50608242026310123456700…",
"status": "enviada",
"total": "1412500.00",
"currency": "CRC"
}El integrador que factura a mano
Muchas tiendas en línea terminan con una persona copiando pedidos al facturador. Es el punto exacto donde el volumen deja de escalar y donde aparecen los errores de digitación.
El contrato, paso a paso.
Lo que un equipo técnico necesita saber antes de escribir la primera línea de integración.
Se crea una llave con alcance
Cada llave declara qué puede hacer. La llave se muestra una sola vez y se guarda como hash: no se puede recuperar, se rota.
- Prefijoik_live_ para producción
- AlmacenamientoHash SHA-256, nunca en claro
curl https://app.inarihq.com/api/v1/invoices \
-H "Authorization: Bearer ik_live_9f2c…" \
-H "Content-Type: application/json" \
-d '{
"client_id": "cli_8f2a",
"condition": "credito_30",
"lines": [
{ "service_id": "srv_11", "qty": 1,
"unit_price": "1250000.00" }
]
}'{
"id": "inv_0000000123",
"consecutivo": "00100001010000000123",
"clave": "50608242026310123456700…",
"status": "enviada",
"total": "1412500.00",
"currency": "CRC"
}Se emite por API
El mismo motor que usa la interfaz: se calculan los totales en el servidor, se firma, se envía a Hacienda y se escribe el asiento.
Y el sistema se entera por webhook
Cada evento se firma con HMAC-SHA256 y una marca de tiempo, para que el receptor pueda verificar el origen y descartar reenvíos.
POST https://tu-servidor.com/hooks/inari
Inari-Signature: t=1755180198,
v1=8c1f0a2b9d4e…
{
"event": "invoice.paid",
"created_at": "2026-08-18T14:03:18Z",
"data": {
"invoice_id": "inv_0000000123",
"amount": "1412500.00",
"method": "transferencia"
}
}Contrato y controles
Una llave de lectura no puede emitir. Una llave de emisión no puede ver la configuración de la empresa.
Se pueden tener varias llaves activas para rotar sin caída de servicio.
Un webhook que falla se reintenta con backoff. Los intentos quedan registrados.
Reenviar la misma solicitud no produce dos facturas ni dos consecutivos.
No existe una llave que cruce empresas; el aislamiento es el mismo que el de la interfaz.
Qué incluye cada plan
La escalera es de complejidad, no de volumen. Los límites de documentos son un detalle operativo y están en la comparación completa.
Lo que se conecta con esto
Mirá api con tus propios datos.
Agendá una demo de 30 minutos y lo recorremos con tu caso real. La migración desde Excel o tu facturador actual está incluida, y el contador entra sin costo.
Sin permanencia. El contador entra sin costo en todos los planes.