API pública

API pública de Campodato

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

Tres pasos para empezar

En menos de cinco minutos puedes hacer tu primera petición autenticada contra la API de Campodato.

  1. Crea tu clave de API

    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.

  2. Envía la clave en cada petición

    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.

  3. Consulta los endpoints disponibles

    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

Endpoints disponibles

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.

EndpointScope necesarioDescripción
GET/api/v2/public/mecualquier tokenIntrospección: devuelve la organización y los scopes del token usado.
GET/api/v2/public/cuaderno/operacionescuaderno:leerHistórico del cuaderno de campo (paginado, filtrable por fecha y recinto).
GET/api/v2/public/plazos/obligacionesplazos:leerCalendario de obligaciones legales: SIEX, PAC, fito y otros vencimientos.
GET/api/v2/public/marketplace/conectoresmarketplace:leerCatálogo de conectores instalables desde el Marketplace de Campodato.
GET/api/v2/public/parcelas/recintosparcelas:leerRecintos SIGPAC de la explotación (paginado): referencia, superficie, uso y localización.
GET/api/v2/public/inventario/movimientosinventario:leerMovimientos de stock de almacén (paginado, filtrable por insumo, tipo y fecha).
GET/api/v2/public/ventas/facturasventas:leerFacturas de venta emitidas (paginado, filtrable por fecha y explotación).
GET/api/v2/public/facturacion/registrosfacturacion:leerRegistros Verifactu de facturación (paginado, filtrable por serie y fecha).
POST (escritura)/api/v2/public/ventas/clientesventas:escribirCrea un cliente en tu organización. La organización se toma siempre del token.
POST (escritura)/api/v2/public/ventas/presupuestosventas:escribirCrea un presupuesto de venta con sus líneas (producto, cantidad, precio, IVA).
POST (escritura)/api/v2/public/ventas/facturasventas:escribirSella una factura Verifactu (mismo circuito de cumplimiento que el panel; idempotente por clientOpId).
Los endpoints GET (verde) solo leen datos; los POST (resaltados en ámbar) escriben en tu organización y exigen el scope 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

Seguridad por diseño, no por configuración

El modelo de autorización es fail-closed en todos sus niveles: ante cualquier ambigüedad, el sistema no devuelve datos.

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.

Scopes: permisos explícitos por token

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.

Rate limit: 60 peticiones por minuto

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.

Webhooks firmados con HMAC-SHA256

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

Lo que preguntan los equipos técnicos

¿Dónde creo mi clave de API?

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.

¿Cómo envío la clave en cada petición?

Como cabecera HTTP: Authorization: Bearer <tu-clave>. No hay cookies ni sesiones; cada petición es independiente y autenticada por el token.

¿Qué formato usa la especificación?

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.

¿Cómo verifico la firma de un webhook?

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.

¿Los datos de la API están bajo RGPD?

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

Empieza a integrar hoy.

Crea tu clave de API desde el panel, consulta la documentación OpenAPI y conecta tus sistemas con Campodato en minutos.