Skip to main content

Contracts

Keep your contracts in Filinq and get a reminder before a notice deadline or an end date passes.

A contract holds its parties, dates, value and documents. It starts as a draft, you put it in force, and then you renew it or end it. Filinq reads the contract documents and suggests dates and amounts. A suggestion changes nothing until somebody accepts it.

Filinq does contracts as documents with dates. It has no clause library, no negotiation and no approval chain.

Who can work with contracts​

Members of the group filinq-contract-managers can read, create and change contracts. Admins can also delete them. Everybody else does not see them: OpenRegister decides, in the list, the detail and the actions.

Create the group in the Nextcloud user settings and add the people who manage contracts.

Pages​

  • Contracts lists every contract you can read, with its status, end date and notice deadline. Click New contract to add one. Click a row to open it.
  • Renewal pipeline shows the active contracts by what needs attention first:
BucketWhich contracts
ExpiredThe end date has passed
Notice due within 30 daysThe notice deadline is within 30 days, or has passed
Ending within 90 daysThe end date is within 90 days
LaterEvery other active contract

Drafts, renewed, ended and expired contracts are not in the pipeline. You can renew or end a contract from its row.

An active contract whose end date has passed shows as expired, on the detail and in the pipeline, even before its status is changed.

Put a contract in force, renew or end it​

On the contract page:

  • Put in force moves a draft to active.
  • Renew marks the contract renewed and creates a new draft. The draft carries the parties, type, owner, value and currency. The two contracts link to each other, and the page opens the new draft.
  • End contract ends an active contract early. You must give a reason. The reason stays on the contract.

OpenRegister checks every status change against the lifecycle the contract declares. A move it does not allow, like from draft straight to ended, is refused and the contract stays as it was.

Dates and reminders​

Fill in the end date and the notice period in days. When you leave the notice deadline empty, Filinq sets it to the end date minus the notice period. A deadline you entered yourself is never changed.

OpenRegister sends a Nextcloud notification to the contract managers before the notice deadline and before the end date of an active contract. Filinq itself sends nothing.

Parties​

A party can point to a Nextcloud contact (urn:nc:contact:<uid>). Then the page shows the name and e-mail address from that contact, marked "from contacts". A party without a contact, or whose contact is gone, shows the name stored on the contract.

Documents and signing​

  • Attach files adds files from Files to the contract.
  • Generate from a template fills a template with the contract and saves the PDF in your files.
  • Send for signature creates an ordinary signing request for one of the contract documents.

The contract only keeps references: file ids, the signing request and the signed document. Signing and templates work as they always do. The page shows the status of the signing request. Once the request is completed, the signed document is linked to the contract.

Suggested terms​

After you attach or generate a document, Filinq reads it for a start date, an end date, a notice period, a value, a currency and party names. It reads text files, and PDFs when pdftotext is installed on the server. Nothing leaves the server.

Each suggestion shows its field, value and how sure the reading is. Accept writes the value on the contract. Reject only marks the suggestion. OpenRegister's audit trail records who accepted what.

Switch suggestions off in the Filinq admin settings under Contract terms, or with:

occ config:app:set filinq enable_contract_term_extraction --value=0

When they are off, nothing is read and the page shows no suggestions.

API​

Contract create, read and edit go through OpenRegister's object API (/apps/openregister/api/objects/filinq/documentContract). The actions are Filinq routes:

RouteWhat it does
POST /apps/filinq/api/contracts/{id}/renewRenew; answers the contract and the successor
POST /apps/filinq/api/contracts/{id}/terminateEnd early; reason is required
POST /apps/filinq/api/contracts/{id}/suggestionsRead the documents for suggested terms
PUT /apps/filinq/api/contracts/{id}/suggestions/{index}decision: accepted or rejected
POST /apps/filinq/api/contracts/{id}/signingRecord a signing request (signingRequestId); links the signed document once it completed
GET /apps/filinq/api/contracts/{id}/partiesThe parties, named from their contacts

Each route reads the contract as you first. A contract you cannot read answers 404.