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ório

Mesmo 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:

ChaveFormatoFunção
Public Keypk_live_xxxxxxxxIdentifica a sua conta
Secret Keysk_live_yyyyyyyyAutoriza as operações

Atenção ao armazenar a Secret Key

A 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 garantida

Integrações existentes com x-api-key / x-api-secret continuam funcionando normalmente. Recomendamos migrar para Basic Auth em novas implementações.


Restrições importantes

RestriçãoDetalhe
Requisições via browser bloqueadasRequisiçõ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 extraPara 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.