POST
/
deliveries
Crear una entrega
curl --request POST \
  --url https://api.getjusto.com/api/v2/deliveries \
  --header 'Content-Type: application/json' \
  --data '{
  "storeId": "<string>",
  "instructions": "<string>",
  "externalId": "<string>",
  "tipAmount": 123,
  "placeId": "<string>",
  "latitude": -33.4489,
  "longitude": -70.6693,
  "preferCoordinates": false,
  "maxDistance": 123,
  "addressLine1": "<string>",
  "addressLine2": "<string>",
  "placeName": "<string>",
  "placePhone": "<string>",
  "isToStore": false,
  "isRoundTrip": false,
  "requiredVehicleType": "walk",
  "expectedDate": "2023-11-07T05:31:56Z",
  "contents": {
    "name": "<string>",
    "quantity": 123,
    "description": "<string>",
    "unitPrice": 123
  },
  "avoidDuplication": false
}'
{
  "_id": "<string>",
  "price": 123,
  "status": "canceled",
  "placeName": "<string>",
  "isCash": "<string>",
  "fromLocation": {
    "address": "<string>",
    "addressSecondary": "<string>",
    "storeName": "<string>",
    "lat": -33.4489,
    "lng": -70.6693
  },
  "toLocation": {
    "address": "<string>",
    "addressSecondary": "<string>",
    "storeName": "<string>",
    "lat": -33.4489,
    "lng": -70.6693
  },
  "receiveProofImage": "<string>",
  "deliverProofImage": "<string>",
  "driverPassword": "<string>",
  "activatesAt": "2023-11-07T05:31:56Z",
  "createdAt": "2023-11-07T05:31:56Z",
  "forDate": "2023-11-07T05:31:56Z",
  "completedAt": "2023-11-07T05:31:56Z",
  "canceledAt": "2023-11-07T05:31:56Z",
  "nearStoreAt": "2023-11-07T05:31:56Z",
  "nearClientAt": "2023-11-07T05:31:56Z",
  "deliveryExpectedAt": "2023-11-07T05:31:56Z",
  "driverReceivedAt": "2023-11-07T05:31:56Z",
  "trackingURL": "<string>",
  "deliveryInformation": "<string>",
  "driverInformation": {
    "code": "<string>",
    "type": "<string>",
    "phone": "<string>",
    "name": "<string>",
    "categoryId": "<string>",
    "image": "<string>"
  },
  "instructions": "<string>",
  "specialCode": "<string>",
  "externalId": "<string>",
  "orderId": "<string>",
  "uncompletedReason": "<string>"
}

Descripción

Este método posibilita la creación de una solicitud de reparto especial, generando un envío de forma inmediata o programada. Adicionalmente, incorpora un mecanismo de indempotencia y personalización de la entrega.

Nota al margen

Los pedidos especiales no están limitados en los horarios de venta que establezca la marca, siendo de exclusiva responsabilidad del solicitante el verificar si pueden despachar el producto en cuestión.

Ejemplo con placeId

Descripción

Este endpoint muestra un ejemplo de crear un delivery con placeId

Respuesta

{
  "placeId": "Ch43134gggXP5g5g5RPWmn-5gg35",
  "addressLine2": "Dpto 144",
  "storeId": "Li4eEa3W2hiuGGCFa",
  "isToStore": false,
  "isRoundTrip": false,
  "externalId": "P13G3",
  "tipAmount": 1000,
  "placeName": "Javier Perez",
  "placePhone": "+56956385416",
  "expectedDate": "2020-04-17T22:15:26Z",
  "contents": [
    {
      "quantity": 1,
      "name": "Pizza",
      "description": "Extras: Bebida 1.5lt",
      "unitPrice": 1000
    }
  ]
}

Respuesta

{
  "status": "ok",
  "data": {
    <Delivery>
  }
}

Ejemplo sin placeId

Descripción

Este endpoint muestra un ejemplo de crear un delivery con placeId

Respuesta

{
  "latitude": "-33.4421928",
  "longitude": "-70.665261",
  "addressLine1": "Concha y Toro 33",
  "addressLine2": "Dpto 144",
  "storeId": "Li4eEa3W2hiuGGCFa",
  "isToStore": false,
  "isRoundTrip": false,
  "externalId": "P13G3",
  "tipAmount": 1000,
  "placeName": "Javier Perez",
  "placePhone": "+56956385416",
  "expectedDate": "2020-04-17T22:15:26Z",
  "contents": [
    {
      "quantity": 1,
      "name": "Pizza",
      "description": "Extras: Bebida 1.5lt",
      "unitPrice": 1000
    }
  ]
}

Respuesta

{
  "status": "ok",
  "data": {
    <Delivery>
  }
}

Body

application/json
storeId
string
required

ID del local.

placeId
string
required

ID de GoogleMaps del lugar de reparto. Opcional por latitude, longitude y addressLine1.

placeName
string
required

Nombre del lugar de entrega. Generalmente es el nombre del cliente.

placePhone
string
required

Teléfono para llamar en el punto de entrega. Incluír el + y el código de país.

expectedDate
string<date-time>
required

Fecha de retiro en el primer punto. Opcional. Formato ISO_8601. Si es para lo antes posible no enviar nada en este campo.

contents
object
required

El contenido de la entrega. Sirve para que los repartidores no se confundan con el contenido del paquete y realicen la entrega correctamente.

instructions
string

Instrucciones de entrega. Opcional

externalId
string

Un código para identificar este pedido en el punto de retiro. Si avoidDuplication es true, este campo se utilizará este valor como identificador de idempotencia de un pedido. Opcional, solo obligatorio si avoidDuplication es true.

tipAmount
number

Monto de propina. Opcional

latitude
number

Latitud de la dirección de entrega. Opcional, solo necesario si no se especifica placeId.

Example:

-33.4489

longitude
number

Longitud de la dirección de entrega. Opcional, solo necesario si no se especifica placeId.

Example:

-70.6693

preferCoordinates
boolean
default:false

Cuando este flag está activo, en lugar de usar primero la addressLine1 y las coordenadas como respaldo, solo usaremos las coordenadas, y con ellas obtendremos el placeId más cercano (puede estar a 10 o 15 metros de distancia. Pueden surgir casos más extremos). en zonas más rurales o en países con menor densidad de población). Si se especifica el argumento maxDistance y es diferente de 300 metros, se usa; de lo contrario, usaremos una distancia máxima de 5000 metros. Valor predeterminado, falso.

maxDistance
number

Cuando no se usa un placeId, tenemos que buscar una ubicación para el despacho. Se intenta utilizando el addressLine1 y los resultados que se obtienen se ordenan por distancia al punto [latitude,longitude] y se retorna el más cercano. Si la distancia de todos los resultados es superior a maxDistance (ó 300mt si el parámetro no se especifica), se descartan todos y se busca la ubicación más cercana al punto. Si se hacen dos llamadas con el mismo addressLine1, latitude y longitude, la ubicación del despacho será la misma, aunque tengan diferencias en maxDistance. Si se necesita forzar un cambio, sugerimos hacer un cambio menor de la latitud o longitud para forzar el recalculo. Opcional, solo necesario si no se especifica placeId. Si no se especifica, se usarán 300mt como distancia máxima.

addressLine1
string

Calle y número de dirección de reparto. Opcional, solo necesario si no se especifica placeId.

addressLine2
string

Información adición de la dirección. (Dpto 102, Casa A, etc...). Opcional

isToStore
boolean
default:false

El reparto comienza en el lugar de reparto en dirección a el local. Opcional (defecto false)

isRoundTrip
boolean
default:false

El repartidor debe cobrar / el viaje debe ser ida y vuelta. Opcional (defecto false)

requiredVehicleType
enum<string>

Definir el tipo de vehículo necesario para delivery special. El definir el tipo de vehículo puede afectar los tiempos de despacho. Esta opción está disponible por marca. Los valores posibles son walk, bike, ebike, moto, car. Opcional.

Available options:
walk,
bike,
ebike,
moto,
car
avoidDuplication
boolean
default:false

Cuando este flag se encuentra activo se utilizará el parámetro externalId como un identificador de idempotencia en los sistemas de Justo. Esto significa que se podrá generar un y sólo un delivery con el mismo externalId. Si este flag se encuentra activo y se intenta generar un nuevo delivery con un externalId que ya había sido utilizado previamente, se retornará la información del delivery anteriormente generado y no creará uno nuevo. Opcional (defecto false).

Response

success

_id
string

ID del pedido.

price
number

Costo del delivery, incluye IVA

status
enum<string>

Estado del pedido. Puede tomar los siguientes valores:

  • canceled: Pedido cancelado.
  • pending: Pedido pendiente.
  • scheduled: Pedido programado.
  • active: En camino a buscar el pedido.
  • delivering: En proceso de entrega.
  • done: Pedido completado.
  • Dispatch not completed: No se pudo completar el pedido. En el campo uncompletedReason podrá encontrar el motivo porque no se pudo completar la entrega.
  • error: Error en el pedido.
Available options:
canceled,
pending,
scheduled,
active,
delivering,
done,
Dispatch not completed,
error
placeName
string

Quién recibe el pedido.

isCash
string

Si el pedido require efectivo o no.

fromLocation
object

Lugar desde donde inicia el pedido(origen), si es un local se agrega el nombre [].

toLocation
object

Lugar donde finaliza el pedido(destino), si es un local se agrega el nombre [].

receiveProofImage
string<uri>

La URL de la imagen que toma el repartidor al recibir el pedido.

deliverProofImage
string<uri>

La URL de la imagen de la entrega.

driverPassword
string

La contraseña asociada al pedido. Puede cambiar si es que cambia el repartidor.

activatesAt
string<date-time>

Fecha cuando se comienza a buscar un repartidor.

createdAt
string<date-time>

Fecha en la que se generó el delivery.

forDate
string<date-time>

Fecha para la cual se solicitó que el repartidor llegue al punto 1.

completedAt
string<date-time>

Fecha en la que se completó el pedido.

canceledAt
string<date-time>

Fecha en la que se canceló el pedido (si corresponde).

nearStoreAt
string<date-time>

Fecha en que la que el repartidor llegó al punto 1.

nearClientAt
string<date-time>

Fecha en que la que el repartidor llegó al punto 2.

deliveryExpectedAt
string<date-time>

Fecha prometida del despacho (que se complete).

driverReceivedAt
string<date-time>

Fecha en que el repartidor retiró el pedido desde el local para llevarlo a cliente final.

trackingURL
string<uri>

La URL para que el que recibe la entrega pueda ver donde va.

deliveryInformation
string

Texto ingresado por el repartidor donde especifica a quien le entregó el pedido.

driverInformation
object
instructions
string

Instrucciones para el repartidor.

specialCode
string

Número único asignado al pedido.

externalId
string

ID externo del pedido.

orderId
string

ID de la orden asociada al pedido.

uncompletedReason
string

String opcional que contiene un motivo por el que un despacho se vio frustrado. Si este valor existe, los productos no pudieron ser entregados al cliente final.