Sales & channels

Payments (Stripe)

On this page (Agent menu → "Payments") you connect your business to Stripe so that your agent can collect deposits and payments for appointments and orders directly. The money flows straight into your own Stripe account — Prezio never holds your revenue at any point and does not see your Stripe keys. The connection runs via Stripe Connect Express: you complete the verification (KYC) conveniently through a Stripe-hosted page.

Important to understand: This page only sets up the connection (connect account + allow payments in principle). How much and when is charged (deposit percentage, payment mode, VAT, tip) is configured per service in the service editor — see the Bookings/Services section. The two must match, otherwise the booking widget will not show a payment step.

How to set up payments

Step 1: Enable payments for this agent. At the very top you will find the "Accept payments" card with the "Payments enabled" toggle (payments_enabled).

  • What it does: The main toggle. When it is on, the agent may request payment in conversations and on the management pages, and the booking widget shows the payment step. When it is off, the payment step is skipped — even if a service has a deposit (deposit_percent > 0) configured.
  • Default: Off (disabled).
  • Recommendation: Only switch it on after Stripe is connected and activated. Flipping the toggle beforehand does no harm — as long as the Stripe account is not yet ready to accept payments, the booking automatically falls back to the flow without payment.

Step 2: Connect Stripe. As long as no account is connected, you will see the "Connect Stripe" card with the "Connect Stripe" button.

  • One click starts the onboarding: you are redirected to a Stripe-hosted page where you enter your business and bank details and complete the identity check (KYC).
  • Country and currency are derived automatically — namely from the country code in your company profile (CompanyProfile.country_code):
  • Germany (DE): country DE, currency EUR, standard VAT 19%.
  • United Kingdom (GB): country GB, currency GBP, standard VAT 20%.
  • If no country is set, the EU/DE profile (EUR) applies as the fallback.
  • Pitfall — not changeable: Stripe permanently fixes country and currency when the account is created. They cannot be changed afterwards. So check before connecting that the country in your company profile is correct.
  • The onboarding link is valid only once and expires after roughly 5 minutes. So click it promptly. If you cancel or the link expires, simply click again — no second Stripe account is created; you continue with the same account.

Step 3: Complete onboarding. If you have connected the account but not yet finished the check, the "Complete Stripe onboarding" card appears.

  • Below it, Prezio lists the still outstanding requirements ("requirements_currently_due") that Stripe requires from you (e.g. ID document, bank details, tax information).
  • "Continue onboarding" button: Takes you back to the Stripe page to deal with the outstanding items.
  • "Refresh status" button: Fetches the current state directly from Stripe. Use it when you have just finished and do not want to wait — normally the status updates automatically after you return from Stripe.

Step 4: Check payment readiness. As soon as Stripe has activated you, the "Payments active" card appears with status badges:

  • "Payments enabled" (green): Your account can now accept payments (charges_enabled). Only from this state does the booking widget show the payment step.
  • "Payouts enabled" (green) or "Payouts pending" (grey): Indicates whether Stripe has already approved payouts to your bank account (payouts_enabled). If this still shows "pending", you can already collect payments, but the payout is still outstanding — usually just a final verification at Stripe is missing.
  • "Default currency": Shows the fixed account currency (e.g. EUR or GBP).
  • "Open Stripe dashboard" button: Opens your personal Stripe Express dashboard (payouts, taxes, bank details, disputes) in a new tab. Access runs via a short-lived, Stripe-hosted page — you never see API keys. Available only once onboarding is complete.
  • "Refresh status" button: As above, fetches the live state from Stripe.

When deposits / charges actually apply

A payment step appears in the booking widget only if all of these conditions are met (otherwise the customer books normally without payment):

  • the "Payments enabled" toggle on the agent is on, and
  • your Stripe account is ready to accept payments ("Payments enabled" badge green), and
  • the selected service has a price (price_cents > 0) and a deposit > 0% (deposit_percent, default 0 = no deposit).

In the service editor you also set the payment mode per service (payment_mode, default deposit) — this controls exactly what happens:

  • deposit (deposit, default): price × deposit % is collected at booking, the remainder is handled offline on site.
  • full (full prepayment): The entire price is charged at booking (e.g. courses, events).
  • auth_only (authorisation only): At booking the card is only reserved, not charged. It is only collected manually (e.g. as a no-show fee) — otherwise Stripe automatically releases the reservation after 7 days.
  • split (deposit + remainder): Deposit at booking, remainder automatically a few hours before the appointment via the saved card. Requires the customer to save their card at booking.

Additionally per service: VAT rate (tax_rate_percent, pre-filled by country: 19% DE / 20% GB), whether the price is shown inclusive or exclusive of tax (price_includes_tax, default inclusive — EU requirement for consumer prices), and optional tip (allow_tip, default off; suggestions by default 10/15/20%). Deposit amounts are always rounded down in the customer's favour (never rounded up).

Recent payments & refunds

As soon as your account is ready to accept payments, the "Recent payments" card appears with a table (columns Date, Amount, Status, Method, up to 50 entries):

  • Status: e.g. succeeded (successful, green), failed/canceled (red), the rest grey.
  • Method: Payment method (e.g. card, Apple Pay) — where reported by Stripe.
  • Amount: For (partial) refunds, the amount is annotated with how much has already been refunded, e.g. "(£9.00 refunded)".
  • "Refund" button: Appears only for successful payments that have not yet been fully refunded. By default, a click refunds the entire remaining amount back to the customer's card.

Note on tiered refunds: For a cancellation by the customer, your automatic refund rule applies (agent settings refund_window_hours, default 24 hours, or the finer-grained tier scale refund_tiers). The manual "Refund" button here deliberately ignores this time window — you as owner/staff may issue a goodwill refund at any time.

Tips & pitfalls

  • Order matters: First connect Stripe and have it activated, then flip the "Payments enabled" toggle. Otherwise the payment step simply stays hidden until the account is ready.
  • Country/currency is final: Stripe fixes both at creation. Wrong country in the company profile = wrong Stripe account, which can only be corrected by creating a completely new account. Check beforehand.
  • The onboarding link expires quickly (~5 min). If it expires: simply click the button again — no duplicate account is created.
  • "Payments enabled" is on, but no payment step? Most common causes: the Stripe account is not yet "Payments enabled" (green), the service has no price, or the deposit is set to 0%. All three must be right.
  • refund_window_hours = 0 means "never refund automatically" (deposit forfeited on every cancellation) — not "always refund". Anyone who wants to refund as a rule should enter a very large value (e.g. 99999). This mix-up has already cost money.
  • split mode needs a saved card: Without a saved customer card, the remaining amount cannot be collected automatically. Make sure card saving is enabled in the booking flow.
  • Status stuck? Right after onboarding the status usually updates automatically; if not, the "Refresh status" button helps. Otherwise Stripe reports changes with a delay via background notifications.
  • Stripe fees are withheld by Stripe as a percentage of the processed amounts and therefore do not appear in Prezio's cost/usage reports — you will find them in your Stripe dashboard under the balance/revenue reports.