API Docs Início Documentação Referência de API Copiar para LLM
CaaS Massificados · FGTS

FGTS — Operação

Dado pessoal ou sensível deve ser mascarado em outputs, logs e exemplos. Todos os valores desta página são fictícios. Formatos de data, de valor e de taxa: Convenções de dados.

O que é

Esta é a página do fluxo principal: da simulação até a operação assinada e liquidada. Ela assume que os três cadastros de 2. Pré-requisitos e cadastros já existem.

A sequência é mais curta que a do Consignado privado porque não há margem a consultar nem proposta a enviar ao empregador: o lastro já existe na conta do FGTS do titular. O que decide o valor é quantos saques-aniversário podem ser antecipados e a faixa de taxa e prazo do produto contratado.

Quando usar

Pré-requisitos

Item Origem
Termo de consentimento anexado 2.1 Consentimento de consulta
bankAccountId 2.2 Conta de liquidação
personId 2.3 Cadastro do titular
productId Fornecido pela UY3 no onboarding
Token válido Autenticação

Endpoints do fluxo principal

Passo 1 — Simular a antecipação

POST /v1/Amortization
GET  /v1/Amortization/{id}
POST /v1/Amortization/Batch

Gera o plano de pagamento da antecipação: parcelas anuais, CET, IOF e custo de emissão. O corpo é o mesmo objeto de cálculo enviado na criação da operação — ver a seção Como preencher abaixo. Isso é uma vantagem prática: o corpo que você simulou é o corpo que você cria, sem tradução.

GET /v1/Amortization/{id} recupera uma simulação já gerada, sem simular de novo. POST /v1/Amortization/Batch simula várias condições em uma chamada — útil para oferecer ao titular mais de um prazo.

Parâmetro Tipo Obrigatório Como preencher Exemplo
amortizationType string Sim fgts. Nenhum outro valor descreve este produto. fgts
requestedAmount inteiro em centavos Sim Valor pretendido. 150000 (= R$ 1.500,00)
termInMonths inteiro Sim Prazo em meses. Corresponde aos saques-aniversário antecipados. 24
apr número Sim Taxa de juros mensal, em porcentagem, dentro da faixa do produto. 2.09
startDate data e hora Sim Data base da operação, em UTC. 2026-08-25T00:00:00Z
paymentMonth enum Não (envie) Mês do saque-aniversário do titular. Sem ele o cronograma não se ancora no mês certo. August
curl --location --request POST '{{baseUrl}}/v1/Amortization' \
  --header 'Authorization: Bearer {{token}}' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data '{
    "productId": "44444444-4444-4444-4444-444444444444",
    "legalPerson": false,
    "amortization": {
      "amortizationType": "fgts",
      "requestedAmount": 150000,
      "termInMonths": 24,
      "apr": 2.09,
      "startDate": "2026-08-25T00:00:00Z",
      "paymentMonth": "August"
    }
  }'

O objeto de cálculo vai dentro de amortization; a raiz exige productId e legalPerson, os dois obrigatórios no contrato. No FGTS o titular é pessoa física, então legalPerson é false. Os campos da tabela acima são os de dentro de amortization.

Há só um caminho de simulação neste produto. O Consignado privado tem dois — ofertas e amortização —, porque lá existe uma margem consignável contra a qual comparar produtos habilitados. Aqui não há margem nem vitrine a comparar: o lastro é um saldo que já existe, e o que resta é dimensionar valor e prazo. A simulação por amortização faz exatamente isso.

Saldo disponível do FGTS. A apuração do saldo antecipável do titular acontece na etapa de averbação, dentro da esteira, e não é exposta como consulta ao parceiro nesta API. Dimensione o requestedAmount pelo valor combinado com o titular; se ele exceder o antecipável, a operação é devolvida na garantia. Ver 5. Erros e troubleshooting.

Passo 2 — Criar a operação de crédito

POST /v1/CreditNote
Parâmetro Local Obrigatório Como preencher Exemplo
updateStartDate query Não true para a API reposicionar a data de início no dia da criação. true
returnValue query Não true para o retorno vir com a operação completa em vez de apenas o identificador. true

Corpo: ver Como preencher abaixo. A operação nasce em Draft (rascunho) ou já em ComplianceApproval, conforme a configuração do produto contratado.

Passo 3 — Documentos

PUT /v1/CreditNote/{id}/upload
PUT /v1/CreditNote/{id}

Os documentos podem ir no corpo da criação (coleção uploads) ou ser anexados depois, pela rota acima. Ver a seção Documentos: uploads, e por que não há warranty em Como preencher.

PUT /v1/CreditNote/{id} corrige atributos da operação — permitido apenas nos status Draft, Revision, Disapproved e Error.

Passo 4 — Enviar para aprovação

POST /v1/CreditNote/{id}/submitapproval
Parâmetro Local Obrigatório Como preencher Exemplo
id rota Sim Identificador da operação criada no passo 2. 55555555-5555-5555-5555-555555555555
updateStartDate query Não true para reposicionar a data de início no envio. false
curl --location --request POST '{{baseUrl}}/v1/CreditNote/55555555-5555-5555-5555-555555555555/submitapproval' \
  --header 'Authorization: Bearer {{token}}' \
  --header 'Accept: application/json'

Depois do envio, a operação não pode mais ser alterada até o fim da análise. O envio é bloqueado quando o titular excede o limite anual de contratos — cada saque-aniversário só pode ser antecipado uma vez.

Passo 5 — Assinatura eletrônica

GET /v1/CreditNote/{id}/SignUrl

Devolve as URLs de assinatura para você entregar ao titular. A coleta em si acontece fora da API, no provedor de assinatura. Disponível a partir do status Signatures.

Se você já tem o instrumento assinado em mãos antes disso, ele pode ser enviado como documento na criação — ver a seção sobre uploads em Como preencher.

Passo 6 — Averbação no órgão

A averbação não é uma rota que você chama: é uma etapa da esteira, exclusiva deste produto. A operação assume o status de garantia (Warranty) e aguarda o retorno do órgão, respeitando a janela de manutenção dele. Você acompanha por consulta — ver 4. Consultas e acompanhamento.

Quando a mesa devolve a garantia para revisão (WarrantyRevision), o encerramento da revisão é feito por:

POST /v1/CreditNote/{id}/doneWarrantyRevision

Passo 7 — Cancelar, excluir ou restaurar

POST   /v1/CreditNote/{id}/cancel
DELETE /v1/CreditNote/{id}
POST   /v1/CreditNote/{id}/restore

O cancelamento é uma ação única, sem parâmetros de controle: você chama cancel e o desfazimento do registro no órgão faz parte do processamento pela esteira.

Campo Tipo Obrigatório Como preencher Exemplo
message corpo Não (envie) Motivo do cancelamento, em texto. Fica no histórico da operação e é o que a mesa lê. Desistencia do titular
curl --location --request POST '{{baseUrl}}/v1/CreditNote/55555555-5555-5555-5555-555555555555/cancel' \
  --header 'Authorization: Bearer {{token}}' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data '{ "message": "Desistencia do titular" }'

Acompanhe até Canceled. Se a operação já estava averbada, o desfazimento no órgão faz parte do processamento e o status é o sinal de que terminou. Só contrate de novo para o mesmo titular depois disso — antes, o saque-aniversário pode ainda estar comprometido com a operação anterior.

A exclusão (DELETE) é lógica e só é permitida nos status Draft, Revision, Disapproved e Canceled. restore desfaz a exclusão.

Como preencher

Nível da operação — corpo de POST /v1/CreditNote

Campo Tipo Obrigatório Como preencher Exemplo
productId string (uuid) Sim Produto contratado de FGTS, fornecido pela UY3. Define o modelo de cálculo e as faixas de taxa e prazo. 33333333-3333-3333-3333-333333333333
personId string (uuid) Sim O titular. Precisa estar vinculado ao seu usuário/correspondente. 11111111-1111-1111-1111-111111111111
amortization objeto Sim Objeto de cálculo do FGTS. Ver a tabela abaixo. ver abaixo
uploads lista de objetos Sim na prática Documentos da operação, incluindo o termo de consentimento. Sem ele a operação é devolvida na garantia. ver abaixo
liquidationType enum Sim para este produto Use EletronicTransfer. Invoice (boleto) não se aplica ao FGTS. EletronicTransfer
bankAccountId string (uuid) Sim para este produto Conta de destino do valor liberado. 22222222-2222-2222-2222-222222222222
emissionDate data e hora Não Data de emissão do instrumento. Omita para usar a data da criação. 2026-08-25T00:00:00Z
newPersonAndAccount objeto Não Cria titular e conta na própria criação, dispensando os cadastros 2.2 e 2.3. Alternativa a personId + bankAccountId. ver 2.3 Cadastro do titular
observations string Não Observação livre para a mesa de crédito. Antecipacao saque-aniversario
warranty lista de objetos Não envie O FGTS não usa garantia por tipo. Ver a seção sobre documentos abaixo.

Objeto de cálculo — modelo FGTS

O modelo de cálculo do FGTS é o mais enxuto do catálogo. Somente os campos abaixo se aplicam.

Campo Tipo Obrigatório Como preencher Exemplo
amortizationType string Sim Discriminador do modelo. Valor literal fgts. Comparação sem distinção de caixa. fgts
requestedAmount inteiro em centavos Sim Valor contratado. Não tem sufixo InCents e ainda assim é em centavos. 150000 (= R$ 1.500,00)
termInMonths inteiro Sim Prazo em meses, correspondente aos saques-aniversário antecipados. Precisa estar na faixa de prazo do produto. 24
apr número Sim Taxa de juros mensal, em porcentagem. Precisa estar na faixa do produto e ser maior que zero. 2.09
startDate data e hora Sim Data base de cálculo do contrato. 2026-08-25T00:00:00Z
paymentMonth enum Não (envie) Mês do saque-aniversário do titular: January a December (ou NotSet). Sem ele o cronograma não se ancora no mês do saque. August
includePaymentFixedCosts booleano Não true para embutir custos fixos na parcela. false

Não envie neste produto: paymentDay, absAmortizationInMonths, absInterestInMonths, daysInYear, periodicity, paymentPeriodicity, firstPaymentDate, numberOfPayments, calculationType, calculateByValueType, indexer, indexerValue, firstPaymentInterest, fiduciaryGuarantee, financeTaxExempted. Esses campos pertencem a outros modelos de cálculo e indicam objeto errado — se você precisa deles, o produto pretendido é provavelmente Consignado privado.

Documentos: uploads, e por que não há warranty

O POST /v1/CreditNote aceita documento e garantia em duas coleções. Neste produto, só uma delas é usada:

Coleção O que vai nela Neste produto
uploads Os arquivos da operação — termo de consentimento, instrumento assinado, comprovantes. Use sempre.
warranty Os dados de uma garantia por tipo — vínculo, bem, margem. Não use. O lastro do FGTS é o saldo do titular, e a averbação é etapa dedicada da esteira. Não existe tipo de garantia FGTS na lista de tipos de garantia.

Enviar warranty aqui cria uma garantia sem correspondência no produto — a rota PUT /v1/CreditNote/{id}/warranty existe no contrato, mas não se aplica ao FGTS.

Campo Tipo Obrigatório Como preencher Exemplo
uploads[].fileType enum Sim (no item) Tipo do documento. Authorization para o termo de consentimento; SignedContract para o instrumento já assinado; Others para o resto. Authorization
uploads[].fileName string Sim (no item) Nome do arquivo, com extensão. consentimento-fgts-000123.pdf
uploads[].displayName string Não (envie) Rótulo exibido na mesa. Sem ele a mesa vê só o nome do arquivo. Consentimento de consulta FGTS
uploads[].documentDate data e hora Não Data do documento. 2026-08-25T00:00:00Z

Documento assinado enviado em rascunho permanece disponível para a assinatura. Se você já tem o instrumento assinado — coleta presencial, assinatura em canal próprio — envie-o em uploads com fileType: "SignedContract" enquanto a operação está em Draft. Desde que a coleção não esteja vazia, o documento continua vinculado à operação e é aproveitado quando ela chega à etapa de assinatura, em vez de a esteira pedir uma coleta nova.

Duas consequências práticas:

Exemplo de request

curl --location --request POST '{{baseUrl}}/v1/CreditNote?returnValue=true' \
  --header 'Authorization: Bearer {{token}}' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data '{
    "productId": "33333333-3333-3333-3333-333333333333",
    "personId": "11111111-1111-1111-1111-111111111111",
    "liquidationType": "EletronicTransfer",
    "bankAccountId": "22222222-2222-2222-2222-222222222222",
    "observations": "Antecipacao saque-aniversario",
    "amortization": {
      "amortizationType": "fgts",
      "requestedAmount": 150000,
      "termInMonths": 24,
      "apr": 2.09,
      "startDate": "2026-08-25T00:00:00Z",
      "paymentMonth": "August",
      "includePaymentFixedCosts": false
    },
    "uploads": [
      {
        "fileType": "Authorization",
        "fileName": "consentimento-fgts-000123.pdf",
        "displayName": "Consentimento de consulta FGTS",
        "documentDate": "2026-08-25T00:00:00Z"
      }
    ]
  }'

Para enviar o instrumento já assinado junto da criação, acrescente um item a uploads:

{
  "fileType": "SignedContract",
  "fileName": "instrumento-assinado.pdf",
  "displayName": "Instrumento assinado",
  "documentDate": "2026-08-25T00:00:00Z"
}

Exemplo de response

{
  "id": "55555555-5555-5555-5555-555555555555",
  "creditNoteNo": "2026/000456",
  "status": "Draft",
  "productId": "33333333-3333-3333-3333-333333333333",
  "personId": "11111111-1111-1111-1111-111111111111",
  "amortization": {
    "amortizationType": "fgts",
    "requestedAmount": 150000,
    "termInMonths": 24,
    "apr": 2.09,
    "paymentMonth": "August"
  },
  "warranty": [],
  "uploads": [ { "fileType": "Authorization", "fileName": "consentimento-fgts-000123.pdf" } ]
}

Guarde o id: é ele que identifica a operação em todas as etapas seguintes e nas consultas. A coleção warranty volta vazia — é o esperado neste produto.

Códigos de retorno

Código Significado O que fazer
200 Etapa concluída. Siga para a etapa seguinte com o id devolvido.
400 Validação de negócio ou de contrato: modelo de cálculo divergente do produto, taxa fora da faixa, prazo fora da faixa, campos de outro modelo enviados. Ver 5. Erros e troubleshooting.
401 Token ausente, expirado ou inválido. Renove o token — ver Autenticação.
403 Sem permissão para a ação, ou titular não vinculado ao usuário/correspondente. Ver 5. Erros e troubleshooting.
404 Operação, titular, conta ou produto inexistente. Confira os identificadores das etapas anteriores.
409 Ação inválida para o status atual da operação. Consulte o status antes de repetir — ver 4. Consultas e acompanhamento.

O que acontece depois

Depois do submitapproval, a operação percorre a esteira: análise de crédito, compliance, garantia (averbação no órgão), aprovação do instrumento e coleta de assinaturas. Confirmada a averbação e concluídas as assinaturas, a operação entra em liquidação e o valor é transferido por Pix ou TED para a conta cadastrada.

A partir daí, a cada ano, o saque-aniversário do titular é debitado na origem e amortiza o contrato — sem nova chamada de API sua.

Cada uma dessas transições é um evento observável. O ciclo completo, evento por evento, está em 4.1 Eventos e notificações.

Antes desta etapa

Próxima etapa

Downloads