curl --request GET 'https://gyra-core.gyramais.com.br/v1/registry/6612a7f30000000000000001/documents/6612a7f30000000000000001/result' \
--header 'Authorization: Bearer <token>'const resposta = await fetch("https://gyra-core.gyramais.com.br/v1/registry/6612a7f30000000000000001/documents/6612a7f30000000000000001/result", {
method: "GET",
headers: { Authorization: `Bearer ${token}` },
});
const dados = await resposta.json();
import requests
resposta = requests.get(
"https://gyra-core.gyramais.com.br/v1/registry/6612a7f30000000000000001/documents/6612a7f30000000000000001/result",
headers={"Authorization": f"Bearer {token}"},
)
dados = resposta.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://gyra-core.gyramais.com.br/v1/registry/{id}/documents/{docId}/result",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://gyra-core.gyramais.com.br/v1/registry/{id}/documents/{docId}/result"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://gyra-core.gyramais.com.br/v1/registry/{id}/documents/{docId}/result")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://gyra-core.gyramais.com.br/v1/registry/{id}/documents/{docId}/result")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"documentId": "6612a7f30000000000000031",
"registryId": "6612a7f30000000000000001",
"type": "CONTRATO_SOCIAL",
"expectedType": "CONTRATO_SOCIAL",
"expectedTypes": [],
"status": "VALIDATED",
"version": 2,
"isCurrent": true,
"classification": {
"type": "CONTRATO_SOCIAL",
"confidence": 0.94,
"alternatives": [
{
"type": "ALTERACAO_CONTRATUAL",
"confidence": 0.21
}
]
},
"ambiguous": false,
"statusReason": null,
"stages": {
"executed": [
"CLASSIFY",
"EXTRACT",
"VALIDATE"
],
"reused": []
},
"extraction": {
"cnpj": {
"value": "11444777000161",
"confidence": 0.97,
"page": 1
},
"companyName": {
"value": "AURORA COMPONENTES INDUSTRIAIS LTDA",
"confidence": 0.96,
"page": 1
},
"signatureDate": {
"value": "2021-04-30T00:00:00.000Z",
"confidence": 0.93,
"page": 8
},
"capitalAmount": {
"value": 1200000,
"confidence": 0.95,
"page": 3
},
"capitalCurrency": {
"value": "BRL",
"confidence": 0.99,
"page": 3
},
"quotaUnitValue": {
"value": null,
"confidence": 0,
"page": null
},
"partners": [
{
"name": {
"value": "CARLOS EDUARDO SILVA",
"confidence": 0.96,
"page": 1
},
"document": {
"value": "52998224725",
"confidence": 0.95,
"page": 1
},
"documentType": {
"value": "CPF",
"confidence": 0.99,
"page": 1
},
"sharePercent": {
"value": 60,
"confidence": 0.95,
"page": 3
},
"isAdministrator": {
"value": true,
"confidence": 0.92,
"page": 4
}
}
],
"representation": {
"regime": {
"value": "ISOLADA",
"confidence": 0.95,
"page": 4
},
"signersRequired": {
"value": 1,
"confidence": 0.95,
"page": 4
},
"clauseNumber": {
"value": "CLÁUSULA 8ª",
"confidence": 0.94,
"page": 4
},
"clauseExcerpt": {
"value": "A administração da sociedade caberá isoladamente ao sócio CARLOS EDUARDO SILVA...",
"confidence": 0.94,
"page": 4
}
},
"certification": {
"certificationKind": {
"value": "ORGAO_EMISSOR",
"confidence": 0.97,
"page": 1
},
"certificationDetail": {
"value": "Chancela digital da Junta Comercial",
"confidence": 0.96,
"page": 1
},
"verificationCode": {
"value": "A1B2C3D4E5",
"confidence": 0.98,
"page": 1
}
}
},
"fieldConfidences": {
"cnpj": 0.97,
"companyName": 0.96,
"capitalAmount": 0.95
},
"validation": {
"checks": [
{
"code": "EXPECTED_DOCUMENT_MATCH",
"result": "PASS",
"message": "O CNPJ do documento é o mesmo da análise.",
"evidence": {
"page": 1,
"excerpt": "CNPJ 11.444.777/0001-61"
},
"source": "DETERMINISTIC"
},
{
"code": "QSA_SHARE_SUM",
"result": "WARN",
"message": "A soma das participações fecha 98%, fora da tolerância de 0,5 ponto.",
"evidence": {
"page": 3,
"excerpt": "CARLOS EDUARDO SILVA 60% ... MARIA HELENA SOUZA 38%"
},
"source": "DETERMINISTIC"
}
],
"reconciliation": {
"qsaMatched": true
}
},
"assessment": {
"verdict": "VALIDO",
"score": 0.91,
"justification": "Documento íntegro, titularidade confirmada e registro na Junta conferido. A soma das quotas ficou 2 pontos abaixo de 100%, o que é ressalva e não impedimento.",
"evidences": [],
"ruleSetVersion": "org-v7",
"contentHash": "9f2b7c1e4a...",
"feedbackVerdict": null,
"feedbackComment": null,
"feedbackAt": null,
"feedbackUserId": null,
"effectiveVerdict": "VALIDO",
"decidedByOperator": false
},
"processedAt": "2026-09-05T13:07:44.000Z",
"attempt": 1
}{
"code": 400,
"message": "O identificador informado em \"docId\" não é válido."
}{
"code": 401,
"message": "Token de acesso inválido."
}{
"code": 403,
"message": "Você não tem permissão para acessar este recurso."
}{
"code": 404,
"message": "Documento não encontrado."
}{
"code": 500,
"message": "Internal server error"
}{
"code": 502,
"message": "Não foi possível consultar o resultado do documento."
}Resultado do Documento
Quando você precisa do detalhe: os campos lidos, cada verificação com evidência, e o parecer.
curl --request GET 'https://gyra-core.gyramais.com.br/v1/registry/6612a7f30000000000000001/documents/6612a7f30000000000000001/result' \
--header 'Authorization: Bearer <token>'const resposta = await fetch("https://gyra-core.gyramais.com.br/v1/registry/6612a7f30000000000000001/documents/6612a7f30000000000000001/result", {
method: "GET",
headers: { Authorization: `Bearer ${token}` },
});
const dados = await resposta.json();
import requests
resposta = requests.get(
"https://gyra-core.gyramais.com.br/v1/registry/6612a7f30000000000000001/documents/6612a7f30000000000000001/result",
headers={"Authorization": f"Bearer {token}"},
)
dados = resposta.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://gyra-core.gyramais.com.br/v1/registry/{id}/documents/{docId}/result",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://gyra-core.gyramais.com.br/v1/registry/{id}/documents/{docId}/result"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://gyra-core.gyramais.com.br/v1/registry/{id}/documents/{docId}/result")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://gyra-core.gyramais.com.br/v1/registry/{id}/documents/{docId}/result")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"documentId": "6612a7f30000000000000031",
"registryId": "6612a7f30000000000000001",
"type": "CONTRATO_SOCIAL",
"expectedType": "CONTRATO_SOCIAL",
"expectedTypes": [],
"status": "VALIDATED",
"version": 2,
"isCurrent": true,
"classification": {
"type": "CONTRATO_SOCIAL",
"confidence": 0.94,
"alternatives": [
{
"type": "ALTERACAO_CONTRATUAL",
"confidence": 0.21
}
]
},
"ambiguous": false,
"statusReason": null,
"stages": {
"executed": [
"CLASSIFY",
"EXTRACT",
"VALIDATE"
],
"reused": []
},
"extraction": {
"cnpj": {
"value": "11444777000161",
"confidence": 0.97,
"page": 1
},
"companyName": {
"value": "AURORA COMPONENTES INDUSTRIAIS LTDA",
"confidence": 0.96,
"page": 1
},
"signatureDate": {
"value": "2021-04-30T00:00:00.000Z",
"confidence": 0.93,
"page": 8
},
"capitalAmount": {
"value": 1200000,
"confidence": 0.95,
"page": 3
},
"capitalCurrency": {
"value": "BRL",
"confidence": 0.99,
"page": 3
},
"quotaUnitValue": {
"value": null,
"confidence": 0,
"page": null
},
"partners": [
{
"name": {
"value": "CARLOS EDUARDO SILVA",
"confidence": 0.96,
"page": 1
},
"document": {
"value": "52998224725",
"confidence": 0.95,
"page": 1
},
"documentType": {
"value": "CPF",
"confidence": 0.99,
"page": 1
},
"sharePercent": {
"value": 60,
"confidence": 0.95,
"page": 3
},
"isAdministrator": {
"value": true,
"confidence": 0.92,
"page": 4
}
}
],
"representation": {
"regime": {
"value": "ISOLADA",
"confidence": 0.95,
"page": 4
},
"signersRequired": {
"value": 1,
"confidence": 0.95,
"page": 4
},
"clauseNumber": {
"value": "CLÁUSULA 8ª",
"confidence": 0.94,
"page": 4
},
"clauseExcerpt": {
"value": "A administração da sociedade caberá isoladamente ao sócio CARLOS EDUARDO SILVA...",
"confidence": 0.94,
"page": 4
}
},
"certification": {
"certificationKind": {
"value": "ORGAO_EMISSOR",
"confidence": 0.97,
"page": 1
},
"certificationDetail": {
"value": "Chancela digital da Junta Comercial",
"confidence": 0.96,
"page": 1
},
"verificationCode": {
"value": "A1B2C3D4E5",
"confidence": 0.98,
"page": 1
}
}
},
"fieldConfidences": {
"cnpj": 0.97,
"companyName": 0.96,
"capitalAmount": 0.95
},
"validation": {
"checks": [
{
"code": "EXPECTED_DOCUMENT_MATCH",
"result": "PASS",
"message": "O CNPJ do documento é o mesmo da análise.",
"evidence": {
"page": 1,
"excerpt": "CNPJ 11.444.777/0001-61"
},
"source": "DETERMINISTIC"
},
{
"code": "QSA_SHARE_SUM",
"result": "WARN",
"message": "A soma das participações fecha 98%, fora da tolerância de 0,5 ponto.",
"evidence": {
"page": 3,
"excerpt": "CARLOS EDUARDO SILVA 60% ... MARIA HELENA SOUZA 38%"
},
"source": "DETERMINISTIC"
}
],
"reconciliation": {
"qsaMatched": true
}
},
"assessment": {
"verdict": "VALIDO",
"score": 0.91,
"justification": "Documento íntegro, titularidade confirmada e registro na Junta conferido. A soma das quotas ficou 2 pontos abaixo de 100%, o que é ressalva e não impedimento.",
"evidences": [],
"ruleSetVersion": "org-v7",
"contentHash": "9f2b7c1e4a...",
"feedbackVerdict": null,
"feedbackComment": null,
"feedbackAt": null,
"feedbackUserId": null,
"effectiveVerdict": "VALIDO",
"decidedByOperator": false
},
"processedAt": "2026-09-05T13:07:44.000Z",
"attempt": 1
}{
"code": 400,
"message": "O identificador informado em \"docId\" não é válido."
}{
"code": 401,
"message": "Token de acesso inválido."
}{
"code": 403,
"message": "Você não tem permissão para acessar este recurso."
}{
"code": 404,
"message": "Documento não encontrado."
}{
"code": 500,
"message": "Internal server error"
}{
"code": 502,
"message": "Não foi possível consultar o resultado do documento."
}Quando usar
Quando você precisa do detalhe: os campos lidos, cada verificação com evidência, e o parecer.O que olhar primeiro
| Campo | Para quê |
|---|---|
assessment.effectiveVerdict | O veredito que vale hoje. Não use verdict |
validation.checks[] | Cada verificação com PASS, WARN, FAIL ou SKIP, mensagem e evidência |
statusReason | Por que parou, quando não houve falha técnica |
stages | O que rodou nesta tentativa e o que veio reaproveitado |
extraction tem os campos do tipo identificado. Ver Formatos de retorno.
Authorizations
Enter JWT token
Response
Classificacao, extracao, verificacoes e parecer, com o selo contentHash.
Resultado completo de um documento, da classificacao ao parecer.
O tipo LIDO pela classificacao.
CONTRATO_SOCIAL, ALTERACAO_CONTRATUAL, ESTATUTO_SOCIAL, REQUERIMENTO_EMPRESARIO, ATA_ASSEMBLEIA, PROCURACAO_PJ, CERTIDAO_JUNTA, CERTIDAO_QSA, IRPJ_ECF, DECLARACAO_FATURAMENTO, CERTIFICADO_SIMPLES_NACIONAL, DEMONSTRACOES_FINANCEIRAS, EXTRATO_BANCARIO, CERTIDAO_PGFN_PJ, CERTIDAO_FGTS, CADIN_FEDERAL, CADIN_ESTADUAL, ESOCIAL_PJ, DOC_IDENTIDADE, COMPROVANTE_RESIDENCIA, DIRPF, COMPROVANTE_RENDA, CERTIDAO_PF, PROCURACAO_PF, COMPROVACAO_ESTADO_CIVIL, FORA_DE_ESCOPO, NAO_IDENTIFICADO O tipo PEDIDO no envio. Sustenta a verificacao EXPECTED_TYPE_MATCH.
CONTRATO_SOCIAL, ALTERACAO_CONTRATUAL, ESTATUTO_SOCIAL, REQUERIMENTO_EMPRESARIO, ATA_ASSEMBLEIA, PROCURACAO_PJ, CERTIDAO_JUNTA, CERTIDAO_QSA, IRPJ_ECF, DECLARACAO_FATURAMENTO, CERTIFICADO_SIMPLES_NACIONAL, DEMONSTRACOES_FINANCEIRAS, EXTRATO_BANCARIO, CERTIDAO_PGFN_PJ, CERTIDAO_FGTS, CADIN_FEDERAL, CADIN_ESTADUAL, ESOCIAL_PJ, DOC_IDENTIDADE, COMPROVANTE_RESIDENCIA, DIRPF, COMPROVANTE_RENDA, CERTIDAO_PF, PROCURACAO_PF, COMPROVACAO_ESTADO_CIVIL, FORA_DE_ESCOPO, NAO_IDENTIFICADO, null O CONJUNTO pedido, quando o item nasceu de um requisito societario.
CONTRATO_SOCIAL, ALTERACAO_CONTRATUAL, ESTATUTO_SOCIAL, REQUERIMENTO_EMPRESARIO, ATA_ASSEMBLEIA, PROCURACAO_PJ, CERTIDAO_JUNTA, CERTIDAO_QSA, IRPJ_ECF, DECLARACAO_FATURAMENTO, CERTIFICADO_SIMPLES_NACIONAL, DEMONSTRACOES_FINANCEIRAS, EXTRATO_BANCARIO, CERTIDAO_PGFN_PJ, CERTIDAO_FGTS, CADIN_FEDERAL, CADIN_ESTADUAL, ESOCIAL_PJ, DOC_IDENTIDADE, COMPROVANTE_RESIDENCIA, DIRPF, COMPROVANTE_RENDA, CERTIDAO_PF, PROCURACAO_PF, COMPROVACAO_ESTADO_CIVIL, FORA_DE_ESCOPO, NAO_IDENTIFICADO RECEIVED, CLASSIFYING, CLASSIFIED, EXTRACTING, EXTRACTED, VALIDATING, VALIDATED, FAILED, MANUAL_REVIEW, OUT_OF_SCOPE, REJECTED_QUALITY O que a classificacao concluiu, com as alternativas consideradas.
Hide child attributes
Hide child attributes
CONTRATO_SOCIAL, ALTERACAO_CONTRATUAL, ESTATUTO_SOCIAL, REQUERIMENTO_EMPRESARIO, ATA_ASSEMBLEIA, PROCURACAO_PJ, CERTIDAO_JUNTA, CERTIDAO_QSA, IRPJ_ECF, DECLARACAO_FATURAMENTO, CERTIFICADO_SIMPLES_NACIONAL, DEMONSTRACOES_FINANCEIRAS, EXTRATO_BANCARIO, CERTIDAO_PGFN_PJ, CERTIDAO_FGTS, CADIN_FEDERAL, CADIN_ESTADUAL, ESOCIAL_PJ, DOC_IDENTIDADE, COMPROVANTE_RESIDENCIA, DIRPF, COMPROVANTE_RENDA, CERTIDAO_PF, PROCURACAO_PF, COMPROVACAO_ESTADO_CIVIL, FORA_DE_ESCOPO, NAO_IDENTIFICADO 0 a 1.
Hide child attributes
Hide child attributes
CONTRATO_SOCIAL, ALTERACAO_CONTRATUAL, ESTATUTO_SOCIAL, REQUERIMENTO_EMPRESARIO, ATA_ASSEMBLEIA, PROCURACAO_PJ, CERTIDAO_JUNTA, CERTIDAO_QSA, IRPJ_ECF, DECLARACAO_FATURAMENTO, CERTIFICADO_SIMPLES_NACIONAL, DEMONSTRACOES_FINANCEIRAS, EXTRATO_BANCARIO, CERTIDAO_PGFN_PJ, CERTIDAO_FGTS, CADIN_FEDERAL, CADIN_ESTADUAL, ESOCIAL_PJ, DOC_IDENTIDADE, COMPROVANTE_RESIDENCIA, DIRPF, COMPROVANTE_RENDA, CERTIDAO_PF, PROCURACAO_PF, COMPROVACAO_ESTADO_CIVIL, FORA_DE_ESCOPO, NAO_IDENTIFICADO true quando outra alternativa passou de 0,35 de confianca.
Por que o documento parou num terminal que nao e falha tecnica.
O que rodou nesta tentativa e o que veio reaproveitado.
Os campos lidos. A FORMA DEPENDE DO TIPO identificado: cada um dos 25 tipos tem o seu conjunto, documentado campo a campo em https://developers.gyramais.com.br/api-reference/kyc/formatos-de-retorno. Todo campo folha vem como { value, confidence, page }; campo ausente vem com value null e confidence 0.
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
Codigo da verificacao no catalogo (ex.: EXPECTED_DOCUMENT_MATCH).
WARN e ressalva: aparece no parecer e nao reprova sozinha.
PASS, WARN, FAIL, SKIP Frase em portugues explicando o resultado.
Indicios individuais, quando a verificacao produz varios.
Quem produziu o resultado.
DETERMINISTIC, RECONCILIATION, LLM Conferencia contra a fonte oficial.
Hide child attributes
Hide child attributes
O parecer da IA. NAO e o veredito que vale: use effectiveVerdict.
VALIDO, INVALIDO, INCONCLUSIVO, ANALISE_MANUAL 0 a 1.
Por que, em portugues.
Qual versao da regua julgou este documento.
Selo do parecer, conferivel na rota de integridade.
A decisao que um operador registrou, quando houve.
VALIDO, INVALIDO, INCONCLUSIVO, ANALISE_MANUAL, null O VEREDITO QUE VALE HOJE (feedbackVerdict ?? verdict). Leia este.
VALIDO, INVALIDO, INCONCLUSIVO, ANALISE_MANUAL, null true quando quem decidiu foi uma pessoa, e nao o pipeline.

