E-commerce — message delivered by email
A customer buys a gift, records a video right on your order confirmation page, and moves on. The recipient hears nothing until the parcel is actually on their doorstep — that is when your fulfillment system tells Livstick to send the email carrying the message.
Prerequisites
An access token provided by the Livstick team, and a point in your checkout flow where you can call the API server-side. If you don’t have a token yet, request developer access.
Create the container at checkout
As soon as the order is placed, create a container with your own order reference as crid. Leaving mode unset keeps it at the default: single, one message. Capture editKey from the response now — it is returned only at creation, and there is no endpoint to retrieve it afterwards.
curl -X POST https://client-api.v5.livstick.com/api/v3/containers \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"crid": "ORDER-123",
"recipient": { "email": "recipient@example.com" },
"language": "en_us"
}'
Mount the Recorder on your confirmation page
Pass the urid and editKey from the container you just created — both belong to this one request and must not be reused across orders. The customer records their video right there, before leaving the page.
<livstick-widget-v2
uid="{urid from step 1}"
domain="example.com"
></livstick-widget-v2>
<script>
const widget = document.querySelector("livstick-widget-v2");
widget.editKey = "{editKey from step 1}";
</script>
Record the shipment when it ships
When your fulfillment system hands the parcel to a carrier, patch the container with the shipment details you have. This does not trigger anything by itself — it just keeps the container’s record in step with reality.
curl -X PATCH https://client-api.v5.livstick.com/api/v3/containers/ORDER-123 \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{ "shipmentCarrier": "chronopost", "shipmentCode": "XX123456789FR" }'
Notify the recipient when the parcel arrives
When your carrier’s tracking confirms delivery, call notify. Livstick resolves the recipient’s contact from what the container already holds and sends the email carrying the link to the message.
curl -X POST https://client-api.v5.livstick.com/api/v3/containers/ORDER-123/notify \
-H "Authorization: Bearer {ACCESS_TOKEN}"
Where this trips people up
notify is not idempotent — calling it twice sends the email twice, so trigger it from a single, deduplicated point in your delivery pipeline, not from every webhook retry. If the recipient has no contact on the container, notify has nothing to send to: set recipient.email at creation, or patch it in before you call notify. And without recipient.channel, Livstick picks email as soon as recipient.email is present, even if a phone number is also set — if you need SMS instead, set channel explicitly.