DocsComeçarChaves de API & Modelo de Autenticação
Segurança & Autenticação

Chaves de API & Modelo de Autenticação

A EDPay utiliza um modelo de chave dupla (Public Key e Private Key). Cada chave tem um propósito técnico e nível de segurança específico e nunca devem ser confundidas.

Para que serve cada chave? (Public Key vs. Private Key)

Cada conta na EDPay possui duas chaves criptográficas distintas para cada ambiente (Sandbox e Produção). Cada token tem uma finalidade estrita:

X-EDPay-Public-Key

pk_live_... ou pk_test_...

Identifica a conta. Só a exponha em componentes client-side quando a documentação do checkout o exigir; chamadas à API de parceiros continuam server-to-server. Esta chave não autoriza cobranças nem movimentações de saldo.

X-EDPay-Private-Key

sk_live_... ou sk_test_...

Use exclusivamente no backend para autenticar pedidos server-to-server. Nunca a exponha no frontend, em HTML ou em repositórios públicos. As permissões disponíveis dependem dos scopes associados à chave.

Autenticação nas Chamadas Server-to-Server

Em cada chamada à API de parceiros, o backend envia ambos os cabeçalhos. A chave pública identifica a conta; a chave privada autentica o pedido. Não use Authorization: Bearer nesta API:

Cabeçalho HTTPOnde usarExemplo de ValorRegra de Segurança
X-EDPay-Public-KeyFrontend e Backendpk_live_...Pública (não confidencial)
X-EDPay-Private-KeyApenas Backend (Servidor)sk_live_...Altamente Secreta / Crítica
Exemplo de Cabeçalhos HTTP num Pedido de Backend
X-EDPay-Public-Key: pk_live_... X-EDPay-Private-Key: sk_live_... Content-Type: application/json Accept: application/json

Prefixos por Ambiente

Ambiente de Testes (Sandbox)

Prefixos: pk_test_... e sk_test_...

Transações com dados fictícios. Permite testar todo o ciclo de vida da API, webhooks e polling sem débitos reais.

Ambiente Live (Produção)

Prefixos: pk_live_... e sk_live_...

Movimenta fundos reais em Meticais (MZN). As transações são liquidadas na conta bancária no prazo de 2 a 7 dias úteis.

Resposta de Erro de Autenticação (401 Unauthorized)

Se as chaves estiverem ausentes, revogadas ou expiradas, a API rejeita o pedido com código HTTP 401 Unauthorized:

Resposta: 401 Unauthorized
{ "error": { "code": "unauthorized", "message": "Invalid, missing, or revoked API keys provided in request headers." } }