Payments

A simple way to get paid by your customers. Connect your Stripe account, create a payment button, and paste it on your website. The money goes straight into your Stripe account.

Overview

Payments is for taking a one-off card payment from your customers - a deposit, a fixed-price product, a "pay what you owe" link, or a simple buy button. You connect Stripe once, create a button, and from then on Stripe handles the money and keeps the record. SoftSolz shows a live, read-only view of your Stripe balance, recent payments and payouts under Stripe Payments → Dashboard.

1. Connect Stripe

Open Stripe Payments in the sidebar, then the Connect Stripe tab, and click Connect with Stripe. Pick the country where your business is based, then follow Stripe's secure sign-up. Either sign in to an existing Stripe account or create a new one - it is free to set up. Stripe asks for your business details and bank account.

When Stripe has approved your account, the page says Ready to accept payments. You only do this once.

You must connect Stripe first. Until your Stripe account is connected and approved, your payment buttons cannot take money. A customer who clicks a button before then sees "This merchant is still finishing payment setup."

2. Create a payment button

Open Stripe Payments → Developer, open Payment buttons and click New payment button. (Manage in Stripe Payments on that page opens the full list of your buttons.) Give it:

The currency comes from your workspace's regional settings. You can also style the button to match your site, all shown in a live preview as you change them:

Click Create button. The Your payment button is ready window shows the button's code with a Copy button action.

3. Paste it on your site

The button is a plain HTML link to your hosted checkout page, styled to look like a button. It needs no script and no public key:

<a href="https://app.softsolz.uk/pay/link/your-button-token" target="_blank" rel="noopener"
   style="display:inline-block;padding:12px 22px;border-radius:8px;background:#111111;color:#ffffff;font:600 15px sans-serif;text-decoration:none">
  Pay Studio booking deposit
</a>

Click Copy button, then paste it into your website wherever you want the button to appear - a product page, a checkout page, a booking page. Any site builder that lets you add an HTML block can take it.

That is the whole setup. When a customer clicks the button, a secure page opens showing what they are paying for and the price (or a box to enter the amount). They click Pay, enter their card on Stripe's checkout, and come back to a Payment received. Thank you! message.

If you have someone who looks after your website, hand them the button code - pasting it in takes a moment.

Where the money goes

Every payment goes directly into your own Stripe account - SoftSolz takes a 0% platform fee. Stripe is the system of record: it processes the card, holds the funds, and pays out to your bank account on Stripe's normal schedule.

Stripe Payments → Dashboard shows what is available to pay out, what is pending, your recent payments and your payouts, read live from Stripe. Open Stripe dashboard takes you to Stripe itself for refunds, disputes, statements and tax forms.

Other places to share it

A payment button is really a secure web link, so you are not limited to your website. For a link on its own, open Payment links on the Developer page, click New payment link, then Copy link. A link can go in:

Anywhere you can share a link, you can take a payment.

Text someone a link to pay

Sometimes you do not want a button on a website - you want to ask one person for money, now, while you are stood in front of them or on the phone.

Open the list of your buttons (Manage in Stripe Payments on the Developer page) and click Request a payment. Pick Who is paying, say What it is for and the Amount, and choose Send by text message or WhatsApp. We create the payment link and send it in one step.

You can write your own wording using {{link}}, {{title}} and {{amount}}, or leave it empty for standard wording. If you forget to include {{link}} we add it on the end rather than sending a message with no way to pay.

Only contacts with a mobile number are offered. If someone has asked not to be contacted on that channel they are skipped and told you why - and no payment link is created for them, so you are not left with an unused link.

You need a text provider set up under Marketplace → Messaging first. Without one, the request is not sent and the reason says so.

Changing and pausing buttons

If you no longer want a button to take payments, click Disable on it. The button stops accepting new payments without being deleted, and Enable switches it back on. Delete removes it for good, and anyone with the old link can no longer pay.

The name and price of a button cannot be changed from the dashboard. To change them, create a new button, swap it into your site, then disable or delete the old one. Developers can also update a button through the API.

FAQ

Do I need a developer? No. Creating a button and copying the snippet is done entirely inside SoftSolz. Pasting it onto your site is the only step that touches your website, and most site builders make that easy.

Where do I see my sales? Stripe Payments → Dashboard shows your balance, recent payments and payouts. Your Stripe dashboard has the full history, refunds and payouts.

Does SoftSolz take a cut? No. SoftSolz charges a 0% platform fee. Standard Stripe card processing fees still apply, the same as any Stripe payment.

How do refunds work? Refunds are issued from your Stripe dashboard, where the payment lives.

Can I test before going live? Yes. Your workspace has a sandbox where Stripe runs in test mode, so no real money moves. See Test it step by step and Sandbox vs live.

Use the API

A developer can create buttons and charge custom amounts from your own server, with a secret key (sk_…):

WhatRequestWhat it needs
Create a payment button or link POST https://app.softsolz.uk/api/v1/services/payments/payment-links title and currency (for example gbp). Add amount_cents for a fixed price in pence or cents, or leave it out to let the customer choose (with an optional min_amount_cents). Set kind to link for a payment link. Needs the Manage payment buttons scope.
Start a checkout POST https://app.softsolz.uk/api/v1/services/payments/checkout-sessions success_url and cancel_url (where Stripe sends the customer afterwards), plus either a button's payment_link_token or an amount_cents with a currency. The reply carries the Stripe checkout address to send your customer to. Needs the Create checkout sessions scope.

The hosted checkout address for any button is https://app.softsolz.uk/pay/link/<token>, where the token comes back when you create it. See the Payments developer guide and the checkout session reference.

Test it step by step

Follow these steps once from start to finish to prove you can take a payment.

  1. Get access. You need the Super Admin or Admin role, or a custom role that includes the Payments & Links and Stripe Connection permissions (Members & access → Roles).
  2. Test safely first. Open the workspace menu and choose Switch to Sandbox mode. In the sandbox, Stripe runs in test mode: nothing is charged and no real money moves.
  3. Install the service. Open Marketplace, find Stripe Payments and click Install. Stripe Payments appears in the sidebar.
  4. Connect Stripe. Go to Stripe Payments → Connect Stripe, click Connect with Stripe, pick your country and finish Stripe's sign-up. This needs a Stripe account (free to create). In the sandbox, Stripe shows a short test version of its sign-up. You are done when the page says Ready to accept payments. The sandbox and live workspaces each connect Stripe separately.
  5. Create a button. Go to Stripe Payments → Developer, open Payment buttons, click New payment button, enter "Test deposit" under What is this for?, choose A fixed price of 5, and click Create button. The Your payment button is ready window appears and the button shows as Active in the list.
  6. Try it in the Widget Tester. Click Copy button. Open developer.softsolz.uk/widget-tester, choose Payments, replace everything in the Embed snippet box with what you copied, and click Load button. No public key is needed. Click the button: your secure checkout page opens in a new tab.
  7. Pay. Click Pay. In the sandbox, use Stripe's test card 4242 4242 4242 4242 with any future expiry date and any 3-digit security code. You come back to Payment received. Thank you!
  8. See the payment. Open Stripe Payments → Dashboard. The payment shows under Recent payments, and the amount shows as pending until Stripe settles it.
  9. Go live. Switch back with Switch to Live mode, connect Stripe there, create the real button and paste it on your own website. Click it once to check the checkout page opens with the right name and price.

For developers

In the sandbox, open Stripe Payments → Developer → Use the API, click New API key and tick Manage payment buttons. Sandbox keys start with sk_test_. Then create a button from your server:

curl -X POST https://app.softsolz.uk/api/v1/services/payments/payment-links \
  -H "Authorization: Bearer sk_test_your_key" \
  -H "Content-Type: application/json" \
  -d '{"title":"Test deposit","currency":"gbp","amount_cents":2500,"kind":"button"}'

A 201 reply carries the new button's token. Its checkout page is https://app.softsolz.uk/pay/link/<token>, and it appears in your list of payment buttons. See the API Reference for every option.

If something goes wrong

You seeWhat it means
This merchant is still finishing payment setup. (checkout page), or "Connect a Stripe account before collecting payments." (API) Stripe is not connected in this workspace yet, or Stripe has not finished checking your details. Open Stripe Payments → Connect Stripe and finish the steps it lists.
Can't load this payment link The button was disabled or deleted. Enable it again, or copy a current button.
"Amount is below the minimum for this payment button." The customer typed less than the minimum you set for a pay-what-you-want button.
400 invalid_currency "A valid 3-letter currency is required." or 400 invalid_url An API request is missing currency (payment buttons need title and currency), or a checkout session is missing a full success_url or cancel_url.

Reference

Building a deeper integration? See the developer guide for endpoints and events: