Enviar banner
Envia a imagem de um banner novo.
Corpo
multipart/form-data — não JSON:
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
imagemobrigatório | arquivo | — | JPG, PNG ou WebP, até 5 MB. |
descricao | texto | — | Texto alternativo, até 120 caracteres. |
link | texto | — | Endereço http ou https. Sem protocolo, assume https://. |
Exemplo
curl -X POST https://api.otlshoes.com.br/v1/loja-hub/banners \
-H "Authorization: Bearer $OTL_TOKEN" \
-F "imagem=@banner-inverno.jpg" \
-F "descricao=Promoção de inverno"
Resposta
201 Created, com o banner:
{
"id": "cmh1b2c3d0001",
"imagemUrl": "https://cdn.otlshoes.com.br/otl-catalog/hub/banners/inverno.webp",
"descricao": "Promoção de inverno",
"link": "https://hubshoes.com.br/joao-calcados?marca=casual",
"posicao": 0,
"ativo": true,
"criadoEm": "2026-09-10T10:00:00-03:00"
}
| Campo | Tipo | Descrição |
|---|---|---|
id | texto | O identificador do banner. |
imagemUrl | texto | A imagem, já convertida para WebP. |
descricao | texto | Texto alternativo da imagem. Pode ser null. |
link | texto | Para onde o banner leva. Pode ser null. |
posicao | inteiro | A ordem no carrossel, a partir de 0. |
ativo | booleano | false = guardado, mas fora da vitrine. |
criadoEm | data | Quando foi enviado. |
Regras que não se leem no JSON
- A imagem é convertida para WebP e reduzida na largura: a URL devolvida não é a do arquivo enviado.
- Até 8 banners por loja. O novo entra no fim; para mudar a ordem, use Ordenar banners.
- Com
Idempotency-Keynum envio de arquivo, a repetição é reconhecida só pela chave.
Erros possíveis
| HTTP | codigo |
Quando |
|---|---|---|
| 400 | VALIDACAO |
Sem arquivo, formato não aceito, ou campo fora do limite |
| 400 | REQUISICAO_INVALIDA |
A loja já tem 8 banners, ou o link não é http(s) |
| 413 | REQUISICAO_INVALIDA |
Arquivo acima de 5 MB |
| 403 | LOJA_HUB_NAO_LIBERADA |
A OTL ainda não liberou a loja no HUB para este parceiro |
| 403 | ESCOPO_INSUFICIENTE |
A integração não tem loja-hub:escrever |
