Deep links & auth

Preserve the buy destination across app, web, and login.

Canonical URL

Every session has https://bruce.money/checkout/{sessionId}. Prefer HTTPS over bruce:// so missing-app installs fall through to web.

/checkout/* is claimed by the Bruce iOS/Android apps. Tapping Buy with Bruce on mobile opens the native escrow fund flow when Universal Links work; otherwise the same URL stays on bruce.money.

Not logged in

Unauthenticated buyers see a preview and are sent to /login?next=/checkout/{id}. After Privy auth and setup, they return to the same session and can fund escrow. The session lives on the server — login cannot lose the cart if the id is preserved.

Return to merchant

Optional redirectUrl is used after successful fund (when safe HTTPS). Merchants should still rely on webhooks for truth.