provomatic

How it works

An order passes five stations in Provomatic. Here you see what the customer sees and what happens inside. The screenshots show the German interface; everything is also available in English.

1

Order

The customer picks product, billing cycle and options in the shop and completes the order at checkout – accepting the terms and the withdrawal notice.

Under the hood

  • All prices are recalculated on the server. What the browser sends does not count.
  • The order records prices, options and discount – later price changes do not affect it.
  • Consents are stored with time, IP address and the version of the legal texts in force.
  • Every item creates a service with the status PENDING.
  • If a review rule applies (new customer, high amount), the order waits for your team.
CheckoutSummary, consent to the terms and waiver of the right of withdrawal.
2

Invoice

The invoice is created right after the order – with the right VAT and as an e-invoice.

Under the hood

  • VAT depends on customer and country: domestic, OSS rate of the EU country, reverse charge with a verified VAT ID, small business or non-EU.
  • The number is assigned inside a locked database transaction. If something fails, no number is used up.
  • The PDF contains the ZUGFeRD data (EN 16931); the XML is validated against the schema before finalisation.
  • PDF and XML get a SHA-256 checksum. Afterwards the application and database triggers block every change.
  • Corrections only happen through credit notes referring to the original invoice.
Invoice in the admin areaFinalised, checksum confirmed, PDF and XRechnung for download.
3

Payment

The customer lands on the payment page and chooses Stripe, PayPal, Mollie or bank transfer.

Under the hood

  • Provomatic creates a payment at the provider for exactly the amount due.
  • When the customer returns or a webhook arrives, Provomatic asks the provider for the status itself.
  • Amount and currency must match exactly; otherwise the payment is rejected and recorded in the audit log.
  • Webhooks are signature-checked and processed exactly once, even if the provider sends them several times.
  • Once the invoice is paid, the order is released – under a database lock, so nothing happens twice.
Payment pagePayment methods with a test mode notice, bank details and GiroCode below.
4

Provisioning

As soon as the payment is confirmed, Provomatic creates the server in Pelican or Pterodactyl.

Under the hood

  • Every step becomes a task in the queue: create the panel user, create the server with egg and resources.
  • If a step fails, Provomatic tries up to three times – after 30 seconds and after 2 minutes.
  • Then Provomatic checks that the server really exists in the panel and sets the service to ACTIVE.
  • The provisioning monitor in the admin area shows running, failed and diverging tasks.
  • Panel credentials are stored encrypted in the database.
ServiceAddress, resources, contract and the direct link to the panel.
5

Customer area and after

The customer sees the service, the invoices and any amount due. Your team has everything in the admin area.

Under the hood

  • Invoices are only delivered if the checksum of the finalised file matches.
  • Support can sign in as the customer and sees the customer area exactly as the customer does.
  • Refunds run directly at the provider and create the credit note automatically.
  • Important changes go into a hash-chained audit log that can be checked for tampering.
Customer areaActive services, open invoices and orders in progress.

Status overview

Every object has a clear status, so you and your customer always know where an order stands.

ObjectStatus
Orderawaiting payment · in review (with review rules) · paid · cancelled
Invoicedraft · open · paid · cancelled (by credit note)
Paymentopen · paid · failed · cancelled · partially refunded · refunded
Servicepending · active · suspended · terminated · failed
Provisioning taskqueued · running · done · failed

When something goes wrong

  • Payment cancelled: the invoice stays open and the customer can pay again at any time – also with another provider.
  • Amount does not match: the payment is marked as failed and logged; the order stays unpaid.
  • Panel unreachable: the task is retried. If it still fails after three attempts, it shows up in the provisioning monitor and your team can restart it.
  • Webhook arrives twice or not at all: duplicates are detected; if one is missing, Provomatic checks the status itself when the customer returns.

Setting up the payment providers is described under Payments, all images are under Screenshots.

Interested in the beta?

Provomatic is in development. Write to us if you would like to try it with your hosting company before the launch.

Get in touch