Payments (Stripe)
Generate payment links on quotes using your own Stripe account (BYO model).
The Payments integration uses YOUR Stripe account (BYO model: you bring your own account). Payments go straight into your Stripe account: there is no cost, margin or intermediation on our side. We only wire up the fields and the button to generate the link.
The integration starts inert: nothing happens until you paste your key and activate. The keys are stored encrypted in the CRM and are never displayed back.
Prerequisites
- An active Stripe account (to charge for real, the account must be enabled for payments in your country).
- Access to the Stripe Dashboard with permission to view API keys (Developers → API keys) and create webhooks (Developers → Webhooks).
- In Sellio, administrator access to save the keys and activate the integration in Settings → Integrations.
What you need to paste
- Secret key: in the Stripe Dashboard, under Developers → API keys (starts with sk_live_ in production or sk_test_ in test).
- Webhook signing secret (optional at first): generated when you create the webhook in Stripe (starts with whsec_). It is what allows payments to be confirmed automatically.
How to configure
- Open Settings → Integrations and find the "Payments (Stripe)" card.
- Paste your Stripe secret key and click "Save keys".
- Copy the "Stripe webhook URL" that appears and, in the Stripe Dashboard (Developers → Webhooks), create an endpoint for that URL with the events checkout.session.completed and payment_intent.succeeded.
- Return to the CRM, paste the webhook signing secret (whsec_...) together with the secret key and save again.
- Click "Activate".
How to generate a payment link
- Open an opportunity and go to the Quotes section.
- On the desired version, click "Payment link": the CRM creates a link in Stripe with the quote's total amount and copies it to your clipboard.
- Send the link to the customer. When they pay, Stripe notifies the CRM via webhook and the payment appears as "Paid" on the quote.
Treat the webhook URL as secret and always paste both keys together when changing them (for security, the CRM does not show the saved keys back).
How to test
- Use the TEST keys (sk_test_.../whsec_ from test mode) so as not to charge for real.
- Generate a "Payment link" on a quote and open it: you should land on the Stripe checkout with the quote's total amount.
- Pay with a Stripe test card (e.g., 4242 4242 4242 4242). Confirm the quote becomes "Paid" and is marked as accepted, a sign that the webhook arrived and the signature checked out.
- In the Stripe Dashboard (Developers → Webhooks → your endpoint), see the history of delivered events and the 200 status.
Troubleshooting
- Error generating the link / 401 on Stripe: the secret key is wrong or from another mode (you pasted the test one but are in production, or vice versa). Re-paste the correct sk_.
- The customer pays but the quote does not become "Paid": the webhook is not confirming. Check that you created the endpoint in Stripe pointing to the "Stripe webhook URL" with the events checkout.session.completed and payment_intent.succeeded.
- Invalid signature on the webhook: the webhook signing secret (whsec_...) in the CRM does not match the endpoint's in Stripe. Copy the endpoint's secret and paste it TOGETHER with the secret key (save both together).
- 404 on the webhook URL: the integration is not activated or the URL token changed. Reactivate and re-copy the URL to Stripe.
- Nothing happens when generating the link: the integration is inert for lack of a key. Paste the secret key and activate first.