Power Automate, IA y automatizadores
Convierta los datos de un correo, pedido o reparto en un DeCA. Combine reglas, análisis con IA y llamadas a la API según su forma de trabajar.
Configurar Power AutomateAPI DeCA para ERP, TMS, facturación y gestores de flota
DECA ERP permite crear un DeCA desde un sistema externo, completar datos pendientes con enlace privado para el transportista, consultar su estado y descargar el PDF vigente. La API REST está pensada para ERP, TMS, programas de facturación y gestores de flota.
Qué incluye la integración
El objetivo es integrar DECA ERP en el flujo normal de trabajo del cliente: albaranes, expediciones, viajes o cargas. No hace falta que el usuario vuelva a introducir los mismos datos en la web.
API REST autenticada
El formato habitual usa api.php y el FORMATO NTS alternativo usa api_nts.php. Ambos utilizan la misma cabecera X-Api-Key de cada empresa.
Proyecto demo descargable
Incluye una aplicacion WinForms en VB.NET Framework 4.8 con base Access, cliente API reutilizable y versiones para ACE de 32 o 64 bits. Permite el formato habitual o el FORMATO NTS alternativo, con editor/importador JSON, reintentos y sustituciones.
Swagger UI oficial
Documentación generada desde OpenAPI, con esquemas, ejemplos, autenticación y llamadas reales mediante Try it out.
Excel con macros
Ejemplo descargable para crear y actualizar DeCA desde una orden de carga, recibir el número, las URLs y el QR. Puede adaptarse a un Excel propio bajo presupuesto.
FORMATO NTS alternativo
Los DeCA de este formato también se pueden modificar desde el listado web, conservando sus datos específicos, versiones anteriores y registro de cambios. La URL se mantiene y el ERP puede consultar los datos actualizados.
Disponible por defecto para todas las empresas actuales y nuevas con acceso API vigente. Permite enviar un JSON con transportista, uno o dos conductores, conjunto de vehículos, orígenes, destinos y mercancías a POST /api_nts.php.
No requiere una segunda clave API. El formato habitual sigue disponible: elija un formato para cada operación, sin enviar el mismo transporte a ambos endpoints. El administrador puede desactivar NTS para una empresa.
La acción actualizar permite modificar un NTS conservando su ID, URL y QR, con nuevas versiones PDF e historial. Las altas y sustituciones existentes siguen disponibles.
Guía completa y ejemplo JSON · Ejemplo de actualización · Swagger del FORMATO NTS alternativo
Si el conductor asociado tiene activado el aviso por email, recibirá una notificación cuando el DeCA quede pendiente de completar y otra cuando esté completo, con el acceso al documento y su QR.
Puesta en marcha
Un integrador puede comprobar la conexión completa sin instalar herramientas adicionales.
Solicitar la clave
DECA facilita una X-Api-Key vinculada a la empresa. Debe almacenarse como un secreto de configuración.
Probar la lectura
Abra Swagger, pulse Authorize e invoque accion=listar. Una respuesta HTTP 200 confirma conexión y permisos.
Probar un alta
Cree primero un viaje sin fecha con una referencia externa de pruebas. No se genera PDF hasta que se asigne la fecha.
Guardar el vínculo
Conserve idDeca, urlEdicion, origenRegistro e idExterno. La URL de edición se incluye inmediatamente en la orden de transporte.
Flujo recomendado para un ERP
Sincronizar maestros
Opcionalmente, el ERP mantiene clientes, transportistas, vehiculos y conductores con accion=guardar. La web los ofrece despues en sus selectores.
Crear el pendiente
Antes de enviar la orden, el ERP llama a accion=crear sin fecha ni matrículas y elige el permiso operativo o carga.
Guardar la respuesta
DECA devuelve idDeca, urlEdicion, el estado de cumplimentación y las URLs documentales. El enlace privado puede enviarse al transportista.
Consultar y archivar
El ERP consulta hasta recibir estadoCumplimentacion=completado y descarga el PDF vigente desde urlDescargaPdf.
Entidades, vehiculos y datos maestros
La API permite sincronizar los maestros habituales del ERP. Es opcional para crear un DeCA, pero evita dobles mantenimientos y deja clientes, transportistas, matriculas y conductores disponibles tambien en la aplicacion web.
Clientes y transportistas
/api_clientes.php crea, actualiza, consulta, lista, activa y desactiva entidades. Los campos esCliente y esTransportista permiten que una misma ficha tenga uno o ambos roles. También permite configurar el conductor y las zonas de firma que se imprimirán en los nuevos DeCA.
Vehiculos
/api_vehiculos.php mantiene tractoras, remolques, rigidos y otros vehiculos. Las matriculas activas aparecen en el formulario web.
Conductores
/api_conductores.php mantiene nombre, teléfono, correos, notaDeca y mostrarNotaDeca. La nota es una propuesta para los nuevos viajes; cada DeCA conserva su propia copia. Con notificarEmail=true, el conductor recibe avisos automáticos.
Lugares habituales y granjas
/api_lugares.php mantiene granjas, almacenes y puntos habituales. Cada ficha puede usarse como origen, destino o ambos. En los viajes se envían idLugarOrigen y idLugarDestino; DECA valida la empresa y conserva una copia del nombre y domicilio.
Importación masiva
Los administradores pueden cargar archivos XLSX o CSV desde la aplicación. La plantilla de clientes incluye las preferencias IncluirConductorPdf, FirmaExpedidorPdf, FirmaDestinatarioPdf y FirmaTransportistaPdf. El ERP dispone de /api_clientes_importar.php para lotes de hasta 1.000 entidades.
accion=guardar y envie siempre origenRegistro + idExterno. La primera llamada crea el maestro; las siguientes actualizan el mismo registro. Las bajas se realizan con accion=desactivar y conservan el historial.idCliente o idTransportista, DECA copia sus datos al viaje. Esa fotografía contractual queda conservada aunque posteriormente cambie la ficha maestra. También pueden enviarse los datos manualmente, sin identificadores.idConductor o una lista conductores de hasta dos elementos. incluirConductorPdf decide si se muestran; cada elemento puede indicar notaDeca y mostrarNotaDeca. El PDF nunca añade DNI, teléfono ni correo. Los cambios posteriores del maestro no alteran el documento ni sus versiones anteriores.firmaExpedidorPdf, firmaDestinatarioPdf y firmaTransportistaPdf se configuran en el cliente y se copian al crear el DeCA. Así, cada documento conserva su diseño aunque posteriormente cambie la ficha del cliente.Endpoints principales
| Operacion | Metodo | Uso |
|---|---|---|
| Crear | POST | accion=crear. Crea un DeCA desde los datos del ERP. |
| Actualizar | POST | accion=actualizar. Actualiza datos y genera nueva version si procede. |
| Consultar | GET | accion=consultar&id=123. Devuelve estado, líneas y matrículas actuales (o null si no están asignadas). |
| Obtener enlace | GET | accion=enlace_edicion&id=123. Devuelve el mismo enlace activo o lo crea si no existe. |
| Buscar | GET | accion=buscar&origen=ERP_CLIENTE&idExterno=12345. Localiza el DeCA asociado al registro del ERP. |
| Listar | GET | accion=listar. Permite filtros por fechas, no planificados, limit y offset. |
| Historial / PDF | GET | /api_versiones.php?id=123 devuelve versiones y cambios; actual=1 descarga el PDF vigente y version=2 una versión concreta. |
| Descarga masiva PDF | POST / GET | /api_descargas.php. Prepara en segundo plano un ZIP por fechas o por IDs, informa del progreso y permite descargarlo cuando está disponible. |
| Repartos | GET / POST | /api_repartos.php. Crea, actualiza, consulta y lista DeCA con varios envíos, cada uno con origen, destino y mercancías propias. |
| Guardar entidad | POST | /api_clientes.php con accion=guardar. Crea o actualiza clientes y transportistas por referencia ERP. |
| Importar entidades | POST | /api_clientes_importar.php. Valida o importa hasta 1.000 clientes y transportistas dentro de una única transacción. |
| Administrar usuarios | GET / POST | /api_usuarios.php. Lista, importa hasta 1.000 usuarios y permite generar o revocar sus claves personales. |
| Guardar vehiculo | POST | /api_vehiculos.php con matricula, tipo y referencia ERP. |
| Guardar conductor | POST | /api_conductores.php con nombre, teléfono, uno o varios emails, notificarEmail y referencia ERP. |
| Guardar lugar | POST | /api_lugares.php con código, nombre, domicilio, uso y referencia ERP. |
| Listar maestros | GET | Los cuatro endpoints admiten id, referencia ERP, q, activo, limit y offset. Las entidades admiten rol=cliente|transportista|ambos; los lugares, uso=origen|destino|ambos. |
X-Api-Key: clave_de_la_empresa. No debe viajar en la URL.X-User-Api-Key. Esta clave identifica simultáneamente la empresa y el usuario; no se acompaña de X-Api-Key y nunca deben enviarse idEmpresa o idUsuario en el JSON. La clave general se mantiene para integraciones existentes y tareas administrativas./api_usuarios.php. La exportación genera una credencial personal distinta para cada usuario. La clave completa solo se entrega una vez; debe distribuirse individualmente por un canal seguro.idLote. Consulte su estado hasta recibir estado=disponible y utilice entonces urlDescarga. Se admiten hasta 10.000 documentos o 512 MB; el ZIP temporal caduca a las 24 horas, sin eliminar los PDF originales.Identificacion del registro del ERP
Número de DeCA por empresa
Cada empresa tiene su propia numeración consecutiva, automática e inmutable. El campo numeroEmpresa identifica el número visible del DeCA dentro de esa empresa; idDeca sigue siendo el ID global que debe conservar el ERP y utilizar en consultas, modificaciones, historial y URLs.
{ "ok": true, "idDeca": 125, "numeroEmpresa": 8 }
numeroEmpresa es de solo lectura y no debe enviarse al crear o modificar. No cambia al editar, anular o finalizar un documento. Duplicar un DeCA genera un nuevo ID y un nuevo número. La numeración no se reinicia cada año y puede tener huecos si se eliminan documentos.
Los documentos existentes conservan sus IDs, URLs y PDFs históricos. Los nuevos PDFs muestran el número de empresa y el ID global. En NTS, numeroEmpresa es independiente de numeroDocumento, la referencia del ERP; una sustitución conserva esa referencia, pero crea un nuevo DeCA con otro ID y número.
Para mantener trazabilidad se recomienda enviar siempre estos dos campos:
origenRegistro
Identifica el sistema origen, por ejemplo ERP_CLIENTE, FACTUNET o APP_FLOTA.
idExterno
Identifica el registro dentro del ERP: numero de envio, albaran, expedicion o clave interna.
Con esta pareja, el ERP puede buscar posteriormente el documento sin depender de que el usuario haya guardado manualmente el idDeca.
Reglas que debe conocer el integrador
Evitar duplicados
La pareja origenRegistro + idExterno es única dentro de cada empresa. Repetirla en un alta devuelve HTTP 409; en ese caso debe actualizarse el documento existente.
Actualizaciones parciales
accion=actualizar conserva los campos que no se envían. En api_repartos.php, si se envía envios, se sustituye la colección completa de envíos y líneas.
Fecha y PDF
Sin fechaTransporte el viaje queda no planificado. Al asignar fecha, DECA valida los datos obligatorios y genera la versión PDF.
URLs con funciones distintas
urlEdicion es el enlace privado del transportista. urlDocumento abre el DeCA vigente cuando ya existe PDF. urlDescargaPdf requiere la clave API y permite archivarlo en el ERP.
Permisos del transportista
operativo permite fecha y matrículas. carga añade descripción, cantidad o bultos, unidad y peso. El permiso se guarda en servidor y nunca autoriza empresas, NIF, recorridos ni estados administrativos.
Ejemplos habituales desde un ERP
Crear o actualizar un cliente
POST https://deca.netsistemas.com/api_clientes.php
X-Api-Key: clave_de_la_empresa
Content-Type: application/json
{
"accion": "guardar",
"nombre": "Harinas Leonesas SL",
"nif": "B24010101",
"domicilio": "Pol. Ind. Leon Oeste 12, Leon",
"esCliente": true,
"esTransportista": false,
"origenRegistro": "ERP_EMPRESA",
"idExterno": "CLI-00428"
}
Crear o actualizar un transportista
POST https://deca.netsistemas.com/api_clientes.php
X-Api-Key: clave_de_la_empresa
Content-Type: application/json
{
"accion": "guardar",
"nombre": "Transportes del Norte SL",
"nif": "B00000001",
"domicilio": "Calle del Transporte 8, Leon",
"esCliente": false,
"esTransportista": true,
"origenRegistro": "ERP_EMPRESA",
"idExterno": "TRA-00017"
}
Validar e importar clientes por lotes
POST https://deca.netsistemas.com/api_clientes_importar.php
X-Api-Key: clave_de_la_empresa
Content-Type: application/json
{
"accion": "validar",
"modoDuplicados": "actualizar",
"registros": [
{
"origenRegistro": "ERP_EMPRESA",
"idExterno": "CLI-00428",
"nombre": "Harinas Leonesas SL",
"nif": "B24010101",
"domicilio": "Pol. Ind. Leon Oeste 12, Leon",
"esCliente": true,
"esTransportista": false,
"activo": true
}
]
}
La respuesta anticipa cuántas fichas se crearían, actualizarían, omitirían o producirían error. Tras revisar el resultado, repita el mismo lote con accion=importar. La operación es atómica: si existe un error no se guarda ninguna fila.
idEmpresa. La empresa se obtiene exclusivamente de X-Api-Key, igual que en el resto de la API.Crear o actualizar un vehiculo
POST https://deca.netsistemas.com/api_vehiculos.php
X-Api-Key: clave_de_la_empresa
Content-Type: application/json
{
"accion": "guardar",
"matricula": "1234 KLM",
"tipo": "tractora",
"marca": "Volvo",
"modelo": "FH 460",
"origenRegistro": "ERP_EMPRESA",
"idExterno": "VEH-00117"
}
Crear o actualizar un conductor
POST https://deca.netsistemas.com/api_conductores.php
X-Api-Key: clave_de_la_empresa
Content-Type: application/json
{
"accion": "guardar",
"nombre": "Carlos Martin Gomez",
"telefono": "34600111222",
"email": "carlos@transportes.test; trafico@transportes.test",
"notificarEmail": true,
"origenRegistro": "ERP_EMPRESA",
"idExterno": "CON-00032"
}
Consultar maestros
GET /api_clientes.php?activo=1&rol=cliente&q=Harinas&limit=50 GET /api_clientes.php?activo=1&rol=transportista&limit=50 GET /api_vehiculos.php?origen=ERP_EMPRESA&idExterno=VEH-00117 GET /api_conductores.php?id=32 GET /api_lugares.php?activo=1&uso=origen&q=Granja X-Api-Key: clave_de_la_empresa
Crear o actualizar una granja o lugar habitual
POST https://deca.netsistemas.com/api_lugares.php
X-Api-Key: clave_de_la_empresa
Content-Type: application/json
{
"accion": "guardar",
"codigo": "GR-018",
"nombre": "Granja Los Prados",
"domicilio": "Camino Rural 4, Segovia",
"esOrigen": true,
"esDestino": false,
"activo": true,
"origenRegistro": "ERP_EMPRESA",
"idExterno": "GRANJA-018"
}
Crear DeCA con cliente y vehiculo
POST https://deca.netsistemas.com/api.php
X-Api-Key: clave_de_la_empresa
Content-Type: application/json
{
"accion": "crear",
"idCliente": 42,
"idTransportista": 57,
"cargadorNombre": "Harinas Leonesas SL",
"cargadorNif": "B24010101",
"cargadorDomicilio": "Pol. Ind. León Oeste 12, León",
"idLugarOrigen": 18,
"destino": "Valladolid",
"fechaTransporte": "2026-10-06",
"matriculaTractora": "1234-KLM",
"origenRegistro": "ERP_CLIENTE",
"idExterno": "ALB-2026-00158",
"lineas": [
{ "descripcion": "Harina de trigo", "cantidad": 40, "unidad": "sacos", "pesoKg": 1000 }
]
}
Crear viaje no planificado, sin fecha
{
"accion": "crear",
"cargadorNombre": "Ceramicas Levante SA",
"cargadorNif": "A46020202",
"origen": "Valencia",
"destino": "Burgos",
"matriculaTractora": "1198-MNC",
"origenRegistro": "ERP_CLIENTE",
"idExterno": "PRE-2026-0042",
"lineas": [
{ "descripcion": "Azulejo ceramico paletizado", "cantidad": 18, "unidad": "palets", "pesoKg": 12600 }
]
}
Actualizar vehiculo o asignar fecha
{
"accion": "actualizar",
"id": 125,
"fechaTransporte": "2026-08-21",
"matriculaTractora": "7350-LPD",
"matriculaRemolque": "R-8841-LHG"
}
{
"ok": true,
"idDeca": 125,
"numeroEmpresa": 8,
"token": "7f4e...",
"url": "https://deca.netsistemas.com/deca.php?t=7f4e...",
"numVersion": 1,
"pdf": true
}
Crear un reparto o ruta multipunto
Use el endpoint específico cuando el mismo cargador contractual y transportista efectivo realizan varios envíos en un único viaje. Los datos comunes se indican una vez y cada elemento de envios identifica su recorrido y mercancía.
POST https://deca.netsistemas.com/api_repartos.php
X-Api-Key: clave_de_la_empresa
Content-Type: application/json
{
"accion": "crear",
"cargadorNombre": "Distribuciones Centro SL",
"cargadorNif": "B28030303",
"cargadorDomicilio": "Calle Comercio 15, Madrid",
"transportistaNombre": "Transportes del Norte SL",
"transportistaNif": "B00000001",
"fechaTransporte": "2026-08-24",
"matriculaTractora": "1234 KLM",
"origenRegistro": "ERP_CLIENTE",
"idExterno": "RUTA-2026-0087",
"envios": [
{
"referencia": "PED-4501",
"idLugarOrigen": 18,
"destino": "Toledo",
"lineas": [
{ "descripcion": "Conservas en cajas", "cantidad": 40, "unidad": "cajas", "pesoKg": 520 }
]
},
{
"referencia": "PED-4502",
"origen": "Toledo",
"destino": "Ciudad Real",
"lineas": [
{ "descripcion": "Bebidas paletizadas", "cantidad": 8, "unidad": "palets", "pesoKg": 4300 }
]
}
]
}
La API histórica /api.php continúa sin cambios para viajes de un solo envío. También puede actualizar fecha, matrículas y estados de un reparto; para cambiar sus rutas o mercancías debe usarse /api_repartos.php.
Alta incompleta y cumplimentación por el transportista
Este es el flujo recomendado cuando la orden de transporte se crea en el ERP antes de conocer la fecha, el vehículo o todos los datos de la mercancía.
POST https://deca.netsistemas.com/api.php
X-Api-Key: clave_de_la_empresa
Content-Type: application/json
{
"accion": "crear",
"cargadorNombre": "Empresa cargadora SL",
"cargadorNif": "B12345678",
"cargadorDomicilio": "Calle Ejemplo 10, Madrid",
"transportistaNombre": "Transportes El Rapido SL",
"transportistaNif": "B87654321",
"origen": "Madrid",
"destino": "Valencia",
"origenRegistro": "ERP_CLIENTE",
"idExterno": "OT-2026-0042",
"modoEdicionTransportista": "carga",
"diasValidezEnlace": 30,
"lineas": [
{"descripcion": "Mercancia pendiente de confirmar"}
]
}
{
"ok": true,
"idDeca": 126,
"numeroEmpresa": 9,
"urlEdicion": "https://deca.netsistemas.com/completar_matriculas.php?t=...",
"modoEdicionTransportista": "carga",
"estadoCumplimentacion": "no_iniciado",
"urlDocumento": null,
"urlDescargaPdf": null,
"pdfDisponible": false
}
no_iniciado
El enlace está creado, pero el transportista todavía no ha guardado datos.
pendiente
Existe al menos un borrador guardado, pero el transportista aún no ha finalizado.
completado
El transportista ha finalizado. La consulta devuelve la fecha de finalización y las URLs del documento y del PDF.
Para recuperar el enlace sin duplicarlo: GET /api.php?accion=enlace_edicion&id=126. Para consultar el estado: GET /api.php?accion=consultar&id=126. Para descargar el PDF vigente: GET /api_versiones.php?id=126&actual=1, siempre con X-Api-Key.
urlEdicion. El valor modoEdicionTransportista se establece en la llamada autenticada del ERP y queda almacenado en el servidor.Viajes sin fecha de transporte
La API permite crear registros no planificados, sin fechaTransporte. En ese caso el documento queda como borrador y no genera PDF hasta que se asigne fecha.
Alta anticipada
El ERP puede crear el registro aunque todavia no se conozca la fecha exacta del viaje.
Actualizacion posterior
Cuando el usuario asigne fecha de transporte, se llama a actualizar y DECA genera el PDF.
Listado filtrado
accion=listar&noPlanificados=1 devuelve solo documentos sin fecha de transporte. Para acotar el resultado, filtre por creación, modificación o registro.
GET /api.php?accion=listar&noPlanificados=1&fechaCampo=creacion&fechaDesde=2026-08-01&limit=100 X-Api-Key: clave_de_la_empresa
fechaHasta es inclusiva. No combine viajes no planificados con fechaCampo=transporte, porque esos registros no tienen fecha de viaje.Respuestas, errores y reintentos
| Código | Qué significa | Acción recomendada |
|---|---|---|
| 200 | Operación correcta. | Validar ok y guardar los identificadores devueltos. |
| 201 | Maestro creado correctamente. | Guardar el identificador interno devuelto y mantener la referencia ERP. |
| 400 | JSON, fecha o datos obligatorios incorrectos. | Mostrar o registrar el campo error; no repetir sin corregir la petición. |
| 401 | Clave ausente o no válida. | Revisar la cabecera X-Api-Key y la configuración del entorno. |
| 403 | API no disponible para la empresa o suscripción caducada. | Contactar con soporte o con el administrador de la cuenta. |
| 404 | El idDeca no existe para esa empresa. | Comprobar el identificador o buscar por referencia externa. |
| 409 | Ya existe la referencia externa enviada. | Buscar el registro y realizar una actualización. |
| 500 | Error temporal al completar la operación. | Registrar la respuesta y reintentar de forma controlada; si persiste, contactar con soporte. |
Comprobación antes de pasar a producción
- La clave API se guarda fuera del código fuente y nunca se envía en la URL.
- Cada envío del ERP usa una referencia externa estable y única.
- La sincronización de clientes, transportistas, vehículos y conductores usa
accion=guardary se ha probado dos veces con la misma referencia. - Las entidades tienen al menos uno de los roles
esClienteoesTransportista. - Las bajas de maestros se envían como
accion=desactivar; no se intenta borrar el historial. - El ERP conserva
idDeca,urlEdicion,origenRegistroeidExternodespués del alta. - Las modificaciones usan
accion=actualizary el identificador correcto. - Se tratan expresamente los códigos 400, 401, 403, 404, 409 y 500.
- Se ha probado el alta incompleta, el borrador, la finalización del transportista, la consulta del estado y la descarga del PDF vigente.
- La consulta paginada continúa mientras
offset + items.lengthsea menor quetotal.
Recursos para desarrolladores
Demo VB.NET + Access
Proyecto de ejemplo para Visual Studio con cliente API, modelos, formularios y base Access. Descargue la version que coincida con el ACE/OLE DB instalado en el equipo.
Demo de integración con Excel
Libro .xlsm con datos ficticios, macros incorporadas, alta y modificación del mismo DeCA, URLs y código QR.
Swagger interactivo
Swagger UI oficial generado desde la definición OpenAPI, con autenticación, esquemas y Try it out.
Consola guiada
Formulario sencillo con ejemplos preparados para altas, cambios, consultas y listados.
OpenAPI JSON
Definicion tecnica para importar en Postman, generar clientes o documentacion interna.