Skip to main content

Termos de Autorização

Módulo de termos de autorização: o registro do consentimento de um titular para que a plataforma consulte ou compartilhe seus dados junto a um provedor. No consignado privado, o termo é o que autoriza as consultas de vínculos, dados do trabalhador e saldo FGTS na Dataprev, e carrega o token de autorização devolvido por ela.

O termo tem três partes:

ParteO que é
TermoTitular dos dados (subject), tipo, provedor, vigência, status e o token do provedor.
DocumentoO texto que o trabalhador lê e aceita (document), com hash para comprovar que não foi alterado.
AssinaturasCada aceite do trabalhador vira um envelope de assinatura eletrônica já concluído, com signatário, papel e evidências técnicas do aceite. Ver Assinatura Eletrônica.

Duas rotas base participam desta jornada:

Rota basePapel nesta jornada
v5/loan-private-payrollsPOST /terms cria o termo já configurado para o consignado privado (tipo, provedor, título fixos) e, se o aceite vier junto, o assina e o envia à Dataprev em segundo plano.
v5/authorization-termsAssinatura de um termo já criado (POST /{id}/sign) e leitura por id ou por key.

Autenticação​

Todos os endpoints exigem API Key (X-Api-Key). A criação exige permissão de criação de termos; a assinatura exige permissão de assinatura de termos; as leituras exigem permissão de leitura. Ver Autenticação.

Rotas implementadas​

RotaVerboResumo
/v5/loan-private-payrolls/termsPOSTCria o termo de consulta de dados do trabalhador com status Pendente. Com signatures, registra o aceite e dispara a autorização na Dataprev.
/v5/authorization-terms/{id}/signPOSTRegistra o aceite (assinatura) de um termo já criado. Num termo Pendente da Dataprev, dispara a autorização.
/v5/authorization-terms/{id}GETObtém um termo pelo id.
/v5/authorization-terms/key/{key}GETObtém um termo pela key pública.

Convenções gerais reutilizadas nesta página: Tratamento de erros, Objeto de domínio, Campo de status.

Ciclo de vida​

aceite (signatures na criação, /sign ou jornada)
pending ───────────────────────────────────────────────► Dataprev em segundo plano ──► active
│ └──► rejected
└── trabalhador recusa a jornada ──► rejected
EtapaO que acontece
1. CriaçãoA API monta o termo com type = private_payroll_data_inquiry, provider = dataprev, título fixo "Consulta dos Vínculos Empregatícios do Trabalhador." e status = pending. Se nenhum texto for enviado em document, o texto do termo é gerado pela plataforma (modelo da empresa ou texto padrão), com hash calculado.
2. AceiteO aceite do trabalhador pode chegar de três formas: em signatures na própria criação; depois, por POST /v5/authorization-terms/{id}/sign; ou pela jornada de aceite, um link enviado ao trabalhador para que ele mesmo leia e aceite o termo. Cada aceite é registrado como um envelope de assinatura concluído e listado em signatures. O termo continua pending até a Dataprev responder.
3. Autorização na DataprevCom o aceite registrado, a API registra a autorização digital na Dataprev em segundo plano, com o CPF do subject e o nid do termo como chave identificadora. Quando a Dataprev autoriza, o termo passa a active, com token preenchido e expiresAt convertido do horário de Brasília para UTC, e o evento authorization_term.activated é publicado. Se a Dataprev recusar, o termo passa a rejected, com o motivo em status.note, e o evento authorization_term.rejected é publicado. Falhas temporárias do provedor são repetidas automaticamente.
Termo sem aceite não é enviado à Dataprev

Um termo criado sem signatures fica pending indefinidamente: a autorização na Dataprev só é disparada quando o aceite é registrado. Envie o aceite na criação ou depois, por POST /v5/authorization-terms/{id}/sign.

Jornada de aceite pelo trabalhador

Quando o aceite deve ser dado pelo próprio trabalhador, a operação gera uma jornada do tipo authorization_term_acceptance para o termo (POST /v5/journeys com sourceId = id do termo). O trabalhador recebe um link (e-mail ou SMS), lê o texto integral do termo e confirma. O aceite é registrado com IP, navegador e, quando permitida, a geolocalização do acesso, e o evento authorization_term.accepted é publicado — a partir daí o fluxo segue para a Dataprev como nas demais formas de aceite. Se o trabalhador recusar, o termo passa a rejected e o evento authorization_term.rejected é publicado.

Acompanhe a ativação por GET /v5/authorization-terms/{id} ou pelos eventos acima.

Campos da entidade​

Todas as rotas desta página devolvem o termo no formato abaixo.

CampoEntradaTipoDescrição
id—string (uuid)Identificador do termo. É o authorizationTermId das consultas Dataprev.
nid—integerIdentificador numérico interno. Enviado à Dataprev como chave identificadora/NSU da autorização.
code—integerCódigo sequencial por empresa.
key—string (uuid)Chave pública. Permite GET /v5/authorization-terms/key/{key}.
type— (fixo private_payroll_data_inquiry)object (code/key/name)Tipo do termo. Ver AuthorizationTermType.
title— (fixo)string"Consulta dos Vínculos Empregatícios do Trabalhador."
externalId, parentId—string | nullNão usados nesta jornada.
subjectsubjectobjectTitular dos dados: personType (fixo natural_person), documentType (fixo cpf), documentNumber, name.
documentdocument, templateIdobjectTexto do termo: title, author (padrão: nome da empresa), contentType, documentKey (modelo e versão usados, quando o texto vem de um modelo), data (texto integral), url, hash, hashAlgorithm, createdAt.
signaturessignaturesarrayAceites registrados, do mais recente para o mais antigo. Cada item é um envelope de assinatura eletrônica concluído — ver Formato de cada assinatura.
startsAtstartsAtstring (date-time)Início da vigência. Padrão: momento da criação.
expiresAtexpiresAtstring (date-time) | nullFim da vigência. Sobrescrito pela validade devolvida pela Dataprev.
token—string | nullToken de autorização do provedor. Preenchido pela Dataprev; a API o usa internamente nas consultas.
provider— (fixo dataprev)object (code/key/name)Provedor. Ver AuthorizationTermProvider.
status—object (Status)Nasce pending; passa a active após a Dataprev autorizar ou a rejected se ela (ou o trabalhador, na jornada) recusar. Ver AuthorizationTermStatus.
datadataarray de { key, value }Dados adicionais livres.

Formato de cada assinatura​

Cada item de signatures é um envelope com provedor internal, já em completed, com um documento (o texto do termo), um signatário por aceite e um requisito ligando os dois. Os campos são os do envelope de assinatura; os mais úteis para o termo:

CampoDescrição
id, code, keyIdentificação do envelope.
providerSempre internal: o aceite é registrado pela própria plataforma, sem provedor externo.
statuscompleted, com completedAt no momento do aceite.
documents[]O texto aceito: feature = authorization_term, type = term, content (texto integral), contentType, hash, hashAlgorithm, url.
signers[]Quem aceitou: name, documentType, documentNumber, email, phone, authenticationType, status = signed e signedAt.
requirements[]O papel com que o signatário aceitou (role), status = fulfilled, fulfilledAt e a evidência técnica em authenticity (timestamp, ipAddress, sessionId, userAgent, deviceId, fingerprint, latitude, longitude, location, channel, data[]).

Os valores enviados no aceite em signerRole, authenticationType e authenticity.channel usam os domínios do termo (ver Payload de assinatura) e aparecem no envelope já traduzidos para os domínios equivalentes da assinatura eletrônica — por exemplo, proxy vira attorney, sms_otp vira token_sms e branch vira presential. A tabela completa está em Domínios — Termos de Autorização.


Payload de assinatura​

O mesmo objeto de aceite é usado em cada item de signatures na criação e no corpo de POST /v5/authorization-terms/{id}/sign.

Visualizar parâmetros
CampoTipoObrigatórioDescrição
signer.namestringNãoNome do signatário.
signer.documentNumberstringSimCPF do signatário, somente dígitos. Ausente → 4060017.
signer.documentTypestring | nullNãoFixado em cpf na criação pelo consignado privado. Em /sign, key do tipo de documento; inválido → 1006009.
signer.emailstring | nullNãoE-mail.
signer.phonestring | nullNãoTelefone em E.164.
signerRolestring | nullNãokey de AuthorizationTermSignerRole. Padrão owner. Inválido → 4060010.
authenticationTypestring | nullNãokey de AuthorizationTermAuthenticationType: como o trabalhador confirmou o aceite. Inválido → 4060011.
locationstring | nullNãoLocal declarado do aceite.
signedAtstring (date-time) | nullNãoMomento do aceite. Padrão: authenticity.timestamp ou, na falta dele, o momento do registro.
authenticity.timestampstring (date-time) | nullNãoMomento capturado da evidência. Padrão: signedAt.
authenticity.ipAddressstring | nullNãoIP de origem do aceite.
authenticity.sessionIdstring | nullNãoSessão da aplicação em que o aceite ocorreu.
authenticity.userAgentstring | nullNãoNavegador/aplicativo.
authenticity.deviceIdstring | nullNãoIdentificador do dispositivo.
authenticity.fingerprintstring | nullNãoImpressão digital do dispositivo/sessão.
authenticity.channelstring | nullNãokey de AuthorizationTermChannel. Padrão web na criação pelo consignado privado. Inválido → 4060012.
authenticity.dataarray de { key, value } | nullNãoEvidências adicionais livres. Os itens latitude e longitude (ponto como separador decimal) são gravados como coordenadas da evidência.

POST /v5/loan-private-payrolls/terms​

Cria o termo de autorização para consulta de dados do trabalhador e responde com o termo em pending. Se signatures for enviado, o aceite é registrado na mesma chamada e a autorização na Dataprev é feita em segundo plano; só depois dela o termo fica active, com token e expiresAt preenchidos.

Autenticação: API Key (X-Api-Key). Exige permissão de criação de termos de autorização.

Payload de entrada​

Campos enviados pela requisição Criar Termo de Autorização da collection. O mínimo é o titular: sem document, a API gera o texto do termo a partir do modelo padrão da empresa, e o aceite é registrado depois, em POST /v5/authorization-terms/{id}/sign.

Visualizar parâmetros
CampoTipoObrigatórioDescrição
subject.documentNumberstringSimCPF do trabalhador, somente dígitos. É o CPF enviado à Dataprev. Ausente → 4060005.
subject.namestringSimNome completo do titular.
Outros campos aceitos (não usados na collection)
CampoTipoObrigatórioDescrição
document.datastring | nullNãoTexto integral do termo aceito (texto ou HTML).
document.urlstring | nullNãoEndereço do arquivo (PDF) do termo.
document.contentType, document.hash, document.hashAlgorithm, document.author, document.documentKey, document.createdAtstring | nullNãoMetadados do texto. Sem hash, ele é calculado a partir de data.
templateIdstring | nullNãoid ou key de um modelo de termo de autorização da empresa. Quando informado, o texto do termo é gerado a partir dele e substitui document.data/document.url. Não encontrado → 1172001; de outro tipo → 1172016; inativo → 1172015.
signaturesarray | nullNãoAceites do trabalhador, no formato do Payload de assinatura. Sem ele, o termo fica pending aguardando o aceite.
startsAtstring (date-time) | nullNãoInício da vigência. Padrão: agora.
expiresAtstring (date-time) | nullNãoFim da vigência. Sobrescrito pela Dataprev. expiresAt anterior ou igual a startsAt → 4060015.
dataarray de { key, value } | nullNãoDados adicionais livres.
authorizationTermIdstring (uuid) | nullNãoIgnorado nesta rota. Usado apenas por POST /v5/private-payroll-employment-relationships para reaproveitar um termo.
statusstring | nullNãoMantenha o padrão pending: só termos pending são enviados à Dataprev. Inválido → 4060003.
tokenstring | nullNãoNão envie: o token válido é sempre o devolvido pela Dataprev.
userIdstring | nullNãoUsuário responsável, quando diferente do autenticado.

personType, documentType, type, provider, title e document.title são fixados pela API e não precisam ser enviados.

Texto do termo. Se nem document.data nem document.url forem enviados e não houver templateId, a API usa o modelo padrão de termo de autorização da empresa, se houver um configurado; senão, gera um texto padrão de autorização de consulta de vínculo, margem e saldo FGTS em nome do titular. Em todos os casos o texto final fica em document.data, com hash.

Exemplo de Requisição e Resposta​

Visualizar Body
{
"subject": {
"documentNumber": "{{workerCpf}}",
"name": "{{workerName}}"
}
}

POST /v5/authorization-terms/{id}/sign​

Registra o aceite de um termo já criado — por exemplo, um termo criado sem signatures cujo aceite foi colhido depois. O aceite vira um novo envelope de assinatura concluído, inserido no início de signatures.

Num termo do consignado privado em pending, o aceite dispara a autorização na Dataprev em segundo plano, exatamente como na criação com signatures: a resposta ainda traz o termo pending, e a ativação chega depois. Um termo já active pode receber novos aceites, sem nova autorização na Dataprev.

Autenticação: API Key (X-Api-Key). Exige permissão de assinatura de termos de autorização.

Parâmetros de rota​

Visualizar parâmetros
ParâmetroTipoObrigatórioDescrição
idstring (uuid)SimIdentificador do termo.

Payload de entrada​

Campos enviados pela requisição Assinar Termo da collection, na mesma ordem. É o mesmo objeto do Payload de assinatura.

Visualizar parâmetros
CampoTipoObrigatórioDescrição
signer.namestringNãoNome do signatário.
signer.documentTypestring | nullNãoFixado em cpf na criação pelo consignado privado. Em /sign, key do tipo de documento; inválido → 1006009.
signer.documentNumberstringSimCPF do signatário, somente dígitos. Ausente → 4060017.
signer.emailstring | nullNãoE-mail.
signer.phonestring | nullNãoTelefone em E.164.
signerRolestring | nullNãokey de AuthorizationTermSignerRole. Padrão owner. Inválido → 4060010.
authenticationTypestring | nullNãokey de AuthorizationTermAuthenticationType: como o trabalhador confirmou o aceite. Inválido → 4060011.
locationstring | nullNãoLocal declarado do aceite.
signedAtstring (date-time) | nullNãoMomento do aceite. Padrão: authenticity.timestamp ou, na falta dele, o momento do registro.
authenticity.timestampstring (date-time) | nullNãoMomento capturado da evidência. Padrão: signedAt.
authenticity.ipAddressstring | nullNãoIP de origem do aceite.
authenticity.sessionIdstring | nullNãoSessão da aplicação em que o aceite ocorreu.
authenticity.userAgentstring | nullNãoNavegador/aplicativo.
authenticity.deviceIdstring | nullNãoIdentificador do dispositivo.
authenticity.fingerprintstring | nullNãoImpressão digital do dispositivo/sessão.
authenticity.channelstring | nullNãokey de AuthorizationTermChannel. Padrão web na criação pelo consignado privado. Inválido → 4060012.
authenticity.data[].keystringNãoNome da evidência adicional. latitude e longitude (ponto como separador decimal) são gravados como coordenadas da evidência; os demais pares ficam como dados adicionais do aceite.
authenticity.data[].valuestringNãoValor da evidência adicional.
Outros campos aceitos (não usados na collection)
CampoTipoObrigatórioDescrição
subject.documentNumberstringSimCPF do trabalhador, somente dígitos. É o CPF enviado à Dataprev. Ausente → 4060005.
subject.namestringSimNome completo do titular.
document.datastring | nullNãoTexto integral do termo aceito (texto ou HTML).
document.urlstring | nullNãoEndereço do arquivo (PDF) do termo.
document.contentType, document.hash, document.hashAlgorithm, document.author, document.documentKey, document.createdAtstring | nullNãoMetadados do texto. Sem hash, ele é calculado a partir de data.
templateIdstring | nullNãoid ou key de um modelo de termo de autorização da empresa. Quando informado, o texto do termo é gerado a partir dele e substitui document.data/document.url. Não encontrado → 1172001; de outro tipo → 1172016; inativo → 1172015.
signaturesarray | nullNãoAceites do trabalhador, no formato do Payload de assinatura. Sem ele, o termo fica pending aguardando o aceite.
startsAtstring (date-time) | nullNãoInício da vigência. Padrão: agora.
expiresAtstring (date-time) | nullNãoFim da vigência. Sobrescrito pela Dataprev. expiresAt anterior ou igual a startsAt → 4060015.
dataarray de { key, value } | nullNãoDados adicionais livres.
authorizationTermIdstring (uuid) | nullNãoIgnorado nesta rota. Usado apenas por POST /v5/private-payroll-employment-relationships para reaproveitar um termo.
statusstring | nullNãoMantenha o padrão pending: só termos pending são enviados à Dataprev. Inválido → 4060003.
tokenstring | nullNãoNão envie: o token válido é sempre o devolvido pela Dataprev.
userIdstring | nullNãoUsuário responsável, quando diferente do autenticado.

Regras​

  • O termo precisa estar pending ou active e dentro da vigência (expiresAt não atingido); caso contrário → 4060016.
  • Termo revogado → 4060014.

Exemplo de Requisição e Resposta​

Visualizar Body
{
"signer": {
"name": "{{workerName}}",
"documentType": "cpf",
"documentNumber": "{{workerCpf}}",
"email": "trabalhador@exemplo.com",
"phone": "+5511900000000"
},
"signerRole": "owner",
"authenticationType": "opt_in",
"location": "São Paulo/SP",
"signedAt": "2026-10-19T12:05:00Z",
"authenticity": {
"timestamp": "2026-10-19T12:05:00Z",
"ipAddress": "203.0.113.10",
"sessionId": "sess-8f3a2c",
"userAgent": "Mozilla/5.0 (Linux; Android 14) Chrome/128",
"deviceId": "dev-a1b2c3",
"fingerprint": "c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2",
"channel": "mobile",
"data": [
{
"key": "latitude",
"value": "-23.5505"
},
{
"key": "longitude",
"value": "-46.6333"
},
{
"key": "nsu",
"value": "123456988"
}
]
}
}

GET /v5/authorization-terms/{id}​

Retorna um termo pelo id. Use para verificar status, validade e token antes de reaproveitar um termo em novas consultas.

Autenticação: API Key (X-Api-Key). Exige permissão de leitura de termos de autorização.

Parâmetros de rota​

Visualizar parâmetros
ParâmetroTipoObrigatórioDescrição
idstring (uuid)SimIdentificador do termo devolvido na criação.

Exemplo de Requisição e Resposta​

curl --request GET \
--url 'https://{base-url}/v5/authorization-terms/00000000-0000-7000-8000-000000000101' \
--header 'X-Api-Key: {api_key}'

Interpretação do status​

status.keySignificadoO que fazer
pending sem signaturesCriado, aguardando o aceite do trabalhador. Nada foi enviado à Dataprev.Registre o aceite por POST /v5/authorization-terms/{id}/sign ou pela jornada de aceite.
pending com signaturesAceite registrado, aguardando a autorização da Dataprev em segundo plano. token e expiresAt nulos.Aguarde a ativação (consulte o termo ou assine authorization_term.activated).
activeAutorização válida até expiresAt.Pode ser usado nas consultas.
expiredVigência encerrada.Crie um novo termo.
revokedRevogado pelo titular ou pela operação.Crie um novo termo com novo aceite.
rejected / canceledRecusado pela Dataprev ou pelo trabalhador na jornada (motivo em status.note), ou cancelado.Corrija o motivo, se houver, e crie um novo termo.

GET /v5/authorization-terms/key/{key}​

Retorna um termo pela sua key pública. Alternativa ao id quando a chave foi compartilhada com outro sistema (impressa no documento assinado, embutida em um link de confirmação).

Autenticação: API Key (X-Api-Key). Exige permissão de leitura de termos de autorização.

Parâmetros de rota​

Visualizar parâmetros
ParâmetroTipoObrigatórioDescrição
keystring (uuid)SimCampo key do termo.

Exemplo de Requisição e Resposta​

curl --request GET \
--url 'https://{base-url}/v5/authorization-terms/key/00000000-0000-7000-8000-000000000202' \
--header 'X-Api-Key: {api_key}'