Ir para o conteúdo principal

Retenção | 2025 ~

Tipo Envio: Diário

Chave Unicidade

[ Exercício - Código Unidade Gestora - Código Unidade Orçamentária - Número Empenho - Número Liquidação - Número Retenção - Tipo Retenção ]


Objeto Raiz
Campo Informações
timestamp Campo utilizado para ordenar a validação das informações enviadas. Caso sejam enviados múltiplos payloads do mesmo tipo, a ordenação ocorrerá da data mais antiga para a mais recente
elementos

Item
Campo Chave Informações
codigoUnidadeOrcamentaria
numeroEmpenho
numeroLiquidacao
numeroPagamento
numeroRetencao
tipoRetencao Tabela Tipo Retenção
valorRetencao
action Define a operação a ser realizada com a informação, seja ela criação, atualização ou exclusão
Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Retenções",
  "description": "Schema para envio de retenções por unidade gestora",
  "type": "object",
  "properties": {
    "timestamp": {
      "type": "string",
      "pattern": "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)\\.\\d{3,6}$",
      "examples": ["2025-09-11T15:30:00.123456"]
    },
    "elementos": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "object",
        "properties": {
          "codigoUnidadeOrcamentaria": {
            "type": "string",
            "minLength": 5,
            "maxLength": 5,
            "pattern": "^[0-9]+$"
          },
          "numeroEmpenho": {
            "type": "string",
            "minLength": 7,
            "maxLength": 7,
            "pattern": "^[0-9]+$"
          },
          "numeroLiquidacao": {
            "type": "string",
            "minLength": 7,
            "maxLength": 7,
            "pattern": "^[0-9]+$"
          },
          "numeroPagamento": {
            "type": "string",
            "minLength": 7,
            "maxLength": 7,
            "pattern": "^[0-9]+$"
          },
          "numeroRetencao": {
            "type": "string",
            "minLength": 7,
            "maxLength": 7,
            "pattern": "^[0-9]+$"
          },
          "tipoRetencao": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1,
            "pattern": "^[0-9]+$"
          },
          "valorRetencao": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "action": {
            "type": "string",
            "enum": ["CREATE", "UPDATE", "DELETE"]
          }
        },
        "required": [
          "codigoUnidadeOrcamentaria",
          "numeroEmpenho",
          "numeroLiquidacao",
          "numeroPagamento",
          "numeroRetencao",
          "tipoRetencao",
          "valorRetencao",
          "action"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": ["timestamp", "elementos"],
  "additionalProperties": false
}

Exemplo de Payload
{
  "timestamp": "2025-09-11T15:30:00.123456",
  "elementos": [
    {
      "codigoUnidadeOrcamentaria": "17050",
      "numeroEmpenho": "0001234",
      "numeroLiquidacao": "0000002",
      "numeroPagamento": "0000001",
      "numeroRetencao": "0000001",
      "tipoRetencao": "1",
      "valorRetencao": 1500.00,
      "action": "CREATE"
    }
  ]
}

Regras

ID Regra
RETENCAO_DUPLICIDADE_NAO_PERMITIDA Não é permitido cadastrar registros duplicados pela chave de unicidade
RETENCAO_VALOR_RETIDO_EXCEDE_VALOR_PAGO A soma do valor retido não pode superar o valor pago

O valor líquido retido (retenção - estorno de retenção) não pode exceder o valor líquido pago (pagamento - estorno de pagamento) até a data do envio.
RETENCAO_PAGAMENTO_CADASTRADO pagamento referenciado deve ter sido cadastrado para a Unidade Gestora no exercício do envio
RETENCAO_TIPO_VALIDO O Tipo de Retenção deve ser válido conforme a Tabela de Tipo de Retenção