Integración DeCA · Odoo

Integrar DeCA con Odoo — Del albarán al documento emitido

Odoo ya gestiona tus ventas, tu inventario y tus albaranes de entrega. La integración con DeCA añade el último eslabón: que cada salida de mercancía genere su documento de control administrativo con los datos que Odoo ya conoce.

API REST como add-on: 50 €/mes o 480 €/año sobre cualquier plan base, incluido Free · Incluida en el plan Enterprise

¿Te suena esta situación?

El DeCA es obligatorio desde el 5 de octubre de 2026 y, desde esa fecha, exclusivamente digital (Ley 9/2025, Disposición Transitoria 8ª). Si tu equipo de almacén expide mercancía cada día, reescribir esos datos a mano en otra herramienta es trabajo duplicado y una fuente constante de erratas en NIF, direcciones y pesos.

La sanción por transporte sin DeCA va de 401 a 600 € por envío (LOTT, art. 141.17 y 143.1.d), y el responsable de emitir el documento es el cargador (art. 7.2 de la Orden FOM/2861/2012).

La ventaja de Odoo es que es tu sistema: con su conectividad de API puedes lanzar la llamada a DeCA en el momento exacto —validación del albarán, confirmación de entrega o tarea programada— y volver a consultar el estado del documento desde el mismo Odoo.

Lo que gana tu integración

Cómo funciona, en tres pasos

1. Genera tu API key

Contrata el add-on API REST desde Mi Plan y crea la clave en Mi Cuenta → pestaña API. La clave viaja en la cabecera X-API-Key y solo se muestra una vez.

2. Odoo envía la expedición a DeCA

Un módulo o automatización de Odoo envía los datos del albarán (cliente de recogida, destino, partidas, transportista) a la API. Puedes hacerlo en la validación del albarán o en un cron que agrupe las salidas del día.

3. Documento emitido y consultable

La respuesta trae el identificador del expediente, el token público y la URL del PDF. Guardas ambos en el albarán de Odoo y consultas el estado del cierre cuando quieras (GET /api/v1/regulatory_records/:id/status).

La API, de un vistazo

Estos son los endpoints principales que usaría tu integración. Todos son REST sobre HTTPS, devuelven JSON y se autentican con la cabecera X-API-Key.

Método Ruta Para qué sirve
POST /api/v1/deca_requests Recogida + expediente + emisión en una llamada: el caso del albarán validado.
GET /api/v1/clients Clientes de recogida de tu cuenta, en lectura, para referenciarlos por ID.
GET /api/v1/addresses Direcciones de carga (orígenes y destinos) de tu cuenta.
POST /api/v1/regulatory_records Crear el expediente por separado si tu flujo va por pasos.
POST /api/v1/regulatory_records/:id/emit Emitir el DeCA con QR cuando todos los datos están completos.
GET /api/v1/regulatory_records/:id/pdf Descargar el PDF del documento emitido.

La documentación completa para integradores: app.deca.cangopal.com/docs/api (requiere iniciar sesión).

Ejemplo: emitir el DeCA al validar el albarán en Odoo

Un automated action (o un módulo pequeño de Odoo) se dispara al validar el albarán de entrega o la orden de salida de stock y envía esta llamada con los datos del picking. El campo source_reference guarda el nombre del picking de Odoo: si el webhook se repite, no se emiten dos DeCAs para el mismo albarán.

curl -X POST https://app.deca.cangopal.com/api/v1/deca_requests \
  -H "X-API-Key: TU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "legal_shipper_id": "c4d5…",
    "reference": "EXP-2026-0043",
    "source_reference": "ODOO-PICK-01842",
    "pickup_client_id": "ef12…",
    "planned_pickup": "2026-10-05T09:30:00+02:00",
    "emit": true,
    "deca": {
      "locations": { "unloading_place": { "street": "Calle de la Fábrica, 12", "city": "Vitoria-Gasteiz", "postal_code": "01015", "country": "ES" } },
      "economic_operators": { "effective_carrier": { "legal_name": "Transportes Rodríguez SA", "tax_id": "B46612345" } },
      "transport_means": { "tractor_plate": "1234ABC" },
      "goods_items": [ { "description": "Componentes electrónicos", "nature": "Electrónica", "gross_weight_kg": 250, "quantity": 15, "package_type": "cajas" } ]
    }
  }'

Casos de uso reales

Albaranes de entrega a clientes

Al validar el albarán en Odoo, se emite el DeCA con el cliente como punto de destino y tus datos como cargador legal. El PDF queda archivado junto a la expedición.

Reparto con varias paradas

Una carga con varios destinos se declara como ruta con paradas: un solo DeCA agrupado, un QR y un solo cupo consumido, como admite la Resolución de 5 de junio de 2026.

Expediciones con transportista externo

El transportista efectivo se declara por API con su nombre y NIF; si tiene cuenta en DeCA, recibe la recogida asignada y la confirma desde su app.

Archivado y retención

Los documentos son descargables por API; con el add-on de retención los conservas cinco años en lugar del mínimo legal de uno (art. 9 de la Orden FOM/2861/2012).

Albaranes de entrega validados

Cuando el equipo de almacén valida la entrega en Odoo, la automatización emite el DeCA con los datos del albarán y guarda el PDF junto al documento. Cero doble captura para el operario.

Preguntas frecuentes

¿Qué plan necesito para usar la API?

La API se contrata como add-on API REST: 50 €/mes (o 480 €/año con el descuento anual) sobre cualquier plan base, incluido Free. En el plan Enterprise va incluida. Los DeCAs emitidos por API comparten el límite mensual de tu plan con los creados desde la web.

¿Necesito un conector oficial de Odoo?

No hace falta un conector del marketplace: la API es REST estándar con JSON y cabecera X-API-Key, así que se integra con las herramientas nativas de Odoo (llamadas HTTP salientes desde automatizaciones, o un módulo pequeño desarrollado a medida por tu partner). Si lo prefieres, en CANGOPAL desarrollamos la integración por ti.

¿Puedo emitir también desde el portal web de DeCA si algo falla?

Sí. Web y API comparten el mismo contador y los mismos expedientes: si una automatización falla, tu equipo emite a mano ese envío desde la web sin crear duplicados ni descuadrar el cupo.

¿Quién desarrolla la integración?

La API es REST sobre HTTPS, devuelve JSON y se autentica con una cabecera X-API-Key: cualquier equipo de IT o integrador habitual de tu ERP puede conectarla. También podemos desarrollar la integración a medida para tu negocio: escríbenos a support@cangopal.com y lo presupuestamos.

¿Los DeCAs emitidos por API consumen el cupo de mi plan?

Sí. Web y API comparten el mismo contador mensual. La emisión es atómica (si dos emisiones compiten por el último DeCA disponible, solo una entra) y el cupo se consume al emitir. En las rutas multi-parada, el DeCA agrupado consume una sola unidad, no una por parada.

¿Hay notificaciones automáticas (webhooks)?

Sí. Puedes dar de alta webhooks de salida que avisan a tu sistema de cada cambio de tus expedientes DeCA (deca.created, deca.emitted, deca.closed, deca.modified, deca.finalized, deca.cancelled y deca.superseded) y de la confirmación de tus recogidas (pickup.confirmed). Cada entrega es un POST firmado con HMAC-SHA256 (cabeceras X-DeCA-Event, X-DeCA-Delivery y X-DeCA-Signature) que se reintenta solo si tu endpoint falla o no responde en 10 s; cada intento queda registrado y se puede reintentar a mano. Los gestionas desde Mi Cuenta → Webhooks o por API REST (/api/v1/webhooks).

Otras integraciones

¿Hablamos de tu integración?

Crea tu cuenta, contrata el add-on API y empieza a emitir. Si prefieres que desarrollemos la integración por ti, cuéntanos qué ERP usas.