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)

  1. Confirme qual URL está sendo utilizada (sandbox ou produção).
  2. Verifique em qual ambiente a API Key foi gerada.
  3. Substitua a credencial pela chave correta do ambiente em uso.
  4. Realize uma chamada autenticada simples para validar a troca.
  5. 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.


Did this page help you?