Dynamic fulfillment
Dynamic fulfillment bridges external and managed delivery. Your app receives the order.paid webhook, generates content (AI output, custom report, personalized file), then calls POST /v1/orders/{id}/deliver to push it back to ListBee. ListBee delivers the generated content to the buyer — same secure access page, same delivery email — as if you had attached the content to the listing from the start.
How it works
The buyer gets the same delivery experience as managed fulfillment — email with download link, redirect, or inline text — but the content was generated on-demand by your code.
Setup
Create a listing with fulfillment: "external" and a checkout_schema to collect buyer inputs. These inputs arrive in checkout_data on the order.paid webhook, ready for your generation logic.
Walkthrough: AI horoscope agent
An AI agent sells personalized horoscopes. The buyer provides their birth date at checkout. After payment, the agent generates a horoscope and pushes it to ListBee for delivery.
Step 1: Handle the webhook and generate content
Your server receives the order.paid webhook. Verify the signature, extract checkout_data, run your generation logic, then call the deliver endpoint. The full order snapshot is in the webhook payload — no follow-up API call required.
Step 2: Buyer receives the content
After your deliver call, ListBee creates an access grant and delivers the generated content to the buyer by email. The buyer clicks the link and sees the content on a secure access page — the same experience as a static digital product.
The deliver endpoint
POST /v1/orders/{id}/deliver accepts a type field and either a token (for uploaded files) or value (for URLs and text). You explicitly specify the content type — there is no auto-detection.
Use cases
Next steps
- Fulfillment modes — understand managed vs external.
- Checkout schema — all field types you can collect at checkout.
- Webhooks — handle
order.paidandorder.fulfilledevents.