Obter credenciais
Como o lojista gera o client_id e o segredo em Integrações > Open Delivery, com escopos e modo de entrega.
Quem cria a credencial é o lojista, no painel do MeuPedido. Você, como integrador, recebe dele o client_id e o client_secret e configura no seu sistema. Esta página descreve o que ele vê, para que você possa orientá-lo, e o que fazer com o resultado.
Uma credencial por loja
A credencial pertence a uma loja e o token que ela gera só enxerga essa loja. Para integrar várias lojas, repita o processo em cada uma.
No painel do lojista
Abrir Integrações > Open Delivery
No painel do MeuPedido, com a loja selecionada, o lojista acessa Integrações e depois Open Delivery. A tela lista as credenciais já concedidas, com status e ações.
Conceder acesso
O botão Conceder acesso abre o formulário da nova credencial:
| Campo | O que preencher |
|---|---|
| Nome | Um rótulo para reconhecer o seu sistema na lista, por exemplo o nome do produto |
| Escopos | orders:read, orders:write, merchant:read, catalog:read. Marque só o que o seu sistema usa |
| Modo de entrega | POLLING, WEBHOOK ou BOTH. Na dúvida, POLLING |
| URL do webhook | Obrigatória em WEBHOOK e BOTH. Precisa ser HTTPS |
| Incluir pedidos de marketplace | Se marcado, pedidos que chegam à loja por marketplaces também entram no feed desta credencial |
Os escopos não podem ser editados depois. Se o seu sistema passar a precisar de um escopo novo, o lojista cria outra credencial.
Copiar o segredo
Ao salvar, o painel mostra:
- o
client_id, no formatomp_seguido de 24 caracteres hexadecimais; - o
client_secret, exibido uma única vez; - o segredo do webhook, também exibido uma única vez, se o modo de entrega incluir webhook;
- a URL base da API,
https://api.meupedido.io/open-delivery.
Se o segredo for perdido, não há como recuperá-lo: o lojista revoga a credencial e cria outra.
Entregar ao integrador
O lojista repassa client_id e client_secret para você por um canal seguro. Guarde o segredo em um cofre de segredos ou variável de ambiente, nunca em código, repositório ou log.
Escolhendo os escopos
Peça o mínimo. Uma integração típica que recebe pedidos e devolve status precisa de orders:read e orders:write. Adicione merchant:read se você exibe dados da loja, e catalog:read se sincroniza o cardápio.
| Se o seu sistema... | Escopos |
|---|---|
| Só lê pedidos (relatórios, BI, impressão) | orders:read |
| Recebe pedidos e avança o status (PDV, KDS, gestão de entregas) | orders:read, orders:write |
| Também mostra o cardápio ou dados da loja | mais catalog:read, merchant:read |
O que o lojista pode fazer depois
Na lista de credenciais, cada uma tem as ações:
- Pausar e retomar: com a credencial pausada, toda chamada responde
401 invalid_token. Os eventos continuam acumulando e ficam disponíveis quando ela é retomada. - Revogar: permanente. A credencial deixa de existir para a API.
- Renomear: só muda o rótulo.
- Ver eventos e tentativas: o histórico do feed e, no caso de webhook, cada tentativa de entrega com o resultado.
- Reenviar evento: força uma nova entrega por webhook.
- Limpar fila: reativa a URL do webhook depois de 20 falhas consecutivas.
- Rotacionar segredo do webhook: salvar a URL de novo gera um segredo novo, mostrado uma vez.
Se a sua integração parar de responder de repente com 401, a primeira pergunta ao lojista é se a credencial foi pausada ou revogada.
Verificando a credencial
Com o par em mãos, peça um token. Um 200 confirma que a credencial está ativa e mostra os escopos concedidos.
curl -X POST https://api.meupedido.io/open-delivery/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=mp_7f3a9c1e5b2d4a6f8e0c1b3d" \
-d "client_secret=$CLIENT_SECRET"{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXJjaGFudF9pZCI6IjZkMmY0YzhhLTFiM2UtNGY1YS05YzdkLTJlOGIwYTFmM2M1ZCIsImNsaWVudF9pZCI6Im1wXzdmM2E5YzFlNWIyZDRhNmY4ZTBjMWIzZCIsInNjb3BlIjoib3JkZXJzOnJlYWQgb3JkZXJzOndyaXRlIn0.Q1w7Xy0Yt3cJ5w8NnZK2p9Vb4Ls6Hd1Ff0Rr8Mm3Aa0",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXJjaGFudF9pZCI6IjZkMmY0YzhhLTFiM2UtNGY1YS05YzdkLTJlOGIwYTFmM2M1ZCIsImNsaWVudF9pZCI6Im1wXzdmM2E5YzFlNWIyZDRhNmY4ZTBjMWIzZCIsInNjb3BlIjoib3JkZXJzOnJlYWQgb3JkZXJzOndyaXRlIn0.Q1w7Xy0Yt3cJ5w8NnZK2p9Vb4Ls6Hd1Ff0Rr8Mm3Aa0",
"token_type": "bearer",
"tokenType": "bearer",
"expires_in": 3600,
"expiresIn": 3600,
"scope": "orders:read orders:write"
}Um 401 invalid_client significa credencial inexistente, segredo errado, pausada ou revogada.
Próximos passos
- Loja de teste: peça uma loja para desenvolver sem afetar pedidos reais.
- Autenticação: as três formas de enviar a credencial e como renovar o token.
- Primeira integração em 10 minutos: do token ao pedido confirmado.