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

# integração de materiais

> o material é o insumo que a marca cadastra na teceo para controlar a disponibilidade de matéria-prima dos SKUs que o consomem

## o que é um material

na plataforma esse mesmo recurso aparece como **matéria-prima**, e é assim que a [doc de produto](/docs/disponibilidades/materia-prima) chama. na API o nome do recurso é material, então os dois termos apontam para a mesma coisa.

cadastrar o material não muda a disponibilidade de nenhum SKU. o saldo do material só limita a venda dos SKUs que têm a [disponibilidade de matéria-prima](/docs/disponibilidades/materia-prima#ligar-a-disponibilidade-do-sku) ligada na plataforma e que consomem esse material. o consumo de cada SKU vai em `PATCH /v1/sku-materials`, e o saldo do material em cada janela de entrega vai em `PATCH /v1/material-stocks`, os dois descritos no [swagger](https://integration.teceo.co/swagger).

## endpoints

| endpoint | o que faz |
| - | - |
| `POST /v1/materials` | cadastra um material com nome e código do seu sistema |
| `GET /v1/materials` | lista os materiais, com filtro por nome e por código |
| `PATCH /v1/materials/by/code/{integrationCode}` | atualiza o nome de um material pelo código do seu sistema |

os campos de cada rota, com tipo, obrigatoriedade e exemplo, estão na página da própria rota, no menu ao lado. a listagem é paginada por cursor, como descrito em [paginação](/integracoes/brand/paginacao).

## regras de negócio

### o código do material

o `integrationCode` é o código do material no seu sistema, único dentro da marca, e é por ele que o material é referenciado nos outros endpoints.

esse código diferencia maiúsculas de minúsculas em todas as rotas. `ALG-001` e `alg-001` criam dois materiais separados, o PATCH com `alg-001` devolve `404` num material gravado como `ALG-001`, e o filtro por código também busca o valor exato. mande sempre na mesma caixa que o seu sistema usa.

a criação remove os espaços do começo e do fim do código antes de gravar, então use o código sem esses espaços nas outras rotas. a API não exclui material nem troca o código, e o material criado com o código errado é corrigido ou excluído na plataforma, em [cadastro de matéria-prima](/docs/disponibilidades/materia-prima#cadastrar-a-matéria-prima).

o filtro por nome é diferente, porque busca por parte do nome e ignora maiúsculas, minúsculas e acentos.

### listagem

a listagem vem ordenada por data de criação, da mais antiga para a mais nova, o que permite percorrer a base inteira sem repetir nem pular material.

## erros

| status | código | quando acontece |
| - | - | - |
| `409` | `api.exception.material.alreadyExists` | ao criar, já existe um material da marca com esse `integrationCode` |
| `404` | `api.exception.material.notFound` | ao atualizar, não existe material da marca com esse `integrationCode` |


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