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
  • Encabezado de la respuesta (header)
  • Contenido de la respuesta (body)
  1. Primeros Pasos

Formato de Respuesta

Todas las respuestas de la API respetan el formato descripto en esta página.

Encabezado de la respuesta (header)

Los posibles codigos del header de las respuestas son los siguientes:

Code

Status

Significado

200

OK

Operación realizada con éxito

401

UNAUTHORIZED

No autorizado para realizar la operación. Api key incorrecta

404

NOT_FOUND

El recurso no existe. Ya sea porque la url en si no existe, o porque el recurso que estamos buscando no esta disponible. Por ej: Si buscamos un cliente que no existe.

400

BAD_REQUEST

Error en el formato de la consulta. Puede haber campos faltantes o con valores erroneos.

409

CONFLICT

Conflicto con campos únicos. Por ej: Quiero crear un cliente con un número que ya posee otro cliente en el sistema.

415

UNSUPPORTED_MEDIA_TYPE

El único media type soportado es application/json

500

INTERNAL_ERROR

Error interno del servidor. Algo salió mal.

Contenido de la respuesta (body)

El contenido de las respuestas de la API se recibe en formato JSON, y tiene esta estructura genérica:

A excepción de los PDFs que pueden ser en formato binario

{    
    "success": true,    
    "paging": {
        "offset": 0,
        "limit": 20,
        "result": 20,
        "total": 195
    },
    "data": {} || [{}, {}, ...],
    "error": {
        "status": 404,
        "type": "BAD_REQUEST",
        "userMessage": "El campo x es obligatorio"    
    }
}

‌No siempre estarán presentes todas las propiedades, depende de que tipo de pedido se haya realizado y el resultado del mismo. Se constituye por los siguientes elementos:‌

success - Presente en todas las respuestas. Indica true si la llamada ha sido procesada con éxito, false en caso contrario. Es útil para hacer un chequeo general más allá del status code del header y saber si la respuesta contiene las propiedades data o error.‌

paging - En las respuestas de pedidos GET a las colecciones, la propiedad paging nos indicará los límites del listado con datos útiles como offset (a partir de qué elemento inicia el listado), limit (la cantidad de elementos en el listado actual recibido), result (la cantidad total de elementos coincidentes con la búsqueda) y total (el total de elementos en la colección).‌

data - En las respuestas de pedidos GET a las colecciones, la propiedad data es un array con los elementos requeridos. En caso de que la colección esté vacía, será un array vacío. En las respuestas de pedidos GET a un elemento, la propiedad dataserá un objeto con todos los campos del elemento en cuestión.

error - Aquí se indica el detalle del error. Cada error tiene un status que coincide con el status de la respuesta HTTP, untype que lo identifica y un userMessage con el mensaje textual que puede mostrarse al usuario.‌

Los valores de type pueden ser los siguientes:

type

Description

UNAUTHORIZED

El api key no existe o es inválido.

NOT_FOUND

El recurso especificado no existe, puede ser porque el ID especificado no exista. O se este haciendo una consulta a un endpoint inexistente.

BAD_REQUEST

El pedido tiene una estructura inválida.

CONFLICT

El recurso que se intentó crear entra en conflicto con uno existente.

UNSUPPORTED_MEDIA_TYPE

El formato de datos indicado no es soportado.

INTERNAL_ERROR

Ocurrió un error interno del servidor.

Last updated 3 months ago