Skip to main content
OAuth 2.0 é um protocolo de autorização que oferece maior controle sobre o escopo de um aplicativo e permite fluxos de autorização em diferentes dispositivos. Ele possibilita a definição de escopos que concedem permissões específicas em nome de um cliente.
Para desenvolver aplicativos para a Yampi, é obrigatório o uso de autenticação com OAuth 2.0. Você pode localizar suas credenciais de acesso para OAuth ao criar seu aplicativo no Painel de Parceiros Yampi.
Atualmente, o uso do OAuth 2.0 é restrito a aplicativos publicados na Loja de Aplicativos da Yampi.

URLs de instalação

A instalação do seu aplicativo usa duas URLs, configuradas no bloco URLs de instalação em Configurar o aplicativo, no Painel de Parceiros: Exemplo de configuração:
O redirect_uri enviado para /oauth/authorize e para /oauth/token deve ser idêntico à URL de callback configurada. Se for diferente, a Yampi exibe uma página de erro e não devolve o lojista ao seu aplicativo.

Regras das URLs

  • As duas URLs são obrigatórias.
  • As duas precisam usar HTTPS ao enviar para análise. Para versões em desenvolvimento, endereços localhost também são aceitos, por exemplo http://localhost:3000/oauth/callback.
  • As duas URLs podem ser iguais. Nesse caso, o mesmo endpoint recebe o lojista sem parâmetros, no início da instalação, e com code ou error, no retorno da autorização, e precisa tratar os dois casos.
  • Em um aplicativo publicado, alterar qualquer uma das URLs cria uma nova versão major. Essa versão passa por análise e exige um novo teste de instalação em loja teste. Veja Atualizando aplicativos publicados.
  • As URLs valem apenas para novas autorizações. Instalações existentes e tokens já emitidos não são afetados.
Aplicativos criados antes da separação tinham um único campo, URL de redirecionamento. O valor desse campo foi copiado para a URL de entrada e para a URL de callback, e o seu aplicativo continua funcionando sem nenhuma alteração. Se o seu painel ainda exibe o campo único, ele vale como URL de entrada e como URL de callback.

Fluxo de autorização

Para integrar seu aplicativo a uma loja Yampi, é necessário implementar um fluxo de autorização. Esse fluxo redireciona os lojistas Yampi para uma página onde seu aplicativo será integrado à loja.

1. Obtenha as credenciais de autorização no Painel de Parceiros

Acesse o Painel de Parceiros Yampi, crie sua conta, habilite seu Perfil de Parceiro Tech e registre um novo aplicativo. Em Configurar o aplicativo, preencha a URL de entrada e a URL de callback, descritas em URLs de instalação. O Client ID da sua integração é gerado depois que você salva essas configurações.

2. Redirecionamento para autorização utilizando PKCE

Quando o lojista clica em Instalar na Loja de Aplicativos, a Yampi abre a sua URL de entrada, sem parâmetros. A partir dela, seu aplicativo inicia a autorização. Como essa concessão de autorização não utiliza um Client Secret, é necessário gerar o Code Verifier (verificador de código) e o Code Challenge (desafio de código) para solicitar um token.

Code Verifier

Uma string aleatória de 128 caracteres usada para gerar o Code Challenge, que será enviado no redirecionamento para autorização e na solicitação do Access Token.
O Code Challenge deve ser uma sequência aleatória de 43 a 128 caracteres contendo letras, números e os caracteres ”-”, ”.”, ”_”, ”~”. Ele deve ser codificado em Base64 com caracteres seguros para URL e nomes de arquivos. Os caracteres ’=’ finais devem ser removidos, e não devem haver quebras de linha, espaços em branco ou outros caracteres adicionais, conforme definido na especificação RFC 7636.
Exemplo de função para gerar o Code Challenge usando o Code Verifier:

Redirecionando para autorização

Ao receber o lojista na URL de entrada, seu aplicativo deve redirecioná-lo para a rota https://auth.yampi.com.br/oauth/authorize. Você usará o Client ID gerado no passo 1, o Code Verifier e o Code Challenge para solicitar um Authorization Code ao Authorization Server da Yampi. No parâmetro redirect_uri, envie a URL de callback configurada no Painel de Parceiros. O Authorization Server retornará o Authorization Code, que será usado pelo seu aplicativo para requisitar o Access Token, o Refresh Token e o alias da loja integrada.

Recebendo o retorno na URL de callback

Depois que o lojista responde à tela de consentimento, a Yampi o redireciona para a sua URL de callback: Exemplo de retorno com autorização:
Antes de usar o code, confira se o state recebido é o mesmo que seu aplicativo salvou na sessão ao redirecionar para /oauth/authorize. Se for diferente, descarte o retorno.

Erros comuns

3. Obtenha um token de acesso do Authorization Server da Yampi

Com o Authorization Code gerado, seu aplicativo deve obter um Access Token antes de acessar dados de uma loja pela API Yampi. O Access Token pode conceder uma ou mais permissões de acesso, configuradas no painel de parceiros por meio do scope (escopo). O scope define quais rotas da API podem ser acessadas. Durante a instalação do aplicativo, o usuário será solicitado a conceder as permissões solicitadas. Esse processo é chamado de consentimento do usuário. Se o usuário conceder permissão, o Authorization Server da Yampi redirecionará o usuário à sua URL de callback com um Authorization Code e o merchant da loja integrada. Formato da requisição para obter o Access Token. O redirect_uri deve ser a URL de callback, idêntica à enviada em /oauth/authorize:

Erros comuns

4. Use o Access Token para acessar a API Yampi

Após obter o Access Token, ele deve ser incluído no cabeçalho das chamadas HTTP do seu aplicativo. Formato da requisição com os cabeçalhos obrigatórios: access_token e X-Partner-Client-ID:

Erros comuns

5. Atualize os tokens

O Access Token tem um tempo de vida limitado. Tokens gerados pelo fluxo PKCE Authorization Code permanecem válidos por 10 minutos, enquanto o Refresh Token é válido por 30 dias. Seu aplicativo deve obter novos tokens antes que o Refresh Token expire. Formato da requisição para gerar um novo Access Token:

Erros comuns

Escopos

Os escopos permitem definir acessos granulares ao seu aplicativo, garantindo que ele tenha apenas as permissões necessárias. Consulte os detalhes de cada escopo na Central de Ajuda Yampi.