Contracts & compliance
Agreements, contracts, attachments and payment schedules — automate contract workflows.
Agreement
Endpoints
| GET | /agreements | Retrieves the collection of Agreement resources. |
| POST | /agreements | Creates a Agreement resource. |
| GET | /agreements/{id} | Retrieves a Agreement resource. |
| PATCH | /agreements/{id} | Updates the Agreement resource. |
| GET | /agreements/action-needed | Retrieves the collection of Agreement resources. |
| GET | /agreements/without-file | Retrieves the collection of Agreement resources. |
| GET | /agreements/without-file/active | Retrieves the collection of Agreement resources. |
Schema fields
| Field | Type | Description |
|---|---|---|
| employee | string,null (iri-reference) | |
| type | string | |
| variant | string | |
| amount | number | |
| minutesPerWeek | integer | |
| jobSize | integer | |
| amountType | string | |
| billingType | string | |
| positionName | stringnull | |
| position | string,null (iri-reference) | |
| dateFrom | string (date-time) | |
| dateTo | string,null (date-time) | |
| currency | string (iri-reference) | |
| cost | string,null (iri-reference) | |
| hoursPerWeek | integer |
Contract
Endpoints
| GET | /contracts | Retrieves the collection of Contract resources. |
| POST | /contracts | Creates a Contract resource. |
| GET | /contracts/{id} | Retrieves a Contract resource. |
| PATCH | /contracts/{id} | Updates the Contract resource. |
| DELETE | /contracts/{id} | Removes the Contract resource. |
| GET | /contracts/{id}/documents | Retrieves a Contract resource. |
| POST | /contracts/{id}/invoice-from-virtual-line | Create an Invoice from a virtual (unmaterialized) row of a recurring contract's schedule preview. |
| POST | /contracts/{id}/send-for-signature | Send the contract's existing uploaded document to the signature middleware. |
| GET | /contracts/{id}/signature-status | Live per-signer signing status for a contract. |
Schema fields
| Field | Type | Description |
|---|---|---|
| name | string | |
| direction | string | |
| counterparty | string,null (iri-reference) | |
| project | string,null (iri-reference) | |
| currency | string (iri-reference) | |
| totalAmount | stringnull | |
| dateFrom | string,null (date-time) | |
| dateTo | string,null (date-time) | |
| cyclic | boolean | Marks the contract as a recurring/ongoing relationship rather than a one-shot deal — e.g. a monthly retainer, ongoing security service, or indefinite tenancy. When true, dateTo is conventionally left null (open-ended) until the contract is actually terminated. The flag is advisory: the system doesn't auto-generate PaymentScheduleLines from a cadence; consumers (UI badges, calendar rendering) decide how to present cyclic contracts. |
| notes | stringnull | |
| description | stringnull | |
| signatureEnvelopeId | stringnull | |
| signatureStatus | stringnull | |
| signatureSentAt | string,null (date-time) | |
| signatureCompletedAt | string,null (date-time) |
Contract Attachment
Endpoints
| GET | /contract-attachments | Retrieves the collection of ContractAttachment resources. |
| POST | /contract-attachments | Creates a ContractAttachment resource. |
| GET | /contract-attachments/{id} | Retrieves a ContractAttachment resource. |
| POST | /contract-attachments/{id}/mark-reviewed | Creates a ContractAttachment resource. |
| GET | /contract-attachments/{id}/preview | Preview contract attachment file |
| POST | /contract-attachments/{id}/reanalyze | Creates a ContractAttachment resource. |
| POST | /contract-attachments/create-base64 | Creates a ContractAttachment resource. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| contract | string (iri-reference) | |
| organizationId | string | Organization is mapped on a separate EntityManager (central DB), so a Doctrine ManyToOne would reference an entity the default EM cannot resolve and any query touching this row would 500 with a MappingException. Store the organization ID as a plain VARCHAR(8) column instead — the same shape the migration already defined and the pattern the rest of `src/Entity/` uses for cross-EM references. Resolve the actual Organization entity via OrganizationRepository (central EM) at the call site. |
| filename | string | |
| mimeType | string | |
| size | integer | |
| storagePath | string | |
| status | string | |
| kind | string | |
| analysisResult | arraynull | |
| analysisSummary | arraynull | |
| reviewedAt | string,null (date-time) | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| contractId | stringnull | Surfaces the linked contract's id in the response so the FE can navigate to /contracts/{id} after a successful upload. The ManyToOne `$contract` field itself stays unexposed (no Groups) to keep the contract-attachment:read payload narrow — exposing the full Contract entity here would leak unrelated fields and require an extra serialization group. |
| file | string |
Payment Schedule Line
Endpoints
| GET | /contracts/{contractId}/payment-schedule-lines | Retrieves the collection of PaymentScheduleLine resources. |
| GET | /payment-schedule-lines | Retrieves the collection of PaymentScheduleLine resources. |
| POST | /payment-schedule-lines | Creates a PaymentScheduleLine resource. |
| GET | /payment-schedule-lines/{id} | Retrieves a PaymentScheduleLine resource. |
| PATCH | /payment-schedule-lines/{id} | Updates the PaymentScheduleLine resource. |
| DELETE | /payment-schedule-lines/{id} | Removes the PaymentScheduleLine resource. |
| POST | /payment-schedule-lines/{id}/invoice | Create an Invoice from this contract schedule line. |
Schema fields
| Field | Type | Description |
|---|---|---|
| id | string | |
| date | string (date-time) | |
| amount | string | |
| note | stringnull | |
| source | string | |
| invoice | mixed | Inverse side of Invoice.paymentScheduleLine. Read-only — set when the "Create invoice" button issues an Invoice from this line; the unique index on the owning side guarantees at most one Invoice per line. |