Autenticação
Todos os endpoints privados da API exigem autenticação. A Legacy suporta dois métodos, sendo o Basic Auth o recomendado para integrações novas.
KYC obrigatórioMesmo com credenciais válidas, requisições de empresas sem KYC aprovado no Dashboard retornam
403 Forbidden. Conclua o processo de verificação antes de integrar.
Suas chaves de acesso
Na aba Integrações do Dashboard da Legacy, você encontra seu par de chaves de produção:
| Chave | Formato | Função |
|---|---|---|
| Public Key | pk_live_xxxxxxxx | Identifica a sua conta |
| Secret Key | sk_live_yyyyyyyy | Autoriza as operações |
Atenção ao armazenar a Secret KeyA Secret Key é exibida apenas uma vez no momento da criação. Utilize um gerenciador de segredos (AWS Secrets Manager, HashiCorp Vault, variáveis de ambiente no servidor) e nunca a versione em repositórios de código.
Método recomendado: Basic Auth
Combine sua Public Key e Secret Key no formato pk_live_xxxx:sk_live_yyyy, codifique em Base64 e envie no cabeçalho Authorization de todas as requisições:
Authorization: Basic <base64(pk_live_xxxx:sk_live_yyyy)>
Node.js
import axios from 'axios';
const publicKey = 'pk_live_xxxxxx';
const secretKey = 'sk_live_yyyyyy';
const credentials = Buffer.from(`${publicKey}:${secretKey}`).toString('base64');
const response = await axios.post(
'https://api.legacyecombr.com.br/payin',
payload,
{
headers: {
'Authorization': `Basic ${credentials}`,
'Content-Type': 'application/json',
},
}
);PHP
$publicKey = 'pk_live_xxxxxx';
$secretKey = 'sk_live_yyyyyy';
$credentials = base64_encode("{$publicKey}:{$secretKey}");
$ch = curl_init('https://api.legacyecombr.com.br/payin');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Basic {$credentials}",
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);Python
import requests
import base64
public_key = 'pk_live_xxxxxx'
secret_key = 'sk_live_yyyyyy'
credentials = base64.b64encode(f'{public_key}:{secret_key}'.encode()).decode()
response = requests.post(
'https://api.legacyecombr.com.br/payin',
json=payload,
headers={
'Authorization': f'Basic {credentials}',
'Content-Type': 'application/json',
}
)Método alternativo: Headers individuais
Se sua integração foi construída com a arquitetura anterior da plataforma, você pode continuar enviando as chaves em headers separados:
x-api-key: pk_live_xxxxxx
x-api-secret: sk_live_yyyyyy
Compatibilidade garantidaIntegrações existentes com
x-api-key/x-api-secretcontinuam funcionando normalmente. Recomendamos migrar para Basic Auth em novas implementações.
Restrições importantes
| Restrição | Detalhe |
|---|---|
| Requisições via browser bloqueadas | Requisições com Origin ou Referer no cabeçalho são rejeitadas com 403 Forbidden. A API deve ser chamada exclusivamente pelo seu servidor. |
| Cartão de Crédito requer KYC extra | Para habilitar o processamento de Cartão de Crédito, entre em contato com o suporte da Legacy para aprovação de KYC adicional. |
Por que bloquear o browser?Expor suas chaves de API no front-end permite que qualquer visitante as capture nas ferramentas de desenvolvedor. Sempre faça as chamadas à API Legacy no seu backend.
Updated 44 minutes ago