create_checkout
Create a checkout session: a payment link a PERSON opens and pays in their own USDC wallet (Base or Solana), for when you cannot sign a payment yourself or the user wants to pay with their own wallet. Pick the service with search_catalog or recommend_service and price it with get_quote first, then call this with service_id, quantity and link. The result carries page_url (give it to the person), the exact amount, expires_at (the price is held until then, 30 minutes by default) and a token for get_checkout_status. Creating a session moves no money and reserves nothing: nothing is charged until the person signs in their wallet, and an unpaid session simply expires. Each call opens a NEW session, so call it once per intended order and reuse the token you were given. Prefer create_paid_order when you hold a wallet and should pay yourself.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| link | Yes | The target link the order is delivered to. | |
| quantity | Yes | Quantity to order. | |
| return_url | No | Optional https URL shown to the person as a link after paying (where they came from). Never followed by the server. | |
| service_id | Yes | The service id from search_catalog. | |
| ttl_seconds | No | Optional: hold the price for LESS than the default 30 minutes. A larger value is clamped to the default, never granted. | |
| external_ref | No | Optional reference of your own (an order or conversation id, at most 128 characters), echoed by get_checkout_status. | |
| service_option_id | No | Optional specific service option id; defaults to the service's primary option. |