Para utilização é indispensável a API_KEY do estabelecimento. Caso não tenha, faça a solicitação através do nosso suporte.
| 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 |
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 |
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 |
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) |
Para envio das informações utilize: content-type: form-data
GETintegration/get_company_details
COPY
| Nome | Tipo | Valor Esperado | Descrição |
|---|---|---|---|
| api_key | STRING/REQUIRED | Token de identificação do estabelecimento |
| 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 |
Consultar o valor da taxa de entrega para determinado endereço
GETintegration/get_delivery_fee
COPY
| 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 |
| 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 |
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
| 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.
|
| 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 |
Para verificação após criação de um pedido
GETintegration/get_status
COPY
| 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 |
| 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 |
POSTintegration/order_ready
COPY
| Nome | Tipo | Descrição |
|---|---|---|
| api_key | STRING/REQUIRED | Token de autorização do estabelecimento |
| identifier | STRING/REQUIRED | Código de identificação do pedido |
| 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 |
POSTintegration/dispatch
COPY
| Nome | Tipo | Descrição |
|---|---|---|
| api_key | STRING/REQUIRED | Token de autorização do estabelecimento |
| identifier | STRING/REQUIRED | Código de identificação do pedido |
| 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 |
POSTintegration/soft_cancel_order
COPY
| 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 |
| 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 |