Quando usar
Use este endpoint para iniciar uma nova análise de crédito para CPF ou CNPJ. A chamada é assíncrona: retorna imediatamente oid do relatório com status inicial PROCESSING e você recebe o resultado final via webhook ou consultando GET /v2/report/{id}.
Autenticação
Bearer JWT no headerAuthorization.
Parâmetros
| Nome | Local | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
document | body | string | sim | CPF (11 dígitos) ou CNPJ (14 dígitos), somente números. |
type | body | string | sim | Tipo do documento. Valores aceitos: cpf ou cnpj. |
policyId | body | string | sim | ID da política de decisão que será aplicada. Obtenha em GET /credit-policy/policy. |
Corpo da requisição
{
"document": "43591367000130",
"type": "cnpj",
"policyId": "69a1fbb06a44799c9c440d2d"
}
Chamar duas vezes para o mesmo documento e a mesma política não gera dois relatórios. Verificado contra a API: a segunda chamada devolveu o relatório já existente, com o mesmo
id e o createdAt original, em vez de criar um novo.Na prática isso protege contra cobrança duplicada por retry, mas também significa que você não força uma reanálise repetindo o POST. Se precisa de dados novos, é preciso um documento ou uma política diferente.curl --location 'https://gyra-core.gyramais.com.br/v2/report' \
--header 'Authorization: Bearer abc123' \
--header 'Content-Type: application/json' \
--data-raw '{
"document": "43591367000130",
"type": "cnpj",
"policyId": "69a1fbb06a44799c9c440d2d"
}'
fetch("https://gyra-core.gyramais.com.br/v2/report", {
method: "POST",
headers: {
Authorization: "Bearer abc123",
"Content-Type": "application/json"
},
body: JSON.stringify({
document: "43591367000130",
type: "cnpj",
policyId: "69a1fbb06a44799c9c440d2d"
})
})
.then(res => res.json())
.then(console.log)
import requests
url = "https://gyra-core.gyramais.com.br/v2/report"
headers = {
"Authorization": "Bearer abc123",
"Content-Type": "application/json"
}
payload = {
"document": "43591367000130",
"type": "cnpj",
"policyId": "69a1fbb06a44799c9c440d2d"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
A requisição retorna o
id e o status inicial do relatório. Você pode configurar um webhook para receber a conclusão em tempo real ou consultar GET /v2/report/{id} para obter o status atualizado.{
"id": "6612a7f3a19b467000000000",
"createdAt": "2026-07-31T13:42:37.059Z",
"updatedAt": "2026-07-31T18:03:37.453Z",
"document": "43591367000130",
"organizationId": "6612a7f3fa9e086b00000000",
"customerId": "6612a7f388be48e900000000",
"months": 12,
"policyVersion": 1.11,
"verified": true,
"status": {
"id": "6612a7f33fdd7d9400000000",
"value": "APPROVED"
},
"reportProgress": {
"steps": []
}
}
{
"code": 400,
"message": "document should not be empty,type must be one of the following values: cpf, cnpj"
}
{
"code": 401,
"message": "Token de acesso inválido."
}
{
"code": 500,
"message": "Cannot read properties of undefined (reading 'replace')"
}

