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
  1. Entidades Básicas
  2. Clientes

Agregar un cliente

Así como podés agregar un cliente de forma manual a través del Panel de Control de Persat, podés hacerlo a través del API. Lo que se requiere es hacer una consulta HTTP POST con los parámetros indicados.

POST https://api.persat.com.ar/v1/clients

Headers

Name
Type
Description

Content-Type

string

application/json

Authorization

string

Bearer API_KEY

Request Body

Name
Type
Description

uid_client*

string

El número/identificador de cliente (es un valor alfanumérico). Debe ser un valor único y sirve para luego poder accederlo en otros llamados a la API

company_name*

string

Nombre del cliente, razón social o nombre de fantasía. También debe ser un valor único. No puede haber dos clientes con la misma "Razon Social"

company_description

string

Descripción del cliente.

latitude

number

Ubicación del cliente, latitud. Valor por default: 0

longitude

number

Ubicación del cliente, longitud. Valor por default: 0

service_time

number

Tiempo de servicio. Se utiliza por el algoritmo de ruteo.

wt

[number, number]

street

string

Calle en donde se encuentra el cliente. No incluir el número

street_nbr

string

Número de la calle. Si bien es numeración, debe ser enviado como string

neighborhood

string

Barrio, por ej: "Devoto"

city

string

Ciudad, por ejemplo "CABA"

country

string

País, por ejemplo: "Argentina"

custom_fields * (puede haber campos obligatorios)

object

Campos personalizados de la ficha de clientes. Se detalla más adelante en este artículo. Puede haber campos obligatorios.

type_id

Number

Identificador del tipo de cliente. En caso de no enviarse el cliente se creara con el type_id = 0, que es el valor por defecto

group_id

Number

Identificador del grupo de cliente. En caso de no enviarse el cliente se creara con el group_id = 0, que es el valor por defecto

{
    "success": true,
    "data": {	
        "uid_client": "CL-0044"
        "company_name": "Persat",
        "company_description": "",
        "latitude": -34.60820392067226,
        "longitude": -58.48194122314454,
        "street": "Terrada",
        "street_nbr": "2309",
        "neighborhood": "Comuna 11",
        "city": "Buenos Aires",
        "country": "Argentina",
        "custom_fields": {
            "1": {
                "name": "Nombre",
                "value": ""
            },
            "2": {
                "name": "Teléfono",
                "value": "4504-5300"
            },
            "3": {
                "name": "Email",
                "value": ""
            },
            "4": {
                "name": "Campo 1",
                "value": ""
            },
            "5": {
                "name": "Campo 2",
                "value": ""
            },
            "6": {
                "name": "Campo n",
                "value": ""
            }
        }
    }
}
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "'latitude' debe ser un número entre -90 y +90"
    }
}
{
    "success": false,
    "error": {
        "status": 409,
        "type": "CONFLICT",
        "userMessage": "Usted ya posee un cliente con este número de cliente"
    }
}
{
    "success": false,
    "error": {
        "status": 409,
        "type": "CONFLICT",
        "userMessage": "type_id o group_id tiene un valor invalido. Enviar los campos en 0, o no enviar dichos campos"
    }
}

A continuación un ejemplo con curl

curl --location --request POST "https://api.persat.com.ar/v1/clients" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --data "{
	\"uid_client\":\"CL-0044\",  
	\"company_name\":\"Persat\",
	\"company_description\":\"Logistica GPS\",
	\"type_id\": 3,
	\"group_id\": 2,
	\"latitude\":-34.54646,
	\"longitude\":-58.4324324,
	\"street\":\"Av. Rivadavia\",
	\"street_nbr\":232,
	\"neighborhood\":\"Devoto\",
	\"city\":\"CABA\",
	\"country\":\"Argentina\",
	\"custom_fields\": {
        \"2\": \"4504-5300\"
	}
  }"

Algunas aclaraciones respecto a este request.

Si bien latitude y longitude no son campos obligatorios, en Persat todos los clientes se tienen que poder representar en un mapa. Por lo cual, en caso de no enviar estos dos atributos, ambos terminan quedando en 0, dando como resultado un cliente creado en el oceano.

IMPORTANTE: En ningún caso la dirección se calcula automáticamente en base a latitude y longitude.Esto si ocurre desde la aplicación web de Persat, o desde la app de Android. La misma aclaración vale para el caso inverso, es decir que no se calcula la latitud y longitud en base a los datos de dirección enviados.

Es responsabilidad del programador, hacer el geocoding correspondiente para poder brindar los datos de posición

Last updated 6 months ago

Hora de apertura y cierre del local (en minutos). Se utiliza por el algoritmo de ruteo. Ver ejemplo en

Los campos son explicados en la sección

Obtener un cliente
Obtener Cliente