Complete checkout with payment and start site provisioning.
The checkout must be in "ready" status.
Two payment methods:
- "stripe_checkout" (default): Returns a short, chat-safe payment URL.
**Present `payment_url` to the human — NOT `stripe_checkout_url`.**
The raw Stripe URL has a required `#fragment` that chat UIs routinely
strip when rendering markdown links, which causes Stripe to show
"page not found". `payment_url` is a short BorealHost redirect that
preserves the fragment via HTTP 302. Then poll get_checkout_status()
until status becomes "completed". The API key appears in the first
poll after payment (shown once, then cleared).
- "stripe_payment_method": Charges a Stripe PaymentMethod directly.
Requires payment_method_id. On success, returns the API key immediately.
Args:
checkout_id: Checkout session ID
payment_method: "stripe_checkout" or "stripe_payment_method"
payment_method_id: Stripe PaymentMethod ID (pm_...). Required only
for "stripe_payment_method".
Returns (stripe_checkout):
{"id": "uuid", "status": "awaiting_payment",
"payment_url": "https://borealhost.ai/pay/<id>/?s=<secret>",
"stripe_checkout_url": "https://checkout.stripe.com/c/pay/...",
"message": "Present payment_url to the human..."}
Returns (stripe_payment_method):
{"id": "uuid", "status": "completed", "api_key": "bh_...",
"api_key_message": "Store this API key securely...",
"subscription_id": "uuid", "provisioning_job_id": "uuid"}
Errors:
VALIDATION_ERROR: Missing payment_method_id for stripe_payment_method
FORBIDDEN: Checkout not in "ready" status