PT EN
Entrar Cadastrar →
Modelo M · Migração

Modelo M

O Modelo M reproduz o contrato de integração que o seu sistema já utiliza hoje, traduzindo-o para a plataforma Entregas Expressas. Na maioria dos casos a migração é uma troca de endereço base e de credencial — o restante do seu código permanece como está.

Baixar coleção do Postman Importe e preencha base_url e api_key — os 34 endpoints já vêm montados, com exemplos de corpo.
Este modelo existe para quem já tem essa integração pronta. Se você está começando agora, use a API Completa ou o OpenDelivery — são as integrações nativas da plataforma, com sandbox e suporte dedicados.

Endereço base

O protocolo usa dois endereços base — e o seu sistema provavelmente já tem os dois configurados hoje, cada um numa variável. Troque o valor delas por:

BaseEndereçoUsada por
Principal https://entregasexpressas.com.br/api/m Todos os endpoints, exceto o da linha abaixo
Secundária https://entregasexpressas.com.br/api/m/v1 Apenas GET request/{id}

O que vem depois da base continua idêntico — {base}/abrirSolicitacao, {base}/solicitacao e assim por diante. Só o valor da variável muda; o código que monta as chamadas fica como está.

O m identifica o modelo. Outros modelos de compatibilidade usam a mesma forma com a letra deles, e por isso os endereços não se confundem entre si nem com a nossa API própria (/api/v1).

Por que são duas

A base secundária é uma geração mais nova do protocolo, que passou a conviver com a antiga em vez de substituí-la. Ela tem convenções próprias:

Base principalBase secundária
Campos Português — id_mch, condutor, paradas Inglês — request_id, driver, stops
Sucesso { "success": true, "response": … } O objeto direto, sem envelope
Erro { "success": false, "errors": [ … ] } { "error": "…" }

Ou seja: GET request/{id} devolve os mesmos dados de GET solicitacao, com outros nomes e outro formato de erro. Use o que o seu sistema já consome — os dois continuam disponíveis.

Coleção do Postman

A coleção é gerada a partir dos endpoints publicados, então não fica desatualizada. Ela traz duas variáveis:

VariávelValor
base_urlJá vem preenchida com https://entregasexpressas.com.br
api_keyVazia — cole a chave fornecida pela central

A chave fica na variável e não escrita nos cabeçalhos: coleção exportada com credencial dentro acaba em repositório público.

Autenticação

Envie a sua chave no cabeçalho api-key em toda requisição. A chave é fornecida pela central e é ela que identifica de quem é a operação.

curl https://entregasexpressas.com.br/api/m/solicitacaoStatus?id_mch=1234 \
  --header 'api-key: SUA_CHAVE'

Se o seu sistema também envia autenticação HTTP Basic, pode continuar enviando: o cabeçalho é aceito e não precisa ser removido do seu código.

Escopo da chave

Existem dois tipos de chave, e é a central quem decide qual você recebe:

TipoAlcance
Central Todos os recursos da praça — solicitações, empresas e entregadores.
Empresa Apenas os dados da própria empresa: suas solicitações, seu cadastro, seu saldo e seus webhooks. Os demais endpoints respondem 403.
Guarde a chave no servidor. Ela concede acesso aos recursos do seu escopo e não deve aparecer no lado do cliente da aplicação.

Respostas e erros

Todas as respostas são JSON. Sucesso:

{ "success": true, "response": { ... } }

Erro de negócio, com código para o seu sistema ramificar:

{ "success": false, "errors": [ { "code": 25, "message": "Solicitacao não encontrada." } ] }

Os códigos são os mesmos que o seu sistema já trata:

CódigoSignificado
1Credencial inválida
2Atributo obrigatório ausente
5 / 6Tipo de identificação inválido / identificação não encontrada
24Formato da entrada incorreto
25Solicitação não encontrada
27Solicitação não finalizada
56Entregador não encontrado
75 / 76Programada inexistente / não está aguardando disparo
97Solicitação foi agrupada (traz solicitacao_agrupadora_id)
101 / 119Webhook duplicado / id de webhook inválido

Solicitação

MétodoEndpoint
POST/abrirSolicitacaoCria a solicitação. Com data e hora, cria programada.
GET/estimarSolicitacaoEstimativa de valor, distância e tempo. Pontos na query, com sufixo _partida e _desejado.
GET/solicitacaoLista ou detalhe. Janela máxima de 30 dias.
GET/solicitacaoStatusSó a situação atual.
GET/posicaoCondutorLatitude e longitude do entregador.
GET/reciboEntregaDisponível com a solicitação finalizada.
GET/obterLinkRastreio/{id}Link de acompanhamento e código de confirmação.
GET/consultarProgramadaProgramadas aguardando disparo.
POST/cancelar
POST/cancelarProgramadaSó antes do disparo.
GET/api/m/v1/request/{id}Detalhes com campos em inglês.

Abrindo uma solicitação

curl --request POST \
  https://entregasexpressas.com.br/api/m/abrirSolicitacao \
  --header 'api-key: SUA_CHAVE' \
  --header 'Content-Type: application/json' \
  --data '{
    "forma_pagamento": "F",
    "empresa_id": 845,
    "partida": {
      "endereco": "Rua Evandro Câmara, 717",
      "bairro": "Monte Carmelo",
      "cidade": "Montes Claros",
      "estado": "MG",
      "lat": "-16.7176723",
      "lng": "-43.8341584"
    },
    "paradas": [
      {
        "endereco_parada": "Aeroporto de Montes Claros",
        "bairro_parada": "Jaraguá",
        "cidade_parada": "Montes Claros",
        "estado_parada": "MG",
        "lat_parada": "-16.7049531",
        "lng_parada": "-43.8199862",
        "id_externo": "714",
        "nome_cliente_parada": "Ralph Wisozk",
        "telefone_cliente_parada": "(38) 99999-9999",
        "observacao_parada": "Entregar na portaria",
        "valor_cobrar": 104.18
      }
    ],
    "retorno": false
  }'

Resposta:

{ "success": true, "response": { "id_mch": "1234", "public_id": "A7K2" } }
public_id é o número do pedido como ele aparece para as pessoas na plataforma: é o que mostrar no seu sistema. Toda consulta aceita o id_mch ou o public_id.
Para direcionar a solicitação a um entregador específico, envie o bloco condutor com tipo_identificacao e identificacao. O entregador é identificado por id (I), CPF (C), telefone (T) ou placa (P).

Empresa

MétodoEndpoint
GET/empresa
POST/cadastrarEmpresa
PUT/atualizarEmpresa/{id}
PUT/atualizarEmpresas
GET/listarAreasAtuacaoEmpresa
POST/saldoCreditosEmpresa
POST/recarregarCreditosEmpresa
POST/sacarCreditosEmpresa

Nos endpoints de crédito, a empresa é identificada pelo bloco empresa: id (I), CPF (F), CNPJ (J), telefone (T) ou número de contrato (C).

Condutor

MétodoEndpoint
GET/condutor
POST/atualizarCondutor/{id}
PUT/atualizarCondutores
POST/obterDocumentosCadastroCondutor
POST/obterDocumentosCondutor
POST/documentoCondutor/{id}
POST/saldoCreditosCondutor
POST/recarregarCreditosCondutor
POST/sacarCreditosCondutor

O envio de documento é multipart/form-data com os campos tipo e foto. Consulte os tipos aceitos em /obterDocumentosCadastroCondutor.

Webhook

Cadastre uma URL e receba um evento a cada mudança de situação da solicitação e a cada entrega confirmada.

MétodoEndpoint
POST/cadastrarWebhook
GET/listarWebhook
PUT/atualizarWebhook/{id}
DELETE/deletarWebhook/{id}

Corpo enviado para a sua URL:

{
  "datetime": "2026-08-26T13:20:05Z",
  "event_id": "550e8400-e29b-41d4-a716-446655440000",
  "request_id": 1234,
  "status_code": "A",
  "status_label": "ACCEPTED",
  "stop_id": "abc123",
  "links": {
    "request": "https://entregasexpressas.com.br/api/m/v1/request/1234"
  }
}

stop_id aparece somente no evento de entrega confirmada (STOP_FINISHED). Use event_id para descartar reenvios: em caso de falha, a entrega é repetida.

Os cabeçalhos Signature-V2 e Signature trazem o HMAC-SHA-512 do corpo, assinado com a sua chave de API.

O webhook de posição ainda não está disponível. Cadastrar tipo: "posicao" retorna erro, em vez de aceitar e nunca enviar eventos.

Situações da solicitação

ConsultaWebhookSignificado
RWAITING_PAYMENTAguardando pagamento
LWAITING_RELEASEProgramada ou em preparo
DDISTRIBUTINGBuscando entregador
AACCEPTEDAceita — inclui a caminho e no local de coleta
—ARRIVED_AT_LOCATIONEntregador chegou ao local
EIN_PROGRESSColetada, em andamento
—STOP_FINISHEDUma entrega foi confirmada
FFINISHEDFinalizada
CCANCELLEDCancelada
NNOT_SERVEDNão atendida

A chegada ao local não é uma situação própria na consulta: ela é uma etapa de A, e só o webhook a distingue.

Formas de pagamento

CódigoForma
FFaturado
RCarteira de créditos
XPix
C / BCrédito / débito
DDinheiro
P / HPicPay / WhatsApp

O que for pago na entrega é registrado na parada e informado ao entregador. Ao filtrar solicitações por dinheiro, débito ou crédito, o resultado traz todas as pagas na entrega, sem separar por forma.

Diferenças de comportamento

Dúvidas sobre a migração? Fale com a central responsável pela sua integração.