Axel Raboit EI

Customers and contracts

A customer record, a versioned template, a contract sealed then signed online, with its amendments and its termination.

Getting a contract signed usually takes a word processor, a PDF export, a signature service and a folder to file the result in. Here it is one screen of the admin: a customer record, a template, a contract, and a link sent by email.

Three screens, in this order

  • Customers: the company and the person who signs for it - legal name, legal form, share capital, registered office, company number, VAT number, representative and their role. That is where the contract reads its particulars.
  • Contract templates: the wording, written once and versioned. A body, its annexes, and tokens filled in at creation: the customer's name, their office, mine, the dates, the amounts.
  • Contracts: a contract is born from a template version and keeps a copy of it. Editing the template afterwards does not rewrite what has already gone out.

A template stays a draft for as long as the wording is not settled, and a published version cannot be edited: that is what makes it possible to know, two years later, which text was signed.

What the signature guarantees

  • The contract is sealed before it leaves: a SHA-256 fingerprint over its text, and a command that checks nothing has moved since.
  • One public link per contract, sent by email, opened with a one-time code received at the same address.
  • Signing records the date, the IP address, the browser and the name the signer typed.
  • Refusal is provided for as much as agreement: its reason, its date, and a link that stays usable if the customer changes their mind.
  • Automatic reminders for a contract left unanswered, with a cap that stops them.
  • An amendment is a contract pointing at the one it changes, with a reference of its own: the signed contract is never rewritten.
  • A termination carries two dates, the day it is served and the day it takes effect, because a notice period is exactly the gap between them.
  • A retention period that is a setting, ten years by default, with a five-year floor no setting can go under, and a command that says what is still under that obligation.

The signer sees none of this: one page, the wording, a name to type, and what is being collected written out plainly. This is the module that holds my own contracts.