API Key usada no ambiente errado
Esse erro acontece quando a API Key de um ambiente é utilizada para autenticar chamadas no outro — seja a chave de sandbox usada em produção, seja a chave de produção usada em sandbox. A causa raiz e a correção são praticamente as mesmas nos dois casos; o que muda é o momento em que o problema aparece e o sintoma inicial.
Sandbox usada em produção
Ocorre quando a integração migra para produção, mas mantém a API Key gerada em sandbox. A integração costuma funcionar normalmente em testes e falhar assim que muda de ambiente.
Como identificar:
- a integração funciona no sandbox, mas falha ao migrar para produção;
- o erro começou imediatamente após a troca de ambiente;
- apenas a URL foi alterada durante a migração;
- há incerteza sobre qual ambiente originou a API Key.
Produção usada em sandbox
Ocorre quando o integrador usa uma API Key de produção para autenticar chamadas no sandbox — geralmente no início da integração, antes de qualquer chamada ter funcionado no ambiente de testes.
Como identificar:
- a autenticação falha desde as primeiras chamadas no sandbox;
- a URL está correta, mas a chave não é aceita;
- existe apenas uma variável genérica para a API Key, sem distinção por ambiente;
- o integrador não sabe informar em qual ambiente a chave foi gerada.
Como corrigir (nos dois casos)
- Confirme qual URL está sendo utilizada (sandbox ou produção).
- Verifique em qual ambiente a API Key foi gerada.
- Substitua a credencial pela chave correta do ambiente em uso.
- Realize uma chamada autenticada simples para validar a troca.
- Prossiga com os testes ou com o fluxo principal após a confirmação.
Fluxo de diagnóstico
%%{init: {"flowchart": {"nodeSpacing": 18,"rankSpacing": 24,"diagramPadding": 4,"padding": 7
}}}%%
flowchart TD
A["Falha de autenticação"] --> B{"Em qual ambiente ocorre a falha?"}
B --> BSandbox(("No sandbox"))
B --> BProducao(("Em produção"))
BSandbox --> C{"A URL utilizada é a de sandbox?"}
BProducao --> D{"A URL utilizada é a de produção?"}
C --> CSim(("Sim"))
C --> CNao(("Não"))
D --> DSim(("Sim"))
D --> DNao(("Não"))
CNao --> E["Corrigir a URL para o ambiente de sandbox"]
DNao --> F["Corrigir a URL para o ambiente de produção"]
CSim --> G{"Em qual ambiente a API Key foi gerada?"}
DSim --> G
G --> GSandbox(("Sandbox"))
G --> GProducao(("Produção"))
G --> GDuvida(("Não sabe"))
GSandbox --> H["Usar a chave de sandbox"]
GProducao --> I["Usar a chave de produção"]
GDuvida --> J["Consultar painel e identificar origem da chave"]
J --> H
J --> I
E --> K["Repetir chamada de teste"]
F --> K
H --> K
I --> K
K --> L{"Autenticação validada?"}
L --> LSim(("Sim"))
L --> LNao(("Não"))
LSim --> M["Prosseguir com testes ou fluxo principal"]
LNao --> J
classDef inicio fill:#DBEAFE,stroke:#2563EB,color:#1E3A8A,stroke-width:3px
classDef decisao fill:#FEF3C7,stroke:#D97706,color:#78350F,stroke-width:3px
classDef correcao fill:#FFEDD5,stroke:#EA580C,color:#7C2D12,stroke-width:2px
classDef validacao fill:#E0F2FE,stroke:#0284C7,color:#0C4A6E,stroke-width:2px
classDef sucesso fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:3px
classDef analise fill:#FEE2E2,stroke:#DC2626,color:#7F1D1D,stroke-width:3px
classDef respostaSim fill:#22C55E,stroke:#15803D,color:#FFFFFF,stroke-width:3px
classDef respostaNao fill:#EF4444,stroke:#B91C1C,color:#FFFFFF,stroke-width:3px
classDef respostaDuvida fill:#8B5CF6,stroke:#6D28D9,color:#FFFFFF,stroke-width:3px
class A inicio
class B,C,D,G,L decisao
class E,F,H,I correcao
class J validacao
class M sucesso
class K analise
class BSandbox,BProducao,CSim,DSim,GSandbox,GProducao,LSim respostaSim
class CNao,DNao,LNao respostaNao
class GDuvida respostaDuvida
linkStyle default stroke:#94A3B8,stroke-width:2px
Como prevenir
- utilize variáveis de ambiente distintas para cada credencial;
- identifique claramente qual chave pertence a qual ambiente;
- evite copiar chaves manualmente entre ambientes;
- valide URL e API Key antes de iniciar testes ou o go-live;
- inclua essa verificação no checklist inicial de configuração e no checklist de go-live.
Cada ambiente exige sua própria credencial. A API Key de um não funciona no outro.
Updated 3 days ago
