> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Metadados

> Anexe metadados personalizados em formato chave-valor às entidades do Midaz para estender o schema padrão do ledger com dados específicos da sua integração e necessidades de negócio.

**Metadados** permitem enriquecer entidades com informações definidas pelo usuário. Você anexa dados personalizados como pares chave-valor dentro de um objeto de metadados.

## O que são metadados?

***

Metadados permitem armazenar informações complementares junto ao modelo de dados padrão de uma entidade, adicionando atributos ou anotações personalizadas sem alterar o schema predefinido da entidade.

No Midaz, metadados são um objeto que aceita pares chave-valor nestes tipos de dados: strings, inteiros, floats e booleanos. As chaves aceitam **até 100 bytes** e os valores **até 2.000 bytes**.

> [!WARNING]
>
> Metadados **não** aceitam valores aninhados.

### Exemplo de metadados

Considere uma entidade Organização, como mostrado abaixo:

```json JSON expandable theme={null}
{
  "id": "cc15194a-6bc9-4ebb-b15d-43411a54ba4b",
  "parentOrganizationId": null,
  "legalName": "Empresa Teste Ltda",
  "doingBusinessAs": "Empresa Teste",
  "legalDocument": "86820799000188",
  "address": {
    "line1": "Rua Botucatu, 10",
    "line2": "Casa B",
    "zipCode": "04023060",
    "city": "São Paulo",
    "state": "SP",
    "country": "BR"
  },
  "metadata": null,
  "status": {
    "code": "ACTIVE",
    "description": null
  },
  "createdAt": "2024-02-08T16:59:31+0300",
  "updatedAt": "2024-02-08T16:59:31+0300",
  "deletedAt": null
}
```

Para enriquecer esta organização com informações adicionais, como setor de atuação e número de funcionários, você pode incluir um objeto de metadados nas suas requisições `POST` ou `PATCH`:

```json JSON theme={null}
{
  "metadata": {
    "sector": "Fintech",
    "employees": "50-100"
  }
}
```

## Criando entidades com metadados

***

Ao criar uma entidade, você pode enviar metadados pelos nossos endpoints `POST` e adicionar dados personalizados desde o início.

## Atualizando e removendo metadados

***

Nossa API segue a RFC do JSON Merge Patch para atualizações de metadados:

* **Adicionando ou atualizando valores**: Enviar uma chave com um novo valor em uma requisição `PATCH` atualiza os metadados existentes.
* **Removendo chaves**: Enviar uma chave como `null` em uma requisição `PATCH` remove esse par chave-valor. Uma chave que você omite mantém seu valor.
* **Removendo todas as chaves**: No `/v1`, enviar `metadata` como `null` em uma requisição `PATCH` remove todas as chaves que você definiu. Em uma transação ou em uma operação, as chaves que o ledger grava permanecem. No `/v2`, enviar `metadata` como `null` mantém os metadados armazenados. Para remover chaves no `/v2`, envie cada chave como `null`.
* **Mantendo os metadados inalterados**: Enviar `metadata` como `{}`, ou deixar `metadata` fora da requisição `PATCH`, mantém os metadados armazenados.

### Exemplo prático: modificando metadados

Suponha que uma entidade Organização tenha inicialmente incluído metadados de setor e número de funcionários. Para atualizar o número de funcionários e remover o setor, envie uma requisição `PATCH` com os seguintes metadados:

```json JSON theme={null}
{
  "metadata": {
    "employees": "100-150",
    "sector": null
  }
}
```

Depois que a requisição for processada, a chave de setor será removida, e o número de funcionários será atualizado.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.