La consulta del contenido de las rutas mediante API requiere de la creación por parte del usuario de un token de acceso. Este token es un string que identifica a un usuario dentro de una aplicación o servicio, para realizar llamadas a la API.
1. Creación del token #
Para obtener este token de acceso tendrá que tener un usuario creado en nuestra plataforma con el rol de técnico. En el momento de la creación de la cuenta en Polpoo se creará automáticamente un usuario técnico. Las credenciales de dicho usuario serán enviadas en el correo de bienvenida. En caso de querer crear otra cuenta de usuario de tipo técnico, hay que ir a la sección de Gestión y en la pestaña de Usuarios clicar en + Crear usuario y rellenar todos los campos; indicando el rol de usuario como técnico.
Los parámetros de conexión de la conexión API son los siguientes:
URL: https://v2.restapi.polpoo.com/api/oauth/token_integrator
MÉTODO: POST
CONTENIDO: application/json
Para obtener el token de acceso se deberá hacer una petición API con el siguiente esquema de código
{
"client_id": 1,
"client_secret": "tT96kecNtYVf92dvRfQ1Ikj6sjsx5tKZzaCCpHun",
"username": "integration@company.com",
"password": "secret_password",
"grant_type": "password"
}
Los campos client_id, client_secret y grant_type son constantes, es decir, no deben modificarse en ningún caso. Por otra parte, los campos username y password sí que son modificables, y deberán rellenarse con los datos del usuario creado anteriormente como técnico. Este usuario os lo facilitará Polpoo.
2. Respuesta de la API #
Una vez establecida la conexión y hecha la petición a la API, se recibirá la respuesta por parte de nuestro sistema con el token de acceso.
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiI...",
"refresh_token": "def50200388a50a45925d65",
"expires_in": 86400,
"token_type": "Bearer",
"username": "integration@company.com"
}
3. Consultas de seguimiento #
Los parámetros de conexión de la conexión API constan de tres posibles variables para poder consultar únicamente la información requerida. Las tres variables son:
Ruta (routeId): Consultar toda la información de una ruta en concreto.
Cliente (id): Consultar toda la información de un cliente en concreto.
Pedido (orderNumber): Consultar todas la información de un número de pedido concreto.
URL: https://v2.restapi.polpoo.com/api/route/route_planning_route/date/YYYY-MM-DD/delivery_points?
Ejemplo 1: https://v2.restapi.polpoo.com/api/route/route_planning_route/date/YYYY-MM-DD/delivery_points?orderNumber=123
Ejemplo 2: https://v2.restapi.polpoo.com/api/route/route_planning_route/date/YYYY-MM-DD/delivery_points?routeId=1&id=432
MÉTODO: GET
CONTENIDO: application/json
4. Especificaciones de los campos #
startTime date
Hora estimada de inicio de la ruta.
totalBilling decimal
Facturación de la ruta.
totalCharge decimal
Carga en KG de la ruta.
name string
Nombre de la ruta.
identifier string
Identificador de la ruta.
totalVolume decimal
Carga en m³ de la ruta.
totalTravelDistance integer
Distancia en Km de la ruta.
totalEstimatedCost decimal
Coste estimado de la ruta.
totalRealCost decimal
Coste real de la ruta al finalizar.
totalRefueling decimal
Coste en repostaje de la ruta.
totalPendingDeliveryPoints integer
Número de puntos pendientes de realizar en la ruta.
totalDevolution integer
Número de devoluciones de la ruta.
totalRetornableBox integer
Balance del número de cajas de la ruta.
totalDelayedPoints integer
Número de puntos de entrega a los que se ha llegado con retraso de la ruta.
totalBoxes integer
Número de cajas de la ruta.
dateDeliveryStart date
Fecha de la realización de la ruta.
driverStartTime datetime
Día y hora del inicio de la ruta marcado por el chófer.
statusRoute.id integer
Estado de la ruta.
statusRoute.name string
Descripción del estado de la ruta.
data._id string
Identificador interno del cliente dentro de la ruta.
data._box integer
Cajas del cliente dentro de la ruta.
data.nif string
NIF del cliente dentro de la ruta.
data.idIncrementalDeliveryPoint integer
Identificador único incremental del cliente dentro de la ruta.
data.order integer
Orden de entrega del cliente dentro de la ruta.
data.statusDeliveryPoint.id integer
Identificador único del estado del cliente dentro de la ruta.
data.statusDeliveryPoint.name string
Descripción del estado del cliente dentro de la ruta.
data.postalCode integer
Código postal del cliente dentro de la ruta.
data.verifiedByDriver boolean
En caso de ser true el chófer habrá iniciado el cliente.
data.albarans array
Toda la información referente al albarán del cliente.
data.devolutions integer
Toda la información referente a las devoluciones del cliente.
data.incident.observation string
Observación referente a las incidencias del cliente.
data.particular boolean
En caso de ser true el cliente será particular y no se dará de alta en BBDD. En caso de ser false será un cliente normal.
data.signature string
Firma digital en base64 del albarán.
data.name string
Nombre del cliente dentro de la ruta.
data.address string
Dirección de entrega o recogida del cliente dentro de la ruta.
data.coordinates.latitude decimal
Coordenadas de latitud de la dirección de entrega o recogida del cliente.
data.coordinates.longitude decimal
Coordenadas de longitud de la dirección de entrega o recogida del cliente.
data.deliveryWindow.start integer
Hora (en segundos) de apertura del cliente dentro de la ruta.
data.deliveryWindow.end integer
Hora (en segundos) de cierre del cliente dentro de las rutas.
data.serviceTime integer
Tiempo (en segundos) de descarga del cliente dentro de la ruta.
data.leadTime integer
Tiempo (en segundos) esperado de descarga del cliente dentro de la ruta.
data.allowedDelayTime integer
Tiempo de retraso permitido en el cliente dentro de al ruta.
data.population string
Población del cliente dentro de la ruta.
data.email string
Email principal del cliente dentro de la ruta.
data.phoneNumber phone
Teléfono principal del cliente dentro de la ruta.
data.demand integer
Carga en Kg del cliente dentro de la ruta.
data.volumetric decimal
Carga en m³ del cliente dentro de la ruta.
data.deliveryPointId string
Identificador único del cliente.
data.identifier string
Identificador único del cliente.
data.deliveryPointCompanyId integer
Identificador de entrega del almacén del cliente.
data.keyOpen boolean
En caso de ser true se necesitará llave para visitar ese cliente.
data.requiredSignature boolean
En caso de ser true la firma del albarán será obligatoria.
data.orderId string
Identificador del orden del cliente dentro de la ruta.
data.deliveryType string
En caso de ser «shipment» se tratará de una entrega. En caso de ser «pickup» se tratará de una recogida.
data.orderNumber string
Número de pedido del cliente dentro de la ruta.
data.deliveryIdentifier string
Identificador de entrega del cliente dentro de la ruta.
data.deliveryNotes string
Observaciones preestablecidas en el cliente dentro de la ruta.
data.deliveryZoneSpecificationCode string
Identificador de la especificación de ruta del cliente.
data.deliveryZoneSpecificationName string
Descripción de la especificación de ruta del cliente.
data.deliveryZoneId string
Ruta predefinida del cliente.
data.sendDeliveryNoteMail boolean
En caso de ser true el cliente recibirá el albarán firmado en su correo electrónico. En caso de ser false no se envía ese albarán al cliente.
data.travelDistanceToNext integer
Distancia en metros hasta el siguiente punto.
data.travelTimeToNext integer
Tiempo en segundos hasta el siguiente cliente.
data.arrivalTime integer
Hora aproximada de llegada según el algoritmo de Polpoo.
data.delayTime string
Tiempo de retraso según el algoritmo de Polpoo.
data.isServicedLate boolean
En caso de ser true el servicio se habrá entregado más tarde de la hora establecida. En caso de ser false se habrá entregado a su hora.
data.vehicleWaitTime integer
Tiempo en segundos que el vehículo ha estado esperando a que abriera el cliente según el algoritmo de Polpoo.
data.arrivalDayTime string
Hora aproximada de llegada según el algoritmo de Polpoo.
data.accumulatedServicePhoto integer
Número de fotos actualizadas en el cliente.
data.accumulatedServiceAddress integer
Número de direcciones actualizadas en el cliente.
data.accumulatedServicePhone integer
Número de teléfonos actualizados en el cliente.
data.routeSupportId boolean
En caso de ser true la ruta tendrá una ruta soporte asociada. En caso de se false será una única ruta.
data.type string
Tipo de ruta (normal o soporte).
data.arrivalDayTimeWithDelay integer
Hora de llegada (en segundos) al cliente junto con el retraso acumulado.
data.statusRouteDeliveryPointId integer
Id del estado del cliente dentro de la ruta.
data.statusDeliveryPoints.id integer
Identificador único del estado del cliente.
data.statusDeliveryPoints.creationDate Datetime
Día y fecha del cambio de estado del cliente.
data.statusDeliveryPoints.unavaibleClientId boolean
En caso de ser true el cliente no está disponible cuando ha llegado el chófer. En caso de ser false el cliente sí estaba disponible.
data.statusDeliveryPoints.observationUnavailableCleint boolean
En caso de ser true el cliente tendrá observaciones al no estar disponible.
data.statusDeliveryPoints.status.id integer
Identificador del estado del cliente dentro de la ruta.
data.statusDeliveryPoints.status.name string
Descripción del estado del cliente dentro de la ruta.
data.listDevolution array
Listado de devoluciones realizar dentro del cliente.
data.driverArrivalTime datetime
Día y hora de la llegada del chófer al cliente.
data.delayTimeOnDelivery integer
Tiempo en segundos del retraso de la hora de cierre del cliente.
data.signaturaTime datetime
Día y hora de la firma del albarán del cliente.
data.delayAccumulated integer
Tiempo (en segundos) del retraso de la hora aproximada de entrega que ha determinado el algoritmo de Polpoo.
driver.id integer
Id interno del chófer.
driver.name string
Nombre del chófer.
driver.surname string
Apellidos del chófer.
driver.userErp string
Id del Erp del chófer.
vehicle.id integer
Id interno del vehículo.
vehicle.name string
Nombre del vehículo.
vehicle.registration integer
Matricula del vehículo.
vehicle.idErp integer
Id del Erp del vehículo.