Budżety i wydatki
Budżety, transakcje, koszty, podatki i konta bankowe — śledź wydatki i automatycznie uzgadniaj płatności.
Budżet
Endpoints
| GET | /budgets | Pobiera kolekcję zasobów Budget. |
| POST | /budgets | Tworzy zasób Budget. |
| GET | /budgets/{id} | Pobiera zasób Budget. |
| PATCH | /budgets/{id} | Aktualizuje zasób Budget. |
| DELETE | /budgets/{id} | Usuwa zasób Budget. |
| POST | /budgets/{id}/copy-plan-from-year | Tworzy zasób Budget. |
| GET | /budgets/{id}/employee-pnl | Pobiera zasób Budget. |
| PUT | /budgets/{id}/plan | Zastępuje zasób Budget. |
| GET | /budgets/{id}/pnl-by-tags | Pobiera zasób Budget. |
| GET | /budgets/{id}/pnl-by-tags-drilldown | Pobiera zasób Budget. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| name* | string | |
| type* | string | |
| granularity* | string | |
| budgetGroup | string,null (iri-reference) | |
| attributeSet | string,null (iri-reference) | |
| dateFrom | string,null (date-time) | |
| dateTo | string,null (date-time) | |
| displayPricePerSqm | boolean | Opt-in flag for the P&L-by-tags preview's price-per-sqm column. When true, the costsByProject section is expected to surface a surface-aware price view in addition to absolute amounts. The actual surface lookup (Project -> assigned Property/Asset -> surface AttributeValue) lands after the post-Horizon-2026-04-30 co-design pass; this flag is the persistent toggle so the option exists today. |
| displayCurrency | string,null (iri-reference) | PRESENTATION currency — what this budget is READ in (#3434). Not what any amount IS: that is transaction currency, and it lives on the row ({@see \App\Entity\Budget\InitialBudgetItem::$currency}, #3432). The IAS 21 split, kept apart deliberately: one rate policy serves both asks only while the two concepts stay separate. |
| outgoingTags | array | Tag-mode filter (outgoing/income side). OR semantics — an invoice matches if it carries at least one of these tags. Replaces the legacy single $outgoingTag ManyToOne (kept as a virtual property for backwards-compat during the FE rollout window). |
| incomingTags | array | |
| amountStrategy* | string | |
| actualMode | string | |
| planningMode | stringnull | |
| viewMode | stringnull | Explicit planning-vs-observation intent, decoupled from planningMode (the scope). Null on legacy budgets: BudgetNormalizer::resolveViewMode() falls back to inferring the mode from plan artifacts when this is unset, so existing budgets are unchanged. Write-only groups — the read value is emitted by BudgetNormalizer, which honours this field first. |
| planSource* | string | |
| config | array | |
| includePeopleCosts | booleannull | |
| includeEmployeeCosts | booleannull | |
| includePeopleIncome | booleannull | |
| outgoingTag | string,null (iri-reference) | Legacy single-tag alias — read returns the first element of $outgoingTags (or null). Write REPLACES the collection with a single-element array (or empty when null). Exists only to keep the still-deployed old frontend working through PR 3's rollout. |
| incomingTag | string,null (iri-reference) |
Transakcja budżetu
Endpoints
| GET | /budget-transactions | Pobiera kolekcję zasobów BudgetTransaction. |
| POST | /budget-transactions | Tworzy zasób BudgetTransaction. |
| GET | /budget-transactions/{id} | Pobiera zasób BudgetTransaction. |
| PATCH | /budget-transactions/{id} | Aktualizuje zasób BudgetTransaction. |
| DELETE | /budget-transactions/{id} | Usuwa zasób BudgetTransaction. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| budget* | string (iri-reference) | |
| transaction* | string (iri-reference) | |
| employee | string,null (iri-reference) | |
| amount | numbernull |
Grupa budżetowa
Endpoints
| GET | /budget-groups | Pobiera kolekcję zasobów BudgetGroup. |
| POST | /budget-groups | Tworzy zasób BudgetGroup. |
| GET | /budget-groups/{id} | Pobiera zasób BudgetGroup. |
| PATCH | /budget-groups/{id} | Aktualizuje zasób BudgetGroup. |
| DELETE | /budget-groups/{id} | Usuwa zasób BudgetGroup. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| name* | string |
Koszt
Endpoints
| GET | /contractors | Pobiera kolekcję zasobów Cost. |
| POST | /contractors | Tworzy zasób Cost. |
| GET | /contractors/{id} | Pobiera zasób Cost. |
| PATCH | /contractors/{id} | Aktualizuje zasób Cost. |
| DELETE | /contractors/{id} | Usuwa zasób Cost. |
| POST | /contractors/nip-validation | Tworzy zasób Cost. |
| GET | /contractors/search | Pobiera kolekcję zasobów Cost. |
| GET | /costs | Pobiera kolekcję zasobów Cost. |
| POST | /costs | Tworzy zasób Cost. |
| GET | /costs/{id} | Pobiera zasób Cost. |
| PATCH | /costs/{id} | Aktualizuje zasób Cost. |
| GET | /costs/{id}/documents | Pobiera zasób Cost. |
| GET | /costs/payment-due/{date} | Get by path parameters |
| GET | /suppliers | Pobiera kolekcję zasobów Cost. |
| POST | /suppliers | Tworzy zasób Cost. |
| GET | /suppliers/{id} | Pobiera zasób Cost. |
| PATCH | /suppliers/{id} | Aktualizuje zasób Cost. |
| DELETE | /suppliers/{id} | Usuwa zasób Cost. |
| POST | /suppliers/nip-validation | Tworzy zasób Cost. |
| GET | /suppliers/search | Pobiera kolekcję zasobów Cost. |
Transakcja
Endpoints
| GET | /transactions | Pobiera kolekcję zasobów Transaction. |
| POST | /transactions | Tworzy zasób Transaction. |
| GET | /transactions/{id} | Pobiera zasób Transaction. |
| PATCH | /transactions/{id} | Aktualizuje zasób Transaction. |
| DELETE | /transactions/{id} | Usuwa zasób Transaction. |
| GET | /transactions/{id}/suggestions | Pobiera kolekcję zasobów Transaction. |
| POST | /transactions/{id}/suggestions/{suggestionId}/apply | Tworzy zasób Transaction. |
| POST | /transactions/import | Tworzy zasób Transaction. |
| GET | /transactions/search | Pobiera kolekcję zasobów Transaction. |
| GET | /transactions/unassigned | Pobiera kolekcję zasobów Transaction. |
| GET | /transactions/with-problems | Pobiera kolekcję zasobów Transaction. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id | string | |
| bankAccount | string (iri-reference) | |
| employeeOwner | string,null (iri-reference) | |
| hash | string | |
| source | stringnull | Where this row came from. Written at creation by whichever importer or creator made it — NEVER inferred from the row's shape. |
| type | string | |
| cost | string,null (iri-reference) | |
| counterparty | string,null (iri-reference) | |
| counterpartyRole | stringnull | |
| statementNumber | integer | |
| operationNumber | stringnull | |
| description | string | |
| currency | string | |
| amount | number | |
| endingBalance | number | |
| orderDate | string (date-time) | |
| execDate | string (date-time) | |
| relatedDate | string,null (date-time) | |
| ignored* | integer | |
| note | stringnull | |
| hasDetectedProblems | booleannull | |
| transactionAttachments | array | |
| additionalAttachments | array | Inverse of TransactionAttachment.additionalTransactions: invoice documents this transaction is linked to as an ADDITIONAL payment (one invoice paid across several payments). Lets the transaction recognize the link for completeness, same as a primary attachment. |
| invoiceTransactions | array | |
| properties | array | |
| budgetTransactions | array | |
| projectTransactions | array | |
| employeeTransactions | array | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| contractor | string,null (iri-reference) | |
| connectedMonth | string (date-time) | |
| relatedEmployee | string,null (iri-reference) |
Konto bankowe
Endpoints
| GET | /bank-accounts | Pobiera kolekcję zasobów BankAccount. |
| POST | /bank-accounts | Tworzy zasób BankAccount. |
| GET | /bank-accounts/{id} | Pobiera zasób BankAccount. |
| PATCH | /bank-accounts/{id} | Aktualizuje zasób BankAccount. |
| DELETE | /bank-accounts/{id} | Usuwa zasób BankAccount. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| bank | string,null (iri-reference) | |
| type* | string | |
| default | boolean | |
| hidden | boolean | |
| name* | string | |
| number | stringnull | |
| prefix | stringnull | |
| currency* | string,null (iri-reference) | |
| defaultImportFormat* | string |
Grupa podatkowa
Endpoints
| GET | /tax-groups | Pobiera kolekcję zasobów TaxGroup. |
| POST | /tax-groups | Tworzy zasób TaxGroup. |
| GET | /tax-groups/{id} | Pobiera zasób TaxGroup. |
| PATCH | /tax-groups/{id} | Aktualizuje zasób TaxGroup. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| name* | string | |
| isDefault | boolean |
Waluta
Endpoints
| GET | /currencies | Pobiera kolekcję zasobów Currency. |
| GET | /currencies/{!sourceCurrency}/rates/{!targetCurrency}/{date} | Pobiera kolekcję zasobów Currency. |
| GET | /currencies/{id} | Pobiera zasób Currency. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id* | string |
Budżet początkowy
Endpoints
| GET | /initial-budgets | Pobiera kolekcję zasobów InitialBudget. |
| POST | /initial-budgets | Tworzy zasób InitialBudget. |
| GET | /initial-budgets/{id} | Pobiera zasób InitialBudget. |
| PATCH | /initial-budgets/{id} | Aktualizuje zasób InitialBudget. |
| DELETE | /initial-budgets/{id} | Usuwa zasób InitialBudget. |
| POST | /initial-budgets/{id}/analyze-sheet | Parse a budget spreadsheet into Budzet wstepny candidates. Persists nothing. |
| POST | /initial-budgets/{id}/apply-sheet-rows | Write the Budzet wstepny lines the operator confirmed after previewing a spreadsheet. |
| GET | /initial-budgets/{id}/contract-comparison | Pobiera zasób InitialBudget. |
| GET | /initial-budgets/{id}/contract-comparison/{tagDefinitionId}/breakdown | Pobiera zasób InitialBudget. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id | string | |
| project | string (iri-reference) | |
| name | string | |
| notes | stringnull | |
| currency | string (iri-reference) | Presentation currency the planned total is read in (#3432). Nullable in PHP only for the moment between `new InitialBudget()` and the defaulting listener's prePersist — {@see InitialBudgetFxPinListener} — filling it from `Project.currency`/org default; the column itself is NOT NULL, so a persisted row always has one. |
| items | array | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) |
Pozycja budżetu początkowego
Endpoints
| GET | /initial-budget-items | Pobiera kolekcję zasobów InitialBudgetItem. |
| POST | /initial-budget-items | Tworzy zasób InitialBudgetItem. |
| GET | /initial-budget-items/{id} | Pobiera zasób InitialBudgetItem. |
| PATCH | /initial-budget-items/{id} | Aktualizuje zasób InitialBudgetItem. |
| DELETE | /initial-budget-items/{id} | Usuwa zasób InitialBudgetItem. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id | string | |
| name | string | |
| plannedAmount | stringnull | |
| plannedBilledAmount | stringnull | |
| currency | string (iri-reference) | The line's OWN currency — transaction currency, not presentation currency (that is `InitialBudget.currency`). Nullable in PHP only until {@see \App\Listener\Doctrine\InitialBudgetFxPinListener} defaults it (item → InitialBudget.currency → Project.currency → org default); the column is NOT NULL. |
| fxRate | numbernull | The rate that converts `plannedAmount` (in `currency`) into `InitialBudget.currency`, PINNED at pin time — see the class docblock. |
| fxRateDate | string,null (date-time) | The date `fxRate` was pinned on — not an economic-event date (this line has none), a record of when the pin happened, so "500 MYR @ 0,9123 as of 2026-08-12" is inspectable and reproducible. |
| tagDefinition | string,null (iri-reference) | |
| unit | stringnull | |
| quantity | stringnull | |
| sortOrder | integer | |
| periods | array | The month-by-month breakdown of this line's planned cost (#3559). |
| convertedPlannedAmount | stringnull | `plannedAmount` expressed in `InitialBudget.currency`, grosze, as a decimal string to match `plannedAmount`'s own type. |
| convertedPlannedBilledAmount | stringnull | `plannedBilledAmount` expressed in `InitialBudget.currency` — same policy as {@see getConvertedPlannedAmount()}, same pinned rate. |
| plannedMargin | stringnull | `plannedBilledAmount - plannedAmount`, in the line's OWN currency — null unless BOTH sides are non-null. A one-sided line (cost only, or billed only) carries no margin; that is a real state, not a gap (see the class docblock and `flowtly-design`'s archetype, #3441). |
| convertedPlannedMargin | stringnull | `getPlannedMargin()` expressed in `InitialBudget.currency` — the same pinned rate applied to the already-derived native margin, not a second conversion policy. See the class docblock. |
Okres budżetowy
Endpoints
| GET | /budget-periods | Pobiera kolekcję zasobów BudgetPeriod. |
| POST | /budget-periods | Tworzy zasób BudgetPeriod. |
| GET | /budget-periods/{id} | Pobiera zasób BudgetPeriod. |
| PATCH | /budget-periods/{id} | Aktualizuje zasób BudgetPeriod. |
| DELETE | /budget-periods/{id} | Usuwa zasób BudgetPeriod. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id | string | |
| periodKey | string | |
| baseAmount | stringnull | |
| linearGrowth | stringnull | |
| exponentialGrowthBps | integernull | |
| unitGrowth | stringnull | |
| plannedIncome | stringnull |
Pracownik budżetu
Endpoints
| GET | /budget-employees | Pobiera kolekcję zasobów BudgetEmployee. |
| POST | /budget-employees | Tworzy zasób BudgetEmployee. |
| GET | /budget-employees/{id} | Pobiera zasób BudgetEmployee. |
| PATCH | /budget-employees/{id} | Aktualizuje zasób BudgetEmployee. |
| DELETE | /budget-employees/{id} | Usuwa zasób BudgetEmployee. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id | string | |
| budget* | object | |
| employee* | string (iri-reference) | |
| position | string | |
| positionName | string |
Umowa budżetu
Endpoints
| GET | /budget-contracts | Pobiera kolekcję zasobów BudgetContract. |
| POST | /budget-contracts | Tworzy zasób BudgetContract. |
| GET | /budget-contracts/{id} | Pobiera zasób BudgetContract. |
| DELETE | /budget-contracts/{id} | Usuwa zasób BudgetContract. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id | string | |
| contract | string (iri-reference) |
Kontrahent budżetu
Endpoints
| GET | /budget-contractors | Pobiera kolekcję zasobów BudgetContractor. |
| POST | /budget-contractors | Tworzy zasób BudgetContractor. |
| GET | /budget-contractors/{id} | Pobiera zasób BudgetContractor. |
| DELETE | /budget-contractors/{id} | Usuwa zasób BudgetContractor. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| budget* | string (iri-reference) | |
| contractor* | string (iri-reference) |
Faktura budżetu
Endpoints
| GET | /budget-invoices | Pobiera kolekcję zasobów BudgetInvoice. |
| POST | /budget-invoices | Tworzy zasób BudgetInvoice. |
| GET | /budget-invoices/{id} | Pobiera zasób BudgetInvoice. |
| DELETE | /budget-invoices/{id} | Usuwa zasób BudgetInvoice. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| budget* | string (iri-reference) | |
| invoice* | string (iri-reference) | |
| amountNet | stringnull |
Projekt budżetu
Endpoints
| GET | /budget-projects | Pobiera kolekcję zasobów BudgetProject. |
| POST | /budget-projects | Tworzy zasób BudgetProject. |
| GET | /budget-projects/{id} | Pobiera zasób BudgetProject. |
| DELETE | /budget-projects/{id} | Usuwa zasób BudgetProject. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id | string | |
| budget* | object | |
| project* | string (iri-reference) | |
| createdAt | string (date-time) |
Pozycja aktywności budżetu
Endpoints
| GET | /budget-activity | Pobiera kolekcję zasobów BudgetActivityItem. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| type | string | |
| state | string | |
| direction | string | |
| label | string | |
| amount | string | The figure in the budget's currency — NULL when the row could not be priced (#3986). |
| unconvertible | boolean | True when no rate existed for this row's currency on its own date. |
| originalAmount | number | What the source record says, in its own currency — never converted. |
| originalCurrency | stringnull | Null when the figure was already in the budget's currency. |
| unconvertibleReason | stringnull | Names the pair and the date, so the reader can act. "Could not convert" on its own sends a user back to retry the same failure. |
| date | stringnull |
Pozycja alertu budżetu
Endpoints
| GET | /budget-alerts | Pobiera kolekcję zasobów BudgetAlertItem. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| key | string | |
| type | string | |
| severity | string | |
| title | string | |
| description | string | |
| period | stringnull | |
| dismissed | boolean |
Grupa kosztowa
Endpoints
| GET | /cost-groups | Pobiera kolekcję zasobów CostGroup. |
| POST | /cost-groups | Tworzy zasób CostGroup. |
| GET | /cost-groups/{id} | Get cost group chart |
| PATCH | /cost-groups/{id} | Aktualizuje zasób CostGroup. |
| GET | /cost-groups/{id}/chart | Get cost group chart |
| POST | /cost-groups/{id}/merge | Merge cost groups |
| POST | /cost-groups/assign-icons-ai | Assign cost group icons via AI |
| GET | /cost-groups/chart | Get cost groups chart |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id | integer | |
| type* | string | |
| name* | string | |
| description | stringnull | |
| icon | stringnull | |
| accoutancy_reference | stringnull | |
| costs | array | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| possibleTypes | string |
Reguła podatkowa
Endpoints
| GET | /tax-rules | Pobiera kolekcję zasobów TaxRule. |
| POST | /tax-rules | Tworzy zasób TaxRule. |
| GET | /tax-rules/{id} | Pobiera zasób TaxRule. |
| PATCH | /tax-rules/{id} | Aktualizuje zasób TaxRule. |
| DELETE | /tax-rules/{id} | Usuwa zasób TaxRule. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id | string | |
| country* | string (iri-reference) | |
| taxAmount* | string |
Bank
Endpoints
| GET | /banks | Pobiera kolekcję zasobów Bank. |
| POST | /banks | Tworzy zasób Bank. |
| GET | /banks/{id} | Pobiera zasób Bank. |
| PATCH | /banks/{id} | Aktualizuje zasób Bank. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| name | string | |
| swift* | string |
Załącznik transakcji
Endpoints
| GET | /transaction-attachments | Pobiera kolekcję zasobów TransactionAttachment. |
| POST | /transaction-attachments | Tworzy zasób TransactionAttachment. |
| GET | /transaction-attachments/{id} | Pobiera zasób TransactionAttachment. |
| PATCH | /transaction-attachments/{id} | Aktualizuje zasób TransactionAttachment. |
| DELETE | /transaction-attachments/{id} | Usuwa zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/apply-suggestion | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/apply-supplier-suggestion | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/approve | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/cascade-preview | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/detach | Tworzy zasób TransactionAttachment. |
| GET | /transaction-attachments/{id}/documents | Pobiera zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/manual-match | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/mark-manual-paid | Tworzy zasób TransactionAttachment. |
| GET | /transaction-attachments/{id}/match-candidates | Pobiera kolekcję zasobów TransactionAttachment. |
| POST | /transaction-attachments/{id}/prefill-project-allocations | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/prefill-project-allocations-by-cascade | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/prefill-project-allocations-by-meter | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/reject | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/replace-project-allocations | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/settle-without-transaction | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/submit-for-approval | Tworzy zasób TransactionAttachment. |
| GET | /transaction-attachments/{id}/suggestions | Pobiera kolekcję zasobów TransactionAttachment. |
| GET | /transaction-attachments/{id}/suggestions-debug | Pobiera zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/suggestions/{suggestionId}/apply | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/suggestions/accept-all | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/unlink-transaction | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/unmark-manual-paid | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/unsettle-without-transaction | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/{id}/withdraw-approval | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/create | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/create-base64 | Tworzy zasób TransactionAttachment. |
| POST | /transaction-attachments/create-without-document | Tworzy zasób TransactionAttachment. |
| GET | /transaction-attachments/pending-approval | Pobiera kolekcję zasobów TransactionAttachment. |
| GET | /transaction-attachments/search | Pobiera kolekcję zasobów TransactionAttachment. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id | integer | |
| amount | integernull | |
| name | string | The DISPLAY name — the filename the user uploaded (#3381). |
| invoiceNumber | stringnull | The purchase document number, when one is known (#3381). |
| receivedAt | string (date-time) | |
| status | string |
Pozycja faktury załącznika transakcji
Endpoints
| POST | /transaction-attachment-invoice-lines | Tworzy zasób TransactionAttachmentInvoiceLine. |
| PATCH | /transaction-attachment-invoice-lines/{id} | Aktualizuje zasób TransactionAttachmentInvoiceLine. |
| DELETE | /transaction-attachment-invoice-lines/{id} | Usuwa zasób TransactionAttachmentInvoiceLine. |
Pola schematu
| Pole | Typ | Opis |
|---|---|---|
| id | integer | |
| transactionAttachment | string (iri-reference) | |
| position | integer | |
| description | stringnull | |
| quantity | stringnull | |
| unitPrice | stringnull | |
| amount | stringnull | |
| taxRate | stringnull | |
| currency | stringnull | |
| project | string,null (iri-reference) | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) |