Instruções

Para utilização é indispensável a API_KEY do estabelecimento. Caso não tenha, faça a solicitação através do nosso suporte.

Status dos pedidos

Nome Descrição
EM_PREPARACAO O pedido foi criado e está em preparação
PRONTO_PARA_RETIRADA O pedido está disponível para retirada
AGUARDANDO_ALOCACAO Estamos alocando esse pedido para um entregador
MOTOBOY_A_CAMINHO Um entregador foi alocado para esse pedido e está a caminho para coletar
MOTOBOY_CHEGOU_COLETA O entregador chegou no ponto de coleta para retirar o pedido
MOTOBOY_EM_ROTA O entregador está em rota
MOTOBOY_CHEGOU_DESTINO O entregador chegou no ponto de entrega e está aguardando para entregar
ENTREGUE O entregador entregou o pedido
FINALIZADA O estabelecimento conferiu o pedido e finalizou
CANCELADA O estabelecimento cancelou o pedido

WebHook

Funcionamento

Para habilitar o webhook e começar a receber notificações sobre as alterações de status dos seus pedidos, você deve informar a URL do seu endpoint na página de configurações acessível pela empresa.

Ao receber uma solicitação, você tem duas opções: retornar um status 200, caso em que o webhook continuará enviando requisições até que você confirme o recebimento pelo endpoint https://webhook.moovery.app/confirmed-webhook, ou retornar um status 201, o que indicará que a requisição foi recebida com sucesso e não será repetida.

Se optar por retornar o status 200 e enviar uma requisição de confirmação, utilize o seguinte endpoint:

POSThttps://webhook.moovery.app/confirmed-webhook COPY

Nome Tipo
webhook_id UUID/REQUIRED  

Recebimento

O seu endpoint deve ser do tipo GET, você irá receber os parametros pela URL. Parametros que serão enviados:

Nome Tipo
comanda INT  
entrega_id (identifier) INT  
status STRING  
webhook_id UUID  
confirmed_url STRING  
link_rastreio STRING  
telefone_cliente STRING  

End-Point para vincular webhook a empresa

Para envio das informações utilize: content-type: form-data

Para vincular um webhook a uma empresa, é necessário enviar todos os campos obrigatórios, incluindo o campo vincular com o valor 1. Isso efetuará a vinculação.

Se for necessário interromper o envio do webhook, envie o mesmo campo vincular com o valor 2. Dessa forma, o webhook será desvinculado da empresa e os envios serão interrompidos.

POSTintegration/vincular_webhook COPY

Nome Tipo
api_key STRING  
url_webhook STRING  
vincular ENUM (1,2)  

End-Points

Recuperar detalhes de empresa

Para envio das informações utilize: content-type: form-data

GETintegration/get_company_details COPY

Parâmetros

Nome Tipo Valor Esperado Descrição
api_key STRING/REQUIRED   Token de identificação do estabelecimento

Retorno

Validação Tipo Retorno Status Code
api_key não enviada JSON {"success":false,"message":"Envie uma chave válida"} 422
api_key Inválida JSON {"success":false,"message":"Chave inválida, empresa não encontrada"} 422
Taxa de entrega calculada com sucesso! JSON {"success":true,"message":"Empresa encontrada", empresa: {id: xx, nome: "xx", "cnpj": "xx", "endereco": "xx", "url_webhook": xx, "cidade": "xx", "estado": "xx", "status": "xx"}} 200

Retorna Valor

Consultar o valor da taxa de entrega para determinado endereço

GETintegration/get_delivery_fee COPY

Parâmetros

Nome Tipo Valor Esperado Descrição
api_key STRING/REQUIRED   Token de autorização do estabelecimento
street STRING/REQUIRED   Rua do destinatário
number STRING/REQUIRED   Número do destinatário
neighborhood STRING/REQUIRED   Bairro do destinatário
city STRING/REQUIRED   Cidade do destinatário
state STRING/REQUIRED   UF do destinatário
zip_code STRING/REQUIRED   CEP do destinatário
method ENUM/REQUIRED DINHEIRO,ONLINE,CREDITO ou DEBITO Forma de pagamento

Retorno

Validação Tipo Retorno Status Code
Localidade não atendida JSON {"success":false,"msg":"Localidade não atendida"} 422
Endereço não encontrado JSON {"success":false,"msg":"Endereço não encontrado"} 422
api_key não enviada JSON {"success":false,"msg":"Envie uma chave: api_key"} 422
api_key Inválida JSON {"success":false,"msg":"Por favor, envie uma chave válida"} 422
Campos incompletos JSON {"success":false,"msg":"Envie todos os campos obrigatórios: ..."} 422
Taxa de entrega calculada com sucesso! JSON {"success":true,"msg":"Valor calculado com sucesso", "lat_destination": X, "lng_destination": X, "distance": X, "delivery_fee": X} 200

Criação de pedido

Como realizar a criação de pedido para um determinado ponto

Para envio das informações utilize: content-type: form-data

POSTintegration/new_request COPY

Parâmetros

Nome Tipo Valor Esperado Descrição
api_key STRING/REQUIRED   Token de autorização do estabelecimento
ifood_id INT   Identificador do pedido (Se o pedido for do ifood)
ifood_reference STRING   Referencia do pedido (Se o pedido for do ifood)
internal_code STRING/REQUIRED   Número de identificação interno
name STRING/REQUIRED   Nome do destinatário
phone STRING (99) 99999-9999 Telefone do destinatário
value DECIMAL/REQUIRED 0.00 Valor total do pedido
receive DECIMAL/REQUIRED 0.00 Valor pago
method STRING/REQUIRED DINHEIRO,ONLINE,CREDITO ou DEBITO Forma de pagamento
lat_destination STRING/REQUIRED   Latitude do destinatário
lng_destination STRING/REQUIRED   Longitude do destinatário
complement STRING   Complemento do endereço do destinatário
instruction STRING   Instruções de entrega
from STRING   Origem do pedido. EX: IFOOD,SOFTCOM
tipo_delivery STRING IMMEDIATE, SCHEDULED Tipo de entrega
delivery_date_time_start STRING   Se o pedido for agendado, data e hora de início da entrega (enviar em UTC). A API converte para o fuso America/Recife e subtrai 1h para preparo antes de solicitar o motoboy.

Retorno

Validação Tipo Retorno Status Code
Pedido não foi criado JSON {"success":false,"msg":"Solicitação não foi criada"} 422
Pedido não foi criado JSON {"success":false,"msg":"Saldo indisponível"} 422
Coordenadas inválidas JSON {"success":false,"msg":"latitude e longitude inválidas"} 422
api_key não enviada JSON {"success":false,"msg":"Envie uma chave: api_key"} 422
api_key Inválida JSON {"success":false,"msg":"Por favor, envie uma chave válida"} 422
Campos incompletos JSON {"success":false,"msg":"Por favor, envie todos os campos: ..."} 422
Pedido criado JSON {"success":true,"msg":"Solicitação criada com sucesso", "identifier":"6DSAHf1odz", "tracking": "https://rastreio.moovery.com.br/mapa/6DSAHf1odz", "delivery_fee": 8} 200

Retorna Status do pedido

Para verificação após criação de um pedido

GETintegration/get_status COPY

Parâmetros

Nome Tipo Valor Esperado Descrição
api_key STRING/REQUIRED   Token de autorização do estabelecimento
identifier STRING/REQUIRED   Código de identificação do pedido

Retorno

Validação Tipo Retorno Status Code
Pedido não encontrado JSON {"success":false,"msg":"Pedido não encontrado"} 422
api_key não enviada JSON {"success":false,"msg":"Envie uma chave: api_key"} 422
api_key Inválida JSON {"success":false,"msg":"Por favor, envie uma chave válida"} 422
Campos incompletos JSON {"success":false,"msg":"Por favor, envie todos os campos: ..."} 422
Pedido encontrado JSON {"success":true,"msg":"request found successfully", "identifier":"6DSAHf1odz", "tracking": "https://rastreio.moovery.com.br/mapa/6DSAHf1odz", "status": "AGUARDANDO_ALOCACAO"} 200

Marcar entrega como pronta

POSTintegration/order_ready COPY

Parâmetros

Nome Tipo Descrição
api_key STRING/REQUIRED Token de autorização do estabelecimento
identifier STRING/REQUIRED Código de identificação do pedido

Retorno

Validação Tipo Retorno Status Code
Campos vazios JSON {"success":false, "message":"Campo api_key/identifier não pode ser vazio", "status":422, "timestamp": Y-m-d H:i:s} 422
api_key Inválida JSON {"success":false,"message":"Chave de acesso inválida", "status":422, "timestamp": Y-m-d H:i:s} 422
Internal code inválido JSON {"success":false,"message":"Internal code não encontrado", "status":422, "timestamp": Y-m-d H:i:s} 422
Pedido já pronto JSON {"success":false,"message":"Pedido já marcado como pronto", "status":422, "timestamp": Y-m-d H:i:s} 422
Entrega marcada pronto JSON {"success": {,"message":"Entrega marcada como pronto com sucesso!","entregasEmPreparacao": [], "entregaProntaCandidata": null,, "code": 200}} 200

Despachar entrega

POSTintegration/dispatch COPY

Parâmetros

Nome Tipo Descrição
api_key STRING/REQUIRED Token de autorização do estabelecimento
identifier STRING/REQUIRED Código de identificação do pedido

Retorno

Validação Tipo Retorno Status Code
Campos vazios JSON {"success":false, "message":"Campo api_key/identifier não pode ser vazio", "status":422, "timestamp": Y-m-d H:i:s} 422
api_key Inválida JSON {"success":false,"message":"Chave de acesso inválida", "status":422, "timestamp": Y-m-d H:i:s} 422
Internal code inválido JSON {"success":false,"message":"Internal code não encontrado", "status":422, "timestamp": Y-m-d H:i:s} 422
Motoboy em rota JSON {"success":false,"message":"Motoboy já está em rota", "status":422, "timestamp": Y-m-d H:i:s} 422
Entrega sem motoboy JSON {"success":false,"message":"Entrega sem motoboy", "status":422, "timestamp": Y-m-d H:i:s} 422
Entrega/rota atualizada JSON {"success":true,"message":"Motoboy iniciou a rota","identifier" => [CÓDIGO DE IDENTIFICAÇÃO], "deliverieStatus" => "MOTOBOY_EM_ROTA", "status":200, "timestamp": Y-m-d H:i:s} 200

Cancelar entrega

POSTintegration/soft_cancel_order COPY

Parâmetros

Nome Tipo Descrição
api_key STRING/REQUIRED Token de autorização do estabelecimento
identifier STRING/REQUIRED Código de identificação do pedido
reason STRING/REQUIRED Motivo do cancelamento

Retorno

Validação Tipo Retorno Status Code
Campos vazios JSON {"success":false, "message":"Campo api_key/identifier/reason não pode ser vazio", "status":422, "timestamp": Y-m-d H:i:s} 422
api_key Inválida JSON {"success":false,"message":"Chave de acesso inválida", "status":422, "timestamp": Y-m-d H:i:s} 422
Entrega cancelada com sucesso JSON {"success":true,"message":"Aviso de cancelamento emitido com sucesso"} 200