{"awp_version":"0.1","name":"GLS Spain — Agencias","description":"Listado de agencias, rastreo de envíos, solicitud de recogida y consulta de horarios de GLS Spain.","intent":"Ayudar al usuario a localizar agencias GLS, rastrear envíos y gestionar recogidas.","domain":"logistica","api_base_url":"https://discover.goil.dev","actions":[{"id":"list_agencies","name":"Listar agencias","description":"Devuelve todas las agencias GLS activas con id, nombre, dirección, coordenadas y servicios.","method":"GET","endpoint":"/api/gls/agencies"},{"id":"get_agency","name":"Detalle de agencia","description":"Devuelve el detalle completo de una agencia: contacto, horario y servicios.","method":"GET","endpoint":"/api/gls/agencies/{agencyId}","parameters":{"agencyId":{"type":"string","required":true,"description":"Identificador de la agencia (obtenido de list_agencies)."}}},{"id":"track_shipment","name":"Rastrear envío","description":"Rastrea el estado de un envío a través de la agencia indicada.","method":"POST","endpoint":"/api/gls/agencies/{agencyId}/track","parameters":{"agencyId":{"type":"string","required":true,"description":"Identificador de la agencia."}},"request_body":{"required":["trackingCode"],"properties":{"trackingCode":{"type":"string","description":"Código de seguimiento del envío (ej. GLS123456789ES)."}}}},{"id":"get_quote","name":"Calcular presupuesto","description":"Calcula el precio del envio segun numero de paquetes, peso y tipo de servicio. Llama a este endpoint antes de confirmar la recogida para mostrar el total al usuario.","method":"GET","endpoint":"/api/gls/agencies/{agencyId}/quote","parameters":{"agencyId":{"type":"string","required":true,"description":"Identificador de la agencia."},"packages":{"type":"integer","required":true,"description":"Numero de paquetes."},"weightKg":{"type":"number","required":true,"description":"Peso total en kilogramos."},"service":{"type":"string","enum":["standard","express","international"],"description":"Tipo de servicio. Por defecto: standard."}}},{"id":"request_pickup","name":"Solicitar recogida","description":"Solicita una recogida de paquetes a través de la agencia. Verifica antes que la agencia tiene el servicio 'pickup'.","method":"POST","endpoint":"/api/gls/agencies/{agencyId}/pickup","parameters":{"agencyId":{"type":"string","required":true,"description":"Identificador de la agencia."}},"request_body":{"required":["date","address","contact"],"properties":{"date":{"type":"string","description":"Fecha de recogida en formato YYYY-MM-DD."},"timeSlot":{"type":"string","description":"Franja horaria preferida (ej. '09:00-13:00'). Opcional."},"address":{"type":"string","description":"Dirección completa de recogida."},"contact":{"type":"object","description":"Datos de contacto en el punto de recogida.","properties":{"name":{"type":"string","description":"Nombre del contacto."},"phone":{"type":"string","description":"Teléfono de contacto."},"email":{"type":"string","description":"Email de contacto. Opcional."}}},"packages":{"type":"integer","description":"Número de paquetes a recoger. Opcional, default 1."},"notes":{"type":"string","description":"Indicaciones adicionales para el transportista. Opcional."}}}},{"id":"get_schedule","name":"Consultar horario","description":"Devuelve el horario semanal de la agencia y el estado del día actual.","method":"GET","endpoint":"/api/gls/agencies/{agencyId}/schedule","parameters":{"agencyId":{"type":"string","required":true,"description":"Identificador de la agencia."}}},{"id":"list_parcelshops","name":"Listar ParcelShops","description":"Devuelve los puntos de conveniencia GLS activos. Filtra por ciudad con el parámetro city, o por servicio (locker) con service.","method":"GET","endpoint":"/api/gls/parcelshops","parameters":{"city":{"type":"string","required":false,"description":"Filtrar por ciudad (ej. Madrid, Barcelona)."},"service":{"type":"string","required":false,"description":"Filtrar por servicio: drop_off, pickup, locker."}}},{"id":"get_parcelshop","name":"Detalle de ParcelShop","description":"Devuelve el detalle completo de un punto de conveniencia: dirección, horario y servicios.","method":"GET","endpoint":"/api/gls/parcelshops/{parcelShopId}","parameters":{"parcelShopId":{"type":"string","required":true,"description":"Identificador del parcelshop."}}},{"id":"cancel_order","name":"Cancelar pedido","description":"Cancela un pedido en estado 'confirmed'. No es posible cancelar pedidos en tránsito o entregados.","method":"POST","endpoint":"/api/gls/orders/{ref}/cancel","parameters":{"ref":{"type":"string","required":true,"description":"Número de referencia del pedido."}},"request_body":{"required":[],"properties":{"reason":{"type":"string","description":"Motivo de la cancelación. Opcional."}}}},{"id":"report_damage","name":"Reportar paquete dañado","description":"Abre una reclamación por daño en el paquete. Devuelve un número de reclamación (claimNumber) e instrucciones de resolución adaptadas al momento en que se detectó el daño.","method":"POST","endpoint":"/api/gls/orders/{ref}/report-damage","parameters":{"ref":{"type":"string","required":true,"description":"Número de referencia del pedido."}},"request_body":{"required":["noticePoint","description","contactPhone"],"properties":{"noticePoint":{"type":"string","enum":["on_delivery","at_parcelshop","after_opening","other"],"description":"Momento en que se detectó el daño."},"description":{"type":"string","description":"Descripción del daño observado."},"contactPhone":{"type":"string","description":"Teléfono de contacto para el seguimiento."}}}},{"id":"update_order","name":"Modificar pedido","description":"Modifica los datos de recogida, destinatario o notas de un pedido en estado 'confirmed'.","method":"POST","endpoint":"/api/gls/orders/{ref}/update","parameters":{"ref":{"type":"string","required":true,"description":"Número de referencia del pedido."}},"request_body":{"required":[],"properties":{"pickup":{"type":"object","description":"Datos de recogida a actualizar (todos los campos son opcionales)."},"recipient":{"type":"object","description":"Datos del destinatario a actualizar (todos los campos son opcionales)."},"notes":{"type":"string","description":"Nuevas notas para el transportista."}}}}]}