{"openapi":"3.1.0","info":{"title":"WALT Partner API","description":"The WALT Partner API lets a lender's CRM submit loan applications, attach documents, run WALT assessments and read back the audited recommendation.\n\n* Authentication: OAuth 2.0 client credentials (`POST /v1/oauth/token`), then `Authorization: Bearer walt_at_…` on every call.\n* Errors: `application/problem+json` (RFC 9457) with a stable `code`.\n* `Idempotency-Key` is required on every POST that creates something.\n* `X-Request-ID` is echoed on every response; quote it to support.\n\nThe WALT recommendation is advisory: a qualified underwriter makes the lending decision.","version":"1.0.0"},"servers":[{"url":"https://dev-api.underwritinguk.ai/v1","description":"Sandbox (synthetic data, simulated providers)"},{"url":"https://api.underwritinguk.ai/v1","description":"Production"}],"paths":{"/oauth/token":{"post":{"tags":["oauth"],"summary":"Get an access token (OAuth 2.0 client credentials)","description":"RFC 6749 §4.4. Authenticate with HTTP Basic (`client_secret_basic`) or with `client_id` + `client_secret` in the form body (`client_secret_post`), never both. The token lasts 15 minutes: cache it and renew it about 60 seconds before it expires. Errors follow RFC 6749 §5.2.","operationId":"createAccessToken","responses":{"200":{"description":"Access token","content":{"application/json":{"schema":{"type":"object","required":["access_token","token_type","expires_in","scope"],"properties":{"access_token":{"type":"string","example":"walt_at_3Jm9…"},"token_type":{"type":"string","enum":["Bearer"]},"expires_in":{"type":"integer","example":900},"scope":{"type":"string","example":"cases:write assessments:write assessments:read reports:read"}}}}}},"400":{"description":"invalid_request / invalid_scope / unsupported_grant_type / unauthorized_client","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","enum":["invalid_request","invalid_client","invalid_scope","unsupported_grant_type","unauthorized_client","rate_limited"]},"error_description":{"type":"string"},"code":{"type":"string","description":"WALT code, e.g. ip_not_allowed, organisation_suspended"}}}}}},"401":{"description":"invalid_client","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","enum":["invalid_request","invalid_client","invalid_scope","unsupported_grant_type","unauthorized_client","rate_limited"]},"error_description":{"type":"string"},"code":{"type":"string","description":"WALT code, e.g. ip_not_allowed, organisation_suspended"}}}}}},"429":{"description":"rate_limited (Retry-After)","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","enum":["invalid_request","invalid_client","invalid_scope","unsupported_grant_type","unauthorized_client","rate_limited"]},"error_description":{"type":"string"},"code":{"type":"string","description":"WALT code, e.g. ip_not_allowed, organisation_suspended"}}}}}}},"security":[],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["grant_type"],"properties":{"grant_type":{"type":"string","enum":["client_credentials"]},"scope":{"type":"string","description":"Space-delimited subset of the credential's scopes; omitted = all granted","example":"cases:write assessments:write assessments:read reports:read"},"client_id":{"type":"string","description":"client_secret_post only"},"client_secret":{"type":"string","description":"client_secret_post only","format":"password"}}}}}},"parameters":[{"name":"Authorization","in":"header","required":false,"description":"client_secret_basic: `Basic base64(client_id:client_secret)` (preferred)","schema":{"type":"string"}}]}},"/account":{"get":{"tags":["account"],"summary":"Entitlements, quota and limits","operationId":"getAccount","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["account:read"]}]}},"/check-catalog":{"get":{"tags":["catalog"],"summary":"Checks, their step, module and required data","operationId":"getCheckCatalog","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":[]}]}},"/lookups/addresses":{"get":{"tags":["lookups"],"summary":"Address and UPRN candidates for a UK postcode","operationId":"lookupAddresses","parameters":[{"name":"postcode","in":"query","required":true,"schema":{"type":"string","maxLength":16,"description":"UK postcode","title":"Postcode"},"description":"UK postcode"},{"name":"line1","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Narrows to one address (and its UPRN)","title":"Line1"},"description":"Narrows to one address (and its UPRN)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressList"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["lookups:read"]}]}},"/cases":{"post":{"tags":["cases"],"summary":"Create a case with its subjects (one transactional call)","operationId":"createCase","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"UUID v4, one per logical operation; reuse it on retries","title":"Idempotency-Key"},"description":"UUID v4, one per logical operation; reuse it on retries"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseCreate"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseOut"}}},"headers":{"ETag":{"schema":{"type":"string"}},"Location":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]},"get":{"tags":["cases"],"summary":"List and filter cases (cursor pagination)","operationId":"listCases","parameters":[{"name":"external_ref","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"description":"Exact match on your record id","title":"External Ref"},"description":"Exact match on your record id"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(open|closed)$"},{"type":"null"}],"description":"open | closed","title":"Status"},"description":"open | closed"},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"ISO 8601 timestamp, e.g. 2026-10-09T14:03:22Z","title":"Updated Since"},"description":"ISO 8601 timestamp, e.g. 2026-10-09T14:03:22Z"},{"name":"created_via","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(api|webapp)$"},{"type":"null"}],"description":"api | webapp","title":"Created Via"},"description":"api | webapp"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"description":"next_cursor of the previous page","title":"Cursor"},"description":"next_cursor of the previous page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseList"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:read"]}]}},"/cases/{case_id}":{"get":{"tags":["cases"],"summary":"Read a case","operationId":"getCase","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}}],"responses":{"200":{"description":"The case","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseOut"}}},"headers":{"ETag":{"schema":{"type":"string"}}}},"304":{"description":"Not modified (If-None-Match)"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:read"]}]},"patch":{"tags":["cases"],"summary":"Update a case and its loan details","operationId":"updateCase","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ETag from a previous GET; a mismatch returns 412","title":"If-Match"},"description":"ETag from a previous GET; a mismatch returns 412"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CasePatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"412":{"$ref":"#/components/responses/PreconditionFailed","description":"Precondition Failed"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]}},"/cases/{case_id}/close":{"post":{"tags":["cases"],"summary":"Close a case","description":"Any credential with ``cases:write`` that can see the case may close it,\nexactly as it may edit it. Closing an already-closed case returns it\nunchanged.","operationId":"closeCase","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseClose"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]}},"/cases/{case_id}/individuals":{"post":{"tags":["parties"],"summary":"Add an individual","operationId":"createIndividual","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"UUID v4, one per logical operation","title":"Idempotency-Key"},"description":"UUID v4, one per logical operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndividualCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndividualOut"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]}},"/cases/{case_id}/individuals/{individual_id}":{"get":{"tags":["parties"],"summary":"Read an individual","operationId":"getIndividual","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"individual_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Individual Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndividualOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:read"]}]},"patch":{"tags":["parties"],"summary":"Update an individual","operationId":"updateIndividual","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"individual_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Individual Id"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The subject's ETag; a mismatch returns 412","title":"If-Match"},"description":"The subject's ETag; a mismatch returns 412"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndividualPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndividualOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"412":{"$ref":"#/components/responses/PreconditionFailed","description":"Precondition Failed"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]},"delete":{"tags":["parties"],"summary":"Remove an individual (and its ownerships)","operationId":"deleteIndividual","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"individual_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Individual Id"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The subject's ETag; a mismatch returns 412","title":"If-Match"},"description":"The subject's ETag; a mismatch returns 412"}],"responses":{"204":{"description":"Successful Response"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"412":{"$ref":"#/components/responses/PreconditionFailed","description":"Precondition Failed"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]}},"/cases/{case_id}/companies":{"post":{"tags":["parties"],"summary":"Add a company","operationId":"createCompany","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"UUID v4, one per logical operation","title":"Idempotency-Key"},"description":"UUID v4, one per logical operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyOut"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]}},"/cases/{case_id}/companies/{company_id}":{"get":{"tags":["parties"],"summary":"Read a company","operationId":"getCompany","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"company_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:read"]}]},"patch":{"tags":["parties"],"summary":"Update a company","operationId":"updateCompany","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"company_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Company Id"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The subject's ETag; a mismatch returns 412","title":"If-Match"},"description":"The subject's ETag; a mismatch returns 412"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"412":{"$ref":"#/components/responses/PreconditionFailed","description":"Precondition Failed"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]},"delete":{"tags":["parties"],"summary":"Remove a company (and its ownerships)","operationId":"deleteCompany","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"company_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Company Id"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The subject's ETag; a mismatch returns 412","title":"If-Match"},"description":"The subject's ETag; a mismatch returns 412"}],"responses":{"204":{"description":"Successful Response"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"412":{"$ref":"#/components/responses/PreconditionFailed","description":"Precondition Failed"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]}},"/cases/{case_id}/properties":{"post":{"tags":["parties"],"summary":"Add a property","operationId":"createProperty","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"UUID v4, one per logical operation","title":"Idempotency-Key"},"description":"UUID v4, one per logical operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertyCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertyOut"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]}},"/cases/{case_id}/properties/{property_id}":{"get":{"tags":["parties"],"summary":"Read a property","operationId":"getProperty","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"property_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Property Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertyOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:read"]}]},"patch":{"tags":["parties"],"summary":"Update a property","operationId":"updateProperty","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"property_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Property Id"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The subject's ETag; a mismatch returns 412","title":"If-Match"},"description":"The subject's ETag; a mismatch returns 412"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertyPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertyOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"412":{"$ref":"#/components/responses/PreconditionFailed","description":"Precondition Failed"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]},"delete":{"tags":["parties"],"summary":"Remove a property","operationId":"deleteProperty","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"property_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Property Id"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The subject's ETag; a mismatch returns 412","title":"If-Match"},"description":"The subject's ETag; a mismatch returns 412"}],"responses":{"204":{"description":"Successful Response"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"412":{"$ref":"#/components/responses/PreconditionFailed","description":"Precondition Failed"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]}},"/cases/{case_id}/ownerships":{"post":{"tags":["parties"],"summary":"Link an individual to a company","operationId":"createOwnership","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"UUID v4, one per logical operation","title":"Idempotency-Key"},"description":"UUID v4, one per logical operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnershipOut"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]},"delete":{"tags":["parties"],"summary":"Unlink an individual from a company","operationId":"deleteOwnership","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"individual_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"The individual of the link","title":"Individual Id"},"description":"The individual of the link"},{"name":"company_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"The company of the link","title":"Company Id"},"description":"The company of the link"}],"responses":{"204":{"description":"Successful Response"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]}},"/cases/{case_id}/call-transcripts":{"post":{"tags":["transcripts"],"summary":"Push a call transcript (used by the borrower_call step)","operationId":"createCallTranscript","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"UUID v4, one per logical operation","title":"Idempotency-Key"},"description":"UUID v4, one per logical operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallTranscriptCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallTranscriptOut"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge","description":"Content Too Large"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]},"get":{"tags":["transcripts"],"summary":"List a case's call transcripts (metadata only)","operationId":"listCallTranscripts","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallTranscriptList"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:read"]}]}},"/cases/{case_id}/call-transcripts/{transcript_id}":{"get":{"tags":["transcripts"],"summary":"Read a call transcript's metadata","operationId":"getCallTranscript","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcript Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallTranscriptOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:read"]}]},"delete":{"tags":["transcripts"],"summary":"Delete a call transcript","operationId":"deleteCallTranscript","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcript Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:write"]}]}},"/cases/{case_id}/documents":{"post":{"tags":["documents"],"summary":"Upload a document (malware-scanned before use)","operationId":"uploadDocument","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_uploadDocument"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentOut"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"413":{"$ref":"#/components/responses/PayloadTooLarge","description":"Content Too Large"},"415":{"description":"`unsupported_media_type`: PDF, JPEG or PNG only","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["documents:write"]}]},"get":{"tags":["documents"],"summary":"List a case's documents and their scan status","operationId":"listDocuments","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentList"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:read"]}]}},"/documents/{document_id}/content":{"get":{"tags":["documents"],"summary":"Download a document you uploaded (streamed)","operationId":"getDocumentContent","parameters":[{"name":"document_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Document Id"}}],"responses":{"200":{"description":"The file","content":{"application/json":{"schema":{}},"application/pdf":{"schema":{"type":"string","format":"binary"}},"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/png":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["cases:read"]}]}},"/cases/{case_id}/assessments/quote":{"post":{"tags":["assessments"],"summary":"Quote an assessment: cost, per-subject reuse plan, missing data (free)","operationId":"quoteAssessment","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AssessmentRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["assessments:write"]}]}},"/cases/{case_id}/assessments":{"post":{"tags":["assessments"],"summary":"Start an assessment (asynchronous)","operationId":"startAssessment","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"UUID v4, one per logical operation; reuse it on retries","title":"Idempotency-Key"},"description":"UUID v4, one per logical operation; reuse it on retries"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AssessmentRequest"},{"type":"null"}],"title":"Payload"}}}},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentStarted"}}},"headers":{"Location":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"description":"Token quota exhausted","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["assessments:write"]}]},"get":{"tags":["assessments"],"summary":"List a case's assessments (newest first, cursor pagination)","operationId":"listAssessments","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Case Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"description":"next_cursor of the previous page","title":"Cursor"},"description":"next_cursor of the previous page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentList"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["assessments:read"]}]}},"/assessments/{assessment_id}":{"get":{"tags":["assessments"],"summary":"Status, progress, pending actions and billing of an assessment","operationId":"getAssessment","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Assessment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["assessments:read"]}]}},"/assessments/{assessment_id}/cancel":{"post":{"tags":["assessments"],"summary":"Cancel a queued or running assessment","description":"Stops the assessment before its next provider call. Charged only if a\nprovider had already been called; no cooldown applies. An assessment that\nis not being processed is cancelled at once; one in progress stops at its\nnext checkpoint (``cancel_requested: true`` until then — keep polling). An\nassessment that already finished is returned unchanged.","operationId":"cancelAssessment","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Assessment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["assessments:write"]}]}},"/assessments/{assessment_id}/decision":{"get":{"tags":["assessments"],"summary":"The Decision of an assessment (advisory; a person decides)","operationId":"getDecision","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Assessment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecisionOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["assessments:read"]}]}},"/assessments/{assessment_id}/checks":{"get":{"tags":["assessments"],"summary":"Derived per-check results (no raw vendor data)","operationId":"listCheckResults","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Assessment Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":100,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"next_cursor of the previous page","title":"Cursor"},"description":"next_cursor of the previous page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResultList"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["assessments:read"]}]}},"/assessments/{assessment_id}/report":{"get":{"tags":["assessments"],"summary":"The PDF report, streamed (no redirect, no link to store)","description":"Rendered from this assessment's stored results with no provider, LLM\nor network call, without vendor appendices, and returned directly in the\nresponse body (no redirect to a short-lived link). Needs ``pii:read`` as\nwell as ``reports:read`` (the report contains unminimised personal data).\nConcurrent renders are limited: 429 with Retry-After when busy.","operationId":"getReport","parameters":[{"name":"assessment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Assessment Id"}}],"responses":{"200":{"description":"The report","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["reports:read","pii:read"]}]}},"/webhook-endpoints":{"post":{"tags":["webhooks"],"summary":"Register a webhook endpoint","operationId":"createWebhookEndpoint","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"UUID v4, one per logical operation","title":"Idempotency-Key"},"description":"UUID v4, one per logical operation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointCreated"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict","description":"Conflict"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["webhooks:manage"]}]},"get":{"tags":["webhooks"],"summary":"List webhook endpoints","operationId":"listWebhookEndpoints","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointList"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["webhooks:manage"]}]}},"/webhook-endpoints/{endpoint_id}":{"get":{"tags":["webhooks"],"summary":"Get a webhook endpoint","operationId":"getWebhookEndpoint","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound","description":"Not Found"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["webhooks:manage"]}]},"patch":{"tags":["webhooks"],"summary":"Update, disable or re-enable a webhook endpoint","operationId":"updateWebhookEndpoint","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound","description":"Not Found"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["webhooks:manage"]}]},"delete":{"tags":["webhooks"],"summary":"Delete a webhook endpoint","operationId":"deleteWebhookEndpoint","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound","description":"Not Found"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["webhooks:manage"]}]}},"/webhook-endpoints/{endpoint_id}/test":{"post":{"tags":["webhooks"],"summary":"Send a ping event now","operationId":"testWebhookEndpoint","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryOut"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound","description":"Not Found"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["webhooks:manage"]}]}},"/webhook-endpoints/{endpoint_id}/rotate-secret":{"post":{"tags":["webhooks"],"summary":"Rotate the signing secret (both secrets sign for 24 h)","operationId":"rotateWebhookSecret","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSecretRotated"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound","description":"Not Found"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["webhooks:manage"]}]}},"/webhook-endpoints/{endpoint_id}/deliveries":{"get":{"tags":["webhooks"],"summary":"Delivery log of an endpoint (newest first)","operationId":"listWebhookDeliveries","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"pending | failed | succeeded | dead","title":"Status"},"description":"pending | failed | succeeded | dead"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryList"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound","description":"Not Found"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["webhooks:manage"]}]}},"/events":{"get":{"tags":["events"],"summary":"Event log of the last 7 days (reconciliation)","operationId":"listEvents","parameters":[{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601; at most 7 days ago (older values are clamped)","title":"Since"},"description":"ISO 8601; at most 7 days ago (older values are clamped)"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only this event type","title":"Type"},"description":"Only this event type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEventList"}}}},"400":{"$ref":"#/components/responses/BadRequest","description":"Bad Request"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"422":{"$ref":"#/components/responses/ValidationFailed"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}},"security":[{"oauth2":["assessments:read"]}]}}},"components":{"schemas":{"AccountOut":{"properties":{"organisation":{"additionalProperties":true,"type":"object","title":"Organisation"},"modules":{"items":{"type":"string"},"type":"array","title":"Modules"},"allowed_case_types":{"items":{"type":"string"},"type":"array","title":"Allowed Case Types"},"quota":{"items":{"$ref":"#/components/schemas/QuotaOut"},"type":"array","title":"Quota"},"rate_limits":{"additionalProperties":true,"type":"object","title":"Rate Limits"},"credential":{"additionalProperties":true,"type":"object","title":"Credential"}},"type":"object","required":["organisation","modules","allowed_case_types","quota","rate_limits","credential"],"title":"AccountOut"},"AddressCandidate":{"properties":{"uprn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uprn"},"line1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line1"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"postcode":{"type":"string","title":"Postcode"},"country":{"type":"string","title":"Country","default":"GB"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","required":["postcode"],"title":"AddressCandidate"},"AddressIn":{"properties":{"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"ISO 3166-1 alpha-2; default GB"},"line1":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Line1"},"line2":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Line2"},"city":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"City"},"postcode":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Postcode","description":"UK postcodes are validated and normalised"}},"additionalProperties":false,"type":"object","title":"AddressIn"},"AddressList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AddressCandidate"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"AddressList"},"AddressOut":{"properties":{"line1":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line1"},"line2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line2"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"postcode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postcode"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}},"type":"object","title":"AddressOut"},"AddressPatchIn":{"properties":{"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"ISO 3166-1 alpha-2; default GB"},"line1":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Line1"},"line2":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Line2"},"city":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"City"},"postcode":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Postcode","description":"UK postcodes are validated and normalised"}},"additionalProperties":false,"type":"object","title":"AddressPatchIn","description":"The ``address`` of a PATCH: merged into the stored address, so a\npostcode sent without ``country`` is validated against the stored\ncountry."},"AssessmentBilling":{"properties":{"status":{"type":"string","enum":["reserved","charged","free","pending"],"title":"Status"},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tokens"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"completed, reused, failed, cancelled_after_provider_call, cancelled_before_provider_call, nothing_ran, …"}},"type":"object","required":["status"],"title":"AssessmentBilling"},"AssessmentLinks":{"properties":{"self":{"type":"string","title":"Self"},"case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Case"},"decision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decision"},"checks":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checks"},"report":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Report"}},"type":"object","required":["self"],"title":"AssessmentLinks"},"AssessmentList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AssessmentOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["data"],"title":"AssessmentList"},"AssessmentOut":{"properties":{"id":{"type":"string","title":"Id"},"case_id":{"type":"string","title":"Case Id"},"status":{"type":"string","enum":["queued","running","awaiting_action","completed","failed","cancelled"],"title":"Status"},"mode":{"type":"string","enum":["incremental","full"],"title":"Mode"},"created_via":{"type":"string","enum":["api","webapp"],"title":"Created Via"},"progress":{"$ref":"#/components/schemas/AssessmentProgress"},"pending_actions":{"items":{"$ref":"#/components/schemas/PendingAction"},"type":"array","title":"Pending Actions"},"stale":{"type":"boolean","title":"Stale"},"token_cost":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Token Cost","description":"Reserved while running; what was charged once settled"},"billing":{"$ref":"#/components/schemas/AssessmentBilling"},"recommendation":{"anyOf":[{"type":"string","enum":["approve","approve_with_conditions","refer","decline"]},{"type":"null"}],"title":"Recommendation"},"cancel_requested":{"type":"boolean","title":"Cancel Requested","default":false},"cooldown_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cooldown Until","description":"Failed assessments: no new start before this"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"links":{"$ref":"#/components/schemas/AssessmentLinks"}},"type":"object","required":["id","case_id","status","mode","created_via","progress","pending_actions","stale","billing","created_at","links"],"title":"AssessmentOut"},"AssessmentProgress":{"properties":{"total_checks":{"type":"integer","title":"Total Checks"},"finished_checks":{"type":"integer","title":"Finished Checks"}},"type":"object","required":["total_checks","finished_checks"],"title":"AssessmentProgress"},"AssessmentRequest":{"properties":{"mode":{"type":"string","enum":["incremental","full"],"title":"Mode","description":"incremental (default): unchanged successful results are reused; full: search everything again","default":"incremental"},"checks":{"anyOf":[{"$ref":"#/components/schemas/ChecksSelection"},{"type":"null"}]}},"additionalProperties":false,"type":"object","title":"AssessmentRequest","description":"Body of ``POST …/assessments`` and ``POST …/assessments/quote`` (guide §6 steps 5-6)."},"AssessmentStarted":{"properties":{"id":{"type":"string","title":"Id"},"case_id":{"type":"string","title":"Case Id"},"status":{"type":"string","enum":["queued","running","awaiting_action","completed","failed","cancelled"],"title":"Status"},"mode":{"type":"string","enum":["incremental","full"],"title":"Mode"},"token_cost":{"type":"integer","title":"Token Cost","description":"Tokens reserved now (the quote); settled when it ends"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"links":{"$ref":"#/components/schemas/AssessmentLinks"}},"type":"object","required":["id","case_id","status","mode","token_cost","created_at","links"],"title":"AssessmentStarted"},"AssessmentSummary":{"properties":{"id":{"type":"string","title":"Id"},"status":{"type":"string","enum":["queued","running","awaiting_action","completed","failed","cancelled"],"title":"Status"},"mode":{"type":"string","enum":["incremental","full"],"title":"Mode"},"recommendation":{"anyOf":[{"type":"string","enum":["approve","approve_with_conditions","refer","decline"]},{"type":"null"}],"title":"Recommendation"},"is_final":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Final"},"stale":{"type":"boolean","title":"Stale","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","status","mode","created_at"],"title":"AssessmentSummary"},"BankAccountIn":{"properties":{"sort_code":{"type":"string","title":"Sort Code","description":"6 digits. Write-only (returned only with pii:read)"},"account_number":{"type":"string","title":"Account Number","description":"8 digits. Write-only (returned only with pii:read)"},"bank_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Bank Name"}},"additionalProperties":false,"type":"object","required":["sort_code","account_number"],"title":"BankAccountIn"},"Body_uploadDocument":{"properties":{"file":{"type":"string","format":"binary","title":"File","description":"PDF, JPEG or PNG, at most 25 MB"},"document_type":{"type":"string","enum":["valuation_report","title_register","lease","bank_statement","proof_of_address","other"],"title":"Document Type","description":"valuation_report is the RICS valuation used for LTV"},"external_ref":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"External Ref","description":"Your record id"}},"type":"object","required":["file","document_type"],"title":"Body_uploadDocument"},"CallTranscriptCreate":{"properties":{"text":{"type":"string","minLength":1,"title":"Text","description":"The transcript text. Untrusted: sanitised and pseudonymised before storage; never returned."},"recorded_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Recorded At","description":"When the call took place (ISO 8601)"},"participants":{"items":{"type":"string","enum":["broker","borrower","guarantor","underwriter","lender","other"]},"type":"array","maxItems":10,"title":"Participants"},"external_ref":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"External Ref","description":"Your record id for the call"}},"additionalProperties":false,"type":"object","required":["text"],"title":"CallTranscriptCreate"},"CallTranscriptList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CallTranscriptOut"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"CallTranscriptList"},"CallTranscriptOut":{"properties":{"id":{"type":"string","title":"Id"},"case_id":{"type":"string","title":"Case Id"},"external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Ref"},"recorded_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recorded At"},"participants":{"items":{"type":"string"},"type":"array","title":"Participants"},"characters":{"type":"integer","title":"Characters","description":"Characters received"},"stored_characters":{"type":"integer","title":"Stored Characters","description":"Characters stored after sanitising"},"received_sha256":{"type":"string","title":"Received Sha256","description":"SHA-256 (hex) of the text as received"},"pseudonymised":{"type":"boolean","title":"Pseudonymised"},"used_by_step":{"type":"string","title":"Used By Step"},"created_at":{"type":"string","title":"Created At"},"links":{"additionalProperties":true,"type":"object","title":"Links"}},"type":"object","required":["id","case_id","participants","characters","stored_characters","received_sha256","pseudonymised","used_by_step","created_at","links"],"title":"CallTranscriptOut"},"CaseClose":{"properties":{"reason":{"type":"string","enum":["completed","withdrawn","declined","duplicate"],"title":"Reason"}},"additionalProperties":false,"type":"object","required":["reason"],"title":"CaseClose"},"CaseCreate":{"properties":{"external_ref":{"anyOf":[{"type":"string","maxLength":128,"description":"Your record id (CRM)"},{"type":"null"}],"title":"External Ref","description":"Recommended. Unique per case in your organisation"},"reference":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Reference","description":"Human-readable; generated when omitted"},"case_type":{"type":"string","enum":["credit_identity","property_lending","property_buy_to_let","property_development","property_real_estate","full"],"title":"Case Type"},"loan":{"anyOf":[{"$ref":"#/components/schemas/LoanIn"},{"type":"null"}]},"individuals":{"items":{"$ref":"#/components/schemas/IndividualCreate"},"type":"array","maxItems":20,"title":"Individuals"},"companies":{"items":{"$ref":"#/components/schemas/CompanyCreate"},"type":"array","maxItems":20,"title":"Companies"},"properties":{"items":{"$ref":"#/components/schemas/PropertyCreate"},"type":"array","maxItems":20,"title":"Properties"},"ownerships":{"items":{"$ref":"#/components/schemas/OwnershipIn"},"type":"array","maxItems":400,"title":"Ownerships"}},"additionalProperties":false,"type":"object","required":["case_type"],"title":"CaseCreate","description":"One transactional call: the case, its subjects and ownerships.","examples":[{"case_type":"full","companies":[{"address":{"city":"London","country":"GB","line1":"1 Example Place","postcode":"EC1A 1BB"},"company_name":"Example Holdings Ltd","company_number":"12345678","external_ref":"001Qy00000AcmeAAA","role":"borrower"}],"external_ref":"006Qy00000AbCdEIAV","individuals":[{"address":{"city":"London","country":"GB","line1":"10 Example Street","postcode":"SW1A 1AA"},"country_of_birth":"GB","date_of_birth":"1980-04-12","email":"john.doe@example.com","external_ref":"003Qy00000JdoeAAA","first_name":"John","gender":"male","is_primary":true,"nationality":"GB","phone":"+447700900123","residence_country":"GB","role":"borrower","surname":"Doe","title":"mr"}],"loan":{"exit_strategy":"sale","exit_strategy_detail":"Sale of the property after refurbishment","facility_amount_gbp":392000,"interest_type":"retained","loan_type":"bridge","term_months":12},"ownerships":[{"company_external_ref":"001Qy00000AcmeAAA","individual_external_ref":"003Qy00000JdoeAAA","ownership_percent":100,"relationship":"director_shareholder"}],"properties":[{"external_ref":"a0BQy000001PropAAA","address":{"city":"Manchester","country":"GB","line1":"22 Sample Road","postcode":"M1 1AE"},"uprn":"100012345678","asset_type":"residential","property_type":"terraced","tenure":"freehold","num_rooms":3,"charge_type":"first","purchase_price_gbp":520000,"units_in_building":1}]}]},"CaseLinks":{"properties":{"self":{"type":"string","title":"Self"},"webapp":{"type":"string","title":"Webapp"}},"type":"object","required":["self","webapp"],"title":"CaseLinks"},"CaseList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CaseOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["data"],"title":"CaseList"},"CaseOut":{"properties":{"id":{"type":"string","title":"Id"},"external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Ref"},"reference":{"type":"string","title":"Reference"},"status":{"type":"string","enum":["open","closed"],"title":"Status"},"case_type":{"type":"string","title":"Case Type","description":"One of the case_type enum values (webapp-created cases may carry others)"},"created_via":{"type":"string","enum":["api","webapp"],"title":"Created Via"},"loan":{"$ref":"#/components/schemas/LoanOut"},"individuals":{"items":{"$ref":"#/components/schemas/IndividualOut"},"type":"array","title":"Individuals"},"companies":{"items":{"$ref":"#/components/schemas/CompanyOut"},"type":"array","title":"Companies"},"properties":{"items":{"$ref":"#/components/schemas/PropertyOut"},"type":"array","title":"Properties"},"ownerships":{"items":{"$ref":"#/components/schemas/OwnershipOut"},"type":"array","title":"Ownerships"},"close_reason":{"anyOf":[{"type":"string","enum":["completed","withdrawn","declined","duplicate"]},{"type":"null"}],"title":"Close Reason"},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At"},"latest_assessment":{"anyOf":[{"$ref":"#/components/schemas/AssessmentSummary"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"links":{"$ref":"#/components/schemas/CaseLinks"}},"type":"object","required":["id","reference","status","case_type","created_via","loan","individuals","companies","properties","ownerships","created_at","updated_at","links"],"title":"CaseOut"},"CasePatch":{"properties":{"external_ref":{"anyOf":[{"type":"string","maxLength":128,"description":"Your record id (CRM)"},{"type":"null"}],"title":"External Ref"},"reference":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Reference"},"case_type":{"anyOf":[{"type":"string","enum":["credit_identity","property_lending","property_buy_to_let","property_development","property_real_estate","full"]},{"type":"null"}],"title":"Case Type","description":"Cannot change after the first assessment"},"loan":{"anyOf":[{"$ref":"#/components/schemas/LoanIn"},{"type":"null"}]}},"additionalProperties":false,"type":"object","title":"CasePatch","description":"Only the fields sent change; ``null`` clears an optional field.\nSubjects are managed through their own endpoints."},"CatalogCheck":{"properties":{"check":{"type":"string","title":"Check"},"step":{"type":"string","title":"Step"},"subject_types":{"items":{"type":"string"},"type":"array","title":"Subject Types"},"modules":{"items":{"type":"string"},"type":"array","title":"Modules"},"required_data":{"items":{"type":"string"},"type":"array","title":"Required Data"},"required_data_by_subject_type":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Required Data By Subject Type"},"required_one_of":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"Required One Of"},"required_one_of_detail":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Required One Of Detail"},"optional_data":{"items":{"type":"string"},"type":"array","title":"Optional Data"},"metrics":{"items":{"type":"string"},"type":"array","title":"Metrics"},"paid_search":{"type":"boolean","title":"Paid Search"},"reusable":{"type":"boolean","title":"Reusable"},"excludable":{"type":"boolean","title":"Excludable","description":"A provider search that checks.exclude of a quote or start may leave out","default":false},"included_in_your_plan":{"type":"boolean","title":"Included In Your Plan"}},"type":"object","required":["check","step","subject_types","modules","required_data","required_data_by_subject_type","required_one_of","required_one_of_detail","optional_data","metrics","paid_search","reusable","included_in_your_plan"],"title":"CatalogCheck"},"CatalogOut":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CatalogCheck"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"CatalogOut"},"CheckResultList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CheckResultOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["data"],"title":"CheckResultList"},"CheckResultOut":{"properties":{"check":{"type":"string","title":"Check"},"step":{"type":"string","enum":["borrower_profile","kyc_and_aml","credit_assessment","borrower_call","property_valuation","property_due_diligence"],"title":"Step"},"subject":{"$ref":"#/components/schemas/CheckSubject"},"status":{"type":"string","enum":["pending","running","completed","skipped","awaiting_action","failed","cancelled"],"title":"Status"},"outcome":{"type":"string","enum":["pass","refer","fail","not_run","error"],"title":"Outcome"},"risk_level":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"null"}],"title":"Risk Level"},"risk_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Risk Score","description":"0-100, higher is riskier"},"confidence_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Confidence Score"},"reason_codes":{"items":{"type":"string"},"type":"array","title":"Reason Codes"},"metrics":{"additionalProperties":true,"type":"object","title":"Metrics","description":"Licensed derived metrics only (see /v1/check-catalog)"},"summary":{"type":"string","title":"Summary"},"reused":{"type":"boolean","title":"Reused"},"source_assessment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Assessment Id"},"searched_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Searched At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["check","step","subject","status","outcome","reason_codes","metrics","summary","reused"],"title":"CheckResultOut"},"CheckSubject":{"properties":{"type":{"type":"string","title":"Type"},"id":{"type":"string","title":"Id"},"external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Ref"}},"type":"object","required":["type","id"],"title":"CheckSubject"},"ChecksSelection":{"properties":{"exclude":{"items":{"type":"string","maxLength":100},"type":"array","maxItems":50,"title":"Exclude","description":"Check names (from /v1/check-catalog) or provider ids to leave out"}},"additionalProperties":false,"type":"object","title":"ChecksSelection"},"CompanyCreate":{"properties":{"external_ref":{"anyOf":[{"type":"string","maxLength":128,"description":"Your record id (CRM)"},{"type":"null"}],"title":"External Ref"},"role":{"anyOf":[{"type":"string","enum":["borrower","guarantor","corporate_shareholder"]},{"type":"null"}],"title":"Role"},"company_name":{"type":"string","maxLength":200,"minLength":1,"title":"Company Name"},"company_number":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Company Number","description":"Companies House format; required for UK entities"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction","description":"ISO 3166-1 alpha-2, default GB"},"address":{"anyOf":[{"$ref":"#/components/schemas/AddressIn"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["company_name"],"title":"CompanyCreate","description":"``company_number`` is required for a UK company (``jurisdiction`` GB,\nthe default) and must match the Companies House format."},"CompanyOut":{"properties":{"id":{"type":"string","title":"Id"},"external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Ref"},"role":{"anyOf":[{"type":"string","enum":["borrower","guarantor","corporate_shareholder"]},{"type":"null"}],"title":"Role"},"company_name":{"type":"string","title":"Company Name"},"company_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Number"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"},"address":{"$ref":"#/components/schemas/AddressOut"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","company_name","address","created_at","updated_at"],"title":"CompanyOut"},"CompanyPatch":{"properties":{"external_ref":{"anyOf":[{"type":"string","maxLength":128,"description":"Your record id (CRM)"},{"type":"null"}],"title":"External Ref"},"role":{"anyOf":[{"type":"string","enum":["borrower","guarantor","corporate_shareholder"]},{"type":"null"}],"title":"Role"},"company_name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Company Name"},"company_number":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Company Number","description":"Companies House format; required for UK entities"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction","description":"ISO 3166-1 alpha-2, default GB"},"address":{"anyOf":[{"$ref":"#/components/schemas/AddressPatchIn"},{"type":"null"}]}},"additionalProperties":false,"type":"object","title":"CompanyPatch"},"DecisionOut":{"properties":{"assessment_id":{"type":"string","title":"Assessment Id"},"case_id":{"type":"string","title":"Case Id"},"version":{"type":"integer","title":"Version","description":"Goes up each time this assessment's decision changes"},"is_final":{"type":"boolean","title":"Is Final","description":"false while pending_actions is not empty (provisional)"},"recommendation":{"type":"string","enum":["approve","approve_with_conditions","refer","decline"],"title":"Recommendation","description":"Advisory"},"overall_risk_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Overall Risk Score"},"overall_risk_level":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"null"}],"title":"Overall Risk Level"},"confidence_score":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Confidence Score"},"decision_source":{"type":"string","enum":["walt_synthesis","rules_fallback"],"title":"Decision Source"},"human_review_required":{"type":"boolean","title":"Human Review Required","default":true},"executive_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Executive Summary"},"ltv_basis":{"anyOf":[{"type":"string","enum":["day_180","market_value"]},{"type":"null"}],"title":"Ltv Basis","description":"The LTV basis that drove the recommendation (default day_180)"},"steps":{"items":{"$ref":"#/components/schemas/DecisionStep"},"type":"array","title":"Steps"},"key_risk_factors":{"items":{"type":"string"},"type":"array","title":"Key Risk Factors"},"mitigating_factors":{"items":{"type":"string"},"type":"array","title":"Mitigating Factors"},"conditions_precedent":{"items":{"type":"string"},"type":"array","title":"Conditions Precedent"},"conditions_subsequent":{"items":{"type":"string"},"type":"array","title":"Conditions Subsequent"},"pending_actions":{"items":{"$ref":"#/components/schemas/PendingAction"},"type":"array","title":"Pending Actions"},"generated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Generated At"}},"type":"object","required":["assessment_id","case_id","version","is_final","recommendation","decision_source","steps","key_risk_factors","mitigating_factors","conditions_precedent","conditions_subsequent","pending_actions"],"title":"DecisionOut"},"DecisionStep":{"properties":{"step":{"type":"string","enum":["borrower_profile","kyc_and_aml","credit_assessment","borrower_call","property_valuation","property_due_diligence"],"title":"Step"},"status":{"type":"string","enum":["pending","running","completed","skipped","awaiting_action","failed","cancelled"],"title":"Status"},"outcome":{"type":"string","enum":["pass","refer","fail","not_run","error"],"title":"Outcome"},"risk_level":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"null"}],"title":"Risk Level"},"summary":{"type":"string","title":"Summary"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics","description":"property_valuation: walt_estimated_value_gbp, valuation_basis, ltv_basis, ltv_day_180_percent (facility / 80% of the WALT value), ltv_market_value_percent"}},"type":"object","required":["step","status","outcome","summary"],"title":"DecisionStep"},"DocumentList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DocumentOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["data"],"title":"DocumentList"},"DocumentOut":{"properties":{"id":{"type":"string","title":"Id"},"external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Ref"},"document_type":{"type":"string","title":"Document Type"},"file_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Name"},"size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size Bytes"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"status":{"type":"string","title":"Status"},"rejection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejection Reason"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"links":{"additionalProperties":true,"type":"object","title":"Links"}},"type":"object","required":["id","document_type","status","links"],"title":"DocumentOut"},"IndividualCreate":{"properties":{"external_ref":{"anyOf":[{"type":"string","maxLength":128,"description":"Your record id (CRM)"},{"type":"null"}],"title":"External Ref"},"is_primary":{"type":"boolean","title":"Is Primary","default":false},"role":{"type":"string","enum":["borrower","guarantor","director","shareholder"],"title":"Role"},"title":{"type":"string","enum":["mr","mrs","ms","miss","dr","prof","mx","other"],"title":"Title"},"first_name":{"type":"string","maxLength":100,"minLength":1,"title":"First Name"},"middle_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Middle Name"},"surname":{"type":"string","maxLength":100,"minLength":1,"title":"Surname"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth","description":"Must be in the past; age 18+"},"gender":{"anyOf":[{"type":"string","enum":["male","female","other","undisclosed"]},{"type":"null"}],"title":"Gender"},"nationality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nationality","description":"ISO 3166-1 alpha-2"},"country_of_birth":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Of Birth"},"residence_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Residence Country"},"email":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone","description":"E.164, e.g. +447700900123"},"address":{"$ref":"#/components/schemas/RequiredAddressIn"},"previous_addresses":{"anyOf":[{"items":{"$ref":"#/components/schemas/PreviousAddressIn"},"type":"array","maxItems":10},{"type":"null"}],"title":"Previous Addresses"},"passport_number":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}],"title":"Passport Number","description":"Write-only (returned only with pii:read)"},"source_of_funds":{"anyOf":[{"$ref":"#/components/schemas/SourceOfFundsIn"},{"type":"null"}]},"bank_account":{"anyOf":[{"$ref":"#/components/schemas/BankAccountIn"},{"type":"null"}],"description":"Write-only (returned only with pii:read)"}},"additionalProperties":false,"type":"object","required":["role","title","first_name","surname","date_of_birth","address"],"title":"IndividualCreate","description":"Guide §7.4. ``role``, ``title``, ``first_name``, ``surname``,\n``date_of_birth`` and ``address.line1/city/postcode`` are required."},"IndividualOut":{"properties":{"id":{"type":"string","title":"Id"},"external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Ref"},"is_primary":{"type":"boolean","title":"Is Primary","default":false},"role":{"anyOf":[{"type":"string","enum":["borrower","guarantor","director","shareholder"]},{"type":"null"}],"title":"Role"},"title":{"anyOf":[{"type":"string","enum":["mr","mrs","ms","miss","dr","prof","mx","other"]},{"type":"null"}],"title":"Title"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"middle_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Middle Name"},"surname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Surname"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"gender":{"anyOf":[{"type":"string","enum":["male","female","other","undisclosed"]},{"type":"null"}],"title":"Gender"},"nationality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nationality"},"country_of_birth":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Of Birth"},"residence_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Residence Country"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"address":{"$ref":"#/components/schemas/AddressOut"},"previous_addresses":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Previous Addresses"},"source_of_funds":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Source Of Funds"},"passport_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Passport Number","description":"Present only with pii:read"},"bank_account":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Bank Account","description":"Present only with pii:read"},"legacy_values":{"additionalProperties":{"type":"string"},"type":"object","title":"Legacy Values","description":"Stored values with no guide code (typically legacy free text on webapp-created cases), keyed by field name; the field itself reads null. Empty when every value maps."},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","address","created_at","updated_at"],"title":"IndividualOut"},"IndividualPatch":{"properties":{"external_ref":{"anyOf":[{"type":"string","maxLength":128,"description":"Your record id (CRM)"},{"type":"null"}],"title":"External Ref"},"is_primary":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Primary"},"role":{"anyOf":[{"type":"string","enum":["borrower","guarantor","director","shareholder"]},{"type":"null"}],"title":"Role"},"title":{"anyOf":[{"type":"string","enum":["mr","mrs","ms","miss","dr","prof","mx","other"]},{"type":"null"}],"title":"Title"},"first_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"First Name"},"middle_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Middle Name"},"surname":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Surname"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth","description":"Must be in the past; age 18+"},"gender":{"anyOf":[{"type":"string","enum":["male","female","other","undisclosed"]},{"type":"null"}],"title":"Gender"},"nationality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nationality","description":"ISO 3166-1 alpha-2"},"country_of_birth":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Of Birth"},"residence_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Residence Country"},"email":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone","description":"E.164, e.g. +447700900123"},"address":{"anyOf":[{"$ref":"#/components/schemas/AddressPatchIn"},{"type":"null"}]},"previous_addresses":{"anyOf":[{"items":{"$ref":"#/components/schemas/PreviousAddressIn"},"type":"array","maxItems":10},{"type":"null"}],"title":"Previous Addresses"},"passport_number":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}],"title":"Passport Number","description":"Write-only (returned only with pii:read)"},"source_of_funds":{"anyOf":[{"$ref":"#/components/schemas/SourceOfFundsIn"},{"type":"null"}]},"bank_account":{"anyOf":[{"$ref":"#/components/schemas/BankAccountIn"},{"type":"null"}],"description":"Write-only (returned only with pii:read)"}},"additionalProperties":false,"type":"object","title":"IndividualPatch","description":"PATCH changes only the fields sent; ``null`` clears an optional field."},"LoanIn":{"properties":{"facility_amount_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Facility Amount Gbp","description":"Gross facility requested. Required for full / property_*"},"term_months":{"anyOf":[{"type":"integer","maximum":60,"minimum":1},{"type":"null"}],"title":"Term Months","description":"Required for full"},"loan_type":{"anyOf":[{"type":"string","enum":["bridge","development","refurbishment"]},{"type":"null"}],"title":"Loan Type","description":"Required for full"},"interest_type":{"anyOf":[{"type":"string","enum":["retained","serviced","rolled_up"]},{"type":"null"}],"title":"Interest Type"},"exit_strategy":{"anyOf":[{"type":"string","enum":["sale","refinance","other"]},{"type":"null"}],"title":"Exit Strategy","description":"Required for full"},"exit_strategy_detail":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Exit Strategy Detail","description":"Required when exit_strategy is other. Untrusted text."},"ltv_basis":{"anyOf":[{"type":"string","enum":["day_180","market_value"]},{"type":"null"}],"title":"Ltv Basis","description":"Default: your organisation's (day_180)"}},"additionalProperties":false,"type":"object","title":"LoanIn"},"LoanOut":{"properties":{"facility_amount_gbp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Facility Amount Gbp"},"term_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Term Months"},"loan_type":{"anyOf":[{"type":"string","enum":["bridge","development","refurbishment"]},{"type":"null"}],"title":"Loan Type"},"interest_type":{"anyOf":[{"type":"string","enum":["retained","serviced","rolled_up"]},{"type":"null"}],"title":"Interest Type"},"exit_strategy":{"anyOf":[{"type":"string","enum":["sale","refinance","other"]},{"type":"null"}],"title":"Exit Strategy"},"exit_strategy_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exit Strategy Detail"},"ltv_basis":{"type":"string","enum":["day_180","market_value"],"title":"Ltv Basis"},"legacy_values":{"additionalProperties":{"type":"string"},"type":"object","title":"Legacy Values","description":"Stored values with no guide code (typically legacy free text on webapp-created cases), keyed by field name; the field itself reads null. Empty when every value maps."}},"type":"object","required":["ltv_basis"],"title":"LoanOut"},"OwnershipCreate":{"properties":{"individual_id":{"type":"string","title":"Individual Id","description":"WALT id of an individual of this case"},"company_id":{"type":"string","title":"Company Id","description":"WALT id of a company of this case"},"relationship":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship","description":"e.g. director, shareholder, director_shareholder"},"ownership_percent":{"anyOf":[{"type":"number","maximum":100,"minimum":0},{"type":"null"}],"title":"Ownership Percent"}},"additionalProperties":false,"type":"object","required":["individual_id","company_id"],"title":"OwnershipCreate","description":"Link two existing subjects of the case by their WALT ids."},"OwnershipIn":{"properties":{"individual_external_ref":{"type":"string","maxLength":128,"title":"Individual External Ref","description":"Your record id (CRM)"},"company_external_ref":{"type":"string","maxLength":128,"title":"Company External Ref","description":"Your record id (CRM)"},"relationship":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship","description":"e.g. director, shareholder, director_shareholder"},"ownership_percent":{"anyOf":[{"type":"number","maximum":100,"minimum":0},{"type":"null"}],"title":"Ownership Percent"}},"additionalProperties":false,"type":"object","required":["individual_external_ref","company_external_ref"],"title":"OwnershipIn","description":"In the nested create, link by your ``external_ref``s."},"OwnershipOut":{"properties":{"individual_id":{"type":"string","title":"Individual Id"},"company_id":{"type":"string","title":"Company Id"},"individual_external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Individual External Ref"},"company_external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company External Ref"},"relationship":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship"},"ownership_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ownership Percent"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["individual_id","company_id"],"title":"OwnershipOut"},"PendingAction":{"properties":{"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"borrower_identity_verification | borrower_source_of_funds | …"},"check":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Check"},"subject":{"$ref":"#/components/schemas/PendingActionSubject"},"status":{"type":"string","title":"Status"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["subject","status"],"title":"PendingAction"},"PendingActionSubject":{"properties":{"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Ref"}},"type":"object","title":"PendingActionSubject"},"PreviousAddressIn":{"properties":{"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"ISO 3166-1 alpha-2; default GB"},"line1":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Line1"},"line2":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Line2"},"city":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"City"},"postcode":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Postcode","description":"UK postcodes are validated and normalised"},"from":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From","description":"Moved in (YYYY-MM-DD)"},"to":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To","description":"Moved out (YYYY-MM-DD)"}},"additionalProperties":false,"type":"object","title":"PreviousAddressIn"},"PropertyCreate":{"properties":{"external_ref":{"anyOf":[{"type":"string","maxLength":128,"description":"Your record id (CRM)"},{"type":"null"}],"title":"External Ref"},"address":{"$ref":"#/components/schemas/RequiredAddressIn"},"uprn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uprn","description":"Digits, up to 12"},"asset_type":{"type":"string","enum":["residential","commercial","mixed_use","multi_unit_block","hmo","new_build_residential"],"title":"Asset Type"},"property_type":{"anyOf":[{"type":"string","enum":["flat","terraced","semi_detached","detached","bungalow","block_of_flats"]},{"type":"null"}],"title":"Property Type"},"tenure":{"type":"string","enum":["freehold","leasehold","share_of_freehold"],"title":"Tenure"},"tenure_unexpired_years":{"anyOf":[{"type":"integer","maximum":999,"minimum":0},{"type":"null"}],"title":"Tenure Unexpired Years"},"num_rooms":{"anyOf":[{"type":"integer","maximum":100,"minimum":0},{"type":"null"}],"title":"Num Rooms"},"floor_area_sqft":{"anyOf":[{"type":"integer","maximum":1000000,"minimum":1},{"type":"null"}],"title":"Floor Area Sqft","description":"Gross Internal Area (GIA) in sq ft"},"charge_type":{"type":"string","enum":["first","second"],"title":"Charge Type"},"first_charge_amount_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"First Charge Amount Gbp"},"first_charge_lender":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"First Charge Lender"},"purchase_price_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Purchase Price Gbp"},"asking_price_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Asking Price Gbp"},"estimated_value_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Estimated Value Gbp","description":"Your own estimate; never used as the valuation"},"units_in_building":{"anyOf":[{"type":"integer","maximum":1000,"minimum":0},{"type":"null"}],"title":"Units In Building","description":"Each unit costs one token"},"units":{"anyOf":[{"items":{"$ref":"#/components/schemas/UnitIn"},"type":"array","maxItems":1000},{"type":"null"}],"title":"Units"},"target_rent_pcm_gbp":{"anyOf":[{"type":"integer","maximum":2147483647,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Target Rent Pcm Gbp"},"service_charge_ground_rent_gbp":{"anyOf":[{"type":"integer","maximum":2147483647,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Service Charge Ground Rent Gbp"},"maintenance_costs_gbp":{"anyOf":[{"type":"integer","maximum":2147483647,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Maintenance Costs Gbp"},"development_type":{"anyOf":[{"type":"string","enum":["residential","commercial","mixed_use"]},{"type":"null"}],"title":"Development Type"},"proposed_units":{"anyOf":[{"type":"integer","maximum":10000,"minimum":0},{"type":"null"}],"title":"Proposed Units"},"planning_status":{"anyOf":[{"type":"string","enum":["none","pending","approved","refused"]},{"type":"null"}],"title":"Planning Status"},"estimated_build_costs_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Estimated Build Costs Gbp"},"year_built":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year Built"},"condition":{"anyOf":[{"type":"string","enum":["excellent","good","fair","poor"]},{"type":"null"}],"title":"Condition"}},"additionalProperties":false,"type":"object","required":["address","asset_type","tenure","charge_type"],"title":"PropertyCreate"},"PropertyOut":{"properties":{"id":{"type":"string","title":"Id"},"external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Ref"},"address":{"$ref":"#/components/schemas/AddressOut"},"uprn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uprn"},"asset_type":{"anyOf":[{"type":"string","enum":["residential","commercial","mixed_use","multi_unit_block","hmo","new_build_residential"]},{"type":"null"}],"title":"Asset Type"},"property_type":{"anyOf":[{"type":"string","enum":["flat","terraced","semi_detached","detached","bungalow","block_of_flats"]},{"type":"null"}],"title":"Property Type"},"tenure":{"anyOf":[{"type":"string","enum":["freehold","leasehold","share_of_freehold"]},{"type":"null"}],"title":"Tenure"},"tenure_unexpired_years":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tenure Unexpired Years"},"num_rooms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Num Rooms"},"charge_type":{"anyOf":[{"type":"string","enum":["first","second"]},{"type":"null"}],"title":"Charge Type"},"first_charge_amount_gbp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"First Charge Amount Gbp"},"first_charge_lender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Charge Lender"},"purchase_price_gbp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Purchase Price Gbp"},"asking_price_gbp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Asking Price Gbp"},"estimated_value_gbp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Value Gbp"},"units_in_building":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Units In Building"},"units":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Units"},"target_rent_pcm_gbp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Target Rent Pcm Gbp"},"service_charge_ground_rent_gbp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Service Charge Ground Rent Gbp"},"maintenance_costs_gbp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maintenance Costs Gbp"},"development_type":{"anyOf":[{"type":"string","enum":["residential","commercial","mixed_use"]},{"type":"null"}],"title":"Development Type"},"proposed_units":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Proposed Units"},"planning_status":{"anyOf":[{"type":"string","enum":["none","pending","approved","refused"]},{"type":"null"}],"title":"Planning Status"},"estimated_build_costs_gbp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Build Costs Gbp"},"year_built":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year Built"},"condition":{"anyOf":[{"type":"string","enum":["excellent","good","fair","poor"]},{"type":"null"}],"title":"Condition"},"legacy_values":{"additionalProperties":{"type":"string"},"type":"object","title":"Legacy Values","description":"Stored values with no guide code (typically legacy free text on webapp-created cases), keyed by field name; the field itself reads null. Empty when every value maps."},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","address","created_at","updated_at"],"title":"PropertyOut"},"PropertyPatch":{"properties":{"external_ref":{"anyOf":[{"type":"string","maxLength":128,"description":"Your record id (CRM)"},{"type":"null"}],"title":"External Ref"},"address":{"anyOf":[{"$ref":"#/components/schemas/AddressPatchIn"},{"type":"null"}]},"uprn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uprn","description":"Digits, up to 12"},"asset_type":{"anyOf":[{"type":"string","enum":["residential","commercial","mixed_use","multi_unit_block","hmo","new_build_residential"]},{"type":"null"}],"title":"Asset Type"},"property_type":{"anyOf":[{"type":"string","enum":["flat","terraced","semi_detached","detached","bungalow","block_of_flats"]},{"type":"null"}],"title":"Property Type"},"tenure":{"anyOf":[{"type":"string","enum":["freehold","leasehold","share_of_freehold"]},{"type":"null"}],"title":"Tenure"},"tenure_unexpired_years":{"anyOf":[{"type":"integer","maximum":999,"minimum":0},{"type":"null"}],"title":"Tenure Unexpired Years"},"num_rooms":{"anyOf":[{"type":"integer","maximum":100,"minimum":0},{"type":"null"}],"title":"Num Rooms"},"floor_area_sqft":{"anyOf":[{"type":"integer","maximum":1000000,"minimum":1},{"type":"null"}],"title":"Floor Area Sqft","description":"Gross Internal Area (GIA) in sq ft"},"charge_type":{"anyOf":[{"type":"string","enum":["first","second"]},{"type":"null"}],"title":"Charge Type"},"first_charge_amount_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"First Charge Amount Gbp"},"first_charge_lender":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"First Charge Lender"},"purchase_price_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Purchase Price Gbp"},"asking_price_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Asking Price Gbp"},"estimated_value_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Estimated Value Gbp","description":"Your own estimate; never used as the valuation"},"units_in_building":{"anyOf":[{"type":"integer","maximum":1000,"minimum":0},{"type":"null"}],"title":"Units In Building","description":"Each unit costs one token"},"units":{"anyOf":[{"items":{"$ref":"#/components/schemas/UnitIn"},"type":"array","maxItems":1000},{"type":"null"}],"title":"Units"},"target_rent_pcm_gbp":{"anyOf":[{"type":"integer","maximum":2147483647,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Target Rent Pcm Gbp"},"service_charge_ground_rent_gbp":{"anyOf":[{"type":"integer","maximum":2147483647,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Service Charge Ground Rent Gbp"},"maintenance_costs_gbp":{"anyOf":[{"type":"integer","maximum":2147483647,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Maintenance Costs Gbp"},"development_type":{"anyOf":[{"type":"string","enum":["residential","commercial","mixed_use"]},{"type":"null"}],"title":"Development Type"},"proposed_units":{"anyOf":[{"type":"integer","maximum":10000,"minimum":0},{"type":"null"}],"title":"Proposed Units"},"planning_status":{"anyOf":[{"type":"string","enum":["none","pending","approved","refused"]},{"type":"null"}],"title":"Planning Status"},"estimated_build_costs_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Estimated Build Costs Gbp"},"year_built":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year Built"},"condition":{"anyOf":[{"type":"string","enum":["excellent","good","fair","poor"]},{"type":"null"}],"title":"Condition"}},"additionalProperties":false,"type":"object","title":"PropertyPatch"},"QuotaOut":{"properties":{"module":{"type":"string","title":"Module"},"period_start":{"type":"string","title":"Period Start"},"included":{"type":"integer","title":"Included"},"used":{"type":"integer","title":"Used"},"held":{"type":"integer","title":"Held"},"remaining":{"type":"integer","title":"Remaining"}},"type":"object","required":["module","period_start","included","used","held","remaining"],"title":"QuotaOut"},"QuoteExcluded":{"properties":{"check":{"type":"string","title":"Check"},"subject_type":{"type":"string","title":"Subject Type"},"subject_id":{"type":"string","title":"Subject Id"}},"type":"object","required":["check","subject_type","subject_id"],"title":"QuoteExcluded"},"QuoteMissingData":{"properties":{"subject_type":{"type":"string","title":"Subject Type"},"subject_id":{"type":"string","title":"Subject Id"},"field":{"type":"string","title":"Field","description":"Request field, in the guide's names (e.g. address.postcode)"},"affects":{"items":{"type":"string"},"type":"array","title":"Affects","description":"Checks that need it"},"severity":{"type":"string","enum":["required","optional"],"title":"Severity","description":"required: the check will be skipped; optional: it runs with less to match on"},"one_of":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"One Of","description":"Alternatives: supplying ANY one of these fields unblocks the checks (field is the first)"},"derived":{"type":"boolean","title":"Derived","description":"WALT derives this value (e.g. Land Registry title number, coordinates) from the address/UPRN; it cannot be sent — check the address data instead","default":false}},"type":"object","required":["subject_type","subject_id","field","affects","severity"],"title":"QuoteMissingData"},"QuoteOut":{"properties":{"case_id":{"type":"string","title":"Case Id"},"module":{"type":"string","title":"Module"},"mode":{"type":"string","enum":["incremental","full"],"title":"Mode"},"token_cost":{"type":"integer","title":"Token Cost","description":"What starting this assessment now would charge"},"full_cost":{"type":"integer","title":"Full Cost","description":"What a fresh (full) assessment of the case costs"},"quota_remaining":{"type":"integer","title":"Quota Remaining","description":"Tokens left this period on the module; -1 = unlimited"},"reuse_window_days":{"type":"integer","title":"Reuse Window Days"},"subjects":{"items":{"$ref":"#/components/schemas/QuoteSubject"},"type":"array","title":"Subjects"},"excluded":{"items":{"$ref":"#/components/schemas/QuoteExcluded"},"type":"array","title":"Excluded"},"missing_data":{"items":{"$ref":"#/components/schemas/QuoteMissingData"},"type":"array","title":"Missing Data"},"warnings":{"items":{"$ref":"#/components/schemas/QuoteWarning"},"type":"array","title":"Warnings"},"sandbox":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sandbox","description":"Present (true) for a sandbox organisation: nothing is charged"}},"type":"object","required":["case_id","module","mode","token_cost","full_cost","quota_remaining","reuse_window_days","subjects","missing_data","warnings"],"title":"QuoteOut"},"QuoteSubject":{"properties":{"subject_type":{"type":"string","enum":["individual","company","property"],"title":"Subject Type"},"subject_id":{"type":"string","title":"Subject Id"},"external_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Ref"},"action":{"type":"string","title":"Action","description":"search | reuse | none (nothing to search or reuse, e.g. missing data)"},"checks_to_run":{"items":{"type":"string"},"type":"array","title":"Checks To Run"},"checks_reused":{"items":{"type":"string"},"type":"array","title":"Checks Reused"},"checks_skipped":{"items":{"type":"string"},"type":"array","title":"Checks Skipped","description":"Skipped for missing required data"},"reason":{"type":"string","title":"Reason","description":"Why: first_search, inputs_changed, previous_failed, unchanged, …"},"token_cost":{"type":"integer","title":"Token Cost","description":"This subject's share of token_cost","default":0}},"type":"object","required":["subject_type","subject_id","action","checks_to_run","checks_reused","reason"],"title":"QuoteSubject"},"QuoteWarning":{"properties":{"code":{"type":"string","title":"Code","description":"The error code a start would return now (e.g. quota_exhausted)"},"message":{"type":"string","title":"Message"},"retry_after":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Retry After"}},"type":"object","required":["code","message"],"title":"QuoteWarning"},"RequiredAddressIn":{"properties":{"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"ISO 3166-1 alpha-2; default GB"},"line1":{"type":"string","maxLength":200,"minLength":1,"title":"Line1"},"line2":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Line2"},"city":{"type":"string","maxLength":100,"minLength":1,"title":"City"},"postcode":{"type":"string","maxLength":16,"minLength":1,"title":"Postcode"}},"additionalProperties":false,"type":"object","required":["line1","city","postcode"],"title":"RequiredAddressIn","description":"``line1``, ``city`` and ``postcode`` are required."},"SourceOfFundsIn":{"properties":{"mode":{"type":"string","enum":["invite","declared"],"title":"Mode"},"origin":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Origin","description":"Declared origin of the funds"},"deposit_amount_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Deposit Amount Gbp"}},"additionalProperties":false,"type":"object","required":["mode"],"title":"SourceOfFundsIn"},"UnitIn":{"properties":{"label":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Label"},"beds":{"anyOf":[{"type":"integer","maximum":50,"minimum":0},{"type":"null"}],"title":"Beds"},"area_sqm":{"anyOf":[{"type":"number","maximum":100000,"minimum":0},{"type":"null"}],"title":"Area Sqm"},"epc":{"anyOf":[{"type":"string","maxLength":3},{"type":"null"}],"title":"Epc"},"rent_pcm_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Rent Pcm Gbp"},"value_gbp":{"anyOf":[{"type":"integer","maximum":999999999999,"minimum":0,"description":"Integer pounds sterling (GBP), no pence"},{"type":"null"}],"title":"Value Gbp"}},"additionalProperties":false,"type":"object","title":"UnitIn"},"WebhookAttempt":{"properties":{"n":{"type":"integer","title":"N"},"at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"At"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"latency_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latency Ms"}},"type":"object","required":["n"],"title":"WebhookAttempt"},"WebhookDeliveryList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WebhookDeliveryOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["data"],"title":"WebhookDeliveryList"},"WebhookDeliveryOut":{"properties":{"id":{"type":"string","title":"Id"},"endpoint_id":{"type":"string","title":"Endpoint Id"},"event_id":{"type":"string","title":"Event Id"},"event_type":{"type":"string","title":"Event Type"},"status":{"type":"string","enum":["pending","failed","succeeded","dead"],"title":"Status"},"attempt_count":{"type":"integer","title":"Attempt Count"},"next_attempt_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Attempt At"},"last_status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Status Code"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"last_latency_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Latency Ms"},"attempts":{"items":{"$ref":"#/components/schemas/WebhookAttempt"},"type":"array","title":"Attempts"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At"}},"type":"object","required":["id","endpoint_id","event_id","event_type","status","attempt_count","attempts","created_at"],"title":"WebhookDeliveryOut"},"WebhookEndpointCreate":{"properties":{"url":{"type":"string","maxLength":2048,"title":"Url","description":"https://… on port 443; private, loopback and link-local addresses are refused"},"events":{"anyOf":[{"items":{"type":"string","enum":["assessment.completed","assessment.action_required","assessment.updated","assessment.failed","report.ready","case.erased","quota.threshold_reached"]},"type":"array"},{"type":"null"}],"title":"Events","description":"Event types to receive; omitted = all"},"description":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Description"}},"additionalProperties":false,"type":"object","required":["url"],"title":"WebhookEndpointCreate"},"WebhookEndpointCreated":{"properties":{"id":{"type":"string","title":"Id"},"url":{"type":"string","title":"Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"events":{"items":{"type":"string"},"type":"array","title":"Events","description":"Subscribed event types (every type when all are subscribed)"},"status":{"type":"string","enum":["active","disabled","auto_disabled"],"title":"Status"},"disabled_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disabled Reason"},"environment":{"type":"string","title":"Environment"},"failure_count":{"type":"integer","title":"Failure Count"},"failing_since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Failing Since"},"last_success_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Success At"},"last_failure_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Failure At"},"secret_rotation_overlap_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Secret Rotation Overlap Until"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"secret":{"type":"string","title":"Secret","description":"`whsec_…` signing secret — shown once; store it in your secret store"}},"type":"object","required":["id","url","events","status","environment","failure_count","created_at","secret"],"title":"WebhookEndpointCreated"},"WebhookEndpointList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WebhookEndpointOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["data"],"title":"WebhookEndpointList"},"WebhookEndpointOut":{"properties":{"id":{"type":"string","title":"Id"},"url":{"type":"string","title":"Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"events":{"items":{"type":"string"},"type":"array","title":"Events","description":"Subscribed event types (every type when all are subscribed)"},"status":{"type":"string","enum":["active","disabled","auto_disabled"],"title":"Status"},"disabled_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disabled Reason"},"environment":{"type":"string","title":"Environment"},"failure_count":{"type":"integer","title":"Failure Count"},"failing_since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Failing Since"},"last_success_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Success At"},"last_failure_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Failure At"},"secret_rotation_overlap_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Secret Rotation Overlap Until"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","url","events","status","environment","failure_count","created_at"],"title":"WebhookEndpointOut"},"WebhookEndpointPatch":{"properties":{"url":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Url"},"events":{"anyOf":[{"items":{"type":"string","enum":["assessment.completed","assessment.action_required","assessment.updated","assessment.failed","report.ready","case.erased","quota.threshold_reached"]},"type":"array"},{"type":"null"}],"title":"Events"},"description":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Description"},"status":{"anyOf":[{"type":"string","enum":["active","disabled"]},{"type":"null"}],"title":"Status","description":"`active` re-enables a disabled or auto-disabled endpoint"}},"additionalProperties":false,"type":"object","title":"WebhookEndpointPatch"},"WebhookEventList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WebhookEventOut"},"type":"array","title":"Data"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["data"],"title":"WebhookEventList"},"WebhookEventOut":{"properties":{"id":{"type":"string","title":"Id","description":"`evt_…`; the same value as the `WALT-Event-Id` header"},"type":{"type":"string","title":"Type"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"environment":{"type":"string","title":"Environment"},"data":{"additionalProperties":true,"type":"object","title":"Data"}},"type":"object","required":["id","type","created_at","environment","data"],"title":"WebhookEventOut"},"WebhookSecretRotated":{"properties":{"id":{"type":"string","title":"Id"},"secret":{"type":"string","title":"Secret","description":"The new `whsec_…` secret — shown once"},"previous_secret_expires_at":{"type":"string","format":"date-time","title":"Previous Secret Expires At","description":"Until then deliveries carry both signatures"}},"type":"object","required":["id","secret","previous_secret_expires_at"],"title":"WebhookSecretRotated"},"Problem":{"type":"object","title":"Problem","description":"RFC 9457 problem details. Branch on `code`, never on `title` or `detail`.","required":["type","title","status","code","detail"],"properties":{"type":{"type":"string","format":"uri","example":"https://www.underwritinguk.ai/developers/errors/not_found"},"title":{"type":"string","example":"Resource not found"},"status":{"type":"integer","example":404},"code":{"type":"string","enum":["acting_user_not_allowed","acting_user_not_found","assessment_cooldown","assessment_in_progress","bad_request","case_closed","case_exists","case_incomplete","case_locked","case_type_locked","concurrency_limited","conflict","forbidden","idempotency_conflict","idempotency_in_progress","idempotency_key_required","idempotency_result_unavailable","insufficient_scope","internal_error","invalid_client","invalid_json","invalid_scope","invalid_token","ip_not_allowed","maintenance","method_not_allowed","module_not_enabled","not_found","organisation_suspended","payload_too_large","precondition_failed","quota_exhausted","rate_limited","service_unavailable","token_expired","unsupported_media_type","validation_failed"],"example":"not_found"},"detail":{"type":"string","example":"Case not found."},"request_id":{"type":["string","null"],"example":"7b0b1e5c-2f7e-4a52-9a43-5b0d0f0e9d11"}},"additionalProperties":true},"ProblemFieldError":{"type":"object","title":"ProblemFieldError","required":["pointer","code","message"],"properties":{"pointer":{"type":"string","description":"JSON pointer into the request body","example":"/individuals/0/date_of_birth"},"code":{"type":"string","example":"must_be_past"},"message":{"type":"string","example":"Date of birth must be in the past."}}},"ValidationProblem":{"allOf":[{"$ref":"#/components/schemas/Problem"},{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ProblemFieldError"}}}}],"title":"ValidationProblem","example":{"type":"https://www.underwritinguk.ai/developers/errors/validation_failed","title":"Request validation failed","status":422,"code":"validation_failed","detail":"2 fields are invalid.","request_id":"7b0b1e5c-2f7e-4a52-9a43-5b0d0f0e9d11","errors":[{"pointer":"/individuals/0/date_of_birth","code":"must_be_past","message":"Date of birth must be in the past."},{"pointer":"/properties/0/address/postcode","code":"invalid_uk_postcode","message":"Not a valid UK postcode."}]}},"AssessmentCompletedEvent":{"type":"object","required":["id","type","created_at","environment","data"],"properties":{"id":{"type":"string","description":"`evt_…`, the `WALT-Event-Id` header."},"type":{"type":"string","const":"assessment.completed"},"created_at":{"type":"string","format":"date-time"},"environment":{"type":"string","enum":["sandbox","production"]},"data":{"type":"object","required":["case_id","assessment_id","status"],"properties":{"case_id":{"type":"string","format":"uuid"},"case_external_ref":{"type":["string","null"],"description":"The case's `external_ref` (your CRM record id)."},"assessment_id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","awaiting_action","completed","failed","cancelled"]},"recommendation":{"type":["string","null"],"description":"The decision (null until the assessment has one)."},"decision_version":{"type":["integer","null"]},"is_final":{"type":["boolean","null"],"description":"false: provisional, a borrower must act (guide §10)."}}}}},"AssessmentActionRequiredEvent":{"type":"object","required":["id","type","created_at","environment","data"],"properties":{"id":{"type":"string","description":"`evt_…`, the `WALT-Event-Id` header."},"type":{"type":"string","const":"assessment.action_required"},"created_at":{"type":"string","format":"date-time"},"environment":{"type":"string","enum":["sandbox","production"]},"data":{"type":"object","required":["case_id","assessment_id","status"],"properties":{"case_id":{"type":"string","format":"uuid"},"case_external_ref":{"type":["string","null"],"description":"The case's `external_ref` (your CRM record id)."},"assessment_id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","awaiting_action","completed","failed","cancelled"]},"recommendation":{"type":["string","null"],"description":"The decision (null until the assessment has one)."},"decision_version":{"type":["integer","null"]},"is_final":{"type":["boolean","null"],"description":"false: provisional, a borrower must act (guide §10)."}}}}},"AssessmentUpdatedEvent":{"type":"object","required":["id","type","created_at","environment","data"],"properties":{"id":{"type":"string","description":"`evt_…`, the `WALT-Event-Id` header."},"type":{"type":"string","const":"assessment.updated"},"created_at":{"type":"string","format":"date-time"},"environment":{"type":"string","enum":["sandbox","production"]},"data":{"type":"object","required":["case_id","assessment_id","status"],"properties":{"case_id":{"type":"string","format":"uuid"},"case_external_ref":{"type":["string","null"],"description":"The case's `external_ref` (your CRM record id)."},"assessment_id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","awaiting_action","completed","failed","cancelled"]},"recommendation":{"type":["string","null"],"description":"The decision (null until the assessment has one)."},"decision_version":{"type":["integer","null"]},"is_final":{"type":["boolean","null"],"description":"false: provisional, a borrower must act (guide §10)."}}}}},"AssessmentFailedEvent":{"type":"object","required":["id","type","created_at","environment","data"],"properties":{"id":{"type":"string","description":"`evt_…`, the `WALT-Event-Id` header."},"type":{"type":"string","const":"assessment.failed"},"created_at":{"type":"string","format":"date-time"},"environment":{"type":"string","enum":["sandbox","production"]},"data":{"type":"object","required":["case_id","assessment_id","status"],"properties":{"case_id":{"type":"string","format":"uuid"},"case_external_ref":{"type":["string","null"],"description":"The case's `external_ref` (your CRM record id)."},"assessment_id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","awaiting_action","completed","failed","cancelled"]},"recommendation":{"type":["string","null"],"description":"The decision (null until the assessment has one)."},"decision_version":{"type":["integer","null"]},"is_final":{"type":["boolean","null"],"description":"false: provisional, a borrower must act (guide §10)."}}}}},"ReportReadyEvent":{"type":"object","required":["id","type","created_at","environment","data"],"properties":{"id":{"type":"string","description":"`evt_…`, the `WALT-Event-Id` header."},"type":{"type":"string","const":"report.ready"},"created_at":{"type":"string","format":"date-time"},"environment":{"type":"string","enum":["sandbox","production"]},"data":{"type":"object","required":["case_id","assessment_id","decision_version","report"],"properties":{"case_id":{"type":"string","format":"uuid"},"case_external_ref":{"type":["string","null"],"description":"The case's `external_ref` (your CRM record id)."},"assessment_id":{"type":"string","format":"uuid"},"decision_version":{"type":"integer"},"report":{"type":"string","example":"/v1/assessments/{assessment_id}/report","description":"GET it with `reports:read` and `pii:read`."}}}}},"CaseErasedEvent":{"type":"object","required":["id","type","created_at","environment","data"],"properties":{"id":{"type":"string","description":"`evt_…`, the `WALT-Event-Id` header."},"type":{"type":"string","const":"case.erased"},"created_at":{"type":"string","format":"date-time"},"environment":{"type":"string","enum":["sandbox","production"]},"data":{"type":"object","required":["case_id","reason"],"properties":{"case_id":{"type":"string","format":"uuid"},"case_external_ref":{"type":["string","null"],"description":"The case's `external_ref` (your CRM record id)."},"reason":{"type":"string","enum":["erasure_request","retention"]}}}}},"QuotaThresholdReachedEvent":{"type":"object","required":["id","type","created_at","environment","data"],"properties":{"id":{"type":"string","description":"`evt_…`, the `WALT-Event-Id` header."},"type":{"type":"string","const":"quota.threshold_reached"},"created_at":{"type":"string","format":"date-time"},"environment":{"type":"string","enum":["sandbox","production"]},"data":{"type":"object","required":["module","threshold_percent","used","included"],"properties":{"module":{"type":"string"},"threshold_percent":{"type":"integer","enum":[80,100]},"used":{"type":"integer"},"included":{"type":"integer"},"period_start":{"type":["string","null"]}}}}},"PingEvent":{"type":"object","required":["id","type","created_at","environment","data"],"properties":{"id":{"type":"string","description":"`evt_…`, the `WALT-Event-Id` header."},"type":{"type":"string","const":"ping"},"created_at":{"type":"string","format":"date-time"},"environment":{"type":"string","enum":["sandbox","production"]},"data":{"type":"object","required":["endpoint_id","message"],"properties":{"endpoint_id":{"type":"string","format":"uuid"},"message":{"type":"string"}}}}}},"securitySchemes":{"oauth2":{"type":"oauth2","description":"OAuth 2.0 client credentials (RFC 6749 §4.4). Tokens last 15 minutes; cache them.","flows":{"clientCredentials":{"tokenUrl":"/v1/oauth/token","scopes":{"cases:read":"Read cases, subjects and documents (personal data minimised, see pii:read)","cases:write":"Create and update cases, subjects, ownerships; close cases","documents:write":"Upload documents","assessments:write":"Request quotes, start and cancel assessments","assessments:read":"Read assessments, decisions and check results","reports:read":"Download PDF reports","account:read":"Read entitlements, quota and usage","lookups:read":"Address and UPRN lookup","webhooks:manage":"Manage your webhook endpoints","pii:read":"Read back write-only sensitive fields (passport number, bank details). Not granted by default.","act_as":"Attribute actions to a named underwriter (WALT-Acting-User). Not granted by default."}}}}},"responses":{"BadRequest":{"description":"`bad_request` / `invalid_json` / `idempotency_key_required`","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"Unauthorized":{"description":"`invalid_token` / `token_expired`: get a new token once and retry once.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"WWW-Authenticate":{"schema":{"type":"string"}}}},"Forbidden":{"description":"`insufficient_scope`, `module_not_enabled`, `ip_not_allowed`, `organisation_suspended`, `acting_user_not_allowed`. Do not retry.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"NotFound":{"description":"`not_found` — absent, erased, or not visible to this credential.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"Conflict":{"description":"`idempotency_conflict`, `idempotency_in_progress` and the operation's own conflicts.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"PreconditionFailed":{"description":"`precondition_failed`: the `If-Match` ETag is stale. Re-read, merge, retry.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"PayloadTooLarge":{"description":"`payload_too_large`","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"ValidationFailed":{"description":"`validation_failed`: every invalid field, with a JSON pointer.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ValidationProblem"}}}},"RateLimited":{"description":"`rate_limited`: wait `Retry-After` seconds.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}},"RateLimit-Limit":{"schema":{"type":"integer"},"description":"Requests allowed in the current window"},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in the current window"},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"Seconds until the window resets"}}},"InternalError":{"description":"`internal_error`: retry with backoff, quoting the `X-Request-ID`.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"tags":[{"name":"oauth","description":"Access tokens (OAuth 2.0 client credentials)."},{"name":"account","description":"Entitlements, quota and limits."},{"name":"catalog","description":"The checks WALT runs and the data they need."},{"name":"cases","description":"Loan applications, created with all their subjects in one call."},{"name":"parties","description":"Individuals, companies, properties and ownerships of a case."},{"name":"transcripts","description":"Call transcripts pushed server-to-server (v1.1), used by the borrower_call step. Untrusted text: sanitised, pseudonymised, never returned."},{"name":"documents","description":"Documents such as the RICS valuation report."},{"name":"lookups","description":"Address and UPRN lookup."},{"name":"assessments","description":"Quotes and assessments (runs of WALT's checks)."},{"name":"webhooks","description":"Signed webhook endpoints (HMAC-SHA256 `WALT-Signature`), test ping, secret rotation and the delivery log."},{"name":"events","description":"The event log of the last 7 days, for reconciliation."}],"webhooks":{"assessment.completed":{"post":{"summary":"assessment.completed","description":"An assessment completed with a final decision. Signed per guide §9.4; reply 2xx within 10 s, anything else is retried (1 min, 5 min, 30 min, 2 h, 6 h, 12 h, then daily for 3 days).","operationId":"webhookAssessmentCompleted","tags":["webhooks"],"parameters":[{"name":"WALT-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"`t=<unix>,v1=<hex>`: HMAC-SHA256 of `t.` + raw body with the endpoint's secret; during a secret rotation a second `v1` is signed with the previous secret."},{"name":"WALT-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The event id (`evt_…`). Delivery is at least once: de-duplicate on it."},{"name":"WALT-Event-Type","in":"header","required":true,"schema":{"type":"string"},"description":"The event type."},{"name":"WALT-Delivery-Id","in":"header","required":true,"schema":{"type":"string"},"description":"This delivery (one per event and endpoint)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentCompletedEvent"}}}},"responses":{"2XX":{"description":"Received."}},"security":[]}},"assessment.action_required":{"post":{"summary":"assessment.action_required","description":"An assessment has a provisional decision: a borrower must act. Signed per guide §9.4; reply 2xx within 10 s, anything else is retried (1 min, 5 min, 30 min, 2 h, 6 h, 12 h, then daily for 3 days).","operationId":"webhookAssessmentActionRequired","tags":["webhooks"],"parameters":[{"name":"WALT-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"`t=<unix>,v1=<hex>`: HMAC-SHA256 of `t.` + raw body with the endpoint's secret; during a secret rotation a second `v1` is signed with the previous secret."},{"name":"WALT-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The event id (`evt_…`). Delivery is at least once: de-duplicate on it."},{"name":"WALT-Event-Type","in":"header","required":true,"schema":{"type":"string"},"description":"The event type."},{"name":"WALT-Delivery-Id","in":"header","required":true,"schema":{"type":"string"},"description":"This delivery (one per event and endpoint)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentActionRequiredEvent"}}}},"responses":{"2XX":{"description":"Received."}},"security":[]}},"assessment.updated":{"post":{"summary":"assessment.updated","description":"An assessment has a new decision version (rerun, borrower step resolved, LTV basis switch). Signed per guide §9.4; reply 2xx within 10 s, anything else is retried (1 min, 5 min, 30 min, 2 h, 6 h, 12 h, then daily for 3 days).","operationId":"webhookAssessmentUpdated","tags":["webhooks"],"parameters":[{"name":"WALT-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"`t=<unix>,v1=<hex>`: HMAC-SHA256 of `t.` + raw body with the endpoint's secret; during a secret rotation a second `v1` is signed with the previous secret."},{"name":"WALT-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The event id (`evt_…`). Delivery is at least once: de-duplicate on it."},{"name":"WALT-Event-Type","in":"header","required":true,"schema":{"type":"string"},"description":"The event type."},{"name":"WALT-Delivery-Id","in":"header","required":true,"schema":{"type":"string"},"description":"This delivery (one per event and endpoint)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentUpdatedEvent"}}}},"responses":{"2XX":{"description":"Received."}},"security":[]}},"assessment.failed":{"post":{"summary":"assessment.failed","description":"An assessment failed or was cancelled (`data.status` tells which). Signed per guide §9.4; reply 2xx within 10 s, anything else is retried (1 min, 5 min, 30 min, 2 h, 6 h, 12 h, then daily for 3 days).","operationId":"webhookAssessmentFailed","tags":["webhooks"],"parameters":[{"name":"WALT-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"`t=<unix>,v1=<hex>`: HMAC-SHA256 of `t.` + raw body with the endpoint's secret; during a secret rotation a second `v1` is signed with the previous secret."},{"name":"WALT-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The event id (`evt_…`). Delivery is at least once: de-duplicate on it."},{"name":"WALT-Event-Type","in":"header","required":true,"schema":{"type":"string"},"description":"The event type."},{"name":"WALT-Delivery-Id","in":"header","required":true,"schema":{"type":"string"},"description":"This delivery (one per event and endpoint)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentFailedEvent"}}}},"responses":{"2XX":{"description":"Received."}},"security":[]}},"report.ready":{"post":{"summary":"report.ready","description":"The report of this decision version can be fetched from `data.report`. Fetching the report needs both `reports:read` and `pii:read`; a credential without either gets 403 `insufficient_scope`. Signed per guide §9.4; reply 2xx within 10 s, anything else is retried (1 min, 5 min, 30 min, 2 h, 6 h, 12 h, then daily for 3 days).","operationId":"webhookReportReady","tags":["webhooks"],"parameters":[{"name":"WALT-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"`t=<unix>,v1=<hex>`: HMAC-SHA256 of `t.` + raw body with the endpoint's secret; during a secret rotation a second `v1` is signed with the previous secret."},{"name":"WALT-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The event id (`evt_…`). Delivery is at least once: de-duplicate on it."},{"name":"WALT-Event-Type","in":"header","required":true,"schema":{"type":"string"},"description":"The event type."},{"name":"WALT-Delivery-Id","in":"header","required":true,"schema":{"type":"string"},"description":"This delivery (one per event and endpoint)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportReadyEvent"}}}},"responses":{"2XX":{"description":"Received."}},"security":[]}},"case.erased":{"post":{"summary":"case.erased","description":"A case was erased (erasure request or retention). Signed per guide §9.4; reply 2xx within 10 s, anything else is retried (1 min, 5 min, 30 min, 2 h, 6 h, 12 h, then daily for 3 days).","operationId":"webhookCaseErased","tags":["webhooks"],"parameters":[{"name":"WALT-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"`t=<unix>,v1=<hex>`: HMAC-SHA256 of `t.` + raw body with the endpoint's secret; during a secret rotation a second `v1` is signed with the previous secret."},{"name":"WALT-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The event id (`evt_…`). Delivery is at least once: de-duplicate on it."},{"name":"WALT-Event-Type","in":"header","required":true,"schema":{"type":"string"},"description":"The event type."},{"name":"WALT-Delivery-Id","in":"header","required":true,"schema":{"type":"string"},"description":"This delivery (one per event and endpoint)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseErasedEvent"}}}},"responses":{"2XX":{"description":"Received."}},"security":[]}},"quota.threshold_reached":{"post":{"summary":"quota.threshold_reached","description":"A module's monthly usage crossed 80 % or 100 % of its quota. Signed per guide §9.4; reply 2xx within 10 s, anything else is retried (1 min, 5 min, 30 min, 2 h, 6 h, 12 h, then daily for 3 days).","operationId":"webhookQuotaThresholdReached","tags":["webhooks"],"parameters":[{"name":"WALT-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"`t=<unix>,v1=<hex>`: HMAC-SHA256 of `t.` + raw body with the endpoint's secret; during a secret rotation a second `v1` is signed with the previous secret."},{"name":"WALT-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The event id (`evt_…`). Delivery is at least once: de-duplicate on it."},{"name":"WALT-Event-Type","in":"header","required":true,"schema":{"type":"string"},"description":"The event type."},{"name":"WALT-Delivery-Id","in":"header","required":true,"schema":{"type":"string"},"description":"This delivery (one per event and endpoint)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuotaThresholdReachedEvent"}}}},"responses":{"2XX":{"description":"Received."}},"security":[]}},"ping":{"post":{"summary":"ping","description":"A test sent by `POST /webhook-endpoints/{id}/test` (never retried). Signed per guide §9.4; reply 2xx within 10 s, anything else is retried (1 min, 5 min, 30 min, 2 h, 6 h, 12 h, then daily for 3 days).","operationId":"webhookPing","tags":["webhooks"],"parameters":[{"name":"WALT-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"`t=<unix>,v1=<hex>`: HMAC-SHA256 of `t.` + raw body with the endpoint's secret; during a secret rotation a second `v1` is signed with the previous secret."},{"name":"WALT-Event-Id","in":"header","required":true,"schema":{"type":"string"},"description":"The event id (`evt_…`). Delivery is at least once: de-duplicate on it."},{"name":"WALT-Event-Type","in":"header","required":true,"schema":{"type":"string"},"description":"The event type."},{"name":"WALT-Delivery-Id","in":"header","required":true,"schema":{"type":"string"},"description":"This delivery (one per event and endpoint)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PingEvent"}}}},"responses":{"2XX":{"description":"Received."}},"security":[]}}},"externalDocs":{"description":"Integration guide","url":"https://www.underwritinguk.ai/developers/guide/"}}