Atenção
O pedido é enviado para alocação imediatamente após a requisição.
Requisição
Substitua as variáveis e use esta consulta:
mutation {
createOrder(input: {
paymentMethod: ID_CENTRO_CUSTO
pickups: [{
address: {
address: "ENDERECO_COLETA"
complement: "COMPLEMENTO_COLETA"
}
instructions: "INSTRUCOES_COLETA"
}]
packages: [{
pickupIndex: 0
recipient: {
name: "NOME_DESTINATARIO_1",
phone: "FONE_DESTINATARIO_1"
}
address: {
address: "ENDERECO_ENTREGA_1"
complement: "COMPLEMENTO_ENTREGA_1"
}
dimensions: {
width: LARGURA_1
height: ALTURA_1
length: COMPRIMENTO_1
weight: PESO_1
}
instructions: "INSTRUCOES_ENTREGA_1"
},
{
pickupIndex: 0
recipient: {
name: "NOME_DESTINATARIO_2",
phone: "FONE_DESTINATARIO_2"
}
address: {
address: "ENDERECO_ENTREGA_2"
complement: "COMPLEMENTO_ENTREGA_2"
}
dimensions: {
width: LARGURA_2
height: ALTURA_2
length: COMPRIMENTO_2
weight: PESO_2
}
instructions: "INSTRUCOES_ENTREGA_2"
}]
}) {
success
orders {
pk
pricing {
totalCm
}
packages {
pickupWaypoint {
index
eta
addressDisplay
legDistance
}
waypoint {
index
eta
addressDisplay
legDistance
}
}
}
errors {
field
message
}
}
}
Argumentos
Nome | Tipo | Descrição | Exemplo |
---|---|---|---|
paymentMethod | Int | Identificador do centro de custo. | 4657596 |
pickups | Pickup | Ponto de coleta. | |
packages | List(Package) | Lista de pontos de entrega. |
Identificador do centro de custo
Veja aqui como obter o id.
Pickup
Atenção
A API só aceita um único ponto de coleta.
Nome | Tipo | Descrição | Exemplo |
---|---|---|---|
address | Address | Endereço de coleta. | |
instructions | String | Instruções de coleta. | "Retirar pacote com Jorge" |
Address
Atenção
Sempre informe o endereço mais completo possível. Inclua rua, número, bairro, cidade, estado, CEP e complemento. Mais informações aqui.
Nome | Tipo | Descrição | Exemplo |
---|---|---|---|
address | String | Endereço completo. | "Av. Paulista, 100 - Bela Vista, São Paulo - SP, Brasil" |
complement | String | Complemento do endereço. | "Apto 302" |
Package
Atenção
A API não bloqueia, mas não é recomendado criar um pedido com mais de 20 pontos de entrega.
Nome | Tipo | Descrição | Exemplo |
---|---|---|---|
pickupIndex | Int | Campo fixo. Sempre enviar 0. | 0 |
recipient | Recipient | Destinatário. | |
address | Address | Ponto de entrega. | |
dimensions | Dimensions | Dimensões do pacote. | |
instructions | String | Instruções de entrega. | "Entregar pacote na portaria." |
Recipient
Nome | Tipo | Descrição | Exemplo |
---|---|---|---|
name | String | Nome. | "Maria Júlia" |
email | String | E-mail. | "[email protected]" |
phone | String | Número celular. | "31996412605" |
Dimensions
Atenção
Apesar de a API não bloquear as requisições, a soma das dimensões dos pacotes do pedido deve respeitar as seguintes limitações para caber no baú do motoboy:
- Altura máxima: 32 cm
- Largura máxima: 44 cm
- Comprimento máximo: 42 cm
- Peso máximo: 20 kg
Nome | Tipo | Descrição | Exemplo |
---|---|---|---|
width | Int | Largura do pacote em centímetros. | 10 |
height | Int | Altura do pacote em centímetros. | 15 |
length | Int | Comprimento do pacote em centímetros. | 20 |
weight | Int | Peso do pacote em gramas. | 100 |
Exemplo
Pedido com um único ponto de entrega
mutation {
createOrder(
input: {
paymentMethod: 4665540
pickups: [
{
address: {
address: "Alameda Santos, 2400 - Jardim Paulista, São Paulo - SP, Brasil"
complement: "8o andar"
}
instructions: "Retirar pacote na portaria."
}
]
packages: [
{
pickupIndex: 0
recipient: { name: "Engenharia Reversa Corp", phone: "1122819603" }
address: {
address: "Alameda Santos, 2444 - Jardim Paulista, São Paulo - SP, Brasil"
complement: "Sala 1"
}
dimensions: { width: 10, height: 10, length: 10, weight: 10 }
instructions: "Entregar pacote."
}
]
}
) {
success
orders {
pk
pricing {
totalCm
}
packages {
pickupWaypoint {
index
eta
addressDisplay
legDistance
}
waypoint {
index
eta
addressDisplay
legDistance
}
}
}
errors {
field
message
}
}
}
Pedido com dois pontos de entrega
mutation {
createOrder(
input: {
paymentMethod: 4665540
pickups: [
{
address: {
address: "R. Curupaiti, 513 - Padre Eustáquio, Belo Horizonte - MG, 30730-130"
complement: "Apto 302"
}
instructions: "Retirar pacote com Marcela."
}
]
packages: [
{
pickupIndex: 0
recipient: { name: "Porteiro", phone: "1122819603" }
address: {
address: "R. Mantena, 290 - Ouro Preto, Belo Horizonte - MG, 31310-430"
complement: "Sala 1"
}
dimensions: { width: 10, height: 10, length: 10, weight: 10 }
instructions: "Entregar pacote na portaria."
}
{
pickupIndex: 0
recipient: { name: "Maria", phone: "1122819603" }
address: {
address: "R. Maj. Lage, 84 - Ouro Preto, Belo Horizonte - MG, 31310-200"
complement: "Sem."
}
dimensions: { width: 10, height: 10, length: 10, weight: 10 }
instructions: "Entregar pacote para Maria."
}
]
}
) {
success
orders {
pk
pricing {
totalCm
}
packages {
pickupWaypoint {
index
eta
addressDisplay
legDistance
}
waypoint {
index
eta
addressDisplay
legDistance
}
}
}
errors {
field
message
}
}
}
Resposta
Campos
Nome | Tipo | Descrição |
---|---|---|
success | Bool | Informa se o pedido foi criado com sucesso. |
pricing.totalCm | Float | Preço da corrida. |
orders | List<Order> | Detalhes do pedido criado. |
errors | List<Error> | Descrição dos erros. |
Order
Nome | Tipo | Descrição |
---|---|---|
pk | Int | Identificador interno do pedido. |
packages | List<Package> | Informações sobre os pontos da corrida. |
Package
Waypoint
Nome | Tipo | Descrição |
---|---|---|
index | Int | Ordem em que o ponto será visitado na rota. |
eta | Long | Tempo estimado de chegada ao ponto. |
addressDisplay | String | Endereço do ponto. |
legDistance | Int | Distância em metros do ponto de coleta até este ponto. |
Error
Nome | Tipo | Descrição |
---|---|---|
field | String | Nome do argumento com erro. |
message | String | Mensagem de erro. |
Exemplos
Sucesso
Pedido com um único ponto de entrega
{
"data":{
"createOrder":{
"success":true,
"orders":[
{
"pk":47984141,
"pricing":{
"totalCm":"14.90"
},
"packages":[
{
"pickupWaypoint":{
"index":0,
"eta":1708021555,
"addressDisplay": "Rua Curupaiti, 513 - Padre Eustáquio, Belo Horizonte - MG, 30730-130, Brasil, Padre Eustáquio, Belo Horizonte, MG, 30730130",
"legDistance":0
},
"waypoint":{
"index":1,
"eta":1708022261,
"addressDisplay": "Rua Odilon Braga, 349 - Anchieta, Belo Horizonte - MG, 30310-390, Brasil - Apto 401, Anchieta, Belo Horizonte, MG, 30310390",
"legDistance":50
}
}
]
}
],
"errors":[
]
}
}
}
Pedido com dois pontos de entrega
{
"data":{
"createOrder":{
"success":true,
"orders":[
{
"pk":48059670,
"pricing":{
"totalCm":"23.59"
},
"packages":[
{
"pickupWaypoint":{
"index":0,
"eta":1708949529,
"addressDisplay": "Rua Curupaiti, 513 - Padre Eustáquio, Belo Horizonte - MG, 30730-130, Brasil, Padre Eustáquio, Belo Horizonte, MG, 30730130",
"legDistance":0
},
"waypoint":{
"index":1,
"eta":1708951145,
"addressDisplay": "Rua Odilon Braga, 500 - Anchieta, Belo Horizonte - MG, 30310-390, Brasil - Apto 401, Anchieta, Belo Horizonte, MG, 30310390",
"legDistance":7108
}
},
{
"pickupWaypoint":{
"index":0,
"eta":1708949529,
"addressDisplay": "Rua Curupaiti, 513 - Padre Eustáquio, Belo Horizonte - MG, 30730-130, Brasil, Padre Eustáquio, Belo Horizonte, MG, 30730130",
"legDistance":0
},
"waypoint":{
"index":2,
"eta":1708951920,
"addressDisplay": "Rua Odilon Braga, 700 - Anchieta, Belo Horizonte - MG, 30310-390, Brasil - Apto 401, Anchieta, Belo Horizonte, MG, 30310390",
"legDistance":596
}
}
]
}
],
"errors":[
]
}
}
}
Erros
Centro de custo não informado
{
"data":{
"createOrder":{
"success":false,
"orders":[
],
"errors":[
{
"field":null,
"message":"O produto Presto chegou ao fim. Você pode falar com a gente para começar a usar outro serviço da Loggi."
}
]
}
}
}
APIKey ou email inválidos
{
"errors": [
{
"message": "You must be logged in",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"createOrder"
]
}
],
"data": {
"createOrder": null
}
}
Erro genérico
Esta mensagem de erro é retornada em vários casos:
- centro de custo não existe;
- centro de custo não tem limite suficiente;
- rota com cidades diferentes.
{
"data":{
"createOrder":{
"success":false,
"orders":[
],
"errors":[
{
"field":null,
"message":"Pre-authorization failed."
}
]
}
}
}