Overview
Some assistant tools need live data that does not arrive via webhooks โ โwhere is my order?โ, โis this in stock?โ, โsend me a checkout linkโ. For those, Vambe calls URLs you declare incapabilities.outbound. You expose an endpoint per capability; Vambe calls it
on demand.
If you donโt declare a capability, Vambe simply wonโt offer that tool for your app.
How Vambe calls you
Every outbound request is an HTTPPOST with a JSON body and these headers:
Use the bearer token (and store id) to scope the response to the right merchant.
order_get โ live order status
Vambe calls this when the assistant is asked about an orderโs status.
Request
fulfillmentStatus, tags, and fulfillments are optional.
stock_get โ stock by location
Vambe calls this when the assistant needs live inventory.
Request
checkout_create โ create a checkout link
Vambe calls this when the assistant builds a cart and needs a payable link to send the
customer.
Request
external_checkout_id is required: it is your own id for the checkout behind the
link. Vambe records at this moment which conversation produced the checkout, keyed by
that id โ see Sale attribution below.
If your ids are numeric, send them as numbers or as strings โ Vambe accepts both here and
on the order and checkout webhooks, and stores them in their string form. Ids above
JSONโs safe integer range (2^53 - 1, i.e. 9007199254740991) must be sent as strings:
above that, JSON parsers silently round the value and two different checkouts can collapse
onto the same id, so Vambe rejects them.
stockAdjustments is optional โ include it if you clamped quantities to available stock.
Return { "link": null } if a link cannot be created; you may add an optional error
string explaining why (it is logged on Vambeโs side, never shown to the shopper).
Sale attribution
When the shopper later pays, your order webhook must include the same id asexternal_checkout_id. That is the only thing Vambe needs to
credit the sale to the assistant conversation that produced it:
- You respond to
checkout_createwithexternal_checkout_id. - Vambe stores the attribution (conversation โ checkout) on its side.
- Your order webhook repeats
external_checkout_id; Vambe looks the checkout up and attributes the order.
external_checkout_id, the link still reaches the shopper but the
sale can never be attributed โ the app checklist fails the checkout_create check for
this reason. One checkout attributes at most one order.
Reserved capability โ products_list
If you prefer Vambe to pull your full catalog instead of pushing product webhooks, the
products_list capability key is reserved for that model. Coordinate with the Vambe team
before relying on it.