API de importação da Bwatoo
Envie o seu catálogo para a sua loja Bwatoo a partir da sua caixa, da sua loja online ou do seu software de gestão.
Autenticação
Crie uma chave em A minha loja, Chaves de API. Envie-a no cabeçalho Authorization. Uma chave de teste (bw_test_…) valida os envios e devolve o relatório sem publicar nada.
Authorization: Bearer bw_live_…
Enviar produtos
100 produtos no máximo por pedido. Um produto é criado, ou atualizado se tiver um external_id já conhecido.
POST https://api.er.bwatoo.com/api/v1/shop/products
{"items": [{"external_id": "HLX-15", "category": "cars", "title": "Toyota Hilux 2015",
"description": "…", "price": "8500000", "currency": "XAF", "city": "Libreville",
"attributes": {"make": "toyota", "model": "hilux", "year": 2015},
"photos": ["https://…/hilux.jpg"], "stock": 3}],
"full_feed": false}
- A categoria e os atributos seguem as mesmas regras do anúncio no site: os atributos de uma categoria são dados por GET /api/v1/categories/
/attributes. - A moeda deve ser a do país da loja. Nenhum número de telefone nem e-mail nos textos.
- As fotos são endereços https públicos; a Bwatoo descarrega-as, controla-as e redimensiona-as.
- full_feed: os produtos da loja ausentes do envio são pausados, nunca apagados.
- Stock e variantes: plano Business.
- Pré-encomenda do estrangeiro (Pro e Business): ships_from (código de país ISO, por exemplo CN), delivery_days_min e delivery_days_max (dias, 120 no máximo). O prazo máximo é obrigatório quando o produto sai de outro país. A Bwatoo mostra «Enviado de: China · 45 a 60 d» e não propõe os seus estafetas locais.
Cada produto recebe um resultado: created, updated, unchanged, pending (verificação pela equipa) ou rejected com o motivo.
Outras rotas
GET /api/v1/shop/products?updated_since=GET /api/v1/shop/products/{external_id}DELETE /api/v1/shop/products/{external_id}— pausa o produtoGET /api/v1/shop/imports/{id}— relatório de um lote
Ficheiros e fluxos
Os mesmos produtos podem ser enviados em CSV, Excel, XML ou JSON a partir de A minha loja, Importar. Colunas:
external_id, category, title, description, price, currency, negotiable, city, district, photos, video_url, stock, delivery_days, ships_from, delivery_days_min, delivery_days_max, variants, attr_<clé>
Valores múltiplos separados por uma barra vertical (|). Business: a Bwatoo lê o seu fluxo remoto a cada 6 horas.
Quotas
Pro: 100 criações por dia e 20 por hora. Business: 2 000 por dia e 300 por hora. Acima de 50 criações numa hora, os novos anúncios passam por uma verificação da equipa.
Webhooks (Business)
Eventos: message.received, offer.received, offer.accepted, stock.out, listing.paused. O texto das mensagens nunca é enviado. Verifique a assinatura antes de tratar um envio:
X-Bwatoo-Signature: t=1760000000,v1=<hmac>
expected = hmac_sha256(secret, f"{t}.{body}")
ok = constant_time_equals(expected, v1) and abs(now - t) < 300
Responda com um código 2xx. Em caso de falha, a Bwatoo tenta de novo 5 vezes, com um intervalo crescente.