Normbeleg

Normbeleg — Terms of Service (B2B)

Version 1.0 · effective 10 October 2026

1. Who we are and who these Terms are for

1.1 Provider. PPFTEC S.R.L., a limited liability company under Romanian law, Str. Patriarh Iustinian Marina nr. 17-19B, bl. DC12, mansardă, ap. 25, 240469 Râmnicu Vâlcea, jud. Vâlcea, Romania; Trade Register (ONRC) no. J2026052999008; EUID ROONRC.J2026052999008; fiscal code (CUI) 55537142; VAT ID RO55537142; represented by its administrator Petre Popa. It trades as Normbeleg ("we", "us").

1.2 Customer. The business that installs the Normbeleg app in its Stripe account and accepts these Terms ("you"). The person who accepts confirms that they may bind that business.

1.3 Businesses only. Normbeleg is offered only to businesses acting for their trade, business or profession. It is not offered to consumers. If you are a consumer, do not install or use it. You confirm at acceptance that you act as a business.

1.4 Scope of this version. At the effective date of version 1.0, live mode (real invoices) is available only for sellers established in Romania (Romania Pack) and only on the Free Plan. The Germany and Poland Packs and the generic EN 16931 output for other EU countries are available in Stripe test mode only. Paid Plans (section 12) are not offered yet; the clauses on paid Plans apply only once we offer them on normbeleg.ppftec.com and in the App.

1.5 Contact. Support: support@ppftec.com or the contact form at normbeleg.ppftec.com/contact. Data protection: privacy@ppftec.com. Security issues: security@ppftec.com. Post: the address in 1.1.

2. Definitions

  • App: the Normbeleg Stripe App (UI inside your Stripe Dashboard) and our backend.
  • Stripe Account: your account with Stripe, from which the App reads data with the permissions you grant at installation.
  • Pack: the rules for one country or group of countries: format, mapping, validation and delivery channel. Each Pack has a version and a "rules last verified on" date.
  • Document: an e-invoice or e-credit note we generate from a Stripe invoice or credit note, with its validation report, delivery or submission record and Authority response.
  • Archive: our stored copies of Documents (section 10).
  • Authority: ANAF (Romania, RO e-Factura via SPV) or, where the Poland Pack is used, the Polish Ministry of Finance (KSeF).
  • Credentials: the access you give us for an Authority: an ANAF OAuth token, a KSeF token or a KSeF certificate with its private key.
  • Plan: Free, or a paid Plan (Starter, Growth or Scale) once offered (section 12).
  • DPA: our Data Processing Agreement, published at normbeleg.ppftec.com/dpa, which forms part of these Terms.

3. What Normbeleg does

3.1 Service. On your instruction, the App reads your finalized Stripe invoices and credit notes, converts them into the e-invoice format of the selected Pack, validates them, delivers or submits them through the channel of that Pack, and stores them as described in section 10.

3.2 Per country (Pack versions and channels at the date of these Terms):

What Normbeleg does
PackOutputValidationDelivery / submissionAvailability
Romania (RO)RO e-Factura UBL (CIUS-RO)CIUS-RO rules in our validator, then ANAF processingUpload to RO e-Factura (SPV) with your ANAF token; we store the response signed by the Ministry of FinanceLive and test mode
Germany (DE)XRechnung (UBL or CII) and/or ZUGFeRD / Factur-X hybrid PDF (EN 16931)KoSIT validator with the XRechnung configuration; Mustang for ZUGFeRDE-mail to the buyer address on the Stripe invoice, sent "<your legal name> via Normbeleg", reply-to your verified addressTest mode only
Poland (PL)FA(3) structured invoiceFA(3) schema, then KSeF processingSending to KSeF with your KSeF credential; we store the KSeF number and UPOTest mode only
Other EU countriesEN 16931 UBL, CII or Factur-XEN 16931 rules in our validatorNone (generated and archived for you to download)Test mode only

3.3 Plans and countries. Every Plan includes all Packs that are available in live mode at the time. Quotas are in section 12.

3.4 What Normbeleg is not. We do not:

  • give tax, legal or accounting advice, or decide which VAT treatment, rate, exemption or reverse-charge rule applies to you;
  • change tax-relevant amounts taken from Stripe;
  • number your invoices or issue invoices in our own name, as self-billing, or as your tax representative;
  • guarantee that an Authority or a buyer will accept a Document.

3.5 What a validation result means. "Valid" means the Document passed the format and business rules of the named standard version, as implemented by the named validator version or by the Authority's system. It does not confirm that the tax content is correct. When the App shows that ANAF processed an upload without errors, or that KSeF assigned a number, this means only that the Authority's system took the file; it does not mean the Authority approved its tax content.

3.6 Rules change. We check the official sources for each Pack at least monthly and update Packs. Each Document records the Pack version used.

3.7 Test mode. Documents created from Stripe test mode or sandboxes are marked "TEST — not a tax document", are never sent to Authorities' production systems or to your Stripe customers, and go only to addresses you have verified.

4. Your instruction and our role

4.1 Mandate. By turning on a Pack you instruct us to generate, validate, deliver or submit, and store Documents in your name and on your behalf. You remain the supplier and the issuer of every invoice. You stay responsible for its content, numbering, VAT treatment, delivery to the buyer where the law requires and its retention under the law that applies to you.

4.2 Our role. We are a technical service provider. For personal data in your invoices we act as your processor under the DPA.

4.3 Authority access. When you connect ANAF or KSeF you authorise us to use the Credentials only to upload or send your Documents, read their processing status and download the Authority's responses for the tax identification number you configured. We record who gave the authorisation, when and with which scope wording.

5. Your duties

5.1 Correct data. You keep your data in Stripe and in Normbeleg Settings correct and complete: your legal name, address, VAT and tax numbers, bank details, buyer data, tax rates and line items. We take amounts and tax data from Stripe as they are.

5.2 Check results. You check the status, validation report and any alert of every Document, and you act on "Missing data", "Validation failed", "Rejected", "Delivery unknown" and "Submission unknown". When we cannot confirm a delivery or upload, we do not repeat it automatically; you decide whether to repeat it after checking.

5.3 Romania: 5-working-day window. Romanian law requires B2B invoices to reach RO e-Factura within 5 working days from the issue date (art. 10 OUG 120/2021 as amended). You remain responsible for meeting that deadline. The App alerts you if a Document is not processed by ANAF without errors by the 3rd working day. If you receive such an alert, you must resolve it or submit the invoice another way in time.

5.4 Poland: credentials (when the Poland Pack is used).

  • Until 31 December 2026 you may connect a KSeF token with only the permissions to send and read invoices.
  • From 1 January 2027 KSeF tokens stop working, and Normbeleg's PL Pack is available only to companies (entities with their own NIP, not natural persons or sole traders/JDG). You may then connect only a KSeF certificate issued to your company (obtained with your company's qualified seal or through the company's KSeF permissions), not a certificate issued to a natural person. You confirm this when you upload it, and the App refuses certificates that identify a natural person.
  • You keep your KSeF access valid and tell us if a certificate is revoked.

5.5 ANAF. You need a person with SPV rights for your CUI and a qualified certificate to connect ANAF. You re-authorise at least every 365 days (we remind you). You tell us at once if the person who authorised loses their rights.

5.6 Germany (when the Germany Pack is used). You give a reply-to address you control and keep it verified. You check bounces shown in the App.

5.7 Credential security. You tell us without delay at security@ppftec.com if you suspect a Credential is compromised, and you revoke it at ANAF or KSeF as well. Disconnecting in the App deletes our copy at once.

5.8 Lawful use. You use the App only for your own genuine invoices and in line with the Acceptable Use rules in section 7.

5.9 Changes. You tell us through Settings of changes to your CUI, NIP, VAT ID or country of establishment.

6. Availability and support

6.1 No service level. We aim to keep the App available and to process Documents promptly, but we do not guarantee any availability, processing time or response time, and there is no SLA or service credit.

6.2 Dependencies. The App depends on systems we do not control: Stripe, Cloudflare (our hosting), ANAF and KSeF, and the buyers' mail systems. Their outages, limits, rule changes or maintenance can delay or prevent processing. When an Authority system is down, Documents wait and are shown as pending.

6.3 Maintenance. We may carry out maintenance. Where possible we announce planned maintenance in the App.

6.4 Support. Support is given in English (Romanian and German where we can) through the contact form at normbeleg.ppftec.com/contact or by e-mail to support@ppftec.com. Do not send invoice files or Credentials by e-mail or through the form; describe the problem and give the Document ID shown in the App. support@ppftec.com is also our single point of contact for authorities and users under Articles 11 and 12 of the Digital Services Act.

7. Acceptable use

You must not: use the App for invoices that are fictitious or meant to evade VAT; process invoices of a business you do not represent; put special categories of personal data (health, religion etc.) or data not needed on an invoice in Stripe fields we read; send real third-party data through test mode; try to access other customers' data or Authority data beyond your own rights; overload or abuse our systems or the Authorities' limits; reverse engineer how we store Credentials; use our sending domain for anything other than your invoices. We may suspend under section 13 if we have reasonable evidence of such use, and we report where the law requires it.

8. Intellectual property

8.1 We keep all rights in the App, Packs and documentation. You receive a non-exclusive, non-transferable right to use the App for your own business during the contract.

8.2 Your data and your Documents remain yours. You give us the right to process them only to provide the service, as set out in the DPA.

8.3 If you send us suggestions, we may use them without obligation.

9. Data protection and confidentiality

9.1 The DPA (normbeleg.ppftec.com/dpa) applies to personal data we process for you. Our App Privacy Notice (normbeleg.ppftec.com/app-privacy) explains the data we process as controller (your account, billing, support).

9.2 Each party keeps the other's non-public information confidential and uses it only for this contract. This does not prevent disclosure required by law.

10. Archive

10.1 Default retention (all Plans). We keep each Document, its validation report and its delivery or Authority records for 12 months from the date we generated it. During that period the copies are write-protected and cannot be deleted earlier, even at your request. You can download them in the App and export them at any time during that period (section 11).

10.2 Long-term archive (paid Plans, opt-in). If you choose "Long-term archive" when you set up a paid Plan, we keep each Document generated while that option is active until the end of the 8th year after the year in which it was issued (for example, an invoice issued in 2027 is kept until 31 December 2035). This continues after you cancel, downgrade, uninstall the App or this contract ends, at no extra charge, solely for storage and for export to you. Long-term archive copies are write-protected for their whole period and cannot be deleted earlier, even at your request; you choose this knowingly. The Free Plan has no long-term archive.

10.3 Choice is forward-only. You can switch the long-term archive on later; it then applies to Documents generated from that moment. You can switch it off; Documents already under long-term archive stay until their end date.

10.4 Legal retention is yours. The retention periods that apply to you (for example under Romanian accounting and tax law, or 8 years in Germany under § 147 AO and § 14b UStG) remain your duty. In Romania the original is the XML signed by the Ministry of Finance, which we store as received. In Poland KSeF itself stores your structured invoices; our copy is a convenience copy.

10.5 Access after the contract ends. If the App is uninstalled or Stripe ends our access, you can request an export of your archived Documents that are still stored by writing to support@ppftec.com or through the contact form; we verify your identity against the account owner's verified e-mail before sending a download link.

10.6 End of period. When the applicable period ends we delete the Document, unless you have asked us in time to put it on legal hold (for example during a tax audit), in which case we keep it until you release the hold or for at most 2 further years.

10.7 No promise of certification. We do not claim that the Archive is certified for any national bookkeeping standard (for example "GoBD-certified" or "revisionssicher"). We provide write-protected EU storage, hashes and export so that you can include the App in your own procedural documentation.

11. Data export and switching (EU Data Act)

11.1 Export at any time. You can download each Document and its records in the App at any time. On request to support@ppftec.com we also provide, free of charge and without undue delay, a full export of your exportable data in machine-readable formats: Documents (XML, PDF), validation reports, Authority responses (ANAF ZIP, KSeF UPO), delivery records and a CSV or JSON index with hashes. Exportable data excludes our own internal security data and other customers' data.

11.2 Switching notice. You may ask to switch to another provider or to your own systems, or to have your data erased, by giving notice through the App, the contact form or support@ppftec.com. The maximum notice period is 2 months; you may give shorter notice, including immediate effect.

11.3 Transition. After the notice period we support the switch for a transition period of up to 30 days, during which the service continues and we provide reasonable help to transfer your data. If this is technically impossible within 30 days, we tell you within 14 working days of your request, give reasons and propose a longer period of up to 7 months.

11.4 Retrieval period. After the transition period your data remains retrievable for at least 30 days. Then we erase it, except write-protected archive copies until their period ends (sections 10.1 and 10.2) and data we must keep by law.

11.5 No switching charges. We charge no fee for switching or export.

11.6 Information. On request we tell you the export formats, the data categories that can be exported and any known limits.

12. Plans, fees and taxes

12.1 Plans. At the effective date of version 1.0 only the Free Plan is offered: €0, up to 25 Documents per month, default retention only (section 10.1). We may later offer the following paid Plans (prices excluding VAT; the prices and quotas published on normbeleg.ppftec.com and in the App when we offer them prevail):

Plans, fees and taxes
PlanPriceDocuments per month
Free€025
Starter€24 per year150
Growth€119 per year1,000
Scale€39 per month10,000, then €0.004 per Document

A Document counts once, when its first version is created. Retries and corrections of the same Stripe invoice do not count again. When a quota is reached, new Documents are not generated until the next month or an upgrade; the App shows this.

12.2 Payment. Paid Plans, once offered, are bought on normbeleg.ppftec.com through Stripe Checkout and paid in advance for the billing period. They renew automatically for the same period unless you cancel before the renewal date in the Customer Portal. We remind you by e-mail at least 14 days before an annual renewal.

12.3 Refunds. Fees are not refundable, except (a) when we end the contract without cause under 13.3, (b) when you terminate because of a change under section 16 or a sub-processor objection under the DPA, in which case we refund the unused part of the prepaid period, or (c) where the law requires it.

12.4 VAT.

  • Customers established in another EU Member State with a valid VAT number: no Romanian VAT; reverse charge, the customer accounts for VAT (Art. 196 Directive 2006/112/EC). You give a VAT number at checkout; we check it in VIES and store the result. Without a valid VAT number we may refuse the sale.
  • Customers established in Romania: Romanian VAT is added at the applicable rate, and we send our invoice through RO e-Factura.
  • Customers outside the EU: not subject to Romanian VAT.

12.5 Our invoices. We issue invoices for our fees electronically. A Stripe receipt alone is not our invoice.

12.6 Price changes. We may change prices with at least 30 days' notice. Changes apply from your next renewal. Free-Plan quotas may change with the same notice.

13. Suspension and termination

13.1 By you. You may stop using the App and cancel at any time. Cancellation of a paid Plan takes effect at the end of the paid period. Uninstalling the App ends processing at once.

13.2 Suspension by us. We may suspend all or part of the service with immediate effect, and tell you why, if (a) you breach section 7, (b) there is a security risk to you, other customers or an Authority, (c) your payment is more than 14 days overdue, or (d) an Authority or Stripe requires it. We lift the suspension when the reason ends. During a suspension you can still export your data.

13.3 Termination by us. We may terminate the contract (a) for convenience with 60 days' notice, or (b) with immediate effect for a serious breach of sections 5 or 7 not cured within 14 days of notice, or for fraud. Section 11 (export and retrieval) applies in every case.

13.4 Stripe platform. We depend on Stripe's App Marketplace. If Stripe removes the App or ends our access, we tell you as soon as we can, and you keep the right to export under sections 10.5 and 11 by writing to support@ppftec.com.

13.5 If we stop the service. If PPFTEC stops providing Normbeleg altogether, we give at least 2 months' notice and keep export available for at least the retrieval period of section 11.4. We will make reasonable arrangements for Long-term archive copies (export to you, or transfer to a successor you approve).

13.6 Effects. On termination, processing stops, Credentials are deleted at once, and sections 8.2, 9, 10, 11, 14, 15 and 17 continue to apply.

14. Liability

14.1 Cap. Our total liability arising out of or in connection with this contract, for all claims together in any 12-month period, is limited to the fees you actually paid us for Normbeleg in the 12 months before the event giving rise to the first claim. On the Free Plan this amount is €0, so we have no liability for damage caused by simple negligence on the Free Plan.

14.2 Excluded loss. We are not liable for indirect or consequential loss, lost profit, lost revenue, lost data that you could have restored from your exports, or fines and interest imposed on you where (a) the App showed you an error, a rejection, an "unknown" state or a deadline alert and you did not act in time, or (b) the cause was wrong or missing data in Stripe or in your Settings.

14.3 No limit where the law forbids it. Nothing in these Terms excludes or limits liability for damage caused intentionally or by gross negligence, for harm to life, body or health, or for any other liability that cannot be excluded or limited under applicable law (including art. 1355 of the Romanian Civil Code). Where a court finds a limit in this section ineffective, the remaining limits stay in force to the extent permitted.

14.4 Authorities' decisions. Authorities impose tax obligations and fines on the taxpayer. We are not liable for an Authority's decision on the tax content of your invoice.

14.5 Your liability. You indemnify us against third-party claims and authority fines that result from unlawful data or instructions you gave us, or from your breach of section 7.

14.6 Data subjects. This section governs only the relationship between you and us. It does not limit the rights of data subjects under Article 82 GDPR.

15. Governing law and courts

15.1 These Terms and any non-contractual obligations connected with them are governed by Romanian law, without its conflict-of-law rules. The UN Convention on Contracts for the International Sale of Goods does not apply.

15.2 The courts competent for Râmnicu Vâlcea, Romania have exclusive jurisdiction. We may also bring a claim against you at your seat.

15.3 Customers outside Romania. You agree to Romanian law and Romanian courts as a business (Art. 3 Rome I Regulation; Art. 25 Brussels I bis Regulation). Mandatory rules of your country apply only where that law requires it despite this choice.

16. Changes to these Terms

16.1 We may change these Terms, the DPA or the Pack descriptions by notice in the App and by e-mail to the account owner at least 30 days before the change takes effect. Changes required by law or by an Authority may take effect sooner.

16.2 If you do not agree, you may terminate before the change takes effect; section 12.3(b) applies.

16.3 Continued use after the effective date means you accept the change, except changes to the clauses listed in section 18: those take effect for you only after you accept them again with the separate checkbox. Until then the App does not process new Documents in live mode.

17. General

17.1 Stripe. Normbeleg is an independent product of PPFTEC S.R.L. It is not affiliated with, endorsed by or sponsored by Stripe. "Stripe" is a trademark of Stripe, Inc. and is used only to describe compatibility. Your use of Stripe is governed by your agreement with Stripe.

17.2 Order of precedence. For personal data the DPA prevails; otherwise these Terms prevail over other documents.

17.3 Language. These Terms are made in English. Translations are for convenience; the English text prevails.

17.4 Electronic form. You accept these Terms electronically. We store the version, its SHA-256 hash, the Stripe user and account ID, your role and the time of acceptance. Each version stays available at normbeleg.ppftec.com with its hash, and we send you the accepted version on request.

17.5 Assignment. You may not transfer this contract without our consent. We may transfer it to a company that takes over Normbeleg, with notice to you; you may then terminate under 12.3(b).

17.6 Force majeure. Neither party is liable for failure caused by events beyond its reasonable control, including outages of Stripe, Cloudflare, ANAF or KSeF.

17.7 Severability. If a clause is invalid, the rest remains valid, and the invalid clause is replaced by a valid one closest to its purpose.

17.8 Notices. We send notices to the account owner's verified e-mail and in the App. You send notices to support@ppftec.com or by post to our registered office.

18. Clauses that require your express acceptance (art. 1203 Romanian Civil Code)

The following clauses are standard clauses that Romanian law treats as unusual. They bind you only if you accept them expressly, by ticking a separate, unticked box during setup, after this list is shown to you in full:

Clauses that require your express acceptance (art. 1203 Romanian Civil Code)
#ClauseSection
1Limitation and exclusion of our liability, including €0 on the Free Plan14.1, 14.2, 14.4
2Your indemnity to us14.5
3Our right to suspend the service13.2
4Our right to terminate unilaterally, including for convenience13.3, 13.4
5Automatic renewal of paid Plans12.2
6No refunds outside the listed cases12.3
7Long-term archive copies cannot be deleted before their end date; deletion at the end of default retention10.1, 10.2, 10.6
8No availability or service-level commitment6.1, 6.2
9Changes to the Terms by notice16.1, 16.3
10Romanian law15.1, 15.3
11Exclusive jurisdiction of the courts of Râmnicu Vâlcea15.2

Checkbox text (not pre-ticked, separate from the general acceptance):

"I expressly accept, for the business I represent, the clauses listed in section 18 of the Normbeleg Terms (version 1.0): limitation of liability (including €0 on the Free Plan), indemnity, suspension, unilateral termination, automatic renewal, refunds, archive deletion rules, no service level, changes by notice, Romanian law and the courts of Râmnicu Vâlcea."

Version 1.0. SHA-256 of the text of this version, as recorded when you accept it in the app: b287cd847e4f674b0a410680be538d34d1c315d74d3ff907b3fea8823f2ab906