x-cpod-domain: contracts
Contracts
Vendors, master contracts, and obligations.
Try in explorer
client.contractsVendor
A vendor counterparty.
REST path
/api/v1/contracts/vendorsOperations
listgetcreateupdatedeleteSDK
// list — returns only your records; add filters/search:
await client.contracts.vendors.list()
// create:
await client.contracts.vendors.create({
id: "rec_01HXEXAMPLE",
tenant_id: "example tenant_id",
created_at: "2026-01-01T00:00:00Z",
updated_at: "2026-01-01T00:00:00Z",
app_id: "example app_id",
created_by: "rec_01HXEXAMPLE",
})| Field | Type | Description |
|---|---|---|
| id* | uuid | Server-assigned ULID with type prefix (e.g. per_…). |
| tenant_id* | string | Tenant scope — auto-stamped from the caller's JWT. |
| app_id | string | App scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present. |
| created_at* | date-time | Server stamp. |
| updated_at* | date-time | Server stamp; updated on every patch. |
| created_by | uuid | Person id from the caller's JWT (sub). |
| updated_by | uuid | Person id from the last writer's JWT (sub). |
| source | string | Provenance tag — defaults to 'edm'. |
| source_type | enum | Where the write originated. Defaults to 'api'.frontendbackendserversystemapi |
| is_deleted | boolean | Soft-delete flag. Excluded from default list queries. |
| deleted_at | date-time | Stamped when soft-deleted; null otherwise. |
| deleted_by | uuid | Person id who soft-deleted; null otherwise. |
| schema_version | number | Document schema version. Bumped on incompatible writes. |
| name | string | Canonical machine-friendly name for the vendor (e.g. 'acme-corp'). Used in API filters and cross-system references. |
| display_name | string | Human-readable display name shown in the UI and API responses. |
| website | string | Primary website URL for this vendor. Null if unknown. |
| risk_rating | string | Vendor risk rating assigned by the procurement or security team. Drives contract review cadence and access controls. |
| payment_terms_days | number | Standard payment terms in days (e.g. 30 for net-30). Null if not yet negotiated. |
| account_manager_name | string | Full name of the vendor's account manager for this enterprise. |
| account_manager_email | Email address of the vendor's account manager. | |
| strategic_tier | string | Procurement tier classification. 'preferred' vendors receive priority sourcing; 'restricted' vendors require executive approval. |
| status | string | Lifecycle status of the vendor relationship. 'under_review' triggers a compliance workflow. |
| notes | string | Freeform notes about the vendor, visible only to internal users. |
| tags | json | Flat string tags for grouping and filtering (e.g. 'cloud', 'saas', 'eu-gdpr'). |
Contract
A master contract with a Vendor.
REST path
/api/v1/contracts/contractsOperations
listgetcreateupdateterminateSDK
// list — returns only your records; add filters/search:
await client.contracts.contracts.list()
// create:
await client.contracts.contracts.create({
id: "rec_01HXEXAMPLE",
tenant_id: "example tenant_id",
created_at: "2026-01-01T00:00:00Z",
updated_at: "2026-01-01T00:00:00Z",
app_id: "example app_id",
created_by: "rec_01HXEXAMPLE",
})| Field | Type | Description |
|---|---|---|
| id* | uuid | Server-assigned ULID with type prefix (e.g. per_…). |
| tenant_id* | string | Tenant scope — auto-stamped from the caller's JWT. |
| app_id | string | App scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present. |
| created_at* | date-time | Server stamp. |
| updated_at* | date-time | Server stamp; updated on every patch. |
| created_by | uuid | Person id from the caller's JWT (sub). |
| updated_by | uuid | Person id from the last writer's JWT (sub). |
| source | string | Provenance tag — defaults to 'edm'. |
| source_type | enum | Where the write originated. Defaults to 'api'.frontendbackendserversystemapi |
| is_deleted | boolean | Soft-delete flag. Excluded from default list queries. |
| deleted_at | date-time | Stamped when soft-deleted; null otherwise. |
| deleted_by | uuid | Person id who soft-deleted; null otherwise. |
| schema_version | number | Document schema version. Bumped on incompatible writes. |
| vendor_id | uuid | UUID of the Vendor that is party to this contract. |
| owner_id | uuid | UUID of the Person (employee) who owns and is accountable for this contract internally. |
| type | string | Contract type classification. 'msa' = Master Service Agreement; 'sow' = Statement of Work; 'ela' = Enterprise License Agreement. |
| name | string | Human-readable name for this contract (e.g. 'Acme SaaS Platform — 2025 Renewal'). |
| status | string | Lifecycle status of the contract. 'executed' = signed but not yet in the effective date window; 'active' = currently in force. |
| signed_date | date-time | ISO 8601 date when the contract was signed by all parties. Null if not yet executed. |
| effective_date | date-time | ISO 8601 date when the contract's obligations begin. May differ from signedDate. |
| expiry_date | date-time | ISO 8601 date when the contract expires or must be renewed. Null for evergreen contracts. |
| notice_period_days | number | Number of days notice required to terminate the contract before its expiry. |
| auto_renewal_window_days | number | If set, the contract auto-renews unless cancelled at least this many days before the expiryDate (e.g. 60 means cancel 60 days before expiry or it renews automat |
| value | number | Total contract value (TCV) in the specified currency. Null if the value is time-and-materials or otherwise variable. |
| currency | string | ISO 4217 3-character currency code for the contract value (e.g. 'USD', 'EUR', 'GBP'). Null if value is null. |
| linked_license_ids | json | UUIDs of SoftwareLicense records that are governed by or created as a result of this contract. |
| document_ref | string | MinIO object path to the stored contract document (e.g. 'contracts/2024/acme-saas-renewal.pdf'). Access controlled by the cPod storage layer. |
| notes | string | Internal notes about the contract visible only to authorized users. |
| tags | json | Flat string tags for filtering and grouping. |
ContractObligation
A specific obligation pulled out of a Contract.
REST path
/api/v1/contracts/obligationsOperations
listgetcreateupdatecompleteSDK
// list — returns only your records; add filters/search:
await client.contracts.obligations.list()
// create:
await client.contracts.obligations.create({
id: "rec_01HXEXAMPLE",
tenant_id: "example tenant_id",
created_at: "2026-01-01T00:00:00Z",
updated_at: "2026-01-01T00:00:00Z",
app_id: "example app_id",
created_by: "rec_01HXEXAMPLE",
})| Field | Type | Description |
|---|---|---|
| id* | uuid | Server-assigned ULID with type prefix (e.g. per_…). |
| tenant_id* | string | Tenant scope — auto-stamped from the caller's JWT. |
| app_id | string | App scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present. |
| created_at* | date-time | Server stamp. |
| updated_at* | date-time | Server stamp; updated on every patch. |
| created_by | uuid | Person id from the caller's JWT (sub). |
| updated_by | uuid | Person id from the last writer's JWT (sub). |
| source | string | Provenance tag — defaults to 'edm'. |
| source_type | enum | Where the write originated. Defaults to 'api'.frontendbackendserversystemapi |
| is_deleted | boolean | Soft-delete flag. Excluded from default list queries. |
| deleted_at | date-time | Stamped when soft-deleted; null otherwise. |
| deleted_by | uuid | Person id who soft-deleted; null otherwise. |
| schema_version | number | Document schema version. Bumped on incompatible writes. |
| contract_id | uuid | UUID of the Contract this obligation belongs to. |
| title | string | Short descriptive title of the obligation (e.g. 'Submit quarterly SOC 2 attestation'). |
| description | string | Detailed description of what is required to fulfil this obligation. |
| due_date | date-time | ISO 8601 date by which this obligation must be completed. For recurring obligations this is the date of the next occurrence. |
| owner_person_id | uuid | UUID of the Person internally responsible for ensuring this obligation is met. Null if unassigned. |
| status | string | Current fulfilment status of the obligation. 'overdue' is set automatically when dueDate passes without completion. 'waived' requires an audit note. |
| recurring | boolean | Whether this obligation repeats on a schedule. If true, recurrenceInterval must be set. |
| recurrence_interval | string | How often the obligation recurs. Required when recurring is true; null otherwise. |
| notes | string | Internal notes about this obligation, including waiver justifications or completion evidence references. |