Anexos do produto
Lista, anexa e reordena os arquivos para download de um produto do seller.
Anexos são arquivos que o cliente pode baixar na página do produto. Editar ou remover um anexo existente usa PUT e DELETE em /api/v1/vendor/attachments/{attachmentId}, rotas fora do caminho do produto que conferem se o anexo é de um produto seu.
Listar anexos
/api/v1/vendor/products/{id}/attachmentsSellerListar os anexos
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId do produto.
Exemplo de requisição (listar)
bash
curl "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/attachments" \
-H "Authorization: Bearer $TOKEN"Resposta (listar)
200Anexos
json
{
"items": [
{
"id": "3c1f9b2a-7d44-4e0b-8a6c-2b9d5e7f1a33",
"product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d",
"file_name": "manual.pdf",
"file_url": "/uploads/dfe2555e/produtos/manual.pdf",
"file_size": 482113,
"mime_type": "application/pdf",
"description": "Manual de uso",
"position": 0,
"download_count": 0,
"created_at": "2026-10-11T21:10:00Z",
"updated_at": "2026-10-11T21:10:00Z"
}
],
"total": 1
}Campos da resposta
itemsarrayAnexos em ordem de posição.
totalintegerQuantidade.
Erros (listar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 404 | Produto não existe. | {"error":"product not found"} |
Anexar arquivo
Registra um arquivo para download na página do produto, como manual, ficha técnica ou certificado. A plataforma guarda os dados que você informa; ela não valida o arquivo apontado por file_url.
/api/v1/vendor/products/{id}/attachmentsSellerAnexar um arquivo
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId do produto.
Corpo da requisição
file_namestringobrigatórioNome exibido ao cliente.
file_urlstringobrigatórioURL do arquivo (por exemplo um caminho
/uploads/... já enviado à loja).file_sizeintegerTamanho em bytes.
mime_typestringTipo do arquivo, como
application/pdf.descriptionstringDescrição curta.
positionintegerPosição na lista.
Exemplo de requisição (anexar)
bash
curl -X POST "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/attachments" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"file_name": "manual.pdf",
"file_url": "/uploads/dfe2555e/produtos/manual.pdf",
"file_size": 482113,
"mime_type": "application/pdf",
"description": "Manual de uso"
}'Resposta (anexar)
201Anexo criado
json
{
"id": "3c1f9b2a-7d44-4e0b-8a6c-2b9d5e7f1a33",
"product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d",
"file_name": "manual.pdf",
"file_url": "/uploads/dfe2555e/produtos/manual.pdf",
"file_size": 482113,
"mime_type": "application/pdf",
"description": "Manual de uso",
"position": 0,
"download_count": 0,
"created_at": "2026-10-11T21:10:00Z",
"updated_at": "2026-10-11T21:10:00Z"
}Campos da resposta
idstring (uuid)Id do anexo.
product_idstring (uuid)Produto dono.
file_namestringNome exibido.
file_urlstringURL do arquivo.
file_sizeintegerTamanho em bytes, informado por você.
mime_typestringTipo do arquivo, informado por você.
descriptionstringDescrição.
positionintegerOrdem na lista.
download_countintegerQuantas vezes foi baixado.
created_atstringCriação (RFC 3339).
updated_atstringÚltima alteração (RFC 3339).
Erros (anexar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 400 | file_name ou file_url ausentes. | {"error":"file_name is required"} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 404 | Produto não existe. | {"error":"product not found"} |
Reordenar anexos
/api/v1/vendor/products/{id}/attachments/reorderSellerReordenar os anexos
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId do produto.
Corpo da requisição
attachment_idsarray of stringobrigatórioIds dos anexos na ordem desejada.
Exemplo de requisição (reordenar)
bash
curl -X PUT "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/attachments/reorder" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"attachment_ids": [
"3c1f9b2a-7d44-4e0b-8a6c-2b9d5e7f1a33"
]
}'Resposta (reordenar)
200Anexos reordenados
json
{
"items": [
{
"id": "3c1f9b2a-7d44-4e0b-8a6c-2b9d5e7f1a33",
"product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d",
"file_name": "manual.pdf",
"file_url": "/uploads/dfe2555e/produtos/manual.pdf",
"file_size": 482113,
"mime_type": "application/pdf",
"description": "Manual de uso",
"position": 0,
"download_count": 0,
"created_at": "2026-10-11T21:10:00Z",
"updated_at": "2026-10-11T21:10:00Z"
}
],
"total": 1
}Campos da resposta
itemsarrayAnexos na nova ordem.
totalintegerQuantidade.
Erros (reordenar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 400 | attachment_ids ausente ou vazio. | {"error":"attachment_ids is required"} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 404 | Produto não existe. | {"error":"product not found"} |