Órdenes
En esta sección se explican los Endpoints que permiten gestionar las órdenes de tu empresa.
Crear una Orden
Cuando se realice una compra en tu e-commerce utiliza este endpoint para indicarle a Buenvío que deseas crear una orden perteneciente a dicha compra, la orden puede contener varios paquetes a ser envíados a la dirección de tu comprador.
const params = {
'customer_name': 'John Doe',
'customer_email': '[email protected]',
'customer_phone': '(809) 555-5555',
'product_cost': 1000,
'departure_address_street': 'Calle 4',
'departure_address_building_number': '5',
'departure_address_city': 2,
'departure_address_reference': 'Frente a la Farmacia',
'departure_address_sector': 'Cerros de Gurabo',
'arrival_address_street': 'Calle 1',
'arrival_address_building_number': '111',
'arrival_address_city': 2,
'arrival_address_reference': 'Esquina Calle 2',
'arrival_address_sector': 'Los Jardines',
'arrival_address_representative_name': 'Jane Doe',
'arrival_address_representative_phone': '(829) 555-5555',
'packages': JSON.stringify([
{'name': 'Product 1', 'weigth': 1, 'fragile': true},
{'name': 'Product 2', 'weigth': 20, 'fragile': false}
]),
};
const body = Object.keys(params)
.map((key) => encodeURIComponent(key) + '=' + encodeURIComponent(params[key]))
.join('&');
fetch('https://api.buenvio.com/business/v1/orders/', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
Authorization: '<YOUR_API_TOKEN>',
},
mode: 'cors',
body: body,
})
.then((response) => {
return response.json();
})
.then((data) => {
console.log(data);
});
# Requiere usar la dependencia https://requests.readthedocs.io/en/master/
import requests
# Requiere importar la librería estándar json para poder serializar
import json
response = requests.post(
'https://api.buenvio.com/business/v1/orders/',
headers={
'Authorization': '<YOUR_API_TOKEN>'
},
data={
'customer_name': 'John Doe',
'customer_email': '[email protected]',
'customer_phone': '(809) 555-5555',
'product_cost': 1000,
'departure_address_street': 'Calle 4',
'departure_address_building_number': '5',
'departure_address_city': 2,
'departure_address_reference': 'Frente a la Farmacia',
'departure_address_sector': 'Cerros de Gurabo',
'arrival_address_street': 'Calle 1',
'arrival_address_building_number': '111',
'arrival_address_city': 2,
'arrival_address_reference': 'Esquina Calle 2',
'arrival_address_sector': 'Los Jardines',
'arrival_address_representative_name': 'Jane Doe',
'arrival_address_representative_phone': '(829) 555-5555',
'packages': json.dumps([
{'name': 'Product 1', 'weigth': 1, 'fragile': true},
{'name': 'Product 2', 'weigth': 20, 'fragile': false}
]),
}
)
print(str(response.text)
// Requiere usar la dependencia http://docs.guzzlephp.org/
$client = new GuzzleHttp\Client();
$response = $client->request(
'POST',
'https://api.buenvio.com/business/v1/orders/',
[
'headers' => [
'Authorization' => '<YOUR_API_TOKEN>'
],
'form_params' => [
'customer_name' => 'John Doe',
'customer_email' => '[email protected]',
'customer_phone' => '(809) 555-5555',
'product_cost' => 1000,
'departure_address_street' => 'Calle 4',
'departure_address_building_number' => '5',
'departure_address_city' => 2,
'departure_address_reference' => 'Frente a la Farmacia',
'departure_address_sector' => 'Cerros de Gurabo',
'arrival_address_street' => 'Calle 1',
'arrival_address_building_number' => '111',
'arrival_address_city' => 2,
'arrival_address_reference' => 'Esquina Calle 2',
'arrival_address_sector' => 'Los Jardines',
'arrival_address_representative_name' => 'Jane Doe',
'arrival_address_representative_phone' => '(829) 555-5555',
'packages' => json_encode([
['name' => 'Product 1', 'weigth' => 1, 'fragile' => true],
['name' => 'Product 2', 'weigth' => 20, 'fragile' => false]
])
]
]
);
$data = json_decode($response->getBody());
var_dump($data);
$response = wp_remote_request(
'https://api.buenvio.com/business/v1/orders/',
[
'method' => 'POST',
'headers' => [
'Authorization' => '<YOUR_API_TOKEN>'
],
'body' => [
'customer_name' => 'John Doe',
'customer_email' => '[email protected]',
'customer_phone' => '(809) 555-5555',
'product_cost' => 1000,
'departure_address_street' => 'Calle 4',
'departure_address_building_number' => '5',
'departure_address_city' => 2,
'departure_address_reference' => 'Frente a la Farmacia',
'departure_address_sector' => 'Cerros de Gurabo',
'arrival_address_street' => 'Calle 1',
'arrival_address_building_number' => '111',
'arrival_address_city' => 2,
'arrival_address_reference' => 'Esquina Calle 2',
'arrival_address_sector' => 'Los Jardines',
'arrival_address_representative_name' => 'Jane Doe',
'arrival_address_representative_phone' => '(829) 555-5555',
'packages' => json_encode([
['name' => 'Product 1', 'weigth' => 1, 'fragile' => true],
['name' => 'Product 2', 'weigth' => 20, 'fragile' => false]
])
]
]
);
if (is_wp_error($response)) {
$error_message = $response->get_error_message();
var_dump($error_message);
} else {
var_dump($response);
}
// Requiere usar la dependencia https://pub.dev/packages/http/
import 'package:http/http.dart' as http;
// Requiere importar la librería estándar dart:convert para poder serializar
import 'dart:convert';
http.post(
'https://api.buenvio.com/business/v1/orders/',
headers: {
'Authorization': '<YOUR_API_TOKEN>',
},
body: {
'customer_name': 'John Doe',
'customer_email': '[email protected]',
'customer_phone': '(809) 555-5555',
'product_cost': 1000,
'departure_address_street': 'Calle 4',
'departure_address_building_number': '5',
'departure_address_city': 2,
'departure_address_reference': 'Frente a la Farmacia',
'departure_address_sector': 'Cerros de Gurabo',
'arrival_address_street': 'Calle 1',
'arrival_address_building_number': '111',
'arrival_address_city': 2,
'arrival_address_reference': 'Esquina Calle 2',
'arrival_address_sector': 'Los Jardines',
'arrival_address_representative_name': 'Jane Doe',
'arrival_address_representative_phone': '(829) 555-5555',
'packages': json.encode([
{'name': 'Product 1', 'weigth': 1, 'fragile': true},
{'name': 'Product 2', 'weigth': 20, 'fragile': false}
]),
}
).then((response) {
print(response.body);
});
Parámetros de la Petición
customer_name |
|
---|---|
Descripción | Nombre del cliente. |
Tipo | string |
Validaciones | required |
customer_email |
|
Descripción | Email del cliente. |
Tipo | string |
Validaciones | required , email |
customer_phone |
|
Descripción | Teléfono del cliente. |
Tipo | string regex con la expresión .\(\d{3}\) \d{3}-\d{4} , de forma que acepta: |
Validaciones | required , regex:/\(\d{3}\) \d{3}-\d{4}/ |
product_cost |
|
Descripción | Valor apróximado de los artículos envíados, este valor se toma en cuenta para el seguro de garantía que se ofrece por el envío de esta orden. |
Tipo | float |
Validaciones | required , numeric |
departure_address_street |
|
Descripción | Calle de la sucursal de tu empresa. |
Tipo | string |
Validaciones | required |
departure_address_building_number |
|
Descripción | Número de edificio de la sucursal de tu empresa. |
Tipo | string |
Validaciones | required |
departure_address_city |
|
Descripción | Ciudad de la sucursal de tu empresa. |
Tipo | AddressCity |
Validaciones | required , integer |
departure_address_reference |
|
Descripción | Referencia al de la sucursal de tu empresa. |
Tipo | string |
Validaciones | required |
departure_address_sector |
|
Descripción | Sector de la sucursal de tu empresa. |
Tipo | string |
Validaciones | required |
arrival_address_street |
|
Descripción | Calle destino. |
Tipo | string |
Validaciones | required |
arrival_address_building_number |
|
Descripción | Número de edificio destino. |
Tipo | string |
Validaciones | required |
arrival_address_city |
|
Descripción | Ciudad destino. |
Tipo | AddressCity |
Validaciones | required , integer |
arrival_address_reference |
|
Descripción | Referencia al destino. |
Tipo | string |
Validaciones | required |
arrival_address_sector |
|
Descripción | Sector destino. |
Tipo | string |
Validaciones | required |
arrival_address_representative_name |
|
Descripción | Nombre del contacto secundario. |
Tipo | string |
Validaciones | required |
arrival_address_representative_phone |
|
Descripción | Teléfono del contacto secundario. |
Tipo | string |
Validaciones | required |
packages |
|
Descripción | Paquetes que se van a crear en la orden. |
Tipo |
json con el formato {name: string, weight: float, fragile: bool}[]
|
Validaciones | required , json |
Parámetros de la Respuesta
message |
|
---|---|
Descripción | Explica el resultado de la petición. |
Tipo | string |
ok |
|
Descripción | Indica si la petición ha sido procesada exitosamente. |
Tipo | bool |
order_id |
|
Descripción | Número de la Orden. |
Tipo | integer |
packages_identifiers |
|
Descripción | Lista de identificadores únicos de los paquetes contenidos en la orden. |
Tipo | array<string> |
Tipos Especiales de Parámetros
AddressCity
- Nota: Esta lista contempla todas las ciudades que puede haber en el sistema, pero es posible que no todas estén disponibles para realizar delivery. Para obtener la lista de ciudades disponibles actualmente para delivery favor revisar la Referencia de Ciudades.
Número | Ciudad que representa |
---|---|
2 | Santiago de los Caballeros |
3 | San Pedro De Macorís |
4 | La Romana |
5 | La Altagracia |
6 | San Cristóbal |
7 | San Francisco de Macorís |
8 | Boca Chica - Este |
9 | San Felipe - Puerto Plata |
10 | Boca Chica - Oeste |
11 | Santa Cruz de Barahona |
12 | Baní |
13 | San Juan de la Maguana |
14 | Bonao |
15 | Moca |
16 | Azua de Compostela |
17 | Cotuí |
18 | Santa Cruz de El Seibo |
19 | Jarabacoa |
20 | Nagua |
21 | Santa Bárbara de Samaná |
22 | Tamboril |
23 | Mao |
24 | Esperanza |
25 | Pedro Brand |
26 | Sosúa |
27 | Hato Mayor del Rey |
28 | Constanza |
29 | Villa Bisonó |
30 | Salcedo |
31 | Villa Altagracia |
32 | Las Matas de Farfán |
33 | Monte Plata |
34 | Yamasá |
35 | San Ignacio de Sabaneta |
36 | San José de Las Matas |
37 | San Antonio de Guerra |
38 | San José de Ocoa |
39 | La Vega |
40 | Santo Domingo Este |
41 | Santo Domingo Norte |
42 | Santo Domingo Oeste |
43 | Santo Domingo Distrito Nacional |
Cancelar una Orden
Cuando una orden es cancelada en tu plataforma debes de notificarle a Buenvío a través de este endpoint que dicha orden ya no será recibida.
fetch(
'https://api.buenvio.com/business/v1/orders/?order_id=1',
{
method: 'DELETE',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
'Authorization': '<YOUR_API_TOKEN>'
},
mode: 'cors',
}).then(response => {
return response.json();
}).then(data => {
console.log(data);
});
# Requiere usar la dependencia https://requests.readthedocs.io/en/master/
import requests
response = requests.delete(
'https://api.buenvio.com/business/v1/orders/?order_id=1',
headers={
'Authorization': '<YOUR_API_TOKEN>'
}
)
print(str(response.text)
// Requiere usar la dependencia http://docs.guzzlephp.org/
$client = new GuzzleHttp\Client();
$response = $client->request(
'DELETE',
'https://api.buenvio.com/business/v1/orders/?order_id=1',
[
'headers' => [
'Authorization' => '<YOUR_API_TOKEN>'
]
]
);
$data = json_decode($response->getBody());
var_dump($data);
$response = wp_remote_request(
'https://api.buenvio.com/business/v1/orders/?order_id=1',
[
'method' => 'DELETE',
'headers' => [
'Authorization' => '<YOUR_API_TOKEN>'
]
]
);
if (is_wp_error($response)) {
$error_message = $response->get_error_message();
var_dump($error_message);
} else {
var_dump($response);
}
// Requiere usar la dependencia https://pub.dev/packages/http/
import 'package:http/http.dart' as http;
http.delete(
'https://api.buenvio.com/business/v1/orders/?order_id=1',
headers: {
'Authorization': '<YOUR_API_TOKEN>',
}
).then((response) {
print(response.body);
});
Parámetros de la Petición
order_id |
|
---|---|
Descripción | Número de la Orden. |
Tipo | integer |
Validaciones | required , integer |
Parámetros de la Respuesta
message |
|
---|---|
Descripción | Explica el resultado de la petición. |
Tipo | string |
ok |
|
Descripción | Indica si la petición ha sido procesada exitosamente. |
Tipo | bool |
Rastrear una Orden
Cuando una orden ya ha sido creada y depositada en Buenvío, podrás usar este endpoint para rastrear los paquetes contenidos en dicha orden y ver los distintos puntos por los que han pasado hasta llegar a su destino.
fetch(
'https://api.buenvio.com/business/v1/orders/track/?order_id=1',
{
method: 'GET',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
'Authorization': '<YOUR_API_TOKEN>'
},
mode: 'cors',
}).then(response => {
return response.json();
}).then(data => {
console.log(data);
});
# Requiere usar la dependencia https://requests.readthedocs.io/en/master/
import requests
response = requests.get(
'https://api.buenvio.com/business/v1/orders/track/?order_id=1',
headers={
'Authorization': '<YOUR_API_TOKEN>'
}
)
print(str(response.text)
// Requiere usar la dependencia http://docs.guzzlephp.org/
$client = new GuzzleHttp\Client();
$response = $client->request(
'GET',
'https://api.buenvio.com/business/v1/orders/track/?order_id=1',
[
'headers' => [
'Authorization' => '<YOUR_API_TOKEN>'
]
]
);
$data = json_decode($response->getBody());
var_dump($data);
$response = wp_remote_request(
'https://api.buenvio.com/business/v1/orders/track/?order_id=1',
[
'method' => 'GET',
'headers' => [
'Authorization' => '<YOUR_API_TOKEN>'
]
]
);
if (is_wp_error($response)) {
$error_message = $response->get_error_message();
var_dump($error_message);
} else {
var_dump($response);
}
// Requiere usar la dependencia https://pub.dev/packages/http/
import 'package:http/http.dart' as http;
http.get(
'https://api.buenvio.com/business/v1/orders/track/?order_id=1',
headers: {
'Authorization': '<YOUR_API_TOKEN>',
}
).then((response) {
print(response.body);
});
Parámetros de la Petición
order_id |
|
---|---|
Descripción | Número de la Orden. |
Tipo | integer |
Validaciones | required , integer |
Parámetros de la Respuesta
message |
|
---|---|
Descripción | Explica el resultado de la petición. |
Tipo | string |
ok |
|
Descripción | Indica si la petición ha sido procesada exitosamente. |
Tipo | bool |
order_tracks |
|
Descripción | Lista de los paquetes contenidos en la orden con sus respectivos rastreos. |
Tipo | array<Package> |
Tipos Especiales de Parámetros
Package
track |
|
---|---|
Descripción | Lista de los rastreos del paquete. |
Tipo | array<PackageTrack> |
package_identifier |
|
Descripción | Identificador único del paquete. |
Tipo | string |
status |
|
Descripción | Estado actual del paquete. |
Tipo | string |
Valores |
Pendiente a Recibir ,
Recibido en Origen ,
En Transito ,
Pendiente de Entrega ,
Entregado ,
Pendiente de Devolver ,
En Camino de Devolver ,
Listo para Devolver ,
Devuelto
|
PackageTrack
has_shipped |
|
---|---|
Descripción | Indica si el paquete ya ha sido despachado del sitio donde fue recibido. |
Tipo | bool |
received_date |
|
Descripción | Fecha en la que el paquete fue recibido. |
Tipo | string |
received_by |
|
Descripción | Chófer o Punto Afiliado de Buenvío que recibió el paquete. |
Tipo | string |