{"registry_version":"2026.1025.387","generated_at":"2026-10-25T06:27:00Z","content_sha256":"089d16f627d9365e3d0663cc8069203706d7cb23a76c332226e29686968811a5","signed":true,"signature":{"key_id":"ed25519:74ca19268e364242","algorithm":"ed25519","expires_at":"2026-11-24T06:27:09Z","expired":false,"manifest":"/registry/manifest.json"},"entry_sha256":"ae74cd91abfa17b410a6c148652dfb6dc235a597e892cb1e41505e8cf53d9f83","entry":{"id":"stripe/account-and-billing","name":"Stripe (account activation, API keys and webhooks)","vendor":"Stripe","summary":"Test-mode keys are quick; live payments need \"Verify your business\" (activation). Check whether Stripe Managed Payments is on, use restricted keys for live, and capture the webhook signing secret when the endpoint is created.","aliases":["stripe","stripe-activation"],"category":"payments","group":"B","homepage":"https://stripe.com/","docs":["https://docs.stripe.com/keys","https://docs.stripe.com/webhooks"],"status":"verified","last_verified":"2026-10-24","last_researched":"2026-10-24","verified_by":["jon"],"sources":[{"id":"owner-session","url":"https://dashboard.stripe.com/","title":"verapli owner's live Stripe setup for verapli.com (first-hand)","accessed":"2026-10-24","supports":"Verify your business required before live payments; separate test and live keys; Managed Payments on by default on some accounts, rejecting Checkout custom_text unless managed_payments[enabled]=false and making Stripe merchant of record; webhook signing secret only shown when the endpoint is created","kind":"first_hand"}],"allowed_domains":["dashboard.stripe.com"],"account_model":{"summary":"One Stripe account per business, with separate test and live modes.","accounts":[{"name":"Stripe account","kind":"organisation","owned_by":"the business (or sole trader)","required":true}]},"have_ready":[{"kind":"company_documents","description":"Company or sole-trader details (legal name, address, registration number) [to verify exact list]","needed_for":["verify-business"],"auto_check":"name_consistency"},{"kind":"government_id","description":"Identity details for the business representative [to verify]","needed_for":["verify-business"],"auto_check":"none"},{"kind":"bank_account","description":"Bank account for payouts [to verify]","needed_for":["verify-business"],"auto_check":"none"},{"kind":"live_website","description":"A live website describing what you sell [to verify]","needed_for":["verify-business"],"auto_check":"website_live"}],"steps":[{"id":"sign-in","title":"Sign in to the Stripe Dashboard","summary":"You sign in, or create the account yourself.","route":"guided","depends_on":[],"gate":"human_login","url":"https://dashboard.stripe.com/"},{"id":"test-keys","title":"Copy the test-mode keys","summary":"Test and live modes have separate keys. Start with the test-mode publishable and secret keys from Developers, API keys.","route":"guided","depends_on":["sign-in"],"gate":"none","url":"https://dashboard.stripe.com/test/apikeys","sources":["owner-session"]},{"id":"verify-business","title":"Verify your business (activate live payments)","summary":"Live payments stay off until you complete \"Verify your business\" in the Dashboard. You enter the business and representative details yourself.","route":"guided","depends_on":["sign-in"],"gate":"human_identity","url":"https://dashboard.stripe.com/","preflight":["legal_name_matches_documents","website_live"],"sources":["owner-session"]},{"id":"managed-payments","title":"Decide on Stripe Managed Payments","summary":"Some accounts have Stripe Managed Payments switched on by default. It makes Stripe the merchant of record (a legal and tax choice), and Checkout then rejects custom_text. Decide whether you want it before you build Checkout.","route":"guided","depends_on":["sign-in"],"gate":"none","recovery":[{"hiccup":"Creating a Checkout Session with custom_text is rejected","fix":"Either drop custom_text, or (only if you do not want Stripe as merchant of record) send managed_payments[enabled]=false when creating the session.","source":"owner-session"}],"sources":["owner-session"]},{"id":"live-restricted-key","title":"Create a restricted key for live mode","summary":"For live mode, create a restricted key with only the permissions your app needs instead of using the full secret key. verapli captures it and writes it to your env file.","route":"guided","depends_on":["verify-business"],"gate":"human_submit","url":"https://dashboard.stripe.com/apikeys","capture":{"env":"STRIPE_SECRET_KEY","kind":"api_key","mask_pattern":"^(sk|rk)_(test|live)_[A-Za-z0-9]+$"}},{"id":"webhook","title":"Create the webhook endpoint and capture its signing secret","summary":"Create the webhook endpoint for your app's URL. The signing secret is shown only when the endpoint is created, so capture it at that moment.","route":"guided","depends_on":["sign-in"],"gate":"human_submit","url":"https://dashboard.stripe.com/webhooks","recovery":[{"hiccup":"The signing secret was not saved when the endpoint was created","fix":"Create a new endpoint (or roll the secret) and capture it straight away; update your env file.","source":"owner-session"}],"capture":{"env":"STRIPE_WEBHOOK_SECRET","kind":"webhook_secret","mask_pattern":"^whsec_[A-Za-z0-9]+$"},"sources":["owner-session"]}],"outputs":[{"name":"STRIPE_SECRET_KEY","description":"Secret or restricted API key (test or live); server-side only","secret":true,"example_format":"sk_test_… / rk_live_…","from_step":"live-restricted-key"},{"name":"STRIPE_WEBHOOK_SECRET","description":"Webhook endpoint signing secret","secret":true,"example_format":"whsec_…","from_step":"webhook"},{"name":"STRIPE_PUBLISHABLE_KEY","description":"Publishable key for the browser (not a secret)","secret":false,"example_format":"pk_test_… / pk_live_…","from_step":"test-keys"}],"terms_notes":[{"kind":"rules_say","severity":"amber","title":"Managed Payments makes Stripe merchant of record","text":"Stripe Managed Payments, on by default on some accounts, makes Stripe the merchant of record. That is a legal and tax choice; turning it off per Checkout Session (managed_payments[enabled]=false) means you are the seller of record.","source":"owner-session"},{"kind":"rules_say","severity":"yellow","title":"Live payments need business verification","text":"Live payments are not available until \"Verify your business\" is complete.","source":"owner-session"}],"api_provisioning":{"available":"partial","notes":"Webhook endpoints can be created through the API; account activation and key creation happen in the Dashboard."},"notes":["Merges the earlier preview sample \"stripe\" (packages/web/src/registry/data.ts)."]}}