API Reference - Endpoints
Esta página documenta todos los endpoints disponibles en la Pasarela SIEX con ejemplos completos de uso.
Prerequisitos
Antes de usar estos endpoints, asegúrate de haber completado la Configuración Inicial.
Autenticación
Todos los endpoints requieren las siguientes cabeceras HTTP:
Ocp-Apim-Sid-Key: TU_Ocp-Apim-Sid-Key
Ocp-Apim-Subscription-Key: TU_Ocp-Apim-Subscription-KeyBase URL
Desarrollo: https://api-dev.plataformatierra.es
Producción: https://api.plataformatierra.es
1. Consultar Explotación por REA
GET /farms
Descripción
Obtiene información completa de una explotación específica usando su código REA y año de campaña. Este endpoint debe ser el primero en utilizarse, ya que proporciona el agrifarmId necesario para todas las operaciones posteriores.
Cuándo Usar
- Al inicio de cada campaña para obtener el identificador de la explotación
- Para verificar la configuración de parcelas y cultivos disponibles
- Consulta de parcelas disponibles y su configuración SIGPAC
Endpoint
GET /v1/siex/farms?rea={codigo_rea}&year={año_campaña}Parámetros
| Parámetro | Tipo | Descripción | Ejemplo |
|---|---|---|---|
rea | String | Código REA de la explotación | "000X0000X" |
year | Integer | Año de la campaña | 2025 |
Información Devuelta para Explotación
La respuesta incluye información completa sobre:
Datos Básicos de la Explotación
- Identificador único del sistema (
id) - Nombre y descripción de la explotación
- Año de campaña y fechas de registro
- Información de contacto y dirección
Información del Propietario
- Datos del titular de la explotación
- Información de contacto completa
- Identificadores oficiales (NIF, etc.)
Parcelas y Ubicaciones SIGPAC
- Lista completa de parcelas registradas
- Coordenadas geográficas de cada parcela
- Códigos SIGPAC detallados por recinto
- Superficie y características de cada ubicación
Atributos Regionales
- Códigos administrativos (provincia, comunidad)
- Registros oficiales (REA, REGEPA)
- Información de localización específica
Ejemplo de Respuesta
Respuesta que recibirás
[
{
"id": "urn:ngsi-ld:AgriFarm:1-1",
"name": "Explotación Tomates 2025",
"description": "Campaña de tomates temporada 2025",
"year": 2025,
"dateCreated": "18-04-2023 08:22:48",
"address": {
"addressLocality": "Urueñas",
"addressCountry": "ES"
},
"owned": {
"name": "Propietario",
"surname": "de la Explotación",
"email": "email@example.com",
"nif": "00000000A"
},
"agriCrop": [
{
"id": "urn:ngsi-ld:AgriCrop:1",
"crop": {
"type": "TypeCropVariety",
"typecrop": {
"type": "TypeCrop",
"id": "109",
"name": "Manzano"
},
"code": 1,
"name": "Roja de narbarte"
},
"agriParcel": [
{
"id": "urn:ngsi-ld:AgriParcel:1",
"name": "Parcela Norte",
"sigpac": [
{
"idcp": 1,
"prov": "24",
"town": "90",
"aggr": "0",
"zone": "0",
"pol": "409",
"parc": "37",
"enc": "5",
"dimension": "25.44"
}
]
}
]
}
],
"regionalAttributes": [
{
"rea": "000X0000X",
"address": {
"province": "León",
"community": {
"name": "Castilla Y León"
}
}
}
]
}
]Descripción de datos que recibirás
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador único de la explotación en formato URN NGSI-LD (usar como agrifarmId en siguientes operaciones) |
name | string | Nombre asignado a la explotación |
description | string | Descripción detallada de la explotación |
year | integer | Año de la campaña agrícola |
dateCreated | string | Fecha y hora de creación del registro (formato: DD-MM-YYYY HH:mm:ss) |
address | object | Información de dirección postal de la explotación |
address.addressLocality | string | Localidad donde se ubica la explotación |
address.addressCountry | string | Código de país (ISO 3166-1 alpha-2) |
owned | object | Información del propietario de la explotación |
owned.name | string | Nombre del propietario |
owned.surname | string | Apellidos del propietario |
owned.email | string | Email de contacto del propietario |
owned.nif | string | NIF del propietario |
agriCrop | array | Lista de cultivos registrados en la explotación |
agriCrop[].id | string | Identificador único del cultivo en formato URN NGSI-LD |
agriCrop[].crop | object | Información del tipo de cultivo y variedad |
agriCrop[].crop.type | string | Tipo de dato (TypeCropVariety) |
agriCrop[].crop.typecrop | object | Información del tipo de cultivo |
agriCrop[].crop.typecrop.type | string | Tipo de dato (TypeCrop) |
agriCrop[].crop.typecrop.id | string | Código oficial del tipo de cultivo del catálogo SIEX |
agriCrop[].crop.typecrop.name | string | Nombre del tipo de cultivo (ej: Tomate, Maíz, Trigo) |
agriCrop[].crop.code | integer | Código de la variedad específica del cultivo |
agriCrop[].crop.name | string | Nombre de la variedad del cultivo (ej: Cherry, Pera, Rama) |
agriCrop[].agriParcel | array | Lista de parcelas donde se cultiva este cultivo |
agriCrop[].agriParcel[].id | string | Identificador único de la parcela en formato URN NGSI-LD |
agriCrop[].agriParcel[].name | string | Nombre descriptivo de la parcela |
agriCrop[].agriParcel[].sigpac | array | Información de recintos SIGPAC de la parcela |
agriCrop[].agriParcel[].sigpac[].idcp | integer | ID cultivo-parcela (usar en array idcp al registrar tratamientos fitosanitarios) |
agriCrop[].agriParcel[].sigpac[].prov | string | Código de provincia SIGPAC |
agriCrop[].agriParcel[].sigpac[].town | string | Código de municipio SIGPAC |
agriCrop[].agriParcel[].sigpac[].aggr | string | Código de agregado SIGPAC |
agriCrop[].agriParcel[].sigpac[].zone | string | Código de zona SIGPAC |
agriCrop[].agriParcel[].sigpac[].pol | string | Código de polígono SIGPAC |
agriCrop[].agriParcel[].sigpac[].parc | string | Código de parcela SIGPAC |
agriCrop[].agriParcel[].sigpac[].enc | string | Código de recinto SIGPAC |
agriCrop[].agriParcel[].sigpac[].dimension | string | Superficie del recinto en hectáreas |
regionalAttributes | array | Array de atributos específicos regionales |
regionalAttributes[].rea | string | Número de Registro de Explotación Autonómico |
regionalAttributes[].address | object | Dirección regional específica |
regionalAttributes[].address.province | string | Nombre de la provincia |
regionalAttributes[].address.community | object | Información de la comunidad autónoma |
regionalAttributes[].address.community.name | string | Nombre de la comunidad autónoma |
Información Clave de la Respuesta
id: Identificador único que usará comoagrifarmIden todas las operaciones posterioresagriCrop: Lista de cultivos de la explotaciónagriCrop.agriParcel: Lista de parcelas con sus códigos SIGPAC en las que se encuentra el cultivoagriCrop.agriParcel.idcp: Identificador único que relaciona la parcela con el cultivo para poder registrar los tratamientos fitosanitariosregionalAttributes.rea: Confirmación del código REA consultadoyear: Confirmación del año de campaña
2. Obtener IDs de Cultivo-Ubicación
POST /listidcp
Descripción
Genera los identificadores específicos necesarios para registrar tratamientos fitosanitarios. Este endpoint relaciona las parcelas SIGPAC con los tipos de cultivo y variedades específicas, creando los vínculos únicos que se utilizarán al reportar cada aplicación.
Cuándo Usar
- Antes de cada tratamiento para obtener los IDs correctos
- Validar combinaciones de parcela + cultivo configuradas
- Agrupar tratamientos por tipo de cultivo y ubicación
- Verificar disponibilidad de parcelas para cultivos específicos
Endpoint
POST /v1/siex/listidcp/?agrifarmId={agrifarm_id}Parámetro Obligatorio
El parámetro agrifarmId es obligatorio en la URL. Ejemplo: urn:ngsi-ld:AgriFarm:159-159
Estructura de Petición
{
"type": "IDCP",
"crop": {
"type": "TypeCropVariety",
"typecrop": {
"id": "197",
"type": "TypeCrop",
"name": "Tomate"
},
"code": 8,
"name": "Cherry"
},
"regionalAttributes": [
{
"sigpac": [
{
"prov": "24",
"town": "90",
"aggr": "0",
"zone": "0",
"pol": "411",
"parc": "23",
"enc": "1"
},
{
"prov": "24",
"town": "90",
"aggr": "0",
"zone": "0",
"pol": "412",
"parc": "23",
"enc": "1"
}
]
}
]
}Catálogos de Referencia
Información de Cultivos
| Campo | Descripción | Fuente |
|---|---|---|
typecrop.id | Código oficial del cultivo | Catálogo SIEX del Ministerio |
typecrop.name | Nombre del cultivo | "Tomate", "Maíz", "Trigo", etc. |
code | Código de la variedad | Catálogo de variedades por cultivo |
name | Nombre de la variedad | "Cherry", "Pera", "Rama", etc. |
Códigos SIGPAC
| Campo | Descripción | Ejemplo |
|---|---|---|
prov | Código de provincia | "24" (León) |
town | Código de municipio | "90" |
aggr | Agregado | "0" |
zone | Zona | "0" |
pol | Polígono | "411" |
parc | Parcela | "23" |
enc | Recinto | "1" |
Ejemplo de Respuesta
Respuesta que recibirás
{
"agrifarmId": "urn:ngsi-ld:AgriFarm:1-1",
"crop": {
"typecrop": {
"id": "197",
"name": "Tomate"
},
"code": 8,
"name": "Cherry"
},
"idcp": [
{
"idcp": 1,
"prov": "24",
"town": "90",
"aggr": "0",
"zone": "0",
"pol": "409",
"parc": "37",
"enc": "5"
},
{
"idcp": 2,
"prov": "24",
"town": "90",
"aggr": "0",
"zone": "0",
"pol": "410",
"parc": "37",
"enc": "5"
}
]
}Descripción de datos que recibirás
| Campo | Tipo | Descripción |
|---|---|---|
agrifarmId | string | Identificador de la explotación (el mismo enviado en la petición) |
crop | object | Información del tipo de cultivo y variedad solicitados |
crop.typecrop | object | Información del tipo de cultivo |
crop.typecrop.id | string | Código oficial del tipo de cultivo según catálogo SIEX |
crop.typecrop.name | string | Nombre del tipo de cultivo (ej: Tomate, Maíz) |
crop.code | integer | Código de la variedad específica del cultivo |
crop.name | string | Nombre de la variedad (ej: Cherry, Pera, Rama) |
idcp | array | Array de IDs cultivo-parcela generados - usar estos IDs al registrar tratamientos |
idcp[].idcp | integer | ID único cultivo-parcela - valor a incluir en array idcp al registrar fitosanitarios |
idcp[].prov | string | Código de provincia SIGPAC del recinto |
idcp[].town | string | Código de municipio SIGPAC del recinto |
idcp[].aggr | string | Código de agregado SIGPAC del recinto |
idcp[].zone | string | Código de zona SIGPAC del recinto |
idcp[].pol | string | Código de polígono SIGPAC del recinto |
idcp[].parc | string | Código de parcela SIGPAC del recinto |
idcp[].enc | string | Código de recinto SIGPAC |
Uso de los IDs Devueltos
- Cada ID representa una combinación única de cultivo + ubicación SIGPAC
- Use estos IDs en el array
idcpal registrar tratamientos - Los IDs son válidos durante toda la campaña para esa combinación específica
- Reutilice los IDs para múltiples tratamientos en las mismas ubicaciones
3. Registrar Aplicación Fitosanitaria
POST /agriphytosanitarys
Descripción
Registra la aplicación de un producto fitosanitario en las ubicaciones especificadas en la plataforma.
Cuándo Usar
- Inmediatamente después de realizar un tratamiento fitosanitario
- Para documentar la actividad fitosanitaria de la explotación
Endpoint
POST /v1/entities/agriphytosanitarys/?agrifarmId={agrifarm_id}Parámetro Obligatorio
El parámetro agrifarmId es obligatorio en la URL. Ejemplo: urn:ngsi-ld:AgriFarm:159-159
Query Params Opcionales
exported=0exported es un integer donde 0 representa NO exportados y 1 representa SI exportados.
Estructura de la Petición
{
"type": "AgriPhytosanitary",
"dateApplication": "18-06-2025 14:30:00",
"subtype": {
"type": "TypePhytosanitary",
"name": "Spotter WG",
"code": "ES-00261"
},
"dose": 7.0,
"measure": {
"type": "Measure",
"name": "Kilogramo por hectárea",
"symbol": "kg/ha",
"code": 17
},
"idcp": ["1", "2"],
"applicator": {
"user": {
"type": "UserMetadata",
"nif": "12345678Z",
"ropo": "ES-12345678"
}
}
}Detalles de los Campos
Información Temporal
dateApplication: Fecha y hora exacta de la aplicación (formato: "DD-MM-YYYY HH:mm:ss")- Importante: Debe ser una fecha reciente y coherente
- Validación: El sistema verifica que sea una fecha válida
Información del Producto Fitosanitario
subtype.name: Nombre comercial exacto del productosubtype.code: Código oficial del producto en el registro SIEX- Formato: "ES-XXXXX" para productos registrados en España
- Validación: Debe existir en el catálogo oficial de productos autorizados
Información de Dosificación
dose: Cantidad numérica de producto aplicadameasure.symbol: Unidad de medida estándar (kg/ha, l/ha, g/ha, etc.)measure.code: Código numérico de la unidad de medida- Validación: La dosis debe estar dentro de los límites autorizados para el producto
Información del Aplicador
applicator.user.nif: DNI/NIF del aplicadorapplicator.user.ropo: Número ROPO del aplicador autorizado- Formato: "ES-XXXXXXXX" para aplicadores españoles
- Validación: El ROPO debe estar vigente y autorizado
Ubicaciones de Aplicación
idcp: Array de identificadores obtenidos del endpoint anterior- Origen: Resultado del endpoint
/listidcp - Uso: Define exactamente dónde se aplicó el tratamiento
- Origen: Resultado del endpoint
Validaciones Automáticas del Sistema
El sistema realiza las siguientes verificaciones antes de aceptar el registro:
✅ Validaciones de Producto
- Producto fitosanitario autorizado y vigente
- Dosis dentro de los límites legales establecidos
- Compatibilidad con el cultivo especificado
✅ Validaciones de Aplicador
- ROPO válido y no suspendido
- Autorización vigente para el tipo de producto
- Datos de identificación correctos
✅ Validaciones de Ubicación
- IDs de cultivo-ubicación válidos y activos
- Parcelas correctamente configuradas en SIGPAC
- Cultivos apropiados para el producto aplicado
✅ Validaciones Temporales
- Fecha de aplicación dentro del rango válido
- Coherencia con períodos de aplicación autorizados
- Respeto a intervalos mínimos entre aplicaciones
Ejemplo de Respuesta
Respuesta que recibirás
[
{
"id": "urn:ngsi-ld:AgriPhytosanitary:2903",
"type": "AgriPhytosanitary",
"dateCreated": "",
"dateModified": "",
"subtype": {
"type": "TypePhytosanitary",
"id": 2899,
"subtype": {
"type": "SubtypePhytosanitary",
"id": 1753,
"idpdf": "96573",
"code": "ES-00261",
"comp": {
"type": "Company",
"id": 60,
"name": "Trade Corporation International, S.a.u.",
"nif": "A46715413"
},
"subs": {
"type": "Substance",
"id": "818",
"name": "Kresoxim-Metil 25% + Difenoconazol 12,5% [Wg] P/P"
},
"detail": "",
"ci": []
},
"name": "Spotter Wg",
"tpd": [
{
"type": "TPD",
"id": 2966,
"idate": "30-06-2017",
"edate": "15-03-2026",
"ldate": ""
}
],
"prod": {
"type": "TypeProduct",
"id": 1,
"name": "Producto fitosanitario registrado"
}
},
"dose": "7",
"typerisk": {
"type": "TypeRisk",
"id": "3",
"name": "Medio",
"detail": ""
},
"infection": null,
"detail": null,
"tj": [],
"idtpismv": [],
"distributed": "0",
"reviewed": "0",
"exported": "0",
"batch": "",
"soup": "0",
"measure": null,
"dt": "0",
"mdt": null,
"st": "0",
"mst": null,
"efficacy": {
"type": "TypeEfficacy",
"id": "1",
"name": "Buena",
"detail": ""
},
"preventive": "0",
"pp": "0",
"speed": "0",
"recipe": "0",
"surface": "0",
"entrylimit": "0",
"seclimit": "0",
"machine": [],
"idcp": ["1"],
"regionalAttributes": [{}]
}
]Descripción de datos que recibirás
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador único del tratamiento fitosanitario registrado en formato URN NGSI-LD |
type | string | Tipo de entidad (AgriPhytosanitary) |
dateCreated | string | Fecha y hora de creación del registro |
dateModified | string | Fecha y hora de última modificación del registro |
subtype | object | Información completa del producto fitosanitario registrado |
subtype.type | string | Tipo de dato (TypePhytosanitary) |
subtype.id | integer | Identificador interno del tipo de fitosanitario |
subtype.subtype | object | Detalles específicos del subtipo de fitosanitario |
subtype.subtype.type | string | Tipo de dato (SubtypePhytosanitary) |
subtype.subtype.id | integer | Identificador del subtipo |
subtype.subtype.idpdf | string | ID del documento PDF en el registro oficial MAPAMA |
subtype.subtype.code | string | Código oficial del producto (formato ES-XXXXX) |
subtype.subtype.comp | object | Información de la compañía fabricante |
subtype.subtype.comp.type | string | Tipo de dato (Company) |
subtype.subtype.comp.id | integer | Identificador de la compañía |
subtype.subtype.comp.name | string | Nombre de la empresa fabricante |
subtype.subtype.comp.nif | string | NIF de la empresa fabricante |
subtype.subtype.subs | object | Información de la sustancia activa del producto |
subtype.subtype.subs.type | string | Tipo de dato (Substance) |
subtype.subtype.subs.id | string | Identificador de la sustancia activa |
subtype.subtype.subs.name | string | Nombre y concentración de la sustancia activa |
subtype.subtype.detail | string | Detalles adicionales del producto |
subtype.subtype.ci | array | Información sobre cultivos e infecciones autorizadas |
subtype.name | string | Nombre comercial del producto fitosanitario |
subtype.tpd | array | Array con datos de registro del producto |
subtype.tpd[].type | string | Tipo de dato (TPD - TypePhytosanitaryDate) |
subtype.tpd[].id | integer | Identificador del registro de fechas |
subtype.tpd[].idate | string | Fecha de inscripción del producto (formato DD-MM-YYYY) |
subtype.tpd[].edate | string | Fecha de expiración del registro (formato DD-MM-YYYY) |
subtype.tpd[].ldate | string | Fecha límite de utilización (formato DD-MM-YYYY, puede estar vacío) |
subtype.prod | object | Tipo de producto fitosanitario |
subtype.prod.type | string | Tipo de dato (TypeProduct) |
subtype.prod.id | integer | Identificador del tipo de producto |
subtype.prod.name | string | Descripción del tipo (ej: Producto fitosanitario registrado) |
dose | string | Dosis aplicada del producto |
typerisk | object | Evaluación del nivel de riesgo del tratamiento |
typerisk.type | string | Tipo de dato (TypeRisk) |
typerisk.id | string | Identificador del nivel de riesgo |
typerisk.name | string | Nombre del nivel de riesgo (ej: Bajo, Medio, Alto) |
typerisk.detail | string | Detalles adicionales del riesgo |
infection | object/null | Información de la infección o plaga tratada (puede ser null) |
detail | string/null | Detalles adicionales del tratamiento |
tj | array | Array de tipos de justificación técnica para el tratamiento |
idtpismv | array | IDs de tipos de plagas/infecciones/enfermedades |
distributed | string | Indica si el producto fue distribuido (0 = No, 1 = Sí) |
reviewed | string | Indica si el tratamiento ha sido revisado por técnico (0 = No, 1 = Sí) |
exported | string | Indica si el tratamiento ha sido exportado a SIEX (0 = No, 1 = Sí) |
batch | string | Número de lote del producto aplicado |
soup | string | Cantidad de caldo preparado |
measure | object/null | Unidad de medida de la dosis |
dt | string | Dosis total aplicada |
mdt | object/null | Medida de la dosis total |
st | string | Superficie tratada |
mst | object/null | Medida de la superficie tratada |
efficacy | object | Evaluación de la eficacia del tratamiento |
efficacy.type | string | Tipo de dato (TypeEfficacy) |
efficacy.id | string | Identificador del tipo de eficacia |
efficacy.name | string | Evaluación de eficacia (ej: Buena, Excelente, Media) |
efficacy.detail | string | Detalles adicionales sobre la eficacia |
preventive | string | Indica si es tratamiento preventivo (0 = No, 1 = Sí) |
pp | string | Indicador de producción propia |
speed | string | Velocidad de aplicación |
recipe | string | ID de la receta fitosanitaria asociada |
surface | string | Superficie total tratada en hectáreas |
entrylimit | string | Período de reentrada en días (tiempo antes de entrar al área tratada) |
seclimit | string | Plazo de seguridad en días (tiempo antes de cosecha/consumo) |
machine | array | Array de maquinaria utilizada en la aplicación |
idcp | array | Array de IDs cultivo-parcela donde se aplicó el tratamiento |
regionalAttributes | array | Array de atributos regionales específicos |
Información de la Respuesta
- Confirmación del registro en CXTierra
- Identificador único del tratamiento registrado (
id) - Confirmación de envío a la plataforma SIEX del Ministerio
4. Consultar Aplicaciones Registradas
GET /agriphytosanitarys
Descripción
Recupera el historial completo de todas las aplicaciones fitosanitarias registradas para una explotación específica durante la campaña actual. Proporciona información detallada para auditorías, reportes y seguimiento de la actividad fitosanitaria.
Cuándo Usar
- Generar reportes de tratamientos realizados en un período
- Verificar registros después de realizar aplicaciones
- Preparar auditorías internas o inspecciones oficiales
- Analizar patrones de uso de productos fitosanitarios
- Comprobar cumplimiento de las obligaciones de reporte
Endpoint
GET /v1/entities/agriphytosanitarys/?agrifarmId={agrifarm_id}Parámetro Obligatorio
El parámetro agrifarmId es obligatorio en la URL. Ejemplo: urn:ngsi-ld:AgriFarm:159-159
Parámetros Opcionales
| Parámetro | Descripción | Ejemplo |
|---|---|---|
dateFrom | Fecha inicio consulta | "01-01-2025" |
dateTo | Fecha fin consulta | "31-12-2025" |
product | Filtrar por producto específico | "ES-00261" |
Ejemplo de Respuesta
Respuesta que recibirás
[
{
"id": "urn:ngsi-ld:AgriPhytosanitary:2903",
"type": "AgriPhytosanitary",
"dateCreated": "",
"dateModified": "",
"subtype": {
"type": "TypePhytosanitary",
"id": 2899,
"subtype": {
"type": "SubtypePhytosanitary",
"id": 1753,
"idpdf": "96573",
"code": "ES-00261",
"comp": {
"type": "Company",
"id": 60,
"name": "Trade Corporation International, S.a.u.",
"nif": "A46715413"
},
"subs": {
"type": "Substance",
"id": "818",
"name": "Kresoxim-Metil 25% + Difenoconazol 12,5% [Wg] P/P"
},
"detail": "",
"ci": []
},
"name": "Spotter Wg",
"tpd": [
{
"type": "TPD",
"id": 2966,
"idate": "30-06-2017",
"edate": "15-03-2026",
"ldate": ""
}
],
"prod": {
"type": "TypeProduct",
"id": 1,
"name": "Producto fitosanitario registrado"
}
},
"dose": "7",
"typerisk": {
"type": "TypeRisk",
"id": "3",
"name": "Medio",
"detail": ""
},
"infection": null,
"detail": null,
"tj": [],
"idtpismv": [],
"distributed": "0",
"reviewed": "0",
"exported": "0",
"batch": "",
"soup": "0",
"measure": null,
"dt": "0",
"mdt": null,
"st": "0",
"mst": null,
"efficacy": {
"type": "TypeEfficacy",
"id": "1",
"name": "Buena",
"detail": ""
},
"preventive": "0",
"pp": "0",
"speed": "0",
"recipe": "0",
"surface": "0",
"entrylimit": "0",
"seclimit": "0",
"machine": [],
"idcp": ["1"],
"regionalAttributes": [{}]
}
]Descripción de datos que recibirás
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador único del tratamiento fitosanitario en formato URN NGSI-LD |
type | string | Tipo de entidad (AgriPhytosanitary) |
dateCreated | string | Fecha y hora de creación del registro |
dateModified | string | Fecha y hora de última modificación |
subtype | object | Información del producto fitosanitario aplicado |
subtype.type | string | Tipo de dato (TypePhytosanitary) |
subtype.id | integer | Identificador interno del producto |
subtype.subtype | object | Detalles del subtipo de fitosanitario |
subtype.subtype.type | string | Tipo de dato (SubtypePhytosanitary) |
subtype.subtype.id | integer | Identificador del subtipo |
subtype.subtype.idpdf | string | ID del documento PDF en registro oficial MAPAMA |
subtype.subtype.code | string | Código oficial del producto (formato ES-XXXXX) |
subtype.subtype.comp | object | Información del fabricante |
subtype.subtype.comp.type | string | Tipo de dato (Company) |
subtype.subtype.comp.id | integer | Identificador de la compañía |
subtype.subtype.comp.name | string | Nombre de la empresa fabricante |
subtype.subtype.comp.nif | string | NIF de la empresa |
subtype.subtype.subs | object | Sustancia activa del producto |
subtype.subtype.subs.type | string | Tipo de dato (Substance) |
subtype.subtype.subs.id | string | Identificador de la sustancia |
subtype.subtype.subs.name | string | Nombre y concentración de la sustancia activa |
subtype.subtype.detail | string | Detalles adicionales |
subtype.subtype.ci | array | Cultivos e infecciones autorizadas |
subtype.name | string | Nombre comercial del producto |
subtype.tpd | array | Datos de registro y vigencia |
subtype.tpd[].type | string | Tipo de dato (TPD) |
subtype.tpd[].id | integer | Identificador del registro |
subtype.tpd[].idate | string | Fecha de inscripción (DD-MM-YYYY) |
subtype.tpd[].edate | string | Fecha de expiración (DD-MM-YYYY) |
subtype.tpd[].ldate | string | Fecha límite de uso (DD-MM-YYYY) |
subtype.prod | object | Tipo de producto |
subtype.prod.type | string | Tipo de dato (TypeProduct) |
subtype.prod.id | integer | Identificador del tipo |
subtype.prod.name | string | Descripción del tipo de producto |
dose | string | Dosis aplicada |
typerisk | object | Nivel de riesgo del tratamiento |
typerisk.type | string | Tipo de dato (TypeRisk) |
typerisk.id | string | Identificador del riesgo |
typerisk.name | string | Nivel (Bajo, Medio, Alto) |
typerisk.detail | string | Detalles del riesgo |
infection | object/null | Infección o plaga tratada |
detail | string/null | Detalles adicionales |
tj | array | Justificaciones técnicas |
idtpismv | array | IDs de plagas/infecciones |
distributed | string | Producto distribuido (0/1) |
reviewed | string | Revisado por técnico (0/1) |
exported | string | Exportado a SIEX (0/1) |
batch | string | Número de lote |
soup | string | Cantidad de caldo |
measure | object/null | Unidad de medida de dosis |
dt | string | Dosis total aplicada |
mdt | object/null | Medida de dosis total |
st | string | Superficie tratada |
mst | object/null | Medida de superficie |
efficacy | object | Eficacia del tratamiento |
efficacy.type | string | Tipo de dato (TypeEfficacy) |
efficacy.id | string | Identificador |
efficacy.name | string | Evaluación de eficacia |
efficacy.detail | string | Detalles de eficacia |
preventive | string | Tratamiento preventivo (0/1) |
pp | string | Producción propia |
speed | string | Velocidad de aplicación |
recipe | string | ID de receta asociada |
surface | string | Superficie total en hectáreas |
entrylimit | string | Período de reentrada (días) |
seclimit | string | Plazo de seguridad (días) |
machine | array | Maquinaria utilizada |
idcp | array | IDs cultivo-parcela tratados |
regionalAttributes | array | Atributos regionales |
Información Devuelta en Consulta
La respuesta incluye para cada aplicación registrada:
Datos del Tratamiento
- Fecha y hora de aplicación
- Producto utilizado y código oficial
- Dosis aplicada y unidad de medida
- Ubicaciones tratadas (códigos SIGPAC)
Datos del Aplicador
- Identificación del aplicador (NIF)
- Número ROPO y autorización
- Fecha de registro del tratamiento
Metadatos del Sistema
- Identificador único del registro
- Estado de envío a SIEX
- Fechas de creación y modificación
5. Exportar CUE
POST /exportCUE
Descripción
Registra oficialmente la aplicación de un producto fitosanitario. Este endpoint realiza todas las validaciones necesarias según la normativa del Ministerio y registra el tratamiento en la plataforma SIEX oficial.
Cuándo Usar
- Para cumplir con las obligaciones legales de reporte al Ministerio
- Como parte del proceso de trazabilidad obligatorio
Endpoint
POST /v1/entities/siex/exportCUE?agrifarmId={agrifarm_id}Parámetro Obligatorio
El parámetro agrifarmId es obligatorio en la URL. Ejemplo: urn:ngsi-ld:AgriFarm:159-159
Estructura de Petición
[
{
"id": "urn:ngsi-ld:AgriPhytosanitary:2941"
},
{
"id": "urn:ngsi-ld:AgriPhytosanitary:2942"
}
]Detalles de los Campos
IDs de Tratamientos
id: Identificador único de cada tratamiento fitosanitario registrado- Origen: Obtenido de la respuesta del endpoint de registro
- Uso: Especifica qué tratamientos enviar al Ministerio
Validación en SIEX
El sistema de la administración realiza las verificaciones que serán notificadas a posteriori por correo.
Ejemplo de Respuesta
Respuesta que recibirás
{
"id": 311,
"status": "Iniciando",
"message": "Job 311 executed. The system will send an email once it is finished."
}Descripción de datos que recibirás
| Campo | Tipo | Descripción |
|---|---|---|
id | integer | ID del trabajo asíncrono (jobId) - usar este valor para consultar el estado y resultado del proceso |
status | string | Estado inicial del trabajo (ej: "Iniciando") |
message | string | Mensaje de confirmación indicando que el proceso de exportación ha comenzado en segundo plano y se notificará por email cuando finalice |
Seguimiento del Proceso de Exportación
El proceso de exportación a SIEX es asíncrono. Utiliza el id (jobId) devuelto para consultar el progreso:
1. Consultar Estado del Trabajo
Usa el endpoint Job Status para verificar el progreso:
curl -X GET "https://api.plataformatierra.es/api-cxtierra/v1/entities/jobstatus?jobId=311" \
-H "Ocp-Apim-Subscription-Key: TU_Ocp-Apim-Subscription-Key" \
-H "Ocp-Apim-Sid-Key: TU_Ocp-Apim-Sid-Key"Respuesta de ejemplo:
{
"type": "JobAsync",
"id": "311",
"inidate": "29-09-2025 10:22:40",
"status": {
"type": "JobStatus",
"id": "3",
"name": "FinalizadoCompleto"
},
"percentage": 100,
"error": null
}2. Obtener Resultado Final
Una vez que percentage sea 100 y status.name sea "FinalizadoCompleto", consulta el resultado:
curl -X GET "https://api.plataformatierra.es/api-cxtierra/v1/entities/jobresult?jobId=311" \
-H "Ocp-Apim-Subscription-Key: TU_Ocp-Apim-Subscription-Key" \
-H "Ocp-Apim-Sid-Key: TU_Ocp-Apim-Sid-Key"Respuesta de ejemplo:
{
"data": [
{
"result": "ok",
"id": -1
}
],
"error": []
}Documentación Completa
Para información detallada sobre los servicios de trabajos asíncronos, consulta la sección Servicios de Trabajos Asíncronos en la documentación de Entidades.
Notificación por Email
Una vez termine la subida, se enviará un correo electrónico con el estado final del proceso. Sin embargo, puedes consultar el estado en tiempo real usando los endpoints de Job Status y Job Result.
Códigos de Respuesta HTTP
Respuestas Exitosas
| Código | Significado | Descripción |
|---|---|---|
| 200 OK | Consulta exitosa | Datos recuperados correctamente |
| 201 Created | Registro creado | Aplicación registrada exitosamente |
Errores de Autenticación (401)
| Error | Causa Probable | Solución |
|---|---|---|
| Credenciales incorrectas | API Key o SID inválidos | Verificar credenciales en portal desarrollador |
| Token expirado | Credenciales caducadas | Renovar credenciales con soporte técnico |
Errores de Validación (400)
| Error | Causa Probable | Solución |
|---|---|---|
| Datos incompletos | Campos obligatorios faltantes | Revisar estructura de petición |
| Formato incorrecto | Fecha o datos mal formateados | Usar formato DD-MM-YYYY HH:mm:ss |
| ROPO inválido | Aplicador no autorizado | Verificar número ROPO y vigencia |
Errores de Negocio (422)
| Error | Causa Probable | Solución |
|---|---|---|
| Producto no autorizado | Fitosanitario no registrado | Usar productos del catálogo oficial |
| Dosis excesiva | Límites legales superados | Revisar dosis máximas autorizadas |
| Cultivo incompatible | Producto no apto para cultivo | Verificar compatibilidad producto-cultivo |
Errores de Recurso (404)
| Error | Causa Probable | Solución |
|---|---|---|
| Explotación no encontrada | REA incorrecto o no registrado | Verificar código REA y año |
| IDs inválidos | Cultivo-ubicación no configurado | Regenerar IDs con endpoint /listidcp |
Errores del Servidor (5xx)
| Código | Descripción | Acción Recomendada |
|---|---|---|
500 | Error interno del servidor | Reintentar o contactar soporte |
503 | Servicio temporalmente no disponible | Esperar y reintentar |
Estrategias de Manejo de Errores
1. Implementar Reintentos Inteligentes
- Errores 5xx: Reintentar con backoff exponencial
- Errores 429: Respetar rate limiting
- Errores 4xx: No reintentar, corregir datos primero
2. Validación Local Previa
- Verificar formato de fechas antes de enviar
- Validar existencia de códigos ROPO
- Comprobar rangos de dosis permitidas
3. Logging Detallado
- Registrar todas las peticiones y respuestas
- Incluir timestamps y identificadores únicos
- Mantener logs para auditorías
4. Configurar Alertas
- Errores recurrentes (>5 en 1 hora)
- Fallos de autenticación repetidos
- Problemas de conectividad prolongados
Límites y Restricciones
Límites de la API
- Rate Limit: Máximo 100 peticiones por minuto por cliente
- Tamaño de petición: Máximo 1MB por request
- Tiempo de respuesta: Timeout a los 30 segundos
- Registros retroactivos: Máximo 7 días hacia atrás
Formatos y Estándares
Formatos de Fecha y Hora
Todos los timestamps en la API siguen el formato:
- Formato estándar:
DD-MM-YYYY HH:mm:ss - Zona horaria: Hora local española (CET/CEST)
- Ejemplo válido:
18-06-2025 14:30:00
Códigos de Referencia
Códigos SIGPAC
Los códigos SIGPAC identifican ubicaciones agrícolas específicas:
{provincia}-{municipio}-{agregado}-{zona}-{polígono}-{parcela}-{recinto}
Ejemplo: 24-90-0-0-409-37-5Códigos de Producto
Los productos fitosanitarios usan códigos oficiales del registro:
Formato: ES-XXXXX
Ejemplo: ES-00261 (Spotter WG)Códigos ROPO
Los aplicadores autorizados tienen números ROPO:
Formato: ES-XXXXXXXX
Ejemplo: ES-12345678Próximos Pasos
Documentación Complementaria
Para más información sobre la arquitectura y casos de uso, consulta la Introducción a Pasarela SIEX.
Soporte
Para soporte técnico adicional:
- Portal de Desarrolladores: https://devs.plataformatierra.es
- Documentación técnica y gestión de credenciales
- Sistema de tickets para problemas específicos