Persat Api
  • Persat API v1.0
  • Introducción
    • ¿Qué es una API?
    • ¿Cómo funciona?
  • Primeros Pasos
    • Introducción
    • Niveles de Acceso y Consideraciones Importantes
    • Formato de Respuesta
    • Autenticación
      • Como obtener el Api key
    • Configurar Webhooks
      • Primeros pasos
      • Lógica de reintentos
  • Entidades Básicas
    • Clientes
      • Obtener un cliente
      • Agregar un cliente
      • Modificar un cliente
      • Eliminar un cliente
      • Listar Clientes
      • Listar Grupos de Clientes
      • Listar Tipos de Clientes
      • Listar Campos Personalizados
      • Eventos / Webhooks
        • Cliente creado
        • Cliente modificado
        • Cliente eliminado
    • Objetos en Cliente
      • Obtener estructura/esquema de un Objeto en Cliente
      • Listar estructuras/esquemas de los Objetos en Cliente
      • Obtener objeto
      • Insertar objeto
      • Modificar objeto
      • Eliminar objeto
      • Listar Objetos en un Cliente particular
      • Sincronizacion completa
    • Master Db
      • Obtener estructura/esquema de una Master Db
      • Listar estructuras/esquemas de las Master Dbs
      • Obtener elemento
      • Insertar elemento
      • Modificar elemento
      • Eliminar elemento
      • Sincronizacion completa
    • Dispositivos
      • Obtener Dispositivo
      • Listar Dispositivos
    • Usuarios
      • Listar Usuarios
      • Listar Técnicos Activos
    • Seguimientos
      • Crear seguimientos
  • Modulos
    • 🚚Rastreo Satelital
      • Obtener última posición GPS
      • Obtener estadísticas de Rastreo
      • Obtener Visitas a Clientes
      • Integrar Dispositivos de Rastreo a Persat
    • ☑️Formularios Digitales
      • Obtener estructura/esquema de un Formulario
      • Listar estructuras/esquemas de todos los Formularios
      • Obtener formulario
      • Obtener PDF del formulario
      • Tipos de Widgets
        • Campo Texto
        • Campo Párrafo
        • Campo Link
        • Campo Número
        • Campo Fecha
        • Campo Hora
        • Seleccion Simple
        • Lista Desplegable
        • Selección Múltiple
        • Campo Foto (deprecado)
        • Campo Fotos
        • Firma Digital (deprecado)
        • Firma Digital v2
        • Etiquetas
        • Tabla Smart
        • Tabla Master Db
        • Lista de Objetos en Cliente
        • Tabla de Objetos en Cliente
      • Insertar formulario
      • Modificar formulario
      • Modificar estado de formulario
      • Listar historial de estados de un formulario
      • Listar formularios
      • Estados de formulario
        • Obtener estado
        • Listar estados
      • Eventos / Webhooks
        • Formulario Creado
        • Formulario Modificado
        • Formulario estado modificado
        • Formulario estado modificado masivamente
    • 🛠️Órdenes de Trabajo
      • Obtener estructura/esquema de un Tipo de OT
      • Listar estructuras/esquemas de todos los tipos de OTs
      • Administrar Etiquetas
        • Obtener Etiqueta
        • Insertar Etiqueta
        • Modificar Etiqueta
        • Eliminar Etiqueta
        • Listar Etiquetas
      • Obtener OT
        • PENDIENTE sin instrucciones
        • PENDIENTE con instrucciones
        • PROYECTADA sin instrucciones
        • PROYECTADA con instrucciones
        • ASIGNADA
        • INFORME
        • VENCIDA
        • CERRADA_OK
        • CERRADA_CON_DESVIO
        • CERRADA_NO_CUMPLIDA
      • Obtener PDF de la OT
      • Insertar OT
        • Insertar PENDIENTE
        • Insertar PROYECTADA
        • Insertar ASIGNADA
      • Modificar OT
        • Modificar etiquetas
        • Cancelar OT
        • Mover a estado PENDIENTE
      • Listar OTs
      • Obtener link de trackeo
      • Eventos / Webhooks
        • OT creada
        • OT modificada
        • OT finalizada
        • OT cerrada
    • 📦Gestión de Entregas
      • Obtener estructura/esquema de un Tipo de Entrega
      • Listar estructuras/esquemas de todos los tipos de Entregas
      • Administrar Etiquetas
        • Obtener Etiqueta
        • Insertar Etiqueta
        • Modificar Etiqueta
        • Eliminar Etiqueta
        • Listar Etiquetas
      • Obtener entrega
        • Estado PENDING
        • Estado ROUTING
        • Estado ASSIGNED
        • Estado FINISHED
        • Estado FINISHED_WITH_DEVIATION
        • Estado NOT_FINISHED
      • Obtener PDF de entrega
      • Crear entrega
        • Crear Entrega Simple
        • Crear Entrega en Cliente
      • Eliminar entrega
      • Listar Entregas
      • Obtener link de trackeo
      • Eventos / Webhooks
        • Entrega Creada
        • Entrega Finalizada
        • Entrega Eliminada
      • Rutas de Entrega
        • Obtener Ruta
        • Listar Rutas
        • Eventos / Webhooks
          • Ruta Asignada
          • Ruta Modificada
          • Ruta Cancelada
Powered by GitBook
On this page
  • Como obtener el listado completo de entregas
  • Consulta Inicial
  • Siguientes consultas
  • Como saber si hay mas datos para obtener
  1. Modulos
  2. Gestión de Entregas

Listar Entregas

Last updated 1 year ago

En Persat, se pueden listar todas las entregas, o las que corresponden a un cliente particular. La consulta a realizar para ambos casos se define aquí.

A diferencia de lo que ocurre en otros módulos, y dada la gran cantidad de datos que se pueden obtener de esta consulta, la misma se encuentra optimizada, y la paginación no está basada en "offset" si no en "cursor"

GET https://api.persat.com.ar/v1/deliveries

Query Parameters

Name
Type
Description

limit*

number

Mismo concepto de SQL para la paginación. Max: 100. Min: 1.

uid_client

String

Identificador del cliente, en caso de querer obtener las entregas de este cliente particular

next

number

cursor para la próxima página

Headers

Name
Type
Description

Authorization*

String

Bearer API_KEY

{
	"success": true,
	"paging": {
		"total": 12,
		"next": 1679422048274
	},
	"data": [{
		"_id": "WMGV40852",
		"state": "ASSIGNED",
		"created": "2023-03-21T18:07:28.274Z",
		"labels_ids": [],
		"due_date": "2023-03-21T00:00:00.000Z",
		"client": {
			"id": 46300,
			"name": "Ferretería José Hnos.",
			"uid_client": "C0203210950"
		},
		"delivery_data": {
			... // Datos de la entrega
		},
		"assignation_info": {
			... // Datos de la asignación
		}
	}, { ... } 	// Siguiente entrega
	]
}
{
    "success": false,
    "error": {
        "status": 404,
        "type": "NOT_FOUND",
        "userMessage": "No se encontro un cliente con este uid_client"
    }
}
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "'limit' es un campo obligatorio y no puede ser mayor a 100"
    }
}

Como obtener el listado completo de entregas

Para obtener el listado completo de entregas, hay que hacer una primer consulta sin el parámetro next, y luego sucesivas consultas usando el valor obtenido de next de la consulta anterior

Consulta Inicial

https://api.persat.com.ar/v1/deliveries?limit=2

En este ejemplo no filtramos por cliente, pero en caso de hacerlo aplica de la misma forma.

Resultado de la consulta

Más allá de los datos obtenidos en data, lo importante es entender como hacer la siguiente consulta.

{
	"success": true,
	"paging": {
		"total": 122,
		"next": 1679422048274
	},
	"data": [{ delivery_1, delivery_2 }]	// Array con los datos de cada entrega	
}

paging.total: Es un número que indica la cantidad de Entregas a devolver. Con lo cual para el caso del ejemplo, debería haber devuelto 122 entregas, pero nos entregó 2 (delivery_1 y delivery_2). Esto es porque el limit era 2. Entonces nos quedan por recibir otras 120 entregas.

paging.next: Es un número que debemos enviar en la próxima consulta para obtener las siguientes entregas

Siguientes consultas

Usamos el next recibido en la consulta anterior

https://api.persat.com.ar/v1/deliveries?limit=2&next=1679422048274
{
	"success": true,
	"paging": {
		"total": 120,
		"next": 1679422049876
	},
	"data": [{ delivery_3, delivery_4 }]	// Array con los datos de cada entrega	
}

Ahora recibimos dos nuevas entregas (porque el limit es 2), y obtenemos un nuevo next.

Como saber si hay mas datos para obtener

Si recibimos next en null, significa que hemos llegado al final de la lista.

{
	"success": true,
	"paging": {
		"total": 0,
		"next": null
	},
	"data": []
}

No utilizar total == 0 para definir el final de la lista. Ya que total puede tener un valor entero que sea igual al tamaño del array data[].

Por ejemplo, otro final de lista podría ser:

{ "success": true, "paging": { "total": 3, "next": null }, "data": [delivery_1, delivery_2, delivery_3] }

data: Es un array de Objetos JSON, en donde cada item es una entrega. Los campos de ese objeto son los mismos que si hicieramos la consulta en . Las entregas recibidas vienen ordenadas por fecha de creación "created" de forma descendente. Con lo cual la primer entrega recibida (delivery_1) es la que fue creada recientemente.

📦
cursor-based pagination
Obtener Entrega