Bwatoo import API
Send your catalogue to your Bwatoo shop from your till, your online shop or your management software.
Authentication
Create a key in My shop, API keys. Send it in the Authorization header. A test key (bw_test_โฆ) checks your uploads and returns the report without publishing anything.
Authorization: Bearer bw_live_โฆ
Sending products
100 products at most per request. A product is created, or updated if it has an external_id already known.
POST https://api.na.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}
- Category and attributes follow the same rules as posting on the website: a category's attributes are listed by GET /api/v1/categories/
/attributes. - The currency must be that of the shop's country. No phone number or e-mail in the texts.
- Photos are public https addresses; Bwatoo downloads, checks and resizes them.
- full_feed: the shop's products missing from the upload are paused, never deleted.
- Stock and variants: Business plan.
- Pre-order from abroad (Pro and Business): ships_from (ISO country code, e.g. CN), delivery_days_min and delivery_days_max (days, 120 at most). The maximum delay is required as soon as the product ships from another country. Bwatoo shows โShips from: China ยท 45โ60 dโ and does not offer its local couriers.
Each product gets a result: created, updated, unchanged, pending (team check) or rejected with the reason.
Other routes
GET /api/v1/shop/products?updated_since=GET /api/v1/shop/products/{external_id}DELETE /api/v1/shop/products/{external_id}โ pauses the productGET /api/v1/shop/imports/{id}โ report of a batch
Files and feeds
The same products can be sent as CSV, Excel, XML or JSON from My shop, Import. Columns:
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รฉ>
Multiple values separated by a vertical bar (|). Business: Bwatoo reads your remote feed every 6 hours.
Quotas
Pro: 100 creations per day and 20 per hour. Business: 2,000 per day and 300 per hour. Beyond 50 creations in an hour, new listings are checked by the team.
Webhooks (Business)
Events: message.received, offer.received, offer.accepted, stock.out, listing.paused. Message text is never sent. Check the signature before processing a request:
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
Reply with a 2xx code. On failure, Bwatoo retries 5 times, with increasing delays.