curl --request GET 'https://gyra-core.gyramais.com.br/v1/registry/6612a7f30000000000000001/persons' \
--header 'Authorization: Bearer <token>'const resposta = await fetch("https://gyra-core.gyramais.com.br/v1/registry/6612a7f30000000000000001/persons", {
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/persons",
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}/persons",
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}/persons"
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}/persons")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://gyra-core.gyramais.com.br/v1/registry/{id}/persons")
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{
"persons": [
{
"id": "6612a7f30000000000000021",
"registryId": "6612a7f30000000000000001",
"entityType": "PERSON",
"document": "52998224725",
"maskedDocument": null,
"name": "CARLOS EDUARDO SILVA",
"role": "Sócio administrador",
"sharePercent": 60,
"layer": 1,
"parentPersonId": null,
"isBeneficialOwner": true,
"source": "FORM",
"linkedRegistryId": null,
"editedFields": [],
"contact": {
"name": "CARLOS EDUARDO SILVA",
"email": "carlos@aurora.com.br",
"phone": "51999998888",
"source": "FORM",
"preferred": false,
"lastUsedAt": "2026-09-05T14:20:00.000Z"
}
},
{
"id": "6612a7f30000000000000022",
"registryId": "6612a7f30000000000000001",
"entityType": "PERSON",
"document": null,
"maskedDocument": "***982247**",
"name": "MARIA HELENA SOUZA",
"role": "Sócio",
"sharePercent": 38,
"layer": 1,
"parentPersonId": null,
"isBeneficialOwner": true,
"source": "QSA_OFICIAL",
"linkedRegistryId": null,
"editedFields": [],
"contact": null
}
]
}{
"code": 400,
"message": "O identificador informado em \"id\" 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": "Cadastro não encontrado."
}{
"code": 500,
"message": "Internal server error"
}Árvore Societária
Para descobrir de quem pedir documento de sócio, e de onde veio cada pessoa.
curl --request GET 'https://gyra-core.gyramais.com.br/v1/registry/6612a7f30000000000000001/persons' \
--header 'Authorization: Bearer <token>'const resposta = await fetch("https://gyra-core.gyramais.com.br/v1/registry/6612a7f30000000000000001/persons", {
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/persons",
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}/persons",
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}/persons"
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}/persons")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://gyra-core.gyramais.com.br/v1/registry/{id}/persons")
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{
"persons": [
{
"id": "6612a7f30000000000000021",
"registryId": "6612a7f30000000000000001",
"entityType": "PERSON",
"document": "52998224725",
"maskedDocument": null,
"name": "CARLOS EDUARDO SILVA",
"role": "Sócio administrador",
"sharePercent": 60,
"layer": 1,
"parentPersonId": null,
"isBeneficialOwner": true,
"source": "FORM",
"linkedRegistryId": null,
"editedFields": [],
"contact": {
"name": "CARLOS EDUARDO SILVA",
"email": "carlos@aurora.com.br",
"phone": "51999998888",
"source": "FORM",
"preferred": false,
"lastUsedAt": "2026-09-05T14:20:00.000Z"
}
},
{
"id": "6612a7f30000000000000022",
"registryId": "6612a7f30000000000000001",
"entityType": "PERSON",
"document": null,
"maskedDocument": "***982247**",
"name": "MARIA HELENA SOUZA",
"role": "Sócio",
"sharePercent": 38,
"layer": 1,
"parentPersonId": null,
"isBeneficialOwner": true,
"source": "QSA_OFICIAL",
"linkedRegistryId": null,
"editedFields": [],
"contact": null
}
]
}{
"code": 400,
"message": "O identificador informado em \"id\" 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": "Cadastro não encontrado."
}{
"code": 500,
"message": "Internal server error"
}Quando usar
Para descobrir de quem pedir documento de sócio, e de onde veio cada pessoa.A origem importa
source | De onde veio |
|---|---|
QSA_OFICIAL | Quadro societário da fonte oficial. O CPF vem mascarado |
DOCUMENT_EXTRACTION | Lido de contrato, estatuto, ata ou certidão |
MANUAL | Criado por um operador |
FORM | Declarado pelo cliente num formulário de solicitação |
layer distingue o quadro direto (1) do sócio da sócia pessoa jurídica (2).
A resposta vem em persons. Cada pessoa traz editedFields, os campos que alguém da sua equipe corrigiu (a atualização do quadro oficial não passa por cima deles), e contact, o contato guardado que recebe os envios. Para corrigir um sócio ou mexer nos contatos, veja Pessoas, contatos e dados declarados.
Authorizations
Enter JWT token
Path Parameters
Id do cadastro.
Response
Pessoas com nome, documento, papel, participacao, origem, campos corrigidos e o primeiro contato guardado, dentro de persons.
Hide child attributes
Hide child attributes
COMPANY, PERSON O QSA da Receita devolve o CPF de pessoa fisica mascarado.
1 = quadro societario direto; 2 = socio da socia pessoa juridica.
De onde a pessoa veio. FORM = declarada pelo cliente num formulario de solicitacao.
QSA_OFICIAL, DOCUMENT_EXTRACTION, MANUAL, FORM Documento de onde a pessoa foi lida, quando source e DOCUMENT_EXTRACTION.
Campos que um operador corrigiu. A atualizacao do quadro oficial e a extracao nao passam por cima deles.
name, role, sharePercent, document Primeiro contato guardado da pessoa (o preferido, senao o mais recente). null sem documento completo ou sem contato.
Cadastro proprio da pessoa, quando ja existe.

