A integração é por merchant: cada vendedor cria seu próprio app no Melhor
Envio e conecta com as credenciais dele. A FastPay não compartilha uma conta
única entre lojistas.
Como funciona
- O vendedor cria um app no Melhor Envio, cadastra Client ID/Secret no painel da FastPay e completa o fluxo OAuth.
- No link de pagamento configurado com modo de frete checkout, o checkout
chama
POST /v1/payment-links/:id/freight/quotecom o CEP do comprador. - O comprador escolhe uma das opções e envia o
freightServiceIdao criar a cobrança. - A FastPay re-cota o frete no servidor com o mesmo
freightServiceIde gravafreight_amount+freight_detailsna cobrança. Se ofreightServiceIdnão estiver mais disponível ou tiver sido manipulado, a cobrança é rejeitada.
Pré-requisitos
- Conta no Melhor Envio (sandbox ou produção).
- Produtos físicos com largura, altura, comprimento e peso preenchidos. Sem dimensões cadastradas, a cotação falha.
- Link de pagamento em BRL. Cálculo de frete não está disponível em outras moedas.
Etapa 1 — Criar o app no Melhor Envio
- Acesse o painel de desenvolvedor do Melhor Envio:
- Sandbox:
https://sandbox.melhorenvio.com.br/painel/gerenciar/tokens - Produção:
https://melhorenvio.com.br/painel/gerenciar/tokens
- Sandbox:
- Crie um novo app e informe a URL de callback exibida no painel da
FastPay (formato:
https://<api-fastpay>/v1/melhor-envio/oauth/callback). - Marque o escopo
shipping-calculate— é o único necessário para cotar fretes. - Salve o app e copie o Client ID e o Client Secret gerados.
Etapa 2 — Conectar no painel da FastPay
- No painel, acesse Integrações → Melhor Envio.
- Cole o Client ID e o Client Secret do app criado e salve.
- Clique em Conectar — você será redirecionado ao Melhor Envio para autorizar a FastPay a calcular fretes em seu nome.
- Após autorizar, o Melhor Envio redireciona de volta ao painel e a integração fica com status ativa.
hasActiveFreightTool do merchant fica true,
desbloqueando a opção Cálculo no checkout ao criar links de pagamento com
produtos físicos.
Etapa 3 — Configurar CEP de origem e transportadoras
Após conectar, configure:- CEP de origem (
originPostalCode): de onde os pedidos saem. Aceita00000-000ou00000000. - Serviços habilitados (
enabledServices): lista de IDs de serviços do Melhor Envio (Correios PAC, SEDEX, Jadlog, etc.) que aparecerão no checkout. Apenas os IDs nesta lista são oferecidos ao comprador, mesmo que o Melhor Envio retorne outros.
GET /v1/melhor-envio/services para listar todos os serviços disponíveis
para a conta conectada e escolher quais habilitar.
Cotação no checkout
O endpoint público abaixo é chamado pelo checkout do link de pagamento (não exige autenticação — é acessado pelo comprador):
Exemplo:
enabledServices aparecem aqui. Resultados são
cacheados por 15 minutos por combinação (link, CEP, itens).
Restrições
- O link precisa estar no modo de frete
checkout. Outros modos (frete fixo, retirada, gratuito) não usam este endpoint. - O link precisa estar em BRL. Em outras moedas a resposta é
422. - O link precisa ter pelo menos um produto físico com dimensões e peso.
Criando a cobrança com frete
Ao criar a cobrança viaPOST /v1/payment-links/:id/charge, envie apenas
o freightServiceId escolhido pelo comprador. O servidor recalcula o preço.
freight_amount— valor do frete em BRL.freight_details— objeto comprovider,serviceId,serviceName,company,priceedeliveryTime.
/freight/quote, e o freightServiceId
escolhido é a única referência que trafega de volta.
Verificar disponibilidade
Antes de oferecer o modo de frete no checkout, o painel verifica se o merchant tem alguma ferramenta de frete ativa (hoje apenas Melhor Envio):hasFreightTool fica true assim que uma conexão Melhor Envio do merchant
está com status active.
Desconectar
inactive. Links já criados continuam funcionando até
serem editados, mas novos cálculos de frete falham até que uma nova conexão
seja estabelecida.
Endpoints
Consulte o API Reference para os schemas completos.