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.
Los 4 pasos de la integración
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:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
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:
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"
environment=sandbox para pruebas.
Los comprobantes de sandbox se envían al sandbox de Hacienda | sin valor fiscal y
sin consumir su cuota mensual.
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.
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:
{
"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."
}
GET /vouchers/{clave}.
Reciba el resultado con webhooks
En lugar de hacer polling, configure un webhook para que Almendro le notifique automáticamente cuando Hacienda responda:
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.