# Estorno Retenção Resto

# Estorno Retenção Resto | Schema V1 | 2025 - ∞

##### **Tipo Envio: Diário**

---

##### **Objeto Raiz**

<figure class="wp-block-table is-style-stripes" id="bkmrk-campo-informa%C3%A7%C3%B5es-ti"><table class="has-fixed-layout" style="width: 100%;"><thead><tr><td style="width: 12.1549%;">**Campo**</td><td style="width: 87.8451%;">**Informações**</td></tr></thead><tbody><tr><td>`timestamp`</td><td>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 **<span style="color: rgb(186, 55, 42);">data mais antiga para a mais recente</span>**</td></tr><tr><td>`elementos`</td><td>–</td></tr></tbody></table>

</figure>---

##### **Item**

<figure class="wp-block-table is-style-stripes" id="bkmrk-campo-chave-informa%C3%A7"><table class="has-fixed-layout" style="width: 100%;"><thead><tr><td style="width: 30.9893%;">**Campo**</td><td style="width: 6.91299%;">**Chave**</td><td style="width: 62.0977%;">**Informações**</td></tr></thead><tbody><tr><td>`anoEmissaoEmpenho`</td><td class="align-center">✅</td><td>–</td></tr><tr><td>`codigoUnidadeOrcamentaria`</td><td class="align-center">✅</td><td>–</td></tr><tr><td>`numeroEmpenho`</td><td class="align-center">✅</td><td>–</td></tr><tr><td>`numeroPagamento`</td><td class="align-center">✅</td><td>–</td></tr><tr><td>`tipoRetencao`</td><td class="align-center">✅</td><td>**[Tabela Tipo Retenção](https://docs.tcepb.tc.br/books/tabelas-de-dominio/page/tipo-retencao)**</td></tr><tr><td>`numeroEstornoRetencaoResto`</td><td class="align-center">✅</td><td>–</td></tr><tr><td>`dataEstornoRetencaoResto`</td><td class="align-center">–</td><td>–</td></tr><tr><td>`motivo`</td><td class="align-center">–</td><td>–</td></tr><tr><td>`valorEstornoRetencaoResto`</td><td class="align-center">–</td><td>–</td></tr><tr><td>`codigoUnidadeGestoraOrigem`</td><td class="align-center">–</td><td>–</td></tr><tr><td>`action`</td><td class="align-center">–</td><td>Define a operação a ser realizada com a informação, seja ela **criação, atualização ou exclusão**</td></tr></tbody></table>

</figure>---

##### **Schema**

```
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Lista de Estornos de Retenção de Restos a Pagar",
  "description": "Lista de objetos representando a entidade Estorno Retenção Resto",
  "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": {
        "title": "Estorno Retenção Resto",
        "description": "Representação do schema para envio da entidade Estorno Retenção Resto",
        "type": "object",
        "properties": {
          "anoEmissaoEmpenho": {
            "type": "string",
            "minLength": 4,
            "maxLength": 4,
            "pattern": "^[0-9]+$"
          },
          "codigoUnidadeOrcamentaria": {
            "type": "string",
            "minLength": 5,
            "maxLength": 5,
            "pattern": "^[0-9]+$"
          },
          "numeroEmpenho": {
            "type": "string",
            "minLength": 7,
            "maxLength": 7,
            "pattern": "^[0-9]+$"
          },
          "numeroPagamento": {
            "type": "string",
            "minLength": 7,
            "maxLength": 7,
            "pattern": "^[0-9]+$"
          },
          "tipoRetencao": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1,
            "pattern": "^[0-9]+$"
          },
          "numeroEstornoRetencaoResto": {
            "type": "string",
            "minLength": 7,
            "maxLength": 7,
            "pattern": "^[0-9]+$"
          },
          "dataEstornoRetencaoResto": {
            "type": "string",
            "format": "date"
          },
          "motivo": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "valorEstornoRetencaoResto": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "codigoUnidadeGestoraOrigem": {
            "type": "string",
            "minLength": 6,
            "maxLength": 6,
            "pattern": "^[0-9]+$"
          },
          "action": {
            "type": "string",
            "enum": ["CREATE", "UPDATE", "DELETE"]
          }
        },
        "required": [
          "anoEmissaoEmpenho",
          "codigoUnidadeOrcamentaria",
          "numeroEmpenho",
          "numeroPagamento",
          "tipoRetencao",
          "numeroEstornoRetencaoResto",
          "dataEstornoRetencaoResto",
          "motivo",
          "valorEstornoRetencaoResto",
          "codigoUnidadeGestoraOrigem",
          "action"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": ["timestamp", "elementos"],
  "additionalProperties": false
}
```

---

##### **Exemplo de Payload**

```
{
  "timestamp": "2025-09-11T15:30:00.123456",
  "elementos": [
    {
      "anoEmissaoEmpenho": "2025",
      "codigoUnidadeOrcamentaria": "12345",
      "numeroEmpenho": "7654321",
      "numeroPagamento": "1234567",
      "tipoRetencao": "1",
      "numeroEstornoRetencaoResto": "9876543",
      "dataEstornoRetencaoResto": "2025-09-11",
      "motivo": "Estorno de retenção de restos a pagar lançado indevidamente",
      "valorEstornoRetencaoResto": 1500.00,
      "codigoUnidadeGestoraOrigem": "654321",
      "action": "CREATE"
    }
  ]
}
```