AlphaAlpha Docs

Payments

Collect money from your own customers through Stripe, one-off or in instalments

Payments

Alpha can send your customers a Stripe checkout link, in your own name and into your own Stripe account, and then track what has actually been collected against the deal.

This is distinct from Alpha's own billing: the keys are yours, the money is yours, and Alpha only records what happened.

Setting it up

Setup happens in two places, because they are two different things:

  • Settings → Organisation → Integrations → Stripe: connecting your Stripe account.
  • CRM → Payment settings: how checkout behaves once it is connected.

Open Settings → Organisation → Integrations and pick the Stripe · customer payments card.

This is your own Stripe account, the one your customers pay into. It has nothing to do with the invoices Alpha sends you for Alpha itself.

Click Connect with Stripe. You are taken to Stripe, sign in to your own account, and approve the connection. That is the whole setup; there are no keys to find, copy, or send to anyone.

Once connected the screen shows which Stripe account is linked, and the key fields disappear: the connection owns the credentials, so there is nothing left to type in by hand. You do not have to set up a webhook either; connected accounts report back to Alpha automatically.

If the badge says Test mode, you authorised a test-mode Stripe account. Checkout links will work, but no real money moves. Reconnect from a live account before you send anything to a customer.

Disconnect revokes Alpha's access at Stripe and erases the stored credentials immediately. Existing payment records stay; nothing further can be charged.

Entering keys by hand

On the same card, below the connect button. Still available if you would rather not connect, or if connecting is not set up on your environment.

SettingNotes
EnabledNothing can be charged until this is on
Secret keyYour Stripe secret key. Stored encrypted and never sent back to the browser: the screen only tells you whether a key is saved
Webhook signing secretYour Stripe whsec_…. Without it, deliveries are rejected rather than silently accepted

With hand-entered keys you also have to point your Stripe webhook at the URL shown on the card and subscribe to the checkout and invoice events.

How checkout behaves

Under CRM → Payment settings, once an account is connected.

SettingNotes
CurrencyDefaults to EUR
Success / cancel URLWhere the customer lands afterwards. The payment is confirmed by webhook, never by them reaching this page
Collect business detailsOffer a "this is a business expense" option at checkout
Assign owner on paymentRole to hand a paying customer to, round robin. Leave empty to assign by hand

Stripe pins each account to an API version. If your account's version is older than the one Alpha's SDK expects, events can arrive in a shape the SDK cannot read. Alpha falls back to a permissive parse and logs anything still unreadable as an error rather than discarding it, but if payments seem to vanish, check the API version on your Stripe account first.

From a won appointment, or from a lead, choose Payment link & contract.

FieldNotes
DescriptionAppears on the checkout and on the invoice
AmountPer instalment for a plan, or the whole sum when paid in one go
Payment typeOne-off, or instalments
InstalmentsAt least two. Billed as a subscription with a fixed number of cycles, so it stops on its own after the last one
Handover noteWhat you want whoever picks the customer up after payment to know

Two things happen automatically when the link is created:

  • The lead becomes a customer, so the invoice is addressed to somebody and the handover on payment has something to hand over.
  • An opportunity is opened, so the deal is visible in the pipeline rather than only in the payments list.

Business expense details

The checkout offers a "this is a business expense" option. When ticked, the customer is asked for company name, VAT number and billing address, and those land on the payment record for invoicing.

When the money arrives

Confirmation comes from a Stripe webhook, never from the link having been opened. On confirmation Alpha:

  1. Releases the contract prepared against that payment, if there is one.
  2. Hands the customer to the next holder of the configured role, if one is set.
  3. Creates the customer handover pipeline step for their new owner, with the appointment recap and your handover note attached.
  4. Tells whoever sold the deal.

Changing an agreed plan

If the deal is renegotiated before the customer has paid, use Change plan rather than cancelling and starting again.

One call withdraws the old link and the prepared contract, and issues a replacement pair from the new terms. That is the point: doing it by hand is what lets a customer be sent a link for one price and a contract for another.

  • The withdrawn contract stops being signable: its link dies with it.
  • A signed contract is left standing. That one is history, not a draft.
  • Lead, customer, appointment, opportunity and handover note carry over to the replacement.
  • Refused once money has moved. At that point the change is a refund, not an edit.

What gets reported

Collected and contracted are both tracked, and they are not the same number:

  • Cash collected: what Stripe has confirmed as received.
  • Cash contracted: the whole term of every live plan, instalments still to come included.
  • Outstanding: the gap between them.

See Sales Call Report for the full picture.

On this page