All chapters

Attendee invoices & online payment

For paid event and course bookings VidiReserve issues your attendees an invoice — as a PDF, in your name, from your own number range. On top of that, your guests can pay the booking online straight away: through your own PayPal, Stripe or SumUp account. Both features are switched off by default and are set up step by step below. Table reservations are not affected.

Set up your invoicing profile

Open Settings → Invoicing. The overview shows at a glance what is already set up. On the Profile & number range page you enter, once, everything German VAT law (§ 14 UStG) requires on every invoice:

  • Billing address — legal company name, street and number, postcode, city and country of your business.
  • Tax — either standard taxation with the applicable VAT rate and your tax number or VAT ID, or small business (§ 19 UStG); in that case the invoice shows no VAT but the corresponding note instead.
  • Bank details (optional) — IBAN, BIC and bank. They appear in the booking confirmation as the transfer target and on the invoice.
  • Numbering & layout — the invoice number prefix (default R, producing for example R-2026-0001), the payment term in days and your own footer text. It appears as an additional line above the footer — you can enter up to three lines, the first two appear on the document. Register, representation, tax, bank and contact details are printed there anyway, so you do not need to enter them here again.
  • Company details on documents — Represented by (for example the board, the managing director or the owner), Register court, Registration number and Website. They appear in the footer of every new invoice, receipt and reminder; empty fields are simply left out there. While the fields are still empty, the page suggests values from your legal notice (register entry and website) and says so — they are only taken over when you save. Your legal notice itself stays unchanged.

You do not have to type the address again: at the top of the Billing address card you find the button Copy from business profile. It fills in the company name, address, country and VAT ID or tax number from your business profile. As the address it uses the company address from your legal notice; if that is empty or cannot be read unambiguously, it uses the address of your business. Empty fields are filled; if a field already holds a different value, the page asks first whether to overwrite it. Nothing is saved until you click Save. You do not enter email address and phone number here — they are taken from your business profile and appear on the document automatically.

How the header and footer of a document are laid out is described in How a document is laid out.

At the very top sits the switch Create invoices automatically. As long as it is off or mandatory details are missing, no invoice is created — you can still mark the booking as paid as usual. What is still missing is listed on the page under Still missing. Use Preview PDF to see a sample invoice with your saved details at any time; it is for viewing only and is not stored anywhere.

You are responsible for the tax details — VAT rate, standard taxation or the small business scheme, tax number or VAT ID. The invoices are issued in the name of your business. If you are unsure which rules apply to you, please clarify this with your tax adviser beforehand.

When an invoice is created

The invoice is created at the exact moment an event booking is set to paid — either by you in the booking list via Mark as paid or Create invoice (where you choose the payment method, for example cash or bank transfer), or automatically by your guest paying online. The invoice number, your details and the line items are fixed at that moment.

The attendee receives the invoice by email straight away: as a PDF attachment and via a permanently valid link. If the attendee is a business customer and all required details are present, the same email also contains a link to the XRechnung as XML — the format public sector clients require. If something is missing in your profile for this, the Invoicing page tells you exactly what.

The PDF is an electronic invoice (ZUGFeRD/Factur-X, profile EN 16931): the very same file is a document for people and for accounting software — the visible part to read, the machine-readable data embedded invisibly inside it. You do not have to configure anything and do not have to send anything extra. Business customers still find the XRechnung under its own link in the email.

Very occasionally producing the file takes a moment longer. The invoice journal then shows “PDF pending”, and the invoice goes out automatically as soon as the document is ready — usually within a few minutes. “Try again now” lets you trigger that without waiting.

Line items: a booking without children appears on the invoice as one line, as before (course, date, quantity = attendees). If an attendee also books children for an event with child tiers, the invoice gets one line per category: adults and each booked child tier with quantity and unit price — a free tier is shown at €0.00. A discount code then appears as a separate minus line “Discount code …”, and the total is the booked amount after the discount. A purchased value voucher remains a payment below the totals. XRechnung, ZUGFeRD and the Lexware voucher carry the same lines.

If the total of a booking is above €250, the attendee's billing address belongs on the invoice (simplified invoices without an address are only allowed up to and including €250). For guests it is then mandatory: the booking form asks for street, postcode and city automatically; below that threshold guests may add them voluntarily. Your team can leave it out in the back office and in the partner app and add it to the booking later — ideally before marking it as paid, because after that the invoice is frozen. As long as it is missing, the booking's “Event & billing” card reminds you.

If the event is set to deposit in advance (per person or flat), the online payment and the invoice cover the deposit: VidiReserve automatically issues an open invoice for the deposit and receipts it as soon as the money arrives. You settle the remaining amount outside and deduct the deposit there (see Prepayment & payment methods). With full payment in advance the invoice covers the whole booking amount. If the invoice date precedes the event date, the PDF automatically states “Prepayment for the event on …”.

Cancelling an invoice & refunds

An invoice, once issued, is never changed or deleted. That is why the paid mark cannot be reversed afterwards either — the booking list then shows Paid — invoice exists. The way back is Cancel invoice in the invoice list:

  1. A credit note is created with the same line items as negative amounts and a reference to the original invoice.
  2. The original invoice remains and is set to Cancelled.
  3. The attendee automatically receives the credit note by email.
  4. In the invoice list the credit note carries the Refund pending marker until you tick Refunded there.

VidiReserve takes the same route by itself when it is not the invoice but the booking that is cancelled — by your guest through their booking link or by you: for a paid booking the credit note is created automatically, with the same consequence that the refund is left pending with you.

You send the money back one of two ways. If the booking was paid online, Refund under Payments sends it back to the guest through your payment provider — in full or as a partial refund if your cancellation terms provide for a fee. With a bank transfer or cash you transfer the money yourself and then tick Refunded in the invoice list. After the cancellation the booking can be invoiced again — so you can correct it and issue a new invoice.

It can also happen by itself: under Settings → Invoicing, the card Refunds lets you switch on that a cancellation by the guest refunds the full amount automatically. It applies only to cancellations the guest triggers themselves. After your cancellation deadline they can only cancel if the event provides for a cancellation fee — then the amount paid minus the fee goes back automatically. If your business cancels, it stays manual. Out of the box the switch is off: businesses with staggered cancellation fees prefer to decide for themselves.

Refunds by path — who sends the money back depends on who cancels:

  • Your guest cancels their booking: automatic only with the Refunds switch turned on and only for online payments — otherwise you refund manually.
  • You cancel a booking: never automatic. You refund under Payments with Refund, or transfer the money yourself and tick Refunded.
  • You cancel a voucher order: always automatic and in full through your payment provider; if the buyer paid by bank transfer, you transfer the money back yourself.
  • Withdrawal (booking or voucher): always automatic and in full — see Withdrawal & refund.

Your guest sees this too: if they cancel themselves — in their account through the cancellation dialog or via the link in their confirmation email — that dialog shows your cancellation terms, the cancellation deadline and, if they have already paid, a box Your payment with the amount and the payment method. Plus the honest sentence that you decide on the refund according to your cancellation terms and that the credit note arrives by email — or, if you switched on the automatic refund, that the amount goes back automatically. The same line appears in the cancellation confirmation sent to the guest.

Cancellation fee

If an event provides for a cancellation fee and your guest cancels after the deadline — or you retain a fee when you cancel yourself —, two documents are created: the credit note for the full amount and a separate invoice for the cancellation fee (line item “Cancellation fee <event> <date>”). That invoice is paid straight away — the fee was retained from the payment — and carries the Cancellation fee label in the invoice list. Both reach your guest by email and go into the DATEV and Lexware exports like any other invoice. The invoice for the fee cannot be cancelled at the moment — so please check the amount before cancelling; a way to correct it will follow.

The guest gets back paid minus fee: automatically as a partial refund when the guest cancels and the Refunds switch is on, otherwise manually — the refund window under Payments is pre-filled with that amount, and the marker in the invoice list states it (Refund outstanding: EUR 128.00). Once refunded, it disappears; if the fee covers the whole payment, nothing is outstanding at all. A fee only applies to confirmed, paid bookings and never exceeds what was paid — nothing is charged afterwards. A cancellation fee requires an invoice for the booking (invoicing switched on, invoice issued); without one your business cancels without a fee as before.

VAT: the invoice for the fee follows your billing profile (rate or small-business rule). Whether a cancellation fee is subject to VAT or counts as non-taxable compensation for damages depends on the individual case — please agree this with your tax advisor. For the latter, tick Cancellation fee without VAT (compensation for damages) under Settings → Invoicing: the fee then appears at 0% with the note “Cancellation fee as non-taxable compensation for damages” on the document and in the e-invoice.

Withdrawal & refund

If you chose "Right of withdrawal applies" in the booking rules, your guest sees a Withdraw from contract button in their account, on their cancellation page and in their booking confirmation. It leads to a page with all the booking details and the button Withdraw now.

A withdrawal triggers the same chain as a cancellation — with two differences: your cancellation deadline does not apply (the law overrides it), and the refund is always made in full, regardless of the switch in the Refunds card ("Automatically refund the full amount when the guest cancels"). With a bank transfer or cash you refund the money yourself; until you tick it off, the credit note carries the Refund pending marker.

Outside the 14 days or after the date, the page stays reachable — it then explains why a withdrawal is no longer possible and leads to the normal cancellation. In the booking you see, below the guest details, when the withdrawal was declared and whether your guest expressly requested that performance begin early.

The invoice list

Under Invoices → Overview you find all invoices and credit notes of your business. With the invoicing add-on you also write manual invoices and maintain customers and items — see Writing invoices. You can narrow the list down by period, type and status and search by number, name, company or email. Depending on the document you can open the PDF, Send again to the attendee (a few times per hour), Cancel invoice and mark it Refunded. Which of these appear depends on the document: Cancel invoice only on active invoices, Send again no longer on cancelled ones, and Refunded only on credit notes whose refund is still pending. Below the list you see the total of the whole selection.

Above the filter row you will find the Quick select: today, yesterday, this week, last week, this month, last month. One click sets the period and keeps your other filters (type, status, search, event). As soon as you enter a date in the From/To fields yourself, your input wins and the pill is deselected. Important for bookkeeping: a period chosen via a pill counts exactly like one typed in by hand — both exports pick it up the same way.

For your accounting there are two exports at the top, always covering exactly the selection you set: Journal (CSV) with all document rows — credit notes with negative amounts, so a cancelled transaction adds up to zero — and PDF archive (ZIP) with every document of the period as a PDF. You can pass both on to your tax adviser unchanged.

For very large periods the export deliberately stops with a message instead of quietly delivering only part of the data. Narrow the period down in that case and download quarter by quarter, for instance.

Connect Lexware Office

If you keep your books in Lexware Office, VidiReserve can transfer every attendee invoice and every credit note into it — as a bookkeeping voucher with the PDF attached, in your own account. The invoice numbers stay the ones from VidiReserve; Lexware does not renumber anything.

How to set it up — Settings → Invoicing → Lexware Office:

  1. In Lexware Office, create an API key under Add-ons → Public API and paste it here. The key is stored encrypted and never shown again; you can replace or remove it at any time.
  2. Test connection — the answer names your Lexware account and the modules enabled there. If the tax treatment (small business under § 19 UStG) differs from your invoicing profile, we say so right here.
  3. Load revenue accounts and pick one — that is where the course revenue is posted. Without a choice we use the default account “Einnahmen” (income).
  4. Switch the transfer on and save.

From that moment every new document reaches Lexware within about ten minutes. Older invoices are not backfilled — that would be a surprise in your books. Send individual older documents with the button in the invoice list.

If you switch the transfer off again, that cut-off date is cleared; when you switch it on again, the new moment counts. Whatever was issued during the pause in between is not picked up by itself afterwards — send those documents one by one with Send to Lexware in the invoice list.

The invoice list then shows a “Lexware” column with five possible states:

  • transferred — voucher and PDF have arrived in your Lexware account.
  • pending — the next run will pick it up.
  • waiting for the invoice — this only appears on credit notes: the matching invoice has to reach Lexware first, otherwise there would be a credit note without the invoice it refers to. Usually that sorts itself out in the same run. If the invoice dates from before you switched the transfer on, the credit note waits until you have sent that invoice once with the Send to Lexware button — the credit note then follows by itself.
  • error — something went wrong; it is retried automatically.
  • needs attention — another attempt will not help. The reason is shown on the badge; once you have fixed it, send the document with the Send to Lexware button. That button works immediately and waits for Lexware, so it may take a moment before the page comes back.

What VidiReserve does not do: it never creates customer contacts in Lexware. Documents run through the collective contact; if you want, the name or company of the invoice recipient appears in the voucher header so you can find it there. With the switch off, the header stays nameless.

That does not change the attachment: the attached invoice PDF carries the name and address of the invoice recipient either way — it is the accounting document, and without those details it would not be one. So the switch decides whether the name is searchable in Lexware, not whether it gets there at all. We also never set the payment status — in Lexware that comes from your bank reconciliation.

If Lexware rejects the key for good (because it was renewed, or the add-on was ended), you get one email per day about it. Your invoices carry on exactly as before — as soon as a valid key is stored, VidiReserve catches up on every pending document by itself.

Set up online payment

In the same Invoicing area every provider has its own page: PayPal, Stripe and SumUp. You can enable one, two or all three; your guest then picks one on the payment page. The money goes straight into your own account with that provider: VidiReserve never receives the money, never forwards it and takes no commission. You carry the provider's fees yourself, as well as the payment and cancellation terms towards your guests.

  • PayPal — you create your own REST app in your PayPal business account and enter the client ID, secret and webhook ID here; the webhook address you need for this is shown on the page ready to copy. The mode separates sandbox (test) from live (real money). At PayPal, sandbox and live are two separate apps in the developer dashboard (developer.paypal.com, with the toggle set to Sandbox or Live), each with its own client ID, its own secret and its own webhook ID; credentials from one app are rejected in the other mode. The check button now names exactly that mix-up instead of merely reporting a failure — and VidiReserve never switches the mode over by itself, that stays your decision. Without a webhook ID the status stays Limited: payments work, but if a guest closes the page too early, the booking stays open even though they paid.
  • Stripe — nothing to type in here: you click Connect with Stripe, go through Stripe's onboarding with your company and bank details and come back. Until Stripe has enabled your account for payments the status is Limited; after that it turns Active by itself — provided the switch Offer Stripe to guests is on. Without it the status stays Not set up. The full Stripe dashboard stays yours.
  • SumUp — you store an API key and your merchant code from your SumUp profile. Please create a dedicated key for online payment rather than reusing the one from your card terminal. If you already run a SumUp terminal, a button copies the merchant code over from the card terminal setup — deliberately not the key. You do not need to enter a webhook address at SumUp. No SumUp account yet? The SumUp page in your settings carries an affiliate link you can sign up through; VidiReserve may receive a commission for it, and it changes nothing about your terms with SumUp.

Every provider has a check button — Test the PayPal connection, Test the Stripe connection and Test the SumUp connection — so you can check immediately whether your credentials are accepted. Only the switch Offer … to guests makes the provider appear on your guests' payment page.

What that switch does not do: it has no retroactive effect on bookings whose payment is already under way — a payment that has been collected is still matched even if you switch the provider off in the meantime. And it forces nobody: your guests can still pay by bank transfer or cash if you describe it that way in the event.

Card field in the widget. In the invoicing overview, next to the payment providers, you will find the tick box Card field in the widget (payment without a new window). When it is ticked, guests pay for vouchers and event prepayments right inside the widget on your website: with Stripe's card field, the PayPal buttons or SumUp's card field — depending on which providers you have enabled. Card and account details go straight to the provider, not to us. Wallets (e.g. Apple Pay) and payment methods with a redirect (e.g. Klarna) do not work inside someone else's frame; they remain available via “More payment methods in a new window”. The tick box is off at first. Switching it off immediately returns everything to the new window — a payment already under way is still matched.

How your guest pays

  1. If the event costs money, “online” is ticked as a payment method and at least one provider is set up, the booking form button reads Continue to payment. The guest then lands on the payment page straight away — the booking itself has already been received.
  2. After booking, the guest sees the Pay now button on the confirmation page and in the confirmation email.
  3. They land on a payment page in the language of their booking, see the amount, the event and you as the payee, and choose the provider.
  4. They pay at the provider and return with the result: Payment received, Payment is being checked or Payment cancelled.
  5. On Payment received the booking is paid immediately and the invoice — if set up — goes out automatically.

If it says Payment is being checked, that is not an error: the provider has not reported the final outcome yet. The confirmation follows automatically as soon as it does; you do not have to do anything. If the provider reports the payment as “in progress” — for instance for a direct debit or a review by the provider — the page asks the guest not to pay again.

If, on the other hand, the provider's answer never arrived, nobody knows whether the money was collected. Then the guest may deliberately pay again: the result page and the widget show the button Pay again anyway, the payment page from the email its provider buttons — each with the note that you will refund an amount paid twice. If the first payment does arrive after all, it shows up in the payments overview as Needs attention; refund that amount there. If the money has demonstrably arrived already, there is no second payment button.

Below the provider buttons the payment page shows your terms and conditions, your cancellation terms (expandable) and your privacy policy, as far as you have stored those addresses in your profile — plus the note that card and account details are entered exclusively at the payment provider. Anyone who does not want to pay right now gets back via the link below — to the event, or to their bookings when logged in; the payment link is in the confirmation email anyway.

In their own account your guest finds every document under Invoices — invoice and credit note, with PDF and, for business customers, XRechnung. The Events tab shows the amount, the payment status (“Paid on …” or “Payment pending”) and, while it is open, the Pay now button.

Bank transfer: your guest reports, you confirm

If you have stored bank details, the link I have transferred the amount appears next to your IBAN — in the booking confirmation, in the invoice email, in the payment reminder and on the payment page. Your guest enters the date of the transfer there and, if somebody else paid for them, the name of the account holder.

That report is not a payment. It shows up as the note Transfer reported on the booking or on the voucher order, and you receive an email at the address stored under Settings → Notifications for “Reported bank transfer”. In the booking list you find every report via the button Reported transfers, in the order list via the checkbox Reported transfers only.

Check your account. If the money is there, click Confirm payment received on the booking — that is the same operation as Mark as paid: the booking counts as paid, the invoice is created, your guest receives it. The stated date and the stated account holder become the payment reference on the document. If your invoicing is switched off or your billing profile is incomplete, the payment is still recorded — the message afterwards then tells you that no invoice was created. The same goes for a line you confirm in the bank statement reconciliation. If nothing arrived, click Reject report: the note disappears, the money side stays untouched. The checkbox Inform the guest next to it is pre-selected — your guest then receives a factual email with your bank details and the payment reference, asking them to get in touch briefly if they did transfer the money after all. To reject quietly, clear the checkbox.

A guest can report at most three times a day for the same item — enough to correct a typo, not enough to become a flood.

Sometimes a guest reports and then pays online after all, or the booking is cancelled. Both lists stop showing it then — they only hold what is still open. On the booking itself the note stays until you remove it with Clear the report; no email goes out when you do. A cancellation clears it by itself. If your guest opens their reporting link for such an item again, they read that nothing is outstanding here — no form, no amount and no bank details, so they do not transfer the money a second time.

Do you maintain your own email template (Settings → Email templates)? Then VidiReserve puts the link below your text. To place it yourself, use the placeholder {reservation.transfer_report_url} — in the booking confirmation as well as in the invoice email; in the payment-link email for a voucher order it is called {voucher.transfer_report_url}. If you place it yourself, the block below is left out.

Reconcile a bank statement

Under Payments → Reconcile bank statement you upload the CSV export from your online banking (at most 2 MB and 5,000 rows). VidiReserve reads date, amount, payment reference and name and suggests which row belongs to which open item:

  • certain – the payment reference contains your invoice number or the item number (#123), and the amount matches to the cent.
  • possible – only the amount matches, and only for exactly one open item.

Nothing is booked automatically: you confirm each row one by one or skip it. A Confirm is the same operation as above — invoice included. Before booking, VidiReserve looks again: if the item has been paid in the meantime, or a different amount is open, nothing happens and you simply upload the statement again. For the same reason a suggestion list is valid for half an hour. The uploaded file is only read for this analysis and is not stored; you clear the suggestion list yourself with Discard list.

If a number fits two items — a booking and a voucher order can both carry #42 — VidiReserve makes no suggestion instead of guessing. When your guests add “voucher” or “booking”, it is unambiguous again.

A debit is never an incoming payment and is therefore never suggested to you — not even when your statement keeps the sign out of the amount and in a separate debit/credit column (also S/H or Soll/Haben): an S or D there turns “50.00” into a debit, an H or C leaves it an incoming payment.

Only euro amounts are matched. If your statement has a currency column, rows in another currency are skipped and counted below the list — “50.00” on a dollar account is not €50.00. If your export has no such column, VidiReserve assumes euro; exports from German bank accounts usually have none. If the cell holds no currency code but something like “Euro” or “Euro (EUR)”, that counts as euro too — only what reads as another currency is skipped.

The payments overview

Under Payments every online payment is listed with date, booking, provider, amount, status and the provider's reference — with it you find the transaction again in your provider's dashboard, for example to issue a refund. You can filter by period, provider and status; below the list you see the total received.

You will find the same Quick select in the payments overview. It works with calendar days in your time zone; weeks run Monday to Sunday.

Rows you should look at are highlighted as Needs attention:

  • If the booking had already been paid: a second amount was collected — for instance because the guest deliberately paid again after an unclear first payment. Refund the amount of this row.
  • If the amount or the currency differs: something other than the booked amount was collected. Check the transaction in the provider account and refund it if needed.
  • If the money arrived but the booking could not be switched to paid (because it had been cancelled in the meantime, for instance): look at the booking and decide by hand; the guest gets no second payment button, since the money is there.

There are two buttons for the money in this list, and they do different things: Refund really triggers the repayment — you confirm the amount and your cancellation terms, then the money goes back through your provider, and that cannot be undone. Mark as refunded moves no money: the tick is for refunds you have already triggered in your provider's account.

If your provider reports the refund as started but not yet completed, we treat it as done — a second attempt would be a second payout. You see the final state in your provider's account. If a refund does not go through, the payment stays in the list as Needs attention with the reason next to it; you can then try again, or refund in the provider account and note it here.

Expired or declined?

A payment with the status Expired is not a decline: your guest opened the payment page and did not complete it, and after a while (with Stripe usually one hour, sooner when a seat is being held) the provider closes the session. No money has moved, and the booking's payment link remains valid. If it says Declined by the provider instead, the bank or the provider rejected a payment attempt — where it gives a reason (insufficient funds or an expired card, for example), it is shown in brackets. In both cases you can remind your guest straight from the list with Resend payment link, as long as the booking is open, unpaid and has an email address.

With a prepayment invoice, the booking shows Invoice open · due … until the money has arrived: it counts as paid once the payment comes in or via “Record payment” in the invoice list. In the event's attendee list, Resend payment link sits right next to it as well.

Who sees what

By default only the owner sees the Invoices and Payments menu items — the names, addresses and amounts of all attendees sit behind them. You can hand billing over deliberately, though: under Staff → Roles & Permissions, grant the Invoices & payments permission in the Extras group. View only opens the invoice list, the invoice PDFs and the payment overview; Edit additionally allows cancelling, sending again, marking as refunded, the exports as well as mark as paid and create invoice in the booking list. Without the edit permission, staff only see the payment status in the booking list, with no button. Existing roles do not have the permission at first — you grant it once, deliberately. See the chapter Staff & permissions for details.

The invoicing profile and the payment providers stay reserved for the owner in every case: tax, bank and access details live there. That is why the menu entry Settings → Invoicing only appears for the owner.

For event providers

These features are built precisely for you: courses, workshops and events are paid up front, and your attendees need a proper invoice for it. You find everything in three places in the menu — the Settings → Invoicing area with its overview, Profile & number range and one page each for PayPal, Stripe and SumUp, the documents under Invoices and the incoming payments under Payments. Restaurants that run events alongside their table business can use both in exactly the same way; nothing changes for ordinary table reservations.