The easy way: sign in with Stripe
No keys to hunt down, nothing to paste. You sign in to Stripe, approve Coin Moebius, and you are back in about a minute. Coin Moebius keeps only your Stripe account ID, never your keys, and Stripe tells us the moment anything about your account changes.
- Open Providers and click Connect a provider
In the Coin Moebius dashboard, choose Providers in the left menu, then click Connect a provider at the top right.
Coin Moebius → Providers → Connect a provider - Pick Stripe
Type Stripe in the search box, or scroll down to it, and click it.
Connect a provider → Stripe - Name it, add your two pages, and save
Give the connection a nickname. Enter your Success URL (the page a buyer sees after paying) and your Cancel URL (the page they see if they back out). Stay on the first tab, then click Save and connect with Stripe.
Nickname, Success URL, Cancel URL → Save and connect with Stripe Both addresses must start with https://. They are the only things you type on this screen.
- Approve on Stripe
Stripe opens. Sign in to your Stripe account, or create one right there if you do not have one yet, then approve Coin Moebius. Stripe shows which account you are about to use, so you can check it before you say yes.
Stripe → sign in or create an account → approve Coin Moebius - You are back, and connected
Stripe sends you straight back to Coin Moebius. A green check means card payments are ready, and the Stripe card now sits on your Providers page marked Verified and Live.
Back in Coin Moebius: Stripe account connected Providers → your Stripe card: Verified, Live Saw "Action required" instead of the green check? Stripe has not finished clearing your account for card payments. Finish what Stripe asks for, come back, and click Verify on the Stripe card.
The other way: paste your own keys
Everything from here down is the manual path. You set up a webhook in your Stripe dashboard, collect three values there, and paste them into Coin Moebius. Plan on about ten minutes. If you signed in above, you are already done and can skip all of this.
What you need
| Field | What it does |
|---|---|
| Publishable key (pk_…) | Public key that opens Checkout in the browser. Not secret. |
| Secret key (sk_…) | Lets us create the Checkout session so the charge runs through your account. Secret. |
| Webhook signing secret (whsec_…) | Confirms a webhook truly came from Stripe. Secret. |
| Success URL / Cancel URL | Where the buyer lands after paying or backing out. |
Only the key path needs these. If you signed in with Stripe above, there is nothing to collect. Stripe keeps separate keys for Test mode and Live (pk_test_ / sk_test_ versus pk_live_ / sk_live_), each with its own webhook signing secret. Coin Moebius holds both in Live and Test tabs, so you can verify on test keys and add live keys later without re-entering everything.
Why we ask for each field
Publishable key
Identifies your account when checkout opens in the buyer’s browser. Public by design.
Secret key
The private half that authorizes creating the charge, so the payment runs through your account.
Webhook signing secret
Proves an incoming webhook is genuinely from Stripe, so nobody can forge a "paid" event. It is a separate value from the secret key.
Success and Cancel URL
Plain settings: where the buyer lands after paying or backing out. Not secret.
Set up
- Start in Coin Moebius: copy your webhook URL
Open your project in the Coin Moebius dashboard. Your Project ID sits right under the project name; click the copy icon next to it. Your Stripe webhook URL is that ID dropped into the address below. Keep it handy, you will paste it into Stripe in a moment.
https://api.coinmoebius.com/webhook/stripe/<your project id>Coin Moebius → your project → Project ID We set the webhook up first on purpose. Stripe only reveals the webhook signing secret after the webhook exists, and creating that webhook needs this URL (with your project ID). So the order is: build the webhook, copy its secret, then grab your API keys.
- In Stripe, open Webhooks
Sign in at dashboard.stripe.com. Quickest route: type "webhooks" into the search bar at the top and choose Webhooks under Workbench. (You can also reach it from the gear → Developers → Webhooks.)
Stripe → search "webhooks" → Webhooks - Add a destination
On the Webhooks screen, click Add destination. That opens Stripe’s "Create an event destination" wizard, a sequence of three short screens.
Stripe → Webhooks → Add destination - Select the events to send
Leave the event scope on Your account. In the Events search box, find and check the events Coin Moebius listens for, then click Continue. At a minimum, add checkout.session.completed.
- One-time payments: checkout.session.completed, charge.refunded, charge.dispute.created.
- Subscriptions (only if you sell them): customer.subscription.created, customer.subscription.updated, customer.subscription.deleted, invoice.payment_succeeded, invoice.payment_failed.
Stripe → Create an event destination → Select events Extra events are harmless, we ignore anything we do not use.
- Choose "Webhook endpoint"
For the destination type, choose Webhook endpoint (not Amazon EventBridge or Azure Event Grid), then click Continue.
Stripe → Choose destination type → Webhook endpoint - Paste your Coin Moebius webhook URL
Give the destination a name you will recognize, like "Coin Moebius Webhook." In the Endpoint URL field, paste the webhook URL from step 1 (your address with your project ID). Then click Create destination.
https://api.coinmoebius.com/webhook/stripe/<your project id>Stripe → Configure destination → Endpoint URL - Copy the signing secret (whsec_…)
Stripe creates the destination and opens its details page. On the right, under Signing secret, click the reveal (eye) icon and copy the whsec_… value. Set it aside with your webhook URL.
Stripe → your destination → Signing secret This is the value you could not get until now, it only exists once the webhook is created. That is why the webhook came first.
- Now find your API keys
With the webhook done, collect your two keys. In Stripe, click the gear (Settings) at the top right, open Developers under Personal settings, then click Manage API keys.
1. Stripe → gear (Settings), top right 2. Settings → Developers 3. Developers → Manage API keys - Copy the Publishable key and Secret key
Under Standard keys, copy the Publishable key (pk_…) and the Secret key (sk_…). A secret key is shown in full only when first created, so if yours is hidden, roll a new one and copy it right away. Ignore the Restricted keys section.
Stripe → Developers → API keys → Standard keys Live keys start with pk_live_ / sk_live_; test-mode keys start with pk_test_ / sk_test_. Copy whichever set matches the mode you are setting up.
- Back in Coin Moebius: Connect a provider → Stripe
Open Providers in the left menu and click Connect a provider. Type Stripe in the search box, or scroll down to it, and click it.
Coin Moebius → Providers → Connect a provider → Stripe - Paste your keys and secret, then Save
Give the connection a nickname and switch to the Enter keys manually tab. On the Live tab, paste your Publishable key, Secret key, and the Webhook signing secret you copied earlier. Set your Success URL and Cancel URL (where buyers land after paying or backing out), then click Save. Verifying on test keys first? Paste them on the Test tab instead, then add live keys later from Edit.
Coin Moebius → Connect a provider → Stripe → Enter keys manually - You are connected
Stripe now appears on your Providers tab with the date it connected. The card shows the same webhook URL you pasted into Stripe (handy if you ever need to re-enter it), plus Edit and Disconnect.
Coin Moebius → Providers → Stripe (connected) - Test before you go live
To verify without moving real money, switch Stripe to Test mode (or a sandbox) from the account menu at the top left, and connect using your test keys and a test-mode webhook. Test cards never charge a real card: use any future expiration, any CVC, any postal code.
Result Card Succeeds 4242 4242 4242 4242 Needs authentication 4000 0025 0000 3155 Declined 4000 0000 0000 9995 Stripe → account menu → Switch to sandbox / Test mode
After you connect
Make one payment before you go live:
- Signed in with Stripe? Your account is live, so buy a one-dollar product with your own card and refund it from Stripe afterward. Pasted test keys? Every payment is a test payment, so use a test card from above.
- Create a product and place the buy button on a page (a local HTML file works) pointed at your project.
- Check out with a test card from above.
- Open the Transactions tab. When the new row status reaches succeeded, your keys and webhook are both working end to end.
If you used test keys, edit the provider, swap in your live keys, and you are taking real payments.
Troubleshooting
Start with Verify. In the dashboard, click Verify on the Stripe card. It asks Stripe about your account, or checks your keys, and returns a specific message if something is off.
I signed in with Stripe and got "Account connected. Action required."
Your Stripe account is connected but Stripe has not cleared it for card payments yet. Open Stripe, finish what it asks for (usually business details or a bank account), then click Verify on the Stripe card in Coin Moebius.
The Stripe card says Disconnected.
Coin Moebius was removed from your Stripe account, usually from the Authorized applications page in Stripe. Open the card, choose Edit, and click Reconnect to approve it again.
Verify says the key format is wrong.
Secret keys start with sk_test_ or sk_live_ (restricted keys start with rk_). The webhook signing secret starts with whsec_. Re-copy the right value into the right field.
Verify says Stripe rejected the key.
Re-copy the secret key from Developers → API keys, and make sure you are not pairing a test key with a live webhook secret or the reverse.
Payment completes but the order stays pending.
The webhook is not arriving. Confirm the endpoint URL matches exactly, that you selected checkout.session.completed, and that a test payment is hitting your test-mode endpoint (test and live are separate endpoints).
Signature verification fails.
Each Stripe endpoint has its own signing secret. Copy the whsec_ from this endpoint settings, not another endpoint.
Confirm it end to end.
Stripe has no simulate button. In the Stripe Dashboard, resend a recent event to your endpoint, or create a test PaymentIntent, then watch the order update.
Good to know
Signed in with Stripe. There are no keys or webhook secrets to copy, store, or rotate. Stripe tells Coin Moebius when your account changes. To cut the link, click Disconnect on the Stripe card, or remove Coin Moebius under Authorized applications in Stripe.
Rotating keys. Pasted your own keys? Roll the secret key or webhook secret anytime, then paste the new value. Secret fields stay blank on edit so you can drop in a rotated key.
Activation. Live keys work only once your account is activated for payments. Test keys work immediately.
Questions? Join our Discord