Identificar Conta (whoami)
Valida uma credencial e retorna de quem ela é, se a conta já pode transacionar e o que ela suporta na Legacy.
Valida uma credencial e devolve a identidade da conta por trás dela, se ela já está apta a
transacionar e quais métodos e recursos estão disponíveis. Use no seu processo de integração para
confirmar que as chaves estão corretas antes de tentar a primeira cobrança.
GET https://api.legacyecombrasil.com/whoami
Este endpoint nunca retorna403por causa do estado da contaSe a credencial for válida, a resposta é sempre
200— mesmo com o KYC pendente ou a conta
bloqueada. O motivo vem nos camposcanTransactereason. O401fica reservado para
credencial inválida, revogada ou inexistente.
Formas de autenticar
Diferente dos demais endpoints, o /whoami também aceita apenas a Public Key. O que você envia
determina o escopo da resposta (campo scope).
| Credencial | Como enviar | scope | Quando usar |
|---|---|---|---|
| Public Key + Secret Key | Authorization: Basic base64(pk_live_xxxx:sk_live_yyyy) ou x-api-key + x-api-secret | company | Do seu servidor, para conferir as chaves da integração |
| Public Key sozinha | x-public-key: pk_live_xxxx | public | Do browser, para validar a publishable key do checkout |
A Secret Key continua sendo proibida no browserNo escopo
companya restrição de sempre vale: requisições comOriginouReferersão
rejeitadas com403 Forbidden. O escopopublicaceita chamadas do browser — apk_live_*foi
feita para ficar exposta. Consulte o guia de Autenticação.
Exemplo de requisição
GET /whoami
Host: api.legacyecombrasil.com
Authorization: Basic base64(pk_live_xxxx:sk_live_yyyy)Validando apenas a Public Key, direto do browser:
GET /whoami
Host: api.legacyecombrasil.com
x-public-key: pk_live_xxxxResposta 200 OK
200 OKExemplo no escopo company, que traz o payload completo:
{
"scope": "company",
"companyId": "3f9a1c2e-7b41-4d88-9c05-1e2f3a4b5c6d",
"companyName": "Alpha Comércio LTDA",
"tradeName": "Alpha",
"document": "**.***.***/0001-99",
"kycStatus": "approved",
"blocked": false,
"canTransact": true,
"reason": null,
"paymentMethods": ["pix", "credit_card", "boleto"],
"capabilities": {
"tokenization": {
"enabled": true,
"mode": "backend",
"cardOnFile": true,
"cvvRequired": false
},
"threeDS": { "enabled": true, "flow": "pre-order" },
"antifraud": { "enabled": true }
}
}Conta ainda em análise, no escopo public — repare que o status é 200, não 403:
{
"scope": "public",
"companyId": "3f9a1c2e-7b41-4d88-9c05-1e2f3a4b5c6d",
"companyName": "Alpha Comércio LTDA",
"kycStatus": "pending",
"blocked": false,
"canTransact": false,
"reason": "KYC_NOT_APPROVED",
"paymentMethods": ["pix"],
"capabilities": {
"tokenization": { "enabled": false },
"threeDS": { "enabled": false },
"antifraud": { "enabled": false }
}
}Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
scope | string | company ou public — determinado pela credencial enviada |
companyId | string | Identificador da conta dona da credencial |
companyName | string | Razão social da conta |
tradeName | string | null | Nome fantasia. Ausente no escopo public |
document | string | null | CNPJ parcialmente mascarado, o suficiente para conferência. Ausente no escopo public |
kycStatus | string | approved, pending, rejected, needs_more_info ou not_submitted |
blocked | boolean | Conta bloqueada pela Legacy |
canTransact | boolean | Se a conta pode criar cobranças agora |
reason | string | null | Por que não pode. null quando canTransact é true |
paymentMethods | string[] | Métodos realmente disponíveis: pix, credit_card, boleto, open_finance |
capabilities | object | Recursos do checkout suportados pela conta — veja abaixo |
reason
reason| Valor | Significado |
|---|---|
KYC_NOT_APPROVED | O KYC da empresa ainda não foi aprovado. Conclua a verificação no Dashboard |
COMPANY_BLOCKED | A conta está bloqueada. Fale com o suporte da Legacy |
capabilities
capabilitiesReflete o que a conta consegue fazer no checkout. Um método ou recurso indisponível chega como
{ "enabled": false }.
| Campo | Tipo | Descrição |
|---|---|---|
tokenization.enabled | boolean | A conta aceita cartão tokenizado |
tokenization.mode | string | backend ou vault — como o cartão é tokenizado |
tokenization.cardOnFile | boolean | Cartões podem ser salvos e recobrados depois (one-click) |
tokenization.cvvRequired | boolean | O CVV é exigido ao recobrar um cartão salvo |
threeDS.enabled | boolean | Autenticação 3DS disponível |
threeDS.flow | string | pre-order (autentica antes de cobrar) ou post-order (desafio depois da cobrança) |
antifraud.enabled | boolean | Sessão de antifraude / device fingerprint disponível |
paymentMethodsjá considera tudoA lista sai filtrada pelo que está de fato operante para a sua conta. Se
credit_cardnão
aparecer mesmo com o KYC aprovado, pode faltar a habilitação de cartão — consulte o guia de
Autenticação e fale com o suporte.
Erros
| Status | Descrição |
|---|---|
400 | Nenhuma credencial enviada, ou credencial fora do formato esperado |
401 | Credencial inválida, revogada ou inativa |
403 | Escopo company chamado a partir de um browser (cabeçalho Origin ou Referer presente) |
429 | Requisições demais. O endpoint aceita 30 chamadas por minuto por IP |
Updated 8 days ago