Descripción General
Bienvenido a la documentación de Picker Express API.
Picker te permitirá conectar tus plataformas y/o comercios a distintos proveedores de delivery de la región en la que te encuentras. La integración con Picker a través de su API te ofrece las siguientes capacidades:
- Administración de locales.
- Automatizar la creación de pedidos desde tu plataforma.
- Realizar consultas de tarifas.
- Recibir en tiempo real las actualizaciones de tu pedido.
La siguiente guía te permitirá saber los primeros pasos, buenas practicas y las referencias de la API que debes de tomar en cuenta en tu desarrollo.
What made this section unhelpful for you?
Por Dónde Empezar
En esta página podrás ver cuales son los primeros pasos y que cosas se deben tener en cuenta antes de desarrollar la integración. Si tienes alguna duda acerca de algún concepto de nuestra plataforma, puedes visitar la página de Glosario donde tendrás información mas detallada.
Ten en cuenta que para empezar a desarrollar tu integración con Picker, debes tener una cuenta creada con nosotros; o en su defecto, haber contactado a ventas para que les pueda facilitar una cuenta de desarrollo. Para poder comunicarte con ellos, puedes seguir los pasos en nuestra pagina oficial aquí.
Una vez que tengas credenciales, ten en consideración que estas te permitirán acceder al dashboard. Estos son las url's del dashboard para producción y sandbox:
- Producción: https://dashboard.pickerexpress.com/
Para entender un poco la lógica que maneja Picker, una cuenta se la denomina Empresa. Cada empresa puede tener N locales (que pueden representar tiendas, restaurantes, puntos de despacho). Cada local obligatoriamente debe estar referenciado con una dirección y una geolocalización (se las requiere al momento de crearlas). Por ejemplo: Si tu empresa va a manejar 2 sucursales, deberás crear 2 locales.
Para poder identificar tu empresa o local, nuestra API utiliza dos tipos de keys:
- API Key de Local: Permite hacer operaciones sobre cada local (actualizaciones) y permite realizar operaciones de pedidos (crear, consultar estado, consultar precio)
- Master Key de Empresa: Permite consultar y hacer operaciones sobre mi empresa (crear locales, consultar locales).
Bajo este criterio, al integrarte tendrás un api key por cada local y un master key por tu empresa creado. Por ejemplo: Si tienes un empresa con 3 locales, básicamente tendrías 1 Master Key (representando tu empresa) y 3 Api Keys (cada Api Key representando un local).
API KEY
Al tener acceso al dashboard podrás obtener los api keys de cada local que vayas creando en la opción de Locales.

En la esquina superior derecha de cada local, podrás visualizar el api key del local.

MASTER KEY
Para poder acceder al Master Key de tu tienda, debes ingresar a la opción de Configuraciones (representado por el engrane).

En configuraciones, podrás encontrar el key de tu empresa.

What made this section unhelpful for you?
Autenticación
La autenticación que maneja Picker API para cada enpoint es una autenticación de tipo Bearer; y usar como key el api key de tu local o el master key de tu empresa de acuerdo al endpoint que estes usando.
BASH
Select...
curl --location 'https://dev-api.pickerexpress.com/api/createBooking' \--header 'content-language: en' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{apiKey}}' \
BASH
Select...
curl --location 'https://dev-api.pickerexpress.com/api/createStore' \--header 'content-language: en' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{masterKey}}' \
What made this section unhelpful for you?
Ciclo de Vida del Pedido
Todo pedido creado en la plataforma de Picker es determinado por un estado. El estado de un pedido es una parte importante del ciclo de vida del mismo. Estos estados pueden indicar si el pedido esta terminado, cancelado o aun en proceso. Es importante que en la integración que se vaya a desarrollar se mapeen todos los estados posibles, para que el cliente tenga muy claro lo que significa cada estado.
API Reference
En este apartado podrás encontrar todos los endpoints expuestos en nuestra API Suite. Este apartado estará dividido en cada una de las entidades a las que tendrás acceso en este API:
Ten muy en cuenta las URLs que estés usando para tus endpoint. En la parte derecha de esta página, tendrás el direccionamiento a cada uno de los ambientes que tenemos.
What made this section unhelpful for you?
Base URL
Production:
https://api.pickerexpress.com
Sandbox:
https://dev-api.pickerexpress.com
Stores
En este apartado podrás encontrar los endpoints usados para la administración de los locales de tu empresa. Podrás encontrar los endpoints de:
Ten en consideración que los endpoints de Create Store y Get Stores usan como autenticación Master Key (para identificar el Empresa). En cambio el de Update Store y Get Store usa Api Key (para identificar el local).
Webhooks
En este apartado encontraras los endpoints a utilizar para el manejo de webhooks. Podrás encontrar los endpoints de:
Así mismo, podrás encontrar los detalles de los payloads que se envian a los webhooks registrados según cada evento. Los eventos que se devuelven en los webhooks son:
Para todos los endpoints de webhooks, necesitas como autorización el api key del local
Si necesitas mas información acerca de los estados que llegan en los webhooks, puedes visitar la pagina de Estados del Pedido.
Pre-Booking
Esta funcionalidad esta en certificación y unicamente existe en al ambiente de sandbox.
Un Pre-booking es denominada a una plantilla con datos preliminares de un pedido sin los datos del punto final de entrega. Para poder convertirlo en un booking, es necesario que se pueda ingresar la dirección de entrega mediante una url que es retornado al momento de crear o consultar un pre-booking. Una vez ingresada la dirección final, el booking se crea y se inicia automáticamente la búsqueda de un conductor.
En este apartado podrás encontrar todos los endpoints utilizados para poder crear un pre-booking:
Bookings
En este apartado encontrarás todos los endpoints relacionados a los pedidos o bookings. Podras encontrar desde consultas de precios, creación de bookings, consultas y cancelaciones. Los endpoints que puedes encontrar en esta sección son:
Todos estos endpoints usan como autorización el api key del negocio.
What made this section unhelpful for you?
Pre Checkout
El endpoint de Pre Checkout te permitirá consultar precios y valores del pedido que necesites realizar. Además de eso, te indicará si es posible que podamos atender tu pedido (si el pedido cubre una distancia muy larga entre el local y el punto de entrega; o el punto de entrega esta fuera de cobertura, devolveremos un mensaje de error).
Para este endpoint es obligatorio la locación del punto de entrega. La ubicación del local ya la obtenemos automáticamente por el Api Key del negocio que usas en la autorización.
Otros datos que puedes ingresar en este endpoint son:
- paymentMethod: Es el método de pago que usarás para el pedido. En el caso que exista un pago en efectivo al momento de entregar el pedido, deberás usar CASH. Caso contrario, si no hay ningún pago de por medio y el conductor unicamente tiene que recoger el pedido y entregarle al cliente, deberás usar CARD.
- carName: Indicá el tipo de vehículo que necesitas para tu pedido. Si es un pedido de dimensiones pequeñas y necesitas una moto, debes ingresar aquí BIKE. Si tu pedido es de mayores dimensiones y necesitas un coche, deberás usar LITE.
La opción de carName: LITE solo esta disponible por el momento en Ecuador
Header Parameters
This is a required header parameter that determines the media type of the resource. It directly informs the server about the format of data being sent. Typical values include "application/json" or "text/plain".
This is a header parameter used for identifying the authenticated user making the request. The value typically contains the token generated during the user authentication process.
Body Parameters
Latitud de la locación del punto de entrega
Longitud de la locación del punto de entrega
Método de pago que se usará para el pedido. Por default es CARD
CARD
CASH
Tipo de vehículo que necesitas para tu pedido. Por default es BIKE (moto). El modo LITE (coche) solo esta disponible para pedidos de Ecuador
BIKE
LITE
Responses
Response Attributes
Precio que se cobrará por el pedido
Precio con impuestos
Impuestos
Porcentaje de impuesto aplicado
What made this section unhelpful for you?
Response
{
"deliveryFee": 7,
"deliveryFeeWithTax": 7.84,
"tax": 0.84,
"taxPercentage": 0.12
}
Status Codes
200
Precios consultados
400
Faltan parámetros obligatorios
401
Workspace suspendido
403
API Key inválido
404
Recurso no existe
409
No tienes Proveedores activados para tu negocio. Distancia fuera de rango
Create Booking
El endpoint de Create Booking es el mas importante de todo el Api Suite de Picker. Este endpoint es el que permitirá poder crear un pedido dentro de la plataforma de Picker. La ejecución de este endpoint desencadenará todo el proceso del pedido (desde su creación, búsqueda de proveedores, actualizaciones de estado y finalización). Si necesitas mas detalles, puede visitar la sección de Ciclo de Vida del Pedido.
Cada dato que se ingrese aquí es muy importante para el correcto desarrollo del pedido:
- Los datos del cliente como sus nombres deben ser claros y completos. Así mismo como su número de teléfono y dirección. Recuerda que en cuanto mas exacto sea el pedido, menos inconvenientes tendrá el conductor para localizar y entregarle su pedido al cliente.
- El método de pago con el cual se procesará el pedido. Así podemos procesar tu pedido con los proveedores que apliquen para el método de pago indicado.
- Los valores del pedido como orderAmount y businessDeliveryFee. Estos valores son importantes para que el proveedor tenga claro el costo del pedido, en el caso que exista alguna novedad (no importa si el pedido es en efectivo o no).
- El parámetro sendTrackingLink te indicará si necesitas que nosotros como Picker enviemos el link de tracking al cliente. El envío de tracking dependerá de las configuraciones que tienes en tu local (Whatsapp o Correo).
- Cooktime que representa el tiempo de preparación del pedido. Este tiempo correrá apenas se cree el pedido. Una vez cumplido el tiempo, se iniciará la búsqueda de un conducto. Si necesitas que la búsqueda se inicie enseguida, deberás ingresar 0.
- Para saber la tarifa del pedido, deberás sumar los campos
priceBreakUp.baseFare + priceBreakUp.perKmCharge
Es recomendable que una vez que se cree el booking, guardes el id o bookingNumericId del pedido para poder posteriormente consultarlo y hacer match en el caso que tengas activados los webhooks.
Header Parameters
Content type de payload
Token de autenticación tipo Bearer. Se debe usar Api Key
Body Parameters
Longitud de la locación del punto de entrega
Latitud de la locación del punto de entrega
Ciudad en que se desarrolla el pedido
Estado, provincia o municipio donde se desarrolla el pedido
ZipCode del lugar de entrega
Dirección completa del lugar de entrega
Nombre del Cliente
Apellido del Cliente
Email del cliente
Número de teléfono del cliente
Código de país de teléfono de cliente
True si necesitas que enviemos el link de tracking al cliente
Método de pago del pedido
CARD
CASH
Es el valor a cobrar por el paquete en el caso que el pedido este en efectivo. Aquí debería incluirse lo que el conductor va a cobrar al cliente.
ID del pedido en tu sistema o integración
Referencia del lugar de entrega
Observaciones o notas del pedido
Tipo de vehículo que necesitas para el pedido
BIKE
LITE
Tiempo de preparación del pedido. Es el tiempo de espera antes de iniciar la búsqueda. Debe ser en milisegundos
Es el valor de delivery que vas a cobrar al cliente. Si el pedido es en efectivo, se sumará al orderAmount para el cobro final
True si necesitas que este pedido sea solo operado por el proveedor Mi Flota
Valor real del producto. Debe ser sin descuentos (para temas de auditoría y seguro)
Responses
Response Attributes
Nombre del cliente
Número del cliente
Código de país del cliente
Show child attributes
Show child attributes
Show child attributes
Referencia del local
Estado del pedido. Si el pedido se creo sin cookTime, el estado será READY_FOR_PICKUP; si se creo con cookiTime iniciará con el estado ON_HOLD
ID alfanumérico del pedido
ID público y numérico del pedido
Link de tracking de Picker
Token de Share My Ride usado para el tracking
What made this section unhelpful for you?
Response
{
"customerName": "Juan Picker",
"customerMobile": "1111111111",
"customerCountryCode": "+52",
"customerEmail": "picker@gmail.com",
"deliveryCity": "Mexico",
"deliveryState": "N/A",
"deliveryZipCode": "11370",
"deliveryAddress": "Nezahualpilli 71, Tlaxpana, Miguel Hidalgo, 11370 Ciudad de México, CDMX, México",
"deliveryCoordinates": {
"type": "Point",
"coordinates": [
-99.171842,
19.440767
]
},
"deliveryReferences": "N/A",
"pickupCity": "Nezahualcóyotl",
"pickupState": "México",
"pickupZipCode": "57700",
"pickupAddress": "Av. Sor Juana Inés de La Cruz 242, Evolucion, 57700 Nezahualcóyotl, Méx., México",
"pickupCoordinates": {
"type": "Point",
"coordinates": [
-99.0211501,
19.3941811
]
},
"priceBreakUp": {
"baseFare": 2.3,
"perKmCharge": 1.3552
},
"pickupReferences": "esquina Interior: 0 Exterior: 242",
"carName": "LITE",
"paymentMethod": "CARD",
"bookingNotes": "",
"statusText": "READY_FOR_PICKUP",
"deliveryFee": null,
"orderAmount": null,
"cookTime": null,
"onlyMyFleet": false,
"_id": "655ecc65ffbf6f71379a39c3",
"bookingNumericId": 415146340,
"smrURL": "https://dev-smr.pickerexpress.com/F78gZPzy8",
"smrToken": "F78gZPzy8"
}
Status Codes
200
Booking creado
400
Parámetros incompletos o inválidos
401
Workspace suspendido
403
Api Key inválido
404
Recurso no existe
409
No tienes Proveedores activados para tu negocio. Distancia fuera de rango
Get Booking Details
Con el endpoint de Get Booking Details podrás consultar el detalle de un booking en específico. La consulta la puedes hacer mediante cualquiera de estos 3 parámetros:
- bookingID: Deberás enviar el bookingNumericID obtenido en la creación del booking.
- id: Deberás enviar el id obtenido en la creación del booking.
- externalID: Deberás enviar lo que enviaste en externalBookingID al momento de crear el pedido.
Puedes usar cualquiera de los 3 métodos para consultar el pedido.
Ojo. El booking que consultes deberá haber sido procesado y creado con el Api Key del local que estes usando. Si intentas buscar un id de pedido que pertenece a otro local, la plataforma no te lo devolverá.
Header Parameters
Token de autenticación tipo Bearer. Se debe usar Api Key
Query Parameters
ID público y númerico del pedido
ID alfanumérico del pedido
ID externo de tu integración
Responses
Response Attributes
Show child attributes
Show child attributes
Precio del pedido
What made this section unhelpful for you?
Response
{
"customerName": "Juan Picker",
"customerMobile": "1111111111",
"customerCountryCode": "+52",
"customerEmail": "picker@gmail.com",
"deliveryCity": "Mexico",
"deliveryState": "N/A",
"deliveryZipCode": "11370",
"deliveryAddress": "Nezahualpilli 71, Tlaxpana, Miguel Hidalgo, 11370 Ciudad de México, CDMX, México",
"deliveryCoordinates": {
"type": "Point",
"coordinates": [
-99.171842,
19.440767
]
},
"deliveryReferences": "N/A",
"pickupCity": "Nezahualcóyotl",
"pickupState": "México",
"pickupZipCode": "57700",
"pickupAddress": "Av. Sor Juana Inés de La Cruz 242, Evolucion, 57700 Nezahualcóyotl, Méx., México",
"pickupCoordinates": {
"type": "Point",
"coordinates": [
-99.0211501,
19.3941811
]
},
"pickupReferences": "esquina Interior: 0 Exterior: 242",
"price": 3.65,
"carName": "LITE",
"paymentMethod": "CARD",
"bookingNotes": "",
"statusText": "READY_FOR_PICKUP",
"deliveryFee": "",
"orderAmount": "",
"cookTime": "",
"onlyMyFleet": false,
"_id": "655ecc65ffbf6f71379a39c3",
"bookingNumericId": 415146340,
"smrURL": "https://dev-smr.pickerexpress.com/F78gZPzy8",
"smrToken": "F78gZPzy8"
}
Status Codes
200
Booking consultado
400
Parámetros inválidos
401
Workspace suspendido
403
Api Key inválido
404
Recurso no existe
Get Cancel Reasons
Con el endpoint de Get Cancel Reasons podrás consultar las razones de cancelación que tenemos disponibles y que puedes enviar en el caso que requieras cancelar el pedido.
Ten en cuenta que utilizar estas razones no son obligatorias; sin embargo es recomendable que se la utilice para poder tener mas datos acerca de los pedidos
Header Parameters
Token de autenticación tipo Bearer. Se debe usar Api Key
Responses
Response Attributes
Listado de tipos de cancelación
Show child attributes
Número de tipos de cancelación
What made this section unhelpful for you?
Response
{
"data": [
{
"type": "TAKING_TOO_LONG",
"en": "Search is taking too long",
"es": "Esta tomando mucho tiempo en asignar"
}
],
"count": 1
}
Status Codes
200
Razones consultados
401
Workspace suspendido
403
Api Key inválido
404
Recurso no existe
Cancel Booking
El endpoint de Cancel Booking te permitirá cancelar un pedido en curso. Podrás cancelar cualquier pedido perteneciente al negocio identificado por el Api Key. Puedes agregarle una razón de cancelación que puedes tomar desde el endpoint de Get Cancel Reasons.
Así como el endpoint de Get Booking Details, solo vas a poder cancelar pedidos pertenecientes al negocio referenciado por el Api Key
Solo podrás cancelar pedidos que estén en los siguientes estados:
- ON_HOLD
- READY_FOR_PICKUP
- ACCEPTED
- ARRIVED_AT_PICKUP
Header Parameters
Content type de payload
Token de autenticación tipo Bearer. Se debe usar Api Key
Body Parameters
ID alfanúmerico del pedido que se necesita cancelar
El tag de la razón de cancelación obtenida desde el endpoint de Get Cancel Reasons
DRIVER_NOT_OPTIMAL
NOT_NEEDED
BOOKING_TEST
INVALID_DATA
Responses
Response Attributes
Confirmación de cancelación de pedido
What made this section unhelpful for you?
Response
{
"data": true
}
Status Codes
200
Pedido cancelados
400
Parámetros inválidos
401
Workspace suspendido
403
API Key inválido
404
Recurso no existe
409
Ya no es posible cancelar el pedido
Start Search
El endpoint de Start Search al ejecutarlo iniciará la búsqueda de conductores para pedidos que tienen cooktime. Unicamente será posible iniciar una búsqueda siempre y cuando el pedido este con el status ON_HOLD. Si el pedido ya inicio una búsqueda, se retornará como código de error 409.
Header Parameters
Content type de payload
Token de autenticación tipo Bearer. Se debe usar Api Key
Body Parameters
Representa el id alfanumerico del booking. Es retornado al momento de crear el booking en el campo id
What made this section unhelpful for you?
Status Codes
200
Búsqueda iniciada
400
Parámetros faltantes
403
Api Key es inválido
404
Recurso no existe
401
Workspace no existe o esta suspendido
409
Pedido ya inició búsqueda Booking no existe.
Certificación
Previo a la salida a producción, es imperativo que se coordine una reunión para poder certificar tu integración con Picker. Dentro de esta certificación se van a revisar los siguientes puntos, dependiendo de las funcionalidades que tengas integradas:
- Bookings:
- Pre Checkout
- Create Booking
- Datos correctos y concretos del cliente
- Valores a cobrar
- Uso correcto de métodos de pago
- Uso de cook time (Opcional)
- Cancel Booking (Opcional)
- Webhooks
- Registro de Webhooks
- Interpretación de estados en su sistema
- Stores
- Create Store
- Get Store (Opcional)
- Pre Booking
- Create Pre Booking
- Datos del cliente y del negocio sea correcto
- Flujo de envió de link para confirmar dirección
- Cancel Pre Booking (Opcional)
- Interacción con Usuario Final
- Visualización de Estados
- Visualización de datos de pedido
- Visualización de Tracking de Picker
Para acordar una reunión de certificación, se la puede agendar mediante este link.
What made this section unhelpful for you?
FAQ
- ¿Es necesario usar el endpoint de pre-checkout para usar el API?
- No es imperativo usar el endpoint de pre-checkout; sin embargo lo recomendamos para que puedas saber con anterioridad el precio de un pedido antes de crearlo.
- ¿Para que me sirve el Dashboard?
- El Dashboard de Picker es una herramienta visual donde podrás:
- Visualizar, administrar y crear pedidos.
- Visualizar y administrar tus locales.
- Manejar tus configuraciones generales.
- Consultar los keys para la integración.
- ¿En que escenario debo enviar CASH o CARD en paymentMethod al crear un booking?
- CASH: Cuando el pedido requiere un pago contra entrega en efectivo.
- CARD: Cuando unicamente requieres que el conductor recoja el pedido y lo entregue en sitio. Esto funciona si de tu lado de la integración ya estas realizando el cobro al cliente (Por transferencia, pasarela de pagos, etc).
- ¿Qué valor debo ingresar en el campo orderAmount?
- Nosotros recomendamos fuertemente que se coloque el valor en bruto del pedido (sin delivery fee, descuentos u otros rubros), inclusive si el pedido tiene como método de pago CASH. Esto es necesario para la auditoría de los proveedores en el caso que suceda alguna incidencia con el pedido en curso.
- Acabo de crear mi pedido, pero no esta buscando en ningún proveedor. ¿Qué me esta haciendo falta?
- Es muy probable que tu pedido tenga cooktime y este en estado ON_HOLD. Cuando un pedido se inicia con cooktime, tiene un tiempo de espera hasta antes de iniciar una búsqueda en los proveedores. Para iniciar una búsqueda, hay las siguientes opciones:
- Esperar que se cumpla el tiempo de espera
- Iniciar la búsqueda manualmente mediante la opción de Iniciar Búsqueda en el menu del pedido en Dashboard
- Usar endpoint de Start Search.
- Me aparece que mi workspace esta suspendido. ¿Qué debo hacer?
- Si tu empresa esta suspendida, puedes contactar a soporte mediante la opción de chat que existe en Dashboard para conocer mas del asunto.
What made this section unhelpful for you?
Glosario
- Empresa: Espacio de trabajo que representa la empresa o marca, el cual puede tener 1 o mas locales asociados. Tiene un master key único, el cual es utilizado para las operaciones vía API. También es conocido como Workspace en algunas nomenclaturas.
- Local: Es la representación de un comercio/local/restaurante/punto de despacho en la plataforma de Picker. Cada local tiene un identificativo único (Api Key); y tiene asociado una dirección y una geolocalización necesarias para la operación.
- Master Key: Es el identificador único de cada empresa. Es obligatorio usarlo en cada operación vía API que requiere la identificación del empresa. Ejemplo: En el endpoint Create Store, es necesario para poder indicar a que empresa se debe asociar la tienda recién creada.
- Api Key: Es el identificador único de cada tienda. Es obligatorio usarlo en las operaciones vía API en que se requiere la identificación del local. Ejemplo: En el endpoint Create Booking, es necesario para poder identificar la tienda a donde el conductor tiene que recoger el pedido.
- Booking: Es la representación del pedido como tal en la plataforma de Picker. Cada booking o pedido tiene un identificador único interno (id), público (bookingNumericId) y un estado (statusText). Este ultimo campo representa en que estado del proceso se encuentra el pedido.
- Orden: Es la representación de cada llamado a un proveedor. Cuando un booking se crea, este llama a todos los proveedores que tiene activado el local; cada uno de estos llamados es una orden. Un booking puede tener de N ordenes de acuerdo al número de proveedores que puede atenderlo.
- Dashboard: Es la plataforma visual de Picker. Desde esta web se podrán administrar y configurar la empresa como sus locales. Para acceder al dashboard de producción haz click aquí.
- Restart Search: Se lo conoce también como una rebúsqueda. Sucede cuando un pedido ya con conductor ejecuta una nueva busqueda de conductor en cada proveedor debido a que el conductor asignado no puede cumplir con el pedido antes de llegar al local. Restart Search se puede disparar en estos escenarios:
- Proveedor cancela pedido antes de llegar al local
- Proveedor desasigna un conductor antes de llegar al local
- Soporte lo ejecuta manualmente en el caso que exista alguna novedad con el conductor del pedido