Almendro Factura Electrónica
Guía de integración 23 abril 2026 · 10 min de lectura

Cómo integrar facturación electrónica en Costa Rica vía API

Conecte su POS, e-commerce, ERP o CRM a la facturación electrónica del Ministerio de Hacienda en 4 pasos. Con código funcional y sandbox para probar sin riesgo.

Desde 2018, toda empresa en Costa Rica está obligada a emitir comprobantes electrónicos ante el Ministerio de Hacienda. El esquema actual (XML v4.4) exige generar un documento XML, firmarlo digitalmente con XAdES-EPES y enviarlo al API de la DGT. Suena complejo, pero con una API REST como la de Almendro, su sistema solo envía un JSON y nosotros nos encargamos del resto.

Esta guía le muestra cómo integrar facturación electrónica en cualquier sistema que pueda hacer requests HTTP, en 4 pasos, con código curl que puede copiar y probar ahora mismo.

¿No tiene cuenta? Créela gratis en fe.almendro.cr/register. El plan gratuito incluye 10 comprobantes/mes, y desde el 2026-08-27 trae token de API y sandbox: se puede integrar y probar entero sin poner una tarjeta.

Los 4 pasos de la integración

1

Cree su cuenta y obtenga su token API

Regístrese en fe.almendro.cr con su cédula y correo. Desde el portal, vaya a Configuración » Token API y genere un token Bearer. Guárdelo | no se muestra de nuevo.

Este token se usa en el header Authorization de todos los requests:

bash
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
2

Suba su certificado digital .p12

Cada comprobante se firma con su certificado del BCCR. Súbalo desde el portal (Configuración » Certificado) o vía API:

bash
curl -X POST https://fe.almendro.cr/api/v1/public/certificates \
  -H "Authorization: Bearer {su_token}" \
  -F "p12_file=@/ruta/certificado.p12" \
  -F "p12_password=contraseña_del_p12" \
  -F "hacienda_pin=1234" \
  -F "environment=sandbox"
Sandbox primero. Use environment=sandbox para pruebas. Los comprobantes de sandbox se envían al sandbox de Hacienda | sin valor fiscal y sin consumir su cuota mensual.
3

Emita su primer comprobante

Envíe un POST /vouchers con el JSON del comprobante. Almendro genera el XML v4.4, valida contra los XSD de Hacienda, firma con XAdES-EPES y envía. La respuesta es HTTP 202 Accepted | el procesamiento es asíncrono.

bash
curl -X POST https://fe.almendro.cr/api/v1/public/vouchers \
  -H "Authorization: Bearer {su_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "voucher_type": "01",
    "situation": "1",
    "issuer_activity_code": "6201.0",
    "sale_condition": "01",
    "currency_code": "CRC",
    "payment_methods": [{"tipo": "02"}],
    "receiver": {
      "id_type": "02",
      "id_number": "3101000001",
      "name": "EMPRESA RECEPTORA S.A."
    },
    "line_items": [{
      "line_number": 1,
      "cabys_code": "8311000000000",
      "quantity": "1.000",
      "unit_of_measure": "Sp",
      "detail": "Servicio de consultoría",
      "unit_price": "100000.00000",
      "total_amount": "100000.00000",
      "sub_total": "100000.00000",
      "base_imponible": "100000.00000",
      "taxes": [{
        "codigo": "01",
        "codigoTarifa": "08",
        "tarifa": "13.00",
        "monto": "13000.00000"
      }],
      "impuesto_neto": "13000.00000",
      "total_line_amount": "113000.00000"
    }]
  }'

Respuesta exitosa:

json | 202 Accepted
{
  "success": true,
  "data": {
    "voucher_key": "50623042600310100000100100001010000000001112345678",
    "voucher_type": "01",
    "voucher_type_label": "Factura Electrónica",
    "consecutive_number": "00100001010000000001",
    "status": "pending",
    "environment": "sandbox"
  },
  "message": "Comprobante generado y encolado para envío a Hacienda."
}
HTTP 202 ≠ aceptado por Hacienda. Solo confirma que Almendro recibió el request, generó el XML, lo firmó y lo encoló. Hacienda responde en 5-60 segundos. Para obtener el resultado, use webhooks (paso 4) o consulte el estado con GET /vouchers/{clave}.
4

Reciba el resultado con webhooks

En lugar de hacer polling, configure un webhook para que Almendro le notifique automáticamente cuando Hacienda responda:

bash
curl -X POST https://fe.almendro.cr/api/v1/public/webhooks \
  -H "Authorization: Bearer {su_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://mi-sistema.com/webhooks/almendro",
    "events": ["voucher.accepted", "voucher.rejected"]
  }'

Almendro envía un POST a su URL con la clave del comprobante, el estado y un HMAC-SHA256 en el header X-Almendro-Signature para que verifique la autenticidad. Si su servidor no responde, reintenta con backoff exponencial.

Sandbox: pruebe sin riesgo fiscal

Almendro ofrece un ambiente sandbox que replica la API de producción contra el sandbox oficial de Hacienda. Los comprobantes emitidos no tienen valor fiscal y no consumen su cuota mensual. Para usar sandbox, cambie la URL:

Ambiente Base URL Valor fiscal
Producción /api/v1/public/vouchers Sí
Sandbox /api/v1/public/sandbox/vouchers No

Token, headers y payload son exactamente iguales. Solo cambie la URL. Disponible en todos los planes.

Los 7 tipos de comprobante soportados

La misma API (POST /vouchers) emite los 7 tipos oficiales del esquema XML v4.4. Solo cambie el campo voucher_type:

Código Tipo Uso
01 Factura Electrónica Venta con receptor identificado
02 Nota de Débito Incrementar monto de factura previa
03 Nota de Crédito Anular o reducir monto
04 Tiquete Electrónico Venta al consumidor final
08 Factura de Compra Compra a proveedor no inscrito
09 Factura de Exportación Venta al exterior
10 Recibo de Pago Confirmar pago en venta a crédito

¿Qué incluye la API?

Almendro expone 84 endpoints REST organizados en 19 grupos. Además de emitir comprobantes, puede gestionar clientes, productos, plantillas PDF, webhooks, reportes financieros y más. Toda la documentación está disponible en fe.almendro.cr/docs con ejemplos en curl, JavaScript y PHP.

Grupo Endpoints Ejemplo
Comprobantes 8 Emitir, listar, anular, descargar XML/PDF
Clientes (receptor) 5 CRUD de receptores frecuentes
Items/Productos 5 Catálogo CABYS reutilizable
Webhooks 6 Notificaciones en tiempo real
Reportes 7 Ventas, IVA, MensajeReceptor
Integrador 13 Gestión de múltiples clientes
Certificados 3 Subir/listar/desactivar .p12
PDF Templates 8 Editor visual de plantillas
Catálogos 3 CABYS, actividades, ubicaciones

¿Cuánto cuesta?

Almendro es de las opciones más económicas para facturar electrónicamente en Costa Rica. La API va incluida en todos los planes. Lo que escala con el precio es el cupo de comprobantes y las llamadas por minuto, no el acceso:

Plan Precio Comprobantes/mes API Sandbox Webhooks
Gratis $0 10 Sí, 5/min Sí No
Emprendedor $36/año 50 Sí, 10/min Sí No
Pyme $96/año 150 Sí, 20/min Sí No
Profesional $194/año 500 Sí, 60/min Sí No
Empresa $398/año 2.000 Sí, 80/min Sí 2
Integrador $758/año 10.000 Sí, 150/min Sí 2

Empiece a facturar hoy

Cuenta gratis en 2 minutos, con token de API y sandbox incluidos desde el plan gratuito.