Comece por aqui
Autenticação
Senha e código por e-mail. A sessão, por cookie httpOnly ou Bearer JWT, só nasce depois dos dois.
O login é o mesmo da plataforma. Envie e-mail e senha; a API manda um código de 6 dígitos para o e-mail da conta. A sessão só nasce em POST /auth/login/code. Nas chamadas seguintes, envie o cookie cd_session ou o header Authorization: Bearer <token>.
O JWT vale 7 dias e só vem na confirmação do código, também no corpo, para integrações server-to-server. O valor challenge do primeiro passo não autentica a API. Oito falhas em quinze minutos respondem 429. Não compartilhe credenciais nem o token com terceiros — veja os Termos de Uso de API.
POST /auth/login
Confere e-mail e senha e envia o código. Público. Resposta 200 com step: "code". Ainda não há sessão.
curl --request POST \
--url 'https://gateway.credito-direto.com/api/auth/login' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"email": "parceiro@empresa.com",
"password": "sua-senha"
}'{
"step": "code",
"challenge": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expiresIn": 600
}POST /auth/login/code
Confirma o código de 6 dígitos e cria a sessão. Envie challenge no corpo ou o cookie cd_login_code gravado no passo anterior. Resposta 200 com o usuário e o token.
curl --request POST \
--url 'https://gateway.credito-direto.com/api/auth/login/code' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"challenge": "CHALLENGE",
"code": "123456"
}'{
"user": {
"id": "usr_01",
"email": "parceiro@empresa.com",
"name": "Operação",
"role": "PARTNER",
"partnerId": "prt_01",
"partnerName": "Parceiro Demo",
"depth": 1,
"kind": "CLIENT",
"capabilities": ["overview", "charges", "qr_codes", "reports", "payment_links", "pix_keys"],
"transfeeraAccountId": null
},
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}Chamadas autenticadas
| Mecanismo | Como enviar |
|---|---|
| Cookie | cd_session=<jwt> (httpOnly, SameSite=Lax, definido ao confirmar o código) |
| Header | Authorization: Bearer <jwt> |
GET /auth/me
Retorna o usuário da sessão. Exige autenticação.
{ "user": { "id": "usr_01", "email": "parceiro@empresa.com", "role": "PARTNER", "depth": 1, "capabilities": ["overview", "charges"] } }POST /auth/logout
Encerra a sessão e remove o cookie. Resposta { "ok": true }.