Overview
Your platform pushes events to Vambe as they happen. Each event is a canonical JSON payload โ you map your own data onto Vambeโs shape, so there is no per-provider code on Vambeโs side. All inbound endpoints are:Authenticating your webhooks
Every request must be signed with your appโs signing secret (thesigning_secret from
Create Your App).
Compute an HMAC-SHA256 (hex) over the string {timestamp}.{rawBody} and send:
2xx response means the event was accepted. Retry on any non-2xx โ Vambe is idempotent
on the entityโs external id.
The envelope
Every payload is an envelope with two optional routing fields plus the entity:string
Your identifier for the merchant store. Used to resolve the installation (see below).
string
Your event id. Advisory today; reserved for explicit de-duplication.
Resolving the installation
A single app can be installed by many merchants, so Vambe must map each webhook to the right installation:- Multi-store: send
external_store_idmatching theexternal_idVambe captured from youraccount_info_url. Vambe resolves by(app, external_id). - Single installation: if the app has exactly one installation, it resolves automatically
even without
external_store_id.
404.
Order
POST /api/public/apps/{appId}/events/order
The customer phone is the most important field: it is how Vambe links the order to the
WhatsApp contact. Send it in E.164 format when possible. Products are matched by
external_product_id against the catalog you synced.Checkout (abandoned)
POST /api/public/apps/{appId}/events/checkout
customer.phone and recover_url are required for recovery: Vambe resolves (or creates) the
contact by phone and records the abandoned checkout with its recovery link.Fulfillment
POST /api/public/apps/{appId}/events/fulfillment
Products
Products are incremental โ each event affects only the product you send. Vambe never deletes the rest of your catalog from a webhook.Upsert (create or update)
POST /api/public/apps/{appId}/events/product
(external_id, store): a new external_id is created, an existing one is
updated. Product embeddings (for AI search and recommendations) run automatically.
Delete
POST /api/public/apps/{appId}/events/product/delete
Catalog over webhook is the push model. If youโd rather have Vambe pull your full
catalog instead, that is handled by the
products_list outbound capability โ talk to the
Vambe team about which model fits your platform.