Checkout link for a product or list
create_checkoutMint a hosted Stripe Checkout link — for a shelf product, or for a list you shaped.
Creating the link costs nothing and charges nobody — payment only happens
if a human opens the returned `checkout_url` and completes it on Stripe's
hosted page. Hand the URL to your human; do not represent the purchase as
complete until they confirm payment.
For new work, prefer the dedicated buying journey: `interpret_list` (the
buyer's words → a shape) → `quote_list` (graded counts + the price) →
`checkout_list` (this link, for a list). This tool remains for shelf
products (`product_id` from `list_products`, priced per list by the same
graded rule) and keeps accepting a list for compatibility — the list path
is the same code as `checkout_list`.
Two things you can buy:
* a shelf product — `product_id` from `list_products`. `period`: `monthly` = a standing order billed each period; absent = a one-time purchase.
The reply says which: `billing` (`monthly` | `one_time`), `price_cents`
and a `note` that reads "This link starts a monthly standing order at
$X per period" when the product carries a period; or
* a list — `list_id` (a saved list, `#browse?list=<id>`) or the inline shape
`filters` + `states` (omit `states` for every live state: CO, CT, FL, NY, TX, VA),
with a `lane` (`all` / `best` / `contact`) and an optional `cap`
(`{"type": "count|budget", "value"}` — records for count, cents for budget).
The list is quoted through the same summary code path `browse_leads(summary=True)`
uses, then checkout is opened against exactly that quote — if the price
rule or the count moved in between, the server answers 409 with the
fresh quote and nothing is minted. **Billing base is `sellable` (a
matching record whose filing names a person), never `matching`.**
name and address $0.25 per record · plus one verified phone or email $0.50 · plus both $0.70 (price rule v1; live prices always come from the summary call's `prices` block). The selected records are frozen when the link is minted, so
what is billed is what is delivered.
`delivery`: `file` (the customer workbook — CSV / Excel / JSON, durable
re-download), `crm` (push into `crm_connection_id`), or `connector`
(the file ships today and `connector_crm_name` is recorded as a request
for that CRM). Delivery fires automatically on payment, typically within
a minute.
Returns, for a list: `checkout_url`, `order_id`, `session_id`, `records`,
`total_cents`, `currency`, `lines` (one per grade), `lane`, `cap`,
`price_rule_version`, `quote_valid_until` (counts refresh tomorrow
morning; the quote holds until then — and the frozen selection holds for
the life of the checkout session), `computed_at`, `exact`, `counts`
(`matching`, `sellable`, `verified_one`, `verified_both`, `no_channel`, `unnamed`), and `saved_list` (`id`, `url`, `name`, and the one-time
`claim_token` when this call saved an inline shape as a list). For a shelf
product: `checkout_url`, `order_id`, `session_id`, `billing`, `price_cents`,
`note`. Nothing is charged until a person completes checkout; the file arrives about a minute after they pay; if we find a phone or email on the records after that, the updated file replaces it on the order's receipt page within a few hours and the receipt shows what was found and billed. A hard bounce, a disconnected phone or the wrong person is replaced within 30 days; what you buy is yours to re-download any time.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cap | No | ||
| lane | No | best | |
| states | No | ||
| filters | No | ||
| list_id | No | ||
| delivery | No | file | |
| product_id | No | ||
| customer_email | No | ||
| crm_connection_id | No | ||
| connector_crm_name | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||