POST /api/material-requests
Cria uma solicitação de material e a encaminha para processamento.
Autenticação
Requer header Authorization: Bearer <access_token> emitido pelo endpoint POST /api/external-auth/token.
Request
Headers
| Header | Valor |
|---|---|
Content-Type | application/json |
Authorization | Bearer <access_token> |
Body
{
"id": 123,
"shop_code": "SHOP001",
"comment": "Necessidade urgente de reposição de materiais",
"materials": [
{
"material_id": 33,
"material": "c. Banner-Moldura Extra (Aumento TM)",
"material_variant_id": 5,
"material_variant": "Banner",
"sku": "33-5",
"width": 10,
"height": 10,
"depth": 1,
"quantity": 3
},
{
"material_id": 19,
"material": "k. Adesivo Esgotado",
"material_variant_id": null,
"material_variant": null,
"sku": "19",
"width": 10,
"height": 10,
"depth": 1,
"quantity": 10
}
]
}
Descrição dos campos
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | int | ✅ | Identificador da solicitação |
shop_code | string | ✅ | Código da loja |
comment | string | — | Comentário/observação da solicitação |
materials | array | ✅ | Lista de materiais solicitados (mín. 1 item) |
materials[].material_id | int | ✅ | ID do material |
materials[].material | string | ✅ | Nome do material |
materials[].material_variant_id | int|null | — | ID da variante do material |
materials[].material_variant | string|null | — | Nome da variante do material |
materials[].sku | string | ✅ | SKU do material |
materials[].width | float | ✅ | Largura |
materials[].height | float | ✅ | Altura |
materials[].depth | float | — | Profundidade |
materials[].quantity | int | ✅ | Quantidade solicitada (mín. 1) |
curl -s -X POST https://servicos.ifollowtech.com.br/api/material-requests \
-H "Content-Type: application/json" \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-d '{
"id": 123,
"shop_code": "SHOP001",
"comment": "Reposição urgente",
"materials": [
{
"material_id": 33,
"material": "c. Banner-Moldura Extra (Aumento TM)",
"material_variant_id": 5,
"material_variant": "Banner",
"sku": "33-5",
"width": 10,
"height": 10,
"depth": 1,
"quantity": 3
}
]
}'
Response
201 Created
{
"status": "enqueued",
"id": 123
}
A solicitação foi recebida e encaminhada para processamento. As estimativas de entrega disponíveis serão enviadas via webhook para o endpoint POST /api/material-requests/{id}/delivery-estimates.
400 Bad Request
Body inválido ou campos obrigatórios ausentes.
401 Unauthorized
Token ausente, expirado ou inválido.
422 Unprocessable Entity
Itens duplicados na lista de materiais (mesmo material_id + material_variant_id + sku).
{
"message": "Duplicate material items are not allowed.",
"duplicates": [
{ "materialId": 33, "materialVariantId": 5, "sku": "33-5" }
]
}