TakeatStore / Guia do desafio Developers Portal
DESAFIO TAKEAT STORE

Do primeiro teste à sua
aplicação na Store.

Comece conectando Claude ou Codex ao MCP da Takeat. Depois, acesse o restaurante de testes, experimente a API e conecte seu app com OAuth.

Os prints mostram o Developers Portal local. Clique em uma imagem para abrir em tamanho original.

50 instalações ou mais

na Takeat Store até

O desafio vai premiar quem alcançar essa meta.

01 Conecte a IA02 Acesse03 Teste a API04 Teste OAuth05 Publique
01

PRIMEIRO PASSO

Conecte Claude/Codex ao MCP da Takeat

Antes de criar ou adicionar uma chave de API, conecte sua ferramenta de IA ao MCP da Takeat. Essa conexão permite que Claude ou Codex consultem a documentação oficial para ajudar você a construir o app do desafio.

Endereço do MCP da Takeat · Streamable HTTP
https://public-api.takeat.app/mcp
  1. Adicione a conexão no Claude ou no Codex.

    Nas configurações de conectores/MCP da sua ferramenta, cadastre um servidor remoto chamado Takeat com o endereço acima. Escolha Streamable HTTP quando o aplicativo pedir o transporte.

  2. Conclua o login pelo navegador.

    Autentique a conexão com sua conta Takeat e revise o restaurante, as marcas e as permissões. Se ainda não recebeu acesso à conta de testes, solicite o restaurante a Matheus antes de concluir a autorização.

  3. Comece uma nova conversa com a IA.

    Confirme que as ferramentas Takeat estão disponíveis e peça à IA para consultar os guias e contratos da API antes de implementar sua integração. Use o pedido abaixo como ponto de partida.

Pedido inicial para Claude/Codex
Quero criar um app para o desafio da Takeat Store.
Use o MCP da Takeat para consultar a documentação oficial
e os contratos da API antes de sugerir a implementação.
Explique quais rotas, escopos e fluxo de autenticação
meu app precisa. Por enquanto, consulte apenas a documentação.

O login OAuth conecta a IA sem uma chave REST. A autenticação do app será configurada nas próximas etapas. Credenciais MCP e chaves REST têm finalidades diferentes.

Ver instruções e prints para Claude e Codex
02

ACESSO PARA OS TESTES

Acesse um restaurante de testes

Solicite um restaurante a Matheus Lenke, Tech Lead IA, pelo WhatsApp. Aguarde a indicação da conta e a liberação do acesso antes de começar.

  1. Solicite o acesso.

    Informe seu nome, e-mail de employee e o app que está construindo. Use o modelo abaixo.

  2. Abra a conta liberada no painel interno.

    Entre com seu acesso de employee, localize o restaurante indicado e abra sua edição. Acesse a área Chaves de API.

  3. Clique em “Entrar como restaurante”.

    O painel abre o Developers Portal com uma sessão desse restaurante. Permita a abertura da nova aba e confira o nome da conta antes de gerar a chave.

Employee e restaurante são sessões diferentes. Entrar no portal com o e-mail de employee abre os seus apps OAuth. Para criar uma chave REST, entre como o restaurante de testes. Se você receber um login próprio dessa conta, também pode usá-lo diretamente no portal.

Tela de login do Developers Portal, com os campos E-mail e Senha vazios e o botão Entrar no portal.
Tela 01 · LoginUse as credenciais da sessão desejada: employee para seus apps ou restaurante para as chaves REST.

Mensagem para solicitar acesso

Substitua os campos entre colchetes.
03

SESSÃO DO RESTAURANTE

Gere uma chave e teste a API

Com Claude/Codex já conectado ao MCP da Takeat, gere a chave REST para testar os recursos autorizados do restaurante de testes. Comece com uma consulta de leitura e conceda apenas as permissões que seu app precisa.

  1. Abra “Chaves da API REST”.

    No Developers Portal, confira a conta ativa e clique em Criar chave REST.

  2. Escolha nome, ambiente e permissões.

    Use um nome identificável, como Meu App · Desenvolvimento, selecione Teste e marque os escopos necessários. Para o exemplo abaixo, habilite products:read. Confirme em Criar chave.

  3. Copie a chave completa.

    Na janela Sua chave foi criada, copie o segredo e guarde-o em um cofre de segredos. Ele aparece uma única vez. Depois, confirme Já guardei a chave.

  4. Abra “Testar API”.

    Selecione o perfil Restaurante, informe a chave e escolha o restaurante de testes quando o seletor estiver disponível. Escolha uma requisição permitida, confira os parâmetros e envie. O testador faz a troca da chave por access token.

Área Chaves da API REST, ainda sem credenciais, com a ação Criar chave REST.
Tela 02 · Chaves da API RESTNa sessão do restaurante de testes, abra Chaves de API e clique em Criar chave REST.
Formulário Criar chave REST com nome Meu app · Desenvolvimento, ambiente Teste e apenas Produtos, products:read, selecionado.
Tela 03 · Nome, ambiente e permissõesEste exemplo habilita apenas leitura de produtos. A captura foi feita antes de criar a chave; nenhum segredo aparece no print.
Aba Auth do testador HTTP com campo API Key vazio e indicação de troca automática da chave por Bearer token.
Tela 04 · Auth no testadorInforme sua chave na aba Auth. O portal faz a troca em /oauth/token e aplica o Bearer à requisição.

“Teste” não cria um banco sandbox. As requisições acessam os dados do restaurante escolhido, e escritas têm efeito real. Use a conta liberada para testes e confira o restaurante antes de enviar.

Para testar pelo seu backend

Configure TAKEAT_API_KEY com a chave completa em seu ambiente seguro. Primeiro troque a chave por tokens; depois use o access_token como Bearer.

1. Trocar API key por tokens
curl --request POST 'https://public-api.takeat.app/oauth/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=api_key' \
  --data-urlencode "api_key=$TAKEAT_API_KEY"

A resposta contém access_token, refresh_token e expires_in. Configure TAKEAT_ACCESS_TOKEN com o access token retornado e TAKEAT_RESTAURANT_ID com o ID da conta liberada.

2. Consultar produtos · products:read
curl "https://public-api.takeat.app/v1/products?restaurant_id=$TAKEAT_RESTAURANT_ID" \
  --header "Authorization: Bearer $TAKEAT_ACCESS_TOKEN"

A API key completa vai na troca inicial, não no Bearer das rotas de dados. Na renovação desse fluxo, envie grant_type=refresh_token e o refresh_token atual, sem client_id. Guarde o novo par retornado: o refresh token anterior não deve ser reutilizado.

Ver o guia de API key e renovação
04

SESSÃO DO EMPLOYEE

Crie um OAuth de rascunho

Use o rascunho para testar a conexão do seu app antes de preparar a publicação na Takeat Store. Ele é privado, usa ambiente de teste e fornece um Client ID sem passar por análise.

  1. Entre como employee no Developers Portal.

    Em uma sessão própria do portal, use seu e-mail e senha de employee. A autoria do app fica vinculada à sua conta. Se a aba atual estiver como restaurante, use uma janela separada para manter os dois contextos claros.

  2. Abra “Publicar na Takeat Store”.

    Acesse a área de aplicativos e clique em Criar rascunho para testar.

  3. Preencha nome, callbacks e perfil.

    Em URLs de retorno (callbacks), informe uma URL por linha. Ela é a página do seu app que receberá o retorno da autorização, por exemplo http://localhost:3000/callback. Selecione Restaurante para conectar a conta de testes. Apps para garçons usam o perfil Garçom e autorização pessoal.

  4. Selecione as permissões para testar.

    Marque os escopos necessários e clique em Criar rascunho e obter Client ID. Os callbacks usam HTTPS; HTTP é aceito para localhost, 127.0.0.1 e ::1.

  5. Abra o app criado.

    No card com status Rascunho, clique em Ver aplicativo. Use Ver configuração para obter o Client ID e os parâmetros da integração.

Cabeçalho Publicar na Takeat Store na sessão de employee, com a ação Criar rascunho para testar.
Tela 05 · Comece pelo rascunhoNa área Publicar na Takeat Store, escolha Criar rascunho para testar.
Formulário do rascunho na sessão de employee, com nome de exemplo, callback http://localhost:3000/callback e perfil Restaurante selecionado. As permissões não foram carregadas pela API local.
Tela 06 · Nome, callback e perfilInforme o callback do seu app e o perfil que autorizará a conexão. Nesta captura de employee, as permissões não carregaram devido à limitação da API local descrita abaixo.

Sobre as capturas deste guia. Na verificação local, o login de employee funcionou, mas a API conectada não disponibilizou a gestão de apps desse perfil. Por isso, os prints seguintes usam um rascunho de demonstração criado na sessão do restaurante de testes, com products:read. Não foi autorizada uma instalação. Se as permissões não carregarem, peça a Matheus para conferir a versão do serviço conectado.

Detalhes do app Guia Takeat Store · Demonstração, com status Rascunho e Teste, botão Ver configuração, Client ID público, callback e products:read.
Tela 07 · Ver configuraçãoO app de demonstração está em Rascunho / Teste. Clique em Ver configuração para acessar os parâmetros OAuth do seu próprio app.

As permissões desse Client ID são fixas. Para testar outros escopos, crie outro rascunho. O rascunho não aparece na Store; a publicação terá credenciais de produção próprias após aprovação.

Valide a instalação no Laboratório OAuth

  1. Abra “Testar OAuth” no aplicativo.

    Selecione o callback registrado e gere uma tentativa PKCE. O laboratório prepara state, code_challenge e code_verifier.

  2. Abra o portal OAuth e autorize como restaurante.

    Clique em Abrir portal OAuth. Use a conta de testes liberada e revise as permissões. O acesso de employee cria o app, mas a instalação precisa do consentimento da conta do perfil escolhido.

  3. Receba o callback e troque o code.

    Copie o parâmetro code recebido pelo seu callback, volte ao laboratório e avance em Já recebi o callback. Em Trocar code, use o verifier original e clique em Trocar code por tokens.

  4. Teste os recursos autorizados.

    Com o access token em memória, use a etapa de API. Confira também a renovação e revogação no laboratório para validar o ciclo da instalação.

Se precisar autorizar pela sessão administrativa do restaurante, a área Chaves de API no painel interno também oferece a abertura do portal OAuth como aquela conta. Use a URL de autorização com os parâmetros PKCE do seu app.

05

O QUE COPIAR E ONDE USAR

Entenda suas credenciais OAuth

No Developers Portal, abra Publicar na Takeat Store, escolha seu app em Ver aplicativo e clique em Ver configuração. Na tela Configurar OAuth, use Copiar Client ID. Abra a configuração do aplicativo e use Copiar configuração OAuth para copiar o JSON completo.

Janela Configurar OAuth com a configuração expandida, exibindo Client ID público, ambiente test, callback, escopo products:read e botão Copiar configuração OAuth.
Tela 08 · Copiar o JSONExpanda a configuração do aplicativo e clique em Copiar configuração OAuth.
Janela Configurar OAuth mostrando o campo Client ID, botão Copiar Client ID, callback registrado e ação Gerar parâmetros para teste, sem códigos de tentativa preenchidos.
Tela 09 · Copiar o Client IDUse o identificador do seu app e escolha um callback registrado antes de preparar a tentativa PKCE.

O Client ID mostrado é público e pertence ao app de demonstração. Use os valores do seu próprio cadastro. As URLs localhost e /proxy/external-api destes prints são do ambiente local; copie a configuração do portal no ambiente em que sua integração vai rodar.

TESTAR UM RESTAURANTE

API key

Criada na sessão do restaurante. O segredo aparece uma vez e é trocado por um access token com grant_type=api_key.

CONECTAR SEU APP

OAuth da Store

Criado na conta do desenvolvedor. Usa Client ID público e Authorization Code com PKCE. Cada restaurante autoriza sua própria instalação.

Client ID
Identificador público do app, disponível nos detalhes e na configuração. Use o valor do rascunho nos testes e o Client ID de produção depois da aprovação.
Client secret
Não existe nesse fluxo. Apps da Takeat Store são clientes públicos. Não use sua API key, senha ou sessão de employee como client secret.
Redirect URI
Callback registrado para o app. Deve ser exatamente igual na autorização e na troca do code, incluindo protocolo, domínio, porta, caminho e barra final.
Scopes
Permissões cadastradas para o app. A instalação concede os recursos autorizados; um token não libera escopos que não foram cadastrados e consentidos.
Authorization URL
Endereço do portal de consentimento, informado no JSON de configuração. Seu app acrescenta Client ID, callback, state e challenge PKCE para iniciar cada conexão.
Token URL
Endpoint /oauth/token, disponível na configuração. Recebe a troca do authorization code e a renovação de tokens.
State e verifier
Seu app gera valores novos por tentativa. Valide o state no callback e guarde o verifier para trocar o code. O verifier não vai no link de autorização e não é o challenge.
Access e refresh token
São retornados após o consentimento e a troca do code. Não são credenciais fixas para copiar do cadastro. Armazene-os no backend, separados por instalação.

Troca do code no seu backend

Use o code recebido no callback uma única vez, com o Client ID, o callback exato e o verifier da mesma tentativa. Os nomes abaixo são variáveis de exemplo para configurar no seu backend.

Authorization Code + PKCE · sem client_secret
curl --request POST 'https://public-api.takeat.app/oauth/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=authorization_code' \
  --data-urlencode "client_id=$TAKEAT_CLIENT_ID" \
  --data-urlencode "code=$TAKEAT_AUTHORIZATION_CODE" \
  --data-urlencode "redirect_uri=$TAKEAT_REDIRECT_URI" \
  --data-urlencode "code_verifier=$TAKEAT_CODE_VERIFIER"

Para renovar tokens de uma instalação OAuth, envie grant_type=refresh_token, client_id e o refresh_token atual. Salve o novo par de tokens retornado e coordene uma única renovação por instalação.

O laboratório serve ao teste. Ele mantém code, verifier e tokens temporariamente na memória da aba. No seu app, faça a troca e o armazenamento dos tokens no backend, isolados por restaurante.

Se a conexão não funcionar

Chaves REST ausentes
Confira se a sessão é de employee. Abra o portal com Entrar como restaurante na conta de testes.
Callback inválido
Compare o endereço da tentativa com o callback cadastrado. Não troque localhost por 127.0.0.1 nem altere a porta durante o fluxo.
Code / verifier inválido
Reinicie a autorização se o code expirou, já foi usado ou o verifier foi perdido. Use o verifier original, nunca o challenge.
403 na API
Confira as permissões e o restaurante autorizado. Renovar o token não amplia seus escopos.
06

FILA DE PRIORIDADE

Precisa de uma nova rota?

Envie a solicitação diretamente para Matheus Lenke pelo WhatsApp. Os pedidos entram em uma fila de prioridade. Explique a funcionalidade que depende da rota, os dados necessários e o impacto no seu app para ajudar na avaliação.

Confira antes a referência da API. Se um recurso já existir, descreva qual parte ainda não atende ao seu caso.

Modelo para solicitar uma rota

Edite o modelo e revise antes de enviar.

O botão abre a conversa com o texto preenchido. Você revisa e envia no WhatsApp. Não inclua senhas, API keys ou tokens na solicitação.

Matheus Lenke

Tech Lead IA · Acesso de testes e solicitação de rotas

(27) 99940-5527

Depois dos testes, prepare a publicação

No app em rascunho, use Preparar publicação para completar a apresentação e enviar para análise. Após a aprovação, configure as credenciais de produção e disponibilize seu app para os restaurantes autorizarem suas instalações. A meta do desafio é alcançar ao menos 50 instalações na Takeat Store até 14 de dezembro de 2026.