{"openapi":"3.1.0","info":{"title":"Exact Online Data Bridge API","version":"1","description":"Normalized, permissioned access to Exact Online. Authenticate with `Authorization: Bearer exg_live_…` (an API key created by an organization admin). Every call is checked against the key’s grants (resource × READ/WRITE/DELETE × division). Reads answer in the format of the `Accept` header: `application/json` (default), `application/ld+json`, `text/turtle` or `application/rdf+xml`; the linked-data formats use schema.org, Dublin Core and Hydra terms."},"servers":[{"url":"https://apps.mvdw-software.com/exact/data-bridge/api/v1"}],"security":[{"apiKey":[]}],"paths":{"/resources":{"get":{"operationId":"listResources","summary":"Resources this gateway exposes, with their filters and sort keys","responses":{"200":{"description":"Resources"},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions":{"get":{"operationId":"listDivisions","summary":"Enabled Exact administrations (divisions) this key may use","responses":{"200":{"description":"Divisions"},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/accounts":{"get":{"operationId":"list_accounts","summary":"List accounts","description":"Customers, suppliers and prospects (relations).","tags":["accounts"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"filter[name]","in":"query","required":false,"schema":{"type":"string"},"description":"string"},{"name":"filter[name][startswith]","in":"query","required":false,"schema":{"type":"string"},"description":"string, operator startswith"},{"name":"filter[code]","in":"query","required":false,"schema":{"type":"string"},"description":"string"},{"name":"filter[email]","in":"query","required":false,"schema":{"type":"string"},"description":"string"},{"name":"filter[vatNumber]","in":"query","required":false,"schema":{"type":"string"},"description":"string"},{"name":"filter[isSupplier]","in":"query","required":false,"schema":{"type":"string"},"description":"boolean"},{"name":"filter[modifiedAt][ge]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator ge"},{"name":"filter[modifiedAt][gt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator gt"},{"name":"filter[modifiedAt][le]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator le"},{"name":"filter[modifiedAt][lt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator lt"},{"name":"sort","in":"query","schema":{"type":"string","enum":["name","-name","code","-code","modifiedAt","-modifiedAt"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}}],"responses":{"200":{"description":"accounts (normalized, v1)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Accounts"}},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"text/turtle":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"application/rdf+xml":{"schema":{"type":"string","description":"A Hydra collection of the records."}}}},"400":{"description":"Unknown filter or sort, or a malformed value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/accounts/{id}":{"get":{"operationId":"get_accounts","summary":"Get one of accounts","tags":["accounts"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"One accounts record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Accounts"},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"The record."}},"text/turtle":{"schema":{"type":"string","description":"The record."}},"application/rdf+xml":{"schema":{"type":"string","description":"The record."}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record (`exact.not_found`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/contacts":{"get":{"operationId":"list_contacts","summary":"List contacts","description":"Contact persons of relations.","tags":["contacts"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"filter[accountId]","in":"query","required":false,"schema":{"type":"string"},"description":"guid"},{"name":"filter[email]","in":"query","required":false,"schema":{"type":"string"},"description":"string"},{"name":"filter[lastName]","in":"query","required":false,"schema":{"type":"string"},"description":"string"},{"name":"filter[lastName][startswith]","in":"query","required":false,"schema":{"type":"string"},"description":"string, operator startswith"},{"name":"filter[modifiedAt][ge]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator ge"},{"name":"filter[modifiedAt][gt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator gt"},{"name":"filter[modifiedAt][le]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator le"},{"name":"filter[modifiedAt][lt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator lt"},{"name":"sort","in":"query","schema":{"type":"string","enum":["lastName","-lastName","modifiedAt","-modifiedAt"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}}],"responses":{"200":{"description":"contacts (normalized, v1)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Contacts"}},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"text/turtle":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"application/rdf+xml":{"schema":{"type":"string","description":"A Hydra collection of the records."}}}},"400":{"description":"Unknown filter or sort, or a malformed value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/contacts/{id}":{"get":{"operationId":"get_contacts","summary":"Get one of contacts","tags":["contacts"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"One contacts record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Contacts"},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"The record."}},"text/turtle":{"schema":{"type":"string","description":"The record."}},"application/rdf+xml":{"schema":{"type":"string","description":"The record."}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record (`exact.not_found`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/gl-accounts":{"get":{"operationId":"list_gl_accounts","summary":"List gl-accounts","description":"General-ledger accounts (chart of accounts).","tags":["gl-accounts"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"filter[code]","in":"query","required":false,"schema":{"type":"string"},"description":"string"},{"name":"filter[code][startswith]","in":"query","required":false,"schema":{"type":"string"},"description":"string, operator startswith"},{"name":"filter[modifiedAt][ge]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator ge"},{"name":"filter[modifiedAt][gt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator gt"},{"name":"filter[modifiedAt][le]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator le"},{"name":"filter[modifiedAt][lt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator lt"},{"name":"sort","in":"query","schema":{"type":"string","enum":["code","-code"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}}],"responses":{"200":{"description":"gl-accounts (normalized, v1)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GlAccounts"}},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"text/turtle":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"application/rdf+xml":{"schema":{"type":"string","description":"A Hydra collection of the records."}}}},"400":{"description":"Unknown filter or sort, or a malformed value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/gl-accounts/{id}":{"get":{"operationId":"get_gl_accounts","summary":"Get one of gl-accounts","tags":["gl-accounts"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"One gl-accounts record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/GlAccounts"},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"The record."}},"text/turtle":{"schema":{"type":"string","description":"The record."}},"application/rdf+xml":{"schema":{"type":"string","description":"The record."}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record (`exact.not_found`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/items":{"get":{"operationId":"list_items","summary":"List items","description":"Products and services.","tags":["items"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"filter[code]","in":"query","required":false,"schema":{"type":"string"},"description":"string"},{"name":"filter[code][startswith]","in":"query","required":false,"schema":{"type":"string"},"description":"string, operator startswith"},{"name":"filter[isSalesItem]","in":"query","required":false,"schema":{"type":"string"},"description":"boolean"},{"name":"filter[isStockItem]","in":"query","required":false,"schema":{"type":"string"},"description":"boolean"},{"name":"filter[isTime]","in":"query","required":false,"schema":{"type":"string","enum":["true","false"]},"description":"enum"},{"name":"filter[modifiedAt][ge]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator ge"},{"name":"filter[modifiedAt][gt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator gt"},{"name":"filter[modifiedAt][le]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator le"},{"name":"filter[modifiedAt][lt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator lt"},{"name":"sort","in":"query","schema":{"type":"string","enum":["code","-code","modifiedAt","-modifiedAt"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}}],"responses":{"200":{"description":"items (normalized, v1)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Items"}},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"text/turtle":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"application/rdf+xml":{"schema":{"type":"string","description":"A Hydra collection of the records."}}}},"400":{"description":"Unknown filter or sort, or a malformed value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/items/{id}":{"get":{"operationId":"get_items","summary":"Get one of items","tags":["items"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"One items record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Items"},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"The record."}},"text/turtle":{"schema":{"type":"string","description":"The record."}},"application/rdf+xml":{"schema":{"type":"string","description":"The record."}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record (`exact.not_found`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/projects":{"get":{"operationId":"list_projects","summary":"List projects","description":"Projects (time and material, fixed price, non-billable, prepaid, campaign).","tags":["projects"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"filter[code]","in":"query","required":false,"schema":{"type":"string"},"description":"string"},{"name":"filter[code][startswith]","in":"query","required":false,"schema":{"type":"string"},"description":"string, operator startswith"},{"name":"filter[accountId]","in":"query","required":false,"schema":{"type":"string"},"description":"guid"},{"name":"filter[type]","in":"query","required":false,"schema":{"type":"string","enum":["campaign","fixedPrice","timeAndMaterial","nonBillable","prepaid"]},"description":"enum"},{"name":"filter[modifiedAt][ge]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator ge"},{"name":"filter[modifiedAt][gt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator gt"},{"name":"filter[modifiedAt][le]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator le"},{"name":"filter[modifiedAt][lt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator lt"},{"name":"sort","in":"query","schema":{"type":"string","enum":["code","-code","modifiedAt","-modifiedAt"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}}],"responses":{"200":{"description":"projects (normalized, v1)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Projects"}},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"text/turtle":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"application/rdf+xml":{"schema":{"type":"string","description":"A Hydra collection of the records."}}}},"400":{"description":"Unknown filter or sort, or a malformed value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"create_projects","summary":"Create projects","description":"Projects (time and material, fixed price, non-billable, prepaid, campaign). Needs WRITE on the resource and division.","tags":["projects"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":30},"description":{"type":"string","minLength":1,"maxLength":250},"type":{"type":"string","enum":["campaign","fixedPrice","timeAndMaterial","nonBillable","prepaid"]},"accountId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"startDate":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}]},"endDate":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}]},"blockEntry":{"type":"boolean"},"notes":{"type":"string","maxLength":4000}}}}}},"responses":{"200":{"description":"The created record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Projects"}}}}}},"400":{"description":"Invalid input (`resource.invalid_input`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/projects/{id}":{"patch":{"operationId":"update_projects","summary":"Change one of projects","description":"Only the given fields change. Needs WRITE on the resource and division.","tags":["projects"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":30},"description":{"type":"string","minLength":1,"maxLength":250},"type":{"type":"string","enum":["campaign","fixedPrice","timeAndMaterial","nonBillable","prepaid"]},"accountId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"startDate":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}]},"endDate":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}]},"blockEntry":{"type":"boolean"},"notes":{"type":"string","maxLength":4000}}}}}},"responses":{"200":{"description":"The record id"},"400":{"description":"Invalid input (`resource.invalid_input`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"delete_projects","summary":"Delete one of projects","description":"Permanent. Needs DELETE (WRITE is not enough) on the resource and division.","tags":["projects"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"The record id"},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"operationId":"get_projects","summary":"Get one of projects","tags":["projects"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"One projects record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Projects"},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"The record."}},"text/turtle":{"schema":{"type":"string","description":"The record."}},"application/rdf+xml":{"schema":{"type":"string","description":"The record."}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record (`exact.not_found`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/sales-invoices":{"get":{"operationId":"list_sales_invoices","summary":"List sales-invoices","description":"Sales invoices (headers): number, customer, dates, status and amounts.","tags":["sales-invoices"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"filter[customerId]","in":"query","required":false,"schema":{"type":"string"},"description":"guid"},{"name":"filter[status]","in":"query","required":false,"schema":{"type":"string","enum":["draft","open","processed"]},"description":"enum"},{"name":"filter[invoiceDate]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date"},{"name":"filter[invoiceDate][ge]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator ge"},{"name":"filter[invoiceDate][gt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator gt"},{"name":"filter[invoiceDate][le]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator le"},{"name":"filter[invoiceDate][lt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator lt"},{"name":"filter[invoiceNumber]","in":"query","required":false,"schema":{"type":"string"},"description":"number"},{"name":"filter[invoiceNumber][ge]","in":"query","required":false,"schema":{"type":"string"},"description":"number, operator ge"},{"name":"filter[invoiceNumber][le]","in":"query","required":false,"schema":{"type":"string"},"description":"number, operator le"},{"name":"filter[modifiedAt][ge]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator ge"},{"name":"filter[modifiedAt][gt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator gt"},{"name":"filter[modifiedAt][le]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator le"},{"name":"filter[modifiedAt][lt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator lt"},{"name":"sort","in":"query","schema":{"type":"string","enum":["invoiceDate","-invoiceDate","invoiceNumber","-invoiceNumber","modifiedAt","-modifiedAt"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}}],"responses":{"200":{"description":"sales-invoices (normalized, v1)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SalesInvoices"}},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"text/turtle":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"application/rdf+xml":{"schema":{"type":"string","description":"A Hydra collection of the records."}}}},"400":{"description":"Unknown filter or sort, or a malformed value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/sales-invoices/{id}":{"get":{"operationId":"get_sales_invoices","summary":"Get one of sales-invoices","tags":["sales-invoices"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"One sales-invoices record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SalesInvoices"},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"The record."}},"text/turtle":{"schema":{"type":"string","description":"The record."}},"application/rdf+xml":{"schema":{"type":"string","description":"The record."}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record (`exact.not_found`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/time-transactions":{"get":{"operationId":"list_time_transactions","summary":"List time-transactions","description":"Registered hours (and costs) on projects; Item (hour type) and Quantity required.","tags":["time-transactions"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"filter[projectId]","in":"query","required":false,"schema":{"type":"string"},"description":"guid"},{"name":"filter[activityId]","in":"query","required":false,"schema":{"type":"string"},"description":"guid"},{"name":"filter[employeeId]","in":"query","required":false,"schema":{"type":"string"},"description":"guid"},{"name":"filter[hourStatus]","in":"query","required":false,"schema":{"type":"string","enum":["draft","rejected","submitted","failedOnApproval","processing","processingUndo","failedUndoingApproval","final"]},"description":"enum"},{"name":"filter[date]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date"},{"name":"filter[date][ge]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator ge"},{"name":"filter[date][gt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator gt"},{"name":"filter[date][le]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator le"},{"name":"filter[date][lt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator lt"},{"name":"filter[modifiedAt][ge]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator ge"},{"name":"filter[modifiedAt][gt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator gt"},{"name":"filter[modifiedAt][le]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator le"},{"name":"filter[modifiedAt][lt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator lt"},{"name":"sort","in":"query","schema":{"type":"string","enum":["date","-date","modifiedAt","-modifiedAt"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}}],"responses":{"200":{"description":"time-transactions (normalized, v1)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TimeTransactions"}},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"text/turtle":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"application/rdf+xml":{"schema":{"type":"string","description":"A Hydra collection of the records."}}}},"400":{"description":"Unknown filter or sort, or a malformed value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"create_time_transactions","summary":"Create time-transactions","description":"Registered hours (and costs) on projects; Item (hour type) and Quantity required. Needs WRITE on the resource and division.","tags":["time-transactions"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"date":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}]},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"activityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"itemId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"quantity":{"type":"number","minimum":0,"maximum":1000},"notes":{"type":"string","maxLength":4000},"hourStatus":{"type":"string","enum":["draft","rejected","submitted"]}}}}}},"responses":{"200":{"description":"The created record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TimeTransactions"}}}}}},"400":{"description":"Invalid input (`resource.invalid_input`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/time-transactions/{id}":{"patch":{"operationId":"update_time_transactions","summary":"Change one of time-transactions","description":"Only the given fields change. Needs WRITE on the resource and division.","tags":["time-transactions"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"date":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}]},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"activityId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"employeeId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"itemId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"quantity":{"type":"number","minimum":0,"maximum":1000},"notes":{"type":"string","maxLength":4000},"hourStatus":{"type":"string","enum":["draft","rejected","submitted"]}}}}}},"responses":{"200":{"description":"The record id"},"400":{"description":"Invalid input (`resource.invalid_input`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"delete_time_transactions","summary":"Delete one of time-transactions","description":"Permanent. Needs DELETE (WRITE is not enough) on the resource and division.","tags":["time-transactions"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"The record id"},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"operationId":"get_time_transactions","summary":"Get one of time-transactions","tags":["time-transactions"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"One time-transactions record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TimeTransactions"},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"The record."}},"text/turtle":{"schema":{"type":"string","description":"The record."}},"application/rdf+xml":{"schema":{"type":"string","description":"The record."}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record (`exact.not_found`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/wbs-activities":{"get":{"operationId":"list_wbs_activities","summary":"List wbs-activities","description":"Project WBS activities (time is registered on them; e.g. a GitLab issue).","tags":["wbs-activities"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"filter[projectId]","in":"query","required":false,"schema":{"type":"string"},"description":"guid"},{"name":"filter[partOfId]","in":"query","required":false,"schema":{"type":"string"},"description":"guid"},{"name":"filter[modifiedAt][ge]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator ge"},{"name":"filter[modifiedAt][gt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator gt"},{"name":"filter[modifiedAt][le]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator le"},{"name":"filter[modifiedAt][lt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator lt"},{"name":"sort","in":"query","schema":{"type":"string","enum":["modifiedAt","-modifiedAt"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}}],"responses":{"200":{"description":"wbs-activities (normalized, v1)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WbsActivities"}},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"text/turtle":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"application/rdf+xml":{"schema":{"type":"string","description":"A Hydra collection of the records."}}}},"400":{"description":"Unknown filter or sort, or a malformed value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"create_wbs_activities","summary":"Create wbs-activities","description":"Project WBS activities (time is registered on them; e.g. a GitLab issue). Needs WRITE on the resource and division.","tags":["wbs-activities"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"partOfId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":{"type":"string","minLength":1,"maxLength":250},"notes":{"type":"string","maxLength":4000},"blockEntry":{"type":"boolean"},"startDate":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}]},"endDate":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}]},"budgetedHours":{"type":"number","minimum":0,"maximum":1000000},"defaultItemId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}}}}},"responses":{"200":{"description":"The created record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WbsActivities"}}}}}},"400":{"description":"Invalid input (`resource.invalid_input`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/wbs-activities/{id}":{"patch":{"operationId":"update_wbs_activities","summary":"Change one of wbs-activities","description":"Only the given fields change. Needs WRITE on the resource and division.","tags":["wbs-activities"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"partOfId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":{"type":"string","minLength":1,"maxLength":250},"notes":{"type":"string","maxLength":4000},"blockEntry":{"type":"boolean"},"startDate":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}]},"endDate":{"anyOf":[{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}]},"budgetedHours":{"type":"number","minimum":0,"maximum":1000000},"defaultItemId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}}}}},"responses":{"200":{"description":"The record id"},"400":{"description":"Invalid input (`resource.invalid_input`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"delete_wbs_activities","summary":"Delete one of wbs-activities","description":"Permanent. Needs DELETE (WRITE is not enough) on the resource and division.","tags":["wbs-activities"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"The record id"},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"operationId":"get_wbs_activities","summary":"Get one of wbs-activities","tags":["wbs-activities"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"One wbs-activities record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WbsActivities"},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"The record."}},"text/turtle":{"schema":{"type":"string","description":"The record."}},"application/rdf+xml":{"schema":{"type":"string","description":"The record."}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record (`exact.not_found`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/wbs-deliverables":{"get":{"operationId":"list_wbs_deliverables","summary":"List wbs-deliverables","description":"Project WBS deliverables (groups activities; e.g. a GitLab milestone).","tags":["wbs-deliverables"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"filter[projectId]","in":"query","required":false,"schema":{"type":"string"},"description":"guid"},{"name":"filter[partOfId]","in":"query","required":false,"schema":{"type":"string"},"description":"guid"},{"name":"filter[modifiedAt][ge]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator ge"},{"name":"filter[modifiedAt][gt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator gt"},{"name":"filter[modifiedAt][le]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator le"},{"name":"filter[modifiedAt][lt]","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"date, operator lt"},{"name":"sort","in":"query","schema":{"type":"string","enum":["modifiedAt","-modifiedAt"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}}],"responses":{"200":{"description":"wbs-deliverables (normalized, v1)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WbsDeliverables"}},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"text/turtle":{"schema":{"type":"string","description":"A Hydra collection of the records."}},"application/rdf+xml":{"schema":{"type":"string","description":"A Hydra collection of the records."}}}},"400":{"description":"Unknown filter or sort, or a malformed value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"create_wbs_deliverables","summary":"Create wbs-deliverables","description":"Project WBS deliverables (groups activities; e.g. a GitLab milestone). Needs WRITE on the resource and division.","tags":["wbs-deliverables"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"partOfId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":{"type":"string","minLength":1,"maxLength":250},"notes":{"type":"string","maxLength":4000}}}}}},"responses":{"200":{"description":"The created record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WbsDeliverables"}}}}}},"400":{"description":"Invalid input (`resource.invalid_input`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/divisions/{division}/wbs-deliverables/{id}":{"patch":{"operationId":"update_wbs_deliverables","summary":"Change one of wbs-deliverables","description":"Only the given fields change. Needs WRITE on the resource and division.","tags":["wbs-deliverables"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"partOfId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":{"type":"string","minLength":1,"maxLength":250},"notes":{"type":"string","maxLength":4000}}}}}},"responses":{"200":{"description":"The record id"},"400":{"description":"Invalid input (`resource.invalid_input`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"delete_wbs_deliverables","summary":"Delete one of wbs-deliverables","description":"Permanent. Needs DELETE (WRITE is not enough) on the resource and division.","tags":["wbs-deliverables"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"The record id"},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"operationId":"get_wbs_deliverables","summary":"Get one of wbs-deliverables","tags":["wbs-deliverables"],"parameters":[{"name":"division","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"Exact division code"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"One wbs-deliverables record","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WbsDeliverables"},"meta":{"$ref":"#/components/schemas/Meta"}}}},"application/ld+json":{"schema":{"type":"string","description":"The record."}},"text/turtle":{"schema":{"type":"string","description":"The record."}},"application/rdf+xml":{"schema":{"type":"string","description":"The record."}}}},"401":{"description":"Missing, unknown, revoked or expired API key (`credential.invalid`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The organization has no active subscription (`billing.inactive`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside the key’s grants or IP allowlist, or the division is disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such record (`exact.not_found`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"No offered media type is acceptable (`resource.not_acceptable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (gateway or Exact); see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Exact Online unavailable or its error budget exhausted; retry later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["statusCode","code","message"],"properties":{"statusCode":{"type":"integer"},"code":{"type":"string","description":"Stable machine-readable code, e.g. `access.denied`"},"message":{"type":"string"},"params":{"type":"object","additionalProperties":true}}},"Meta":{"type":"object","properties":{"resource":{"type":"string"},"version":{"type":"string"},"division":{"type":"integer"},"count":{"type":"integer"},"limit":{"type":"integer"},"cache":{"type":"string","enum":["hit","miss","off"]}}},"Accounts":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"code":{"type":["string","null"]},"name":{"type":"string"},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"vatNumber":{"type":["string","null"]},"addressLine1":{"type":["string","null"]},"postcode":{"type":["string","null"]},"city":{"type":["string","null"]},"country":{"type":["string","null"]},"website":{"type":["string","null"]},"isSupplier":{"type":"boolean"},"status":{"type":["string","null"]},"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","code","name","email","phone","vatNumber","addressLine1","postcode","city","country","website","isSupplier","status","createdAt","modifiedAt"],"additionalProperties":false},"Contacts":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"accountId":{"type":["string","null"]},"accountName":{"type":["string","null"]},"firstName":{"type":["string","null"]},"lastName":{"type":["string","null"]},"fullName":{"type":["string","null"]},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"mobile":{"type":["string","null"]},"jobTitle":{"type":["string","null"]},"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","accountId","accountName","firstName","lastName","fullName","email","phone","mobile","jobTitle","createdAt","modifiedAt"],"additionalProperties":false},"GlAccounts":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"code":{"type":["string","null"]},"description":{"type":["string","null"]},"type":{"type":["number","null"]},"balanceSide":{"anyOf":[{"type":"string","enum":["debit","credit"]},{"type":"null"}]},"balanceType":{"anyOf":[{"type":"string","enum":["balance","profitLoss"]},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","code","description","type","balanceSide","balanceType","modifiedAt"],"additionalProperties":false},"Items":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"code":{"type":["string","null"]},"description":{"type":["string","null"]},"unit":{"type":["string","null"]},"isSalesItem":{"type":"boolean"},"isPurchaseItem":{"type":"boolean"},"isStockItem":{"type":"boolean"},"isTime":{"type":"boolean"},"costPrice":{"type":["number","null"]},"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","code","description","unit","isSalesItem","isPurchaseItem","isStockItem","isTime","costPrice","createdAt","modifiedAt"],"additionalProperties":false},"Projects":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"code":{"type":["string","null"]},"description":{"type":["string","null"]},"type":{"type":["string","null"]},"accountId":{"type":["string","null"]},"accountName":{"type":["string","null"]},"managerUserId":{"type":["string","null"]},"startDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"endDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"blockEntry":{"type":"boolean"},"notes":{"type":["string","null"]},"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","code","description","type","accountId","accountName","managerUserId","startDate","endDate","blockEntry","notes","createdAt","modifiedAt"],"additionalProperties":false},"SalesInvoices":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"invoiceNumber":{"type":["number","null"]},"customerId":{"type":["string","null"]},"customerName":{"type":["string","null"]},"invoiceDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"status":{"type":"string","enum":["draft","open","processed","unknown"]},"currency":{"type":["string","null"]},"amount":{"type":["number","null"]},"vatAmount":{"type":["number","null"]},"description":{"type":["string","null"]},"yourReference":{"type":["string","null"]},"modifiedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","invoiceNumber","customerId","customerName","invoiceDate","dueDate","status","currency","amount","vatAmount","description","yourReference","modifiedAt"],"additionalProperties":false},"TimeTransactions":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"projectId":{"type":["string","null"]},"activityId":{"type":["string","null"]},"employeeId":{"type":["string","null"]},"itemId":{"type":["string","null"]},"itemDescription":{"type":["string","null"]},"quantity":{"type":["number","null"]},"notes":{"type":["string","null"]},"hourStatus":{"type":["string","null"]},"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","date","projectId","activityId","employeeId","itemId","itemDescription","quantity","notes","hourStatus","createdAt","modifiedAt"],"additionalProperties":false},"WbsActivities":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"projectId":{"type":["string","null"]},"partOfId":{"type":["string","null"]},"description":{"type":["string","null"]},"completed":{"type":"boolean"},"notes":{"type":["string","null"]},"sequenceNumber":{"type":["number","null"]},"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"blockEntry":{"type":"boolean"},"startDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"endDate":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"budgetedHours":{"type":["number","null"]},"defaultItemId":{"type":["string","null"]}},"required":["id","projectId","partOfId","description","completed","notes","sequenceNumber","createdAt","modifiedAt","blockEntry","startDate","endDate","budgetedHours","defaultItemId"],"additionalProperties":false},"WbsDeliverables":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"projectId":{"type":["string","null"]},"partOfId":{"type":["string","null"]},"description":{"type":["string","null"]},"completed":{"type":"boolean"},"notes":{"type":["string","null"]},"sequenceNumber":{"type":["number","null"]},"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","projectId","partOfId","description","completed","notes","sequenceNumber","createdAt","modifiedAt"],"additionalProperties":false}},"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"An `exg_live_…` API key"}}}}