curl --request POST \
--url https://vitarelay.com/api/public/pharmacy-webhook/{orgId} \
--header 'Content-Type: application/json' \
--header 'x-vitarelay-signature: <api-key>' \
--data '
{
"event": "status_update",
"order_number": "VR-20260804-118342",
"status": "shipped",
"tracking_number": "1Z999AA10123456784",
"tracking_carrier": "ups",
"tracking_url": "https://www.ups.com/track?tracknum=1Z999AA10123456784"
}
'{
"ok": true,
"note": "order VR-20260804-118342 updated"
}Fulfillment
Push a status or inventory update
Send an order status_update (with tracking) or an inventory_update (stock/cost per product). Sign the exact raw JSON body with your inbound webhook secret and send it in the x-vitarelay-signature header (hex or base64; a leading sha256= prefix is tolerated).
POST
/
pharmacy-webhook
/
{orgId}
curl --request POST \
--url https://vitarelay.com/api/public/pharmacy-webhook/{orgId} \
--header 'Content-Type: application/json' \
--header 'x-vitarelay-signature: <api-key>' \
--data '
{
"event": "status_update",
"order_number": "VR-20260804-118342",
"status": "shipped",
"tracking_number": "1Z999AA10123456784",
"tracking_carrier": "ups",
"tracking_url": "https://www.ups.com/track?tracknum=1Z999AA10123456784"
}
'{
"ok": true,
"note": "order VR-20260804-118342 updated"
}Authorizations
HMAC-SHA256 of the exact raw request body, keyed with your per-pharmacy inbound webhook secret. Hex or base64; optional leading sha256=.
Path Parameters
Your pharmacy's VitaRelay organization UUID (provided by a VitaRelay admin).
Body
application/json
- Option 1
- Option 2
Available options:
status_update VitaRelay order number. A retry suffix like -r2 is tolerated and normalized.
Maximum string length:
100Available options:
accepted, processing, ready_to_ship, shipped, delivered Maximum string length:
200Maximum string length:
80Maximum string length:
500
