VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Identidade e configurações da loja

Upload de mídia

Envia uma imagem, PDF ou vídeo do seller e devolve a URL pública para usar em produtos, logo e banner.

Guarda o arquivo no armazenamento da loja e devolve o registro com a url pública. O arquivo fica ligado a um dono (owner_type + owner_id), por exemplo um produto seu ou o seu seller. O servidor ignora o tipo declarado pelo cliente e identifica o formato pelo conteúdo do arquivo.

POST/api/v1/vendor/mediaSeller

Enviar uma imagem, PDF ou vídeo

Cabeçalhos

Authorizationstringobrigatório
Bearer $TOKEN. Token de acesso de um usuário do painel do seller (lojista), obtido no login (veja Tokens).
Content-Typestringobrigatório
multipart/form-data.

Corpo da requisição

filefileobrigatório
O arquivo. Até 10 MB. Formatos aceitos: JPEG, PNG, GIF, WebP, AVIF, SVG, PDF e MP4.
owner_typestringobrigatório
A que o arquivo pertence: product (um produto seu), vendor (o seu seller: logo e banner) ou outro rótulo livre usado pelo painel.
owner_idstringobrigatório
Id do dono. Para product, o id do produto; para vendor, o id do seu seller.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/vendor/media" \
  -H "Authorization: Bearer $TOKEN" \
  -F "owner_type=vendor" \
  -F "owner_id=$VENDOR_ID" \
  -F "file=@logo.png;type=image/png"

Resposta

201Arquivo guardado
json
{
  "id": "9b1d6e22-0c3f-4f0a-8d51-6a7c4e3d2b10",
  "tenant_id": "dfe2555e-bfd0-41a8-9fa1-9586999f3798",
  "owner_id": "7c1f0b52-3a64-4d1e-9a40-5f0c2b6a91d3",
  "owner_type": "vendor",
  "filename": "logo.png",
  "content_type": "image/png",
  "size": 48213,
  "url": "https://cdn.example.com/dfe2555e/vendor/7c1f0b52/9b1d6e22_logo.png",
  "position": 1,
  "created_at": "2026-10-11T18:20:00Z"
}

Campos da resposta

iduuid
Id do arquivo.
tenant_iduuid
Id interno da loja.
owner_idstring
Dono informado.
owner_typestring
Tipo do dono informado.
filenamestring
Nome original do arquivo.
content_typestring
Formato identificado pelo conteúdo.
sizeinteger
Tamanho em bytes.
urlstring
URL pública do arquivo. Guarde esta URL no campo que a usa (logo_url, imagem de produto...).
altstring
Texto alternativo. Ausente quando não definido.
positioninteger
Ordem entre os arquivos do mesmo dono, a partir de 1.
created_atstring
RFC 3339.

Erros

StatusQuandoCorpo
401Sem token ou token inválido/expirado.{"error":"missing authorization header"} / {"error":"invalid or expired token"}
403O token não é de um usuário seller (por exemplo, é de um administrador da loja).{"error":"insufficient permissions"}
403O cadastro do seller ainda está em análise (só a tela de cadastro funciona até a aprovação).{"error":"vendor_pending_review","message":"..."}
403O usuário tem papel de seller, mas não está ligado a nenhum seller.{"error":"no vendor account associated with this user"}
400Falta file, owner_id ou owner_type, ou o corpo não é um formulário multipart válido ou passa de 10 MB.{"error":"file is required"} / {"error":"owner_id is required"} / {"error":"owner_type is required"} / {"error":"failed to parse multipart form"}
400Formato não permitido (o detalhe diz o formato detectado).{"error":"unsupported file type","detail":"Allowed types: JPEG, PNG, GIF, WebP, AVIF, SVG, PDF, MP4. Detected: text/plain; charset=utf-8"}
403owner_type é product ou vendor e o dono não é seu (produto de outro seller ou outro seller).{"error":"owner_not_allowed","code":"owner_not_allowed"}
500Falha ao guardar o arquivo.{"error":"failed to upload file","detail":"..."}
Só `product` e `vendor` são conferidos

O servidor confere o dono apenas quando owner_type é product ou vendor. Para qualquer outro rótulo ele guarda o arquivo sem conferir o owner_id. Use só os rótulos que a sua integração precisa.

Funciona durante a análise do cadastro

Um seller com cadastro em análise pode enviar arquivos (é assim que anexa os documentos exigidos), mesmo sem acesso às demais rotas.

SVG

Arquivos SVG são aceitos de sellers, mas um SVG é um documento que o navegador executa. Envie apenas SVG que você mesmo gerou.

Anterior
Cadastro e configurações
Próxima
Relatório de personalização
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros