Aislamiento multi-tenant fail-closed
Cada token solo ve los datos de su organización. Si una petición llega sin contexto de tenant válido, la respuesta devuelve cero filas, nunca datos de otra cuenta. El aislamiento es estructural, no opcional.
API pública
Integra tus sistemas agrícolas con la plataforma de Campodato: cuaderno SIEX, plazos, facturas Verifactu y más. API REST documentada, webhooks firmados con HMAC y autenticación por token de API scoped (fail-closed).
Guía de inicio
En menos de cinco minutos puedes hacer tu primera petición autenticada contra la API de Campodato.
Ve a la pantalla de Integraciones en tu panel y genera una nueva clave de API. Elige solo los scopes que necesita tu integración — menos permisos, menos riesgo.
Añade la cabecera HTTP Authorization: Bearer <tu-clave> en cada petición. No hay sesiones ni cookies: cada llamada es independiente y se autentica por el token.
El visor interactivo en api.campodato.es/api/docs muestra todos los endpoints con sus parámetros, respuestas de ejemplo y la posibilidad de probarlos directamente. La especificación completa en OpenAPI 3.1 está también disponible para descargar.
Referencia rápida
La API está versionada bajo el namespace /api/v2/public/. Cada endpoint requiere un scope concreto; el token rechaza la petición con 403 si no lo tiene.
| Endpoint | Scope necesario | Descripción |
|---|---|---|
GET/api/v2/public/me | cualquier token | Introspección: devuelve la organización y los scopes del token usado. |
GET/api/v2/public/cuaderno/operaciones | cuaderno:leer | Histórico del cuaderno de campo (paginado, filtrable por fecha y recinto). |
GET/api/v2/public/plazos/obligaciones | plazos:leer | Calendario de obligaciones legales: SIEX, PAC, fito y otros vencimientos. |
GET/api/v2/public/marketplace/conectores | marketplace:leer | Catálogo de conectores instalables desde el Marketplace de Campodato. |
GET/api/v2/public/parcelas/recintos | parcelas:leer | Recintos SIGPAC de la explotación (paginado): referencia, superficie, uso y localización. |
GET/api/v2/public/inventario/movimientos | inventario:leer | Movimientos de stock de almacén (paginado, filtrable por insumo, tipo y fecha). |
GET/api/v2/public/ventas/facturas | ventas:leer | Facturas de venta emitidas (paginado, filtrable por fecha y explotación). |
GET/api/v2/public/facturacion/registros | facturacion:leer | Registros Verifactu de facturación (paginado, filtrable por serie y fecha). |
POST (escritura)/api/v2/public/ventas/clientes | ventas:escribir | Crea un cliente en tu organización. La organización se toma siempre del token. |
POST (escritura)/api/v2/public/ventas/presupuestos | ventas:escribir | Crea un presupuesto de venta con sus líneas (producto, cantidad, precio, IVA). |
POST (escritura)/api/v2/public/ventas/facturas | ventas:escribir | Sella una factura Verifactu (mismo circuito de cumplimiento que el panel; idempotente por clientOpId). |
ventas:escribir — incluido POST /ventas/facturas, que sella una factura Verifactu (registro legal irreversible, idempotente por clientOpId). Esta es la referencia rápida: el listado completo con parámetros, filtros, paginación y ejemplos de respuesta está en el visor OpenAPI interactivo.Modelo de seguridad
El modelo de autorización es fail-closed en todos sus niveles: ante cualquier ambigüedad, el sistema no devuelve datos.
Cada token solo ve los datos de su organización. Si una petición llega sin contexto de tenant válido, la respuesta devuelve cero filas, nunca datos de otra cuenta. El aislamiento es estructural, no opcional.
Al crear una clave de API eliges exactamente qué puede hacer: leer el cuaderno, consultar plazos, acceder al marketplace… Un token sin el scope necesario recibe 403, no datos parciales. Fail-closed por diseño.
Cada endpoint admite hasta 60 peticiones por minuto por token. Si se supera el límite, la respuesta es HTTP 429 con la cabecera Retry-After para que el cliente espere el tiempo exacto necesario.
Cada entrega de webhook incluye la cabecera X-Campodato-Signature con la firma HMAC-SHA256 calculada sobre el cuerpo crudo. Verifica la firma en tu receptor antes de procesar el evento para confirmar que viene de Campodato y no ha sido alterado.
Preguntas frecuentes
Desde la pantalla de Integraciones de tu panel en panel.campodato.es. Cada clave lleva los scopes que eliges al crearla y queda registrada con nombre y fecha para que puedas revocarla individualmente.
Como cabecera HTTP: Authorization: Bearer <tu-clave>. No hay cookies ni sesiones; cada petición es independiente y autenticada por el token.
OpenAPI 3.1 en JSON. Puedes descargarla directamente desde https://api.campodato.es/api/v2/public/openapi.json y usarla con cualquier cliente compatible: Insomnia, Postman, código generado, etc.
Calcula HMAC-SHA256 sobre el cuerpo crudo de la petición usando el secreto de firma de tu webhook (disponible en el panel). Compara el resultado con el valor de la cabecera X-Campodato-Signature. Si no coincide, descarta el evento.
Sí. La API expone únicamente los datos de tu propia organización, alojados en la Unión Europea. El aislamiento multi-tenant garantiza que ningún token puede acceder a datos de otra cuenta. Cada clave puede revocarse en cualquier momento desde el panel.
API pública
Crea tu clave de API desde el panel, consulta la documentación OpenAPI y conecta tus sistemas con Campodato en minutos.