{"openapi":"3.1.0","info":{"title":"Partner","version":"1.0.0"},"paths":{"/partner/accounts":{"get":{"operationId":"accounts_List accounts","summary":"List accounts","description":"Returns a page of your firm's accounts.\n\nCapture `saturn_ref_id` from a row to use with the other account requests.","tags":["accounts"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Accounts_List_accounts_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"post":{"operationId":"accounts_Create account","summary":"Create account","description":"Creates an account. `name` is the only field; `type` is always INDIVIDUAL on create and becomes JOINT automatically once a second contact is assigned.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored — so a misunderstanding surfaces immediately instead of silently doing nothing.","tags":["accounts"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Accounts_Create_account_Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/accounts/{saturn_ref_id}":{"get":{"operationId":"accounts_Get account","summary":"Get account","description":"Returns one account by its `saturn_ref_id`.\n\nReturns 404 if no such account exists for your firm.","tags":["accounts"],"parameters":[{"name":"saturn_ref_id","in":"path","description":"The Saturn UUID for this resource, returned as saturn_ref_id by the corresponding list endpoint.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Accounts_Get_account_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"delete":{"operationId":"accounts_Delete account","summary":"Delete account","description":"Soft-deletes an account and unlinks its contacts. Nothing is ever hard-deleted. Deleting an already-deleted account returns 409 so you can tell it from a successful delete.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored — so a misunderstanding surfaces immediately instead of silently doing nothing.","tags":["accounts"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Accounts_Delete_account_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"patch":{"operationId":"accounts_Update account","summary":"Update account","description":"Renames an account. A ref belonging to another firm returns 404, never 403.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored — so a misunderstanding surfaces immediately instead of silently doing nothing.","tags":["accounts"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Accounts_Update_account_Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/accounts/{saturn_ref_id}/contacts":{"post":{"operationId":"accounts_Assign contacts to account","summary":"Assign contacts to account","description":"Attaches one or more contacts to an account (max 50 per call). Every ref in the body is resolved within your firm, so a ref you do not own fails the whole request rather than being partially applied. After assigning, an account with more than one contact becomes JOINT. Re-assigning an already-attached contact returns 409.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored — so a misunderstanding surfaces immediately instead of silently doing nothing.","tags":["accounts"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Accounts_Assign_contacts_to_account_Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"contact_refs":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["contact_refs"]}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/accounts/{saturn_ref_id}/contacts/{contact_ref}":{"delete":{"operationId":"accounts_Unassign contact from account","summary":"Unassign contact from account","description":"Detaches a contact. The link is soft-deleted, and the account type is re-derived — dropping back to one contact returns it to INDIVIDUAL.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored — so a misunderstanding surfaces immediately instead of silently doing nothing.","tags":["accounts"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"contact_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Accounts_Unassign_contact_from_account_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/contacts":{"get":{"operationId":"contacts_List contacts","summary":"List contacts","description":"Returns a page of your firm's contacts.","tags":["contacts"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contacts_List_contacts_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"post":{"operationId":"contacts_Create contact","summary":"Create contact","description":"Creates a contact. `first_name`, `last_name`, `email` and `gender` are required. Names are title-cased (names already carrying capitals, like McDonald or O'Brien, are preserved as sent), email is lower-cased, and `ni_number` must match the UK format e.g. QQ123456C.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored — so a misunderstanding surfaces immediately instead of silently doing nothing.","tags":["contacts"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contacts_Create_contact_Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"gender":{"type":"string"},"last_name":{"type":"string"},"ni_number":{"type":"string"},"first_name":{"type":"string"},"middle_name":{"description":"Any type"},"phone_number":{"type":"string"}},"required":["email","gender","last_name","ni_number","first_name","phone_number"]}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/contacts/{saturn_ref_id}":{"get":{"operationId":"contacts_Get contact","summary":"Get contact","description":"Returns one contact by its `saturn_ref_id`.\n\nOptional fields (`middle_name`, `phone_number`, `ni_number`, `gender`) are `null` when not recorded.","tags":["contacts"],"parameters":[{"name":"saturn_ref_id","in":"path","description":"The Saturn UUID for this resource, returned as saturn_ref_id by the corresponding list endpoint.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contacts_Get_contact_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"delete":{"operationId":"contacts_Delete contact","summary":"Delete contact","description":"Soft-deletes a contact, unlinks it from every account, and re-derives those accounts' types. Nothing is ever hard-deleted. Deleting an already-deleted contact returns 409.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored — so a misunderstanding surfaces immediately instead of silently doing nothing.","tags":["contacts"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contacts_Delete_contact_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"patch":{"operationId":"contacts_Update contact","summary":"Update contact","description":"Partial update. Only the fields you send are changed — omitting a field leaves it alone, while sending an empty string clears it. An empty body returns 400.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored — so a misunderstanding surfaces immediately instead of silently doing nothing.","tags":["contacts"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contacts_Update_contact_Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"first_name":{"type":"string"}},"required":["first_name"]}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/employees":{"get":{"operationId":"employees_List employees","summary":"List employees","description":"Returns a page of your firm's employees.","tags":["employees"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_List_employees_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"post":{"operationId":"employees_Create employee","summary":"Create employee","description":"Creates an employee. `email`, `first_name` and `last_name` are required; `role` defaults to ADVISOR and accepts ADVISOR, DIRECTOR, SUPPORT or \"CLIENT MANAGER\" (note the space). COMPLIANCE and ADMIN cannot be set through this API.\n\n**No password is accepted.** The employee receives their login through Saturn's invite flow — this endpoint never handles a credential, and sending a `password` field returns 400.\n\nEmail must be unique across all of Saturn, not just your organisation: it doubles as the login identifier. A duplicate returns 409.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored — so a misunderstanding surfaces immediately instead of silently doing nothing.","tags":["employees"],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Create_employee_Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string"},"email":{"type":"string","format":"email"},"gender":{"type":"string"},"last_name":{"type":"string"},"fca_number":{"type":"string"},"first_name":{"type":"string"}},"required":["role","email","gender","last_name","fca_number","first_name"]}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/employees/{saturn_ref_id}":{"get":{"operationId":"employees_Get employee","summary":"Get employee","description":"Returns one employee by its `saturn_ref_id`.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","description":"The Saturn UUID for this resource, returned as saturn_ref_id by the corresponding list endpoint.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Get_employee_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"delete":{"operationId":"employees_Delete employee","summary":"Delete employee","description":"Soft-deletes an employee, deactivates their login, and clears their support and client-manager assignments. Nothing is ever hard-deleted, and the login is deactivated rather than removed.\n\nDeleting an already-deleted employee returns 409 so you can tell it from a successful delete.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored — so a misunderstanding surfaces immediately instead of silently doing nothing.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Delete_employee_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"patch":{"operationId":"employees_Update employee","summary":"Update employee","description":"Partial update of `first_name`, `last_name`, `role`, `gender` or `fca_number`. Only the fields you send are changed.\n\n`email` cannot be changed here — it is the login identifier, so changing it is an identity change rather than a profile edit.\n\n**Role changes are restricted.** Moving an employee out of SUPPORT or \"CLIENT MANAGER\" while they still hold active assignments returns **422**: the assignments would be left pointing at someone who can no longer act on them. Remove the assignments first, then change the role.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored — so a misunderstanding surfaces immediately instead of silently doing nothing.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Update_employee_Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string"}},"required":["role"]}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/employees/{saturn_ref_id}/support-assignments":{"post":{"operationId":"employees_Assign advisors (support)","summary":"Assign advisors (support)","description":"Attaches advisors to a SUPPORT employee (max 50 per call).\n\n**Each ref is reported individually.** The response gives a `results` array with a `status` of `created` or `failed` per ref, plus `created` and `failed` counts — one bad ref does not discard the valid ones. A batch where nothing was created returns 200 rather than 201.\n\nPer-ref failure codes: `NOT_FOUND` (unknown advisor, or one belonging to another organisation), `UNPROCESSABLE` (not an ADVISOR or DIRECTOR), `CONFLICT` (already assigned), `BAD_REQUEST` (repeated ref).\n\nThe target employee must hold the SUPPORT role, or the whole call returns **422**.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Assign_advisors__support__Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"advisor_refs":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["advisor_refs"]}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/employees/{saturn_ref_id}/client-manager-assignments":{"get":{"operationId":"employees_Get client manager assignments","summary":"Get client manager assignments","description":"Returns the client-manager assignments for this employee.\n\nBoth scopes are returned, and `effective_scope` says which governs:\n\n- `FIRM_WIDE` — a firm-wide assignment exists and takes precedence\n- `PER_ADVISOR` — only per-adviser assignments exist\n- `NONE` — this employee has no active assignments\n\nPer-adviser rows are returned even when a firm-wide assignment is in effect, so you can see the full picture rather than inferring it.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","description":"The Saturn UUID for this resource, returned as saturn_ref_id by the corresponding list endpoint.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Get_client_manager_assignments_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"post":{"operationId":"employees_Assign advisors (client manager)","summary":"Assign advisors (client manager)","description":"Attaches advisors to a CLIENT MANAGER employee (max 50 per call).\n\n**Each ref is reported individually.** The response gives a `results` array with a `status` of `created` or `failed` per ref, plus `created` and `failed` counts — one bad ref does not discard the valid ones. A batch where nothing was created returns 200 rather than 201.\n\nPer-ref failure codes: `NOT_FOUND` (unknown advisor, or one belonging to another organisation), `UNPROCESSABLE` (not an ADVISOR or DIRECTOR), `CONFLICT` (already assigned), `BAD_REQUEST` (repeated ref).\n\nThe target employee must hold the CLIENT MANAGER role, or the whole call returns **422**.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Assign_advisors__client_manager__Response_200"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"advisor_refs":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["advisor_refs"]}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/employees/{saturn_ref_id}/support-assignments/firm-wide":{"put":{"operationId":"employees_Set firm-wide (support)","summary":"Set firm-wide (support)","description":"Sets a firm-wide assignment, covering every advisor instead of a named list. The employee must hold the SUPPORT role (422 otherwise). Repeating the same request is idempotent and returns 200.\n\nSend no request body. Your organisation is derived from your API key.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Set_firm-wide__support__Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"delete":{"operationId":"employees_Clear firm-wide (support)","summary":"Clear firm-wide (support)","description":"Removes the firm-wide assignment. Soft-deleted, never removed. Returns 404 when there was no active firm-wide assignment.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Clear_firm-wide__support__Response_200"}}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/employees/{saturn_ref_id}/support-assignments/{advisor_ref}":{"delete":{"operationId":"employees_Unassign advisor (support)","summary":"Unassign advisor (support)","description":"Detaches one advisor. The assignment is soft-deleted, never removed. Returns 404 when there was no active assignment to remove.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"advisor_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Unassign_advisor__support__Response_200"}}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/employees/{saturn_ref_id}/client-manager-assignments/firm-wide":{"put":{"operationId":"employees_Set firm-wide (client manager)","summary":"Set firm-wide (client manager)","description":"Sets a firm-wide assignment, covering every advisor instead of a named list. The employee must hold the CLIENT MANAGER role (422 otherwise). Repeating the same request is idempotent and returns 200.\n\nSend no request body. Your organisation is derived from your API key.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Set_firm-wide__client_manager__Response_200"}}}}},"security":[{"apiKeyAuth":[]}]},"delete":{"operationId":"employees_Clear firm-wide (client manager)","summary":"Clear firm-wide (client manager)","description":"Removes the firm-wide assignment. Soft-deleted, never removed. Returns 404 when there was no active firm-wide assignment.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Clear_firm-wide__client_manager__Response_200"}}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/employees/{saturn_ref_id}/client-manager-assignments/{advisor_ref}":{"delete":{"operationId":"employees_Unassign advisor (client manager)","summary":"Unassign advisor (client manager)","description":"Detaches one advisor. The assignment is soft-deleted, never removed. Returns 404 when there was no active assignment to remove.\n\nYour organisation is derived from your API key. There is no field for naming an organisation or a CRM, and any unrecognised field in the body returns 400 rather than being ignored.","tags":["employees"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"advisor_ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employees_Unassign_advisor__client_manager__Response_200"}}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/meeting_notes":{"get":{"operationId":"meetingNotes_List meeting notes","summary":"List meeting notes","description":"Returns a page of your firm's meeting notes (metadata only).","tags":["meetingNotes"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Meeting_notes_List_meeting_notes_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/meeting_notes/{saturn_ref_id}":{"get":{"operationId":"meetingNotes_Get meeting note","summary":"Get meeting note","description":"Returns one meeting note's metadata by its `saturn_ref_id`.\n\n`status` is one of PENDING, PROCESSING, COMPLETED, FAILED. A fact find is only available once the note reaches COMPLETED.","tags":["meetingNotes"],"parameters":[{"name":"saturn_ref_id","in":"path","description":"The Saturn UUID for this resource, returned as saturn_ref_id by the corresponding list endpoint.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Meeting_notes_Get_meeting_note_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/meeting_notes/{saturn_ref_id}/artifacts":{"get":{"operationId":"meetingNotes_Get Meeting Artifacts","summary":"Get Meeting Artifacts","tags":["meetingNotes"],"parameters":[{"name":"saturn_ref_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Meeting_notes_Get_Meeting_Artifacts_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/meeting_notes/{saturn_ref_id}/fact_find":{"get":{"operationId":"meetingNotes_Get fact find","summary":"Get fact find","description":"Returns the fact tables extracted from this meeting note.\n\n`data.data` is an array of tables. `entity_name` identifies the financial category, such as `assets` or `incomes`. Each row has its extraction `id`, an optional `mapped_entity_id` when linked to an existing Saturn record, and a `data` object containing the extracted fields. Field names vary by category, and all field values are strings.\n\nA 404 means either the note does not belong to your firm or no fact find has been extracted yet. A 502 means a Saturn service is temporarily unavailable. Retry a 502 rather than treating the fact find as absent.","tags":["meetingNotes"],"parameters":[{"name":"saturn_ref_id","in":"path","description":"The Saturn UUID for this resource, returned as saturn_ref_id by the corresponding list endpoint.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Meeting_notes_Get_fact_find_Response_200"}}}}},"security":[{"apiKeyAuth":[]}]}},"/partner/webhooks":{"post":{"operationId":"webhooks_Register a webhook","summary":"Register a webhook","description":"Subscribes one of your endpoints to a Saturn event.\n\n`event_name` uses lower snake_case in `resource.action` format, for example `fact_find.created`.\n\n## Endpoint verification\n\nSaturn immediately sends this signed request to your endpoint before storing the subscription:\n\n```\nPOST <your endpoint>\nContent-Type: application/json\nX-Saturn-Signature: <hex HMAC-SHA256 of the body>\n{\"message\": \"Register Webhook\", \"event_name\": \"fact_find.created\"}\n\n ```\n\nYour endpoint must return 200 or 201 within 2 seconds. Any other status, a timeout, or an unreachable host returns 422 and stores nothing.\n\n## Signature verification\n\n`X-Saturn-Signature` is the hex-encoded HMAC-SHA256 of the raw request body under your `signing_secret`. Recompute it over the bytes received and use a constant-time comparison. Saturn never sends or returns the secret, so keep your own copy.\n\n## Rules\n\n- `endpoint` must be an HTTPS URL on a publicly reachable host.\n    \n- Registering the same event on different endpoints is allowed.\n    \n- Registering the same event on the same endpoint twice returns 409.\n    \n- Saturn identifies your firm from the API key.","tags":["webhooks"],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhooks_Register_a_webhook_Response_201"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string","format":"uri"},"event_name":{"type":"string"},"signing_secret":{"type":"string"}},"required":["endpoint","event_name","signing_secret"]}}}},"security":[{"apiKeyAuth":[]}]}}},"tags":[{"name":"accounts"},{"name":"contacts"},{"name":"employees"},{"name":"meetingNotes"},{"name":"webhooks"}],"servers":[{"url":"https://<provided-by-saturn>","description":"https://<provided-by-saturn>"}],"components":{"schemas":{"PartnerAccountsGetResponsesContentApplicationJsonSchemaDataItems":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"saturn_ref_id":{"type":"string","format":"uuid"}},"required":["name","type","created_at","updated_at","saturn_ref_id"],"title":"PartnerAccountsGetResponsesContentApplicationJsonSchemaDataItems"},"PartnerAccountsGetResponsesContentApplicationJsonSchemaMetaPagination":{"type":"object","properties":{"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["count","limit","offset"],"title":"PartnerAccountsGetResponsesContentApplicationJsonSchemaMetaPagination"},"PartnerAccountsGetResponsesContentApplicationJsonSchemaMeta":{"type":"object","properties":{"pagination":{"$ref":"#/components/schemas/PartnerAccountsGetResponsesContentApplicationJsonSchemaMetaPagination"}},"required":["pagination"],"title":"PartnerAccountsGetResponsesContentApplicationJsonSchemaMeta"},"Accounts_List_accounts_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerAccountsGetResponsesContentApplicationJsonSchemaDataItems"}},"meta":{"$ref":"#/components/schemas/PartnerAccountsGetResponsesContentApplicationJsonSchemaMeta"},"error":{"description":"Any type"},"success":{"type":"boolean"}},"required":["data","meta","success"],"title":"Accounts_List accounts_Response_200"},"Accounts_Create_account_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Accounts_Create account_Response_200"},"PartnerAccountsSaturnRefIdGetResponsesContentApplicationJsonSchemaData":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"saturn_ref_id":{"type":"string","format":"uuid"}},"required":["name","type","created_at","updated_at","saturn_ref_id"],"title":"PartnerAccountsSaturnRefIdGetResponsesContentApplicationJsonSchemaData"},"PartnerAccountsSaturnRefIdGetResponsesContentApplicationJsonSchemaError":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"title":"PartnerAccountsSaturnRefIdGetResponsesContentApplicationJsonSchemaError"},"Accounts_Get_account_Response_200":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PartnerAccountsSaturnRefIdGetResponsesContentApplicationJsonSchemaData"},"error":{"$ref":"#/components/schemas/PartnerAccountsSaturnRefIdGetResponsesContentApplicationJsonSchemaError"},"success":{"type":"boolean"}},"required":["data","error","success"],"title":"Accounts_Get account_Response_200"},"Accounts_Delete_account_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Accounts_Delete account_Response_200"},"Accounts_Update_account_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Accounts_Update account_Response_200"},"Accounts_Assign_contacts_to_account_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Accounts_Assign contacts to account_Response_200"},"Accounts_Unassign_contact_from_account_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Accounts_Unassign contact from account_Response_200"},"PartnerContactsGetResponsesContentApplicationJsonSchemaDataItems":{"type":"object","properties":{"email":{"type":"string","format":"email"},"gender":{"description":"Any type"},"last_name":{"type":"string"},"ni_number":{"description":"Any type"},"created_at":{"type":"string","format":"date-time"},"first_name":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"middle_name":{"description":"Any type"},"phone_number":{"type":"string"},"saturn_ref_id":{"type":"string","format":"uuid"}},"required":["email","last_name","created_at","first_name","updated_at","phone_number","saturn_ref_id"],"title":"PartnerContactsGetResponsesContentApplicationJsonSchemaDataItems"},"PartnerContactsGetResponsesContentApplicationJsonSchemaMetaPagination":{"type":"object","properties":{"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["count","limit","offset"],"title":"PartnerContactsGetResponsesContentApplicationJsonSchemaMetaPagination"},"PartnerContactsGetResponsesContentApplicationJsonSchemaMeta":{"type":"object","properties":{"pagination":{"$ref":"#/components/schemas/PartnerContactsGetResponsesContentApplicationJsonSchemaMetaPagination"}},"required":["pagination"],"title":"PartnerContactsGetResponsesContentApplicationJsonSchemaMeta"},"Contacts_List_contacts_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerContactsGetResponsesContentApplicationJsonSchemaDataItems"}},"meta":{"$ref":"#/components/schemas/PartnerContactsGetResponsesContentApplicationJsonSchemaMeta"},"error":{"description":"Any type"},"success":{"type":"boolean"}},"required":["data","meta","success"],"title":"Contacts_List contacts_Response_200"},"Contacts_Create_contact_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Contacts_Create contact_Response_200"},"PartnerContactsSaturnRefIdGetResponsesContentApplicationJsonSchemaData":{"type":"object","properties":{"email":{"type":"string","format":"email"},"gender":{"description":"Any type"},"last_name":{"type":"string"},"ni_number":{"description":"Any type"},"created_at":{"type":"string","format":"date-time"},"first_name":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"middle_name":{"description":"Any type"},"phone_number":{"description":"Any type"},"saturn_ref_id":{"type":"string","format":"uuid"}},"required":["email","last_name","created_at","first_name","updated_at","saturn_ref_id"],"title":"PartnerContactsSaturnRefIdGetResponsesContentApplicationJsonSchemaData"},"PartnerContactsSaturnRefIdGetResponsesContentApplicationJsonSchemaError":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"title":"PartnerContactsSaturnRefIdGetResponsesContentApplicationJsonSchemaError"},"Contacts_Get_contact_Response_200":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PartnerContactsSaturnRefIdGetResponsesContentApplicationJsonSchemaData"},"error":{"$ref":"#/components/schemas/PartnerContactsSaturnRefIdGetResponsesContentApplicationJsonSchemaError"},"success":{"type":"boolean"}},"required":["data","error","success"],"title":"Contacts_Get contact_Response_200"},"Contacts_Delete_contact_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Contacts_Delete contact_Response_200"},"Contacts_Update_contact_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Contacts_Update contact_Response_200"},"PartnerEmployeesGetResponsesContentApplicationJsonSchemaDataItems":{"type":"object","properties":{"role":{"type":"string"},"email":{"type":"string","format":"email"},"gender":{"type":"string"},"last_name":{"type":"string"},"fca_number":{"description":"Any type"},"first_name":{"type":"string"},"saturn_ref_id":{"type":"string","format":"uuid"}},"required":["role","email","gender","last_name","first_name","saturn_ref_id"],"title":"PartnerEmployeesGetResponsesContentApplicationJsonSchemaDataItems"},"PartnerEmployeesGetResponsesContentApplicationJsonSchemaMetaPagination":{"type":"object","properties":{"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["count","limit","offset"],"title":"PartnerEmployeesGetResponsesContentApplicationJsonSchemaMetaPagination"},"PartnerEmployeesGetResponsesContentApplicationJsonSchemaMeta":{"type":"object","properties":{"pagination":{"$ref":"#/components/schemas/PartnerEmployeesGetResponsesContentApplicationJsonSchemaMetaPagination"}},"required":["pagination"],"title":"PartnerEmployeesGetResponsesContentApplicationJsonSchemaMeta"},"Employees_List_employees_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerEmployeesGetResponsesContentApplicationJsonSchemaDataItems"}},"meta":{"$ref":"#/components/schemas/PartnerEmployeesGetResponsesContentApplicationJsonSchemaMeta"},"error":{"description":"Any type"},"success":{"type":"boolean"}},"required":["data","meta","success"],"title":"Employees_List employees_Response_200"},"Employees_Create_employee_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Employees_Create employee_Response_200"},"PartnerEmployeesSaturnRefIdGetResponsesContentApplicationJsonSchemaData":{"type":"object","properties":{"role":{"type":"string"},"email":{"type":"string","format":"email"},"gender":{"type":"string"},"last_name":{"type":"string"},"fca_number":{"description":"Any type"},"first_name":{"type":"string"},"saturn_ref_id":{"type":"string","format":"uuid"}},"required":["role","email","gender","last_name","first_name","saturn_ref_id"],"title":"PartnerEmployeesSaturnRefIdGetResponsesContentApplicationJsonSchemaData"},"PartnerEmployeesSaturnRefIdGetResponsesContentApplicationJsonSchemaError":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"title":"PartnerEmployeesSaturnRefIdGetResponsesContentApplicationJsonSchemaError"},"Employees_Get_employee_Response_200":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PartnerEmployeesSaturnRefIdGetResponsesContentApplicationJsonSchemaData"},"error":{"$ref":"#/components/schemas/PartnerEmployeesSaturnRefIdGetResponsesContentApplicationJsonSchemaError"},"success":{"type":"boolean"}},"required":["data","error","success"],"title":"Employees_Get employee_Response_200"},"Employees_Delete_employee_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Employees_Delete employee_Response_200"},"Employees_Update_employee_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Employees_Update employee_Response_200"},"Employees_Assign_advisors__support__Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Employees_Assign advisors (support)_Response_200"},"PartnerEmployeesSaturnRefIdClientManagerAssignmentsGetResponsesContentApplicationJsonSchemaData":{"type":"object","properties":{"firm_wide":{"description":"Any type"},"effective_scope":{"type":"string"},"advisor_assignments":{"type":"array","items":{"description":"Any type"}}},"required":["effective_scope","advisor_assignments"],"title":"PartnerEmployeesSaturnRefIdClientManagerAssignmentsGetResponsesContentApplicationJsonSchemaData"},"PartnerEmployeesSaturnRefIdClientManagerAssignmentsGetResponsesContentApplicationJsonSchemaError":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"title":"PartnerEmployeesSaturnRefIdClientManagerAssignmentsGetResponsesContentApplicationJsonSchemaError"},"Employees_Get_client_manager_assignments_Response_200":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PartnerEmployeesSaturnRefIdClientManagerAssignmentsGetResponsesContentApplicationJsonSchemaData"},"error":{"$ref":"#/components/schemas/PartnerEmployeesSaturnRefIdClientManagerAssignmentsGetResponsesContentApplicationJsonSchemaError"},"success":{"type":"boolean"}},"required":["data","error","success"],"title":"Employees_Get client manager assignments_Response_200"},"Employees_Assign_advisors__client_manager__Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Employees_Assign advisors (client manager)_Response_200"},"Employees_Set_firm-wide__support__Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Employees_Set firm-wide (support)_Response_200"},"Employees_Clear_firm-wide__support__Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Employees_Clear firm-wide (support)_Response_200"},"Employees_Unassign_advisor__support__Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Employees_Unassign advisor (support)_Response_200"},"Employees_Set_firm-wide__client_manager__Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Employees_Set firm-wide (client manager)_Response_200"},"Employees_Clear_firm-wide__client_manager__Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Employees_Clear firm-wide (client manager)_Response_200"},"Employees_Unassign_advisor__client_manager__Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"Employees_Unassign advisor (client manager)_Response_200"},"PartnerMeetingNotesGetResponsesContentApplicationJsonSchemaDataItems":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"end_date":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"start_date":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"saturn_ref_id":{"type":"string","format":"uuid"}},"required":["name","type","status","end_date","created_at","start_date","updated_at","saturn_ref_id"],"title":"PartnerMeetingNotesGetResponsesContentApplicationJsonSchemaDataItems"},"PartnerMeetingNotesGetResponsesContentApplicationJsonSchemaMetaPagination":{"type":"object","properties":{"count":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"}},"required":["count","limit","offset"],"title":"PartnerMeetingNotesGetResponsesContentApplicationJsonSchemaMetaPagination"},"PartnerMeetingNotesGetResponsesContentApplicationJsonSchemaMeta":{"type":"object","properties":{"pagination":{"$ref":"#/components/schemas/PartnerMeetingNotesGetResponsesContentApplicationJsonSchemaMetaPagination"}},"required":["pagination"],"title":"PartnerMeetingNotesGetResponsesContentApplicationJsonSchemaMeta"},"Meeting_notes_List_meeting_notes_Response_200":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerMeetingNotesGetResponsesContentApplicationJsonSchemaDataItems"}},"meta":{"$ref":"#/components/schemas/PartnerMeetingNotesGetResponsesContentApplicationJsonSchemaMeta"},"error":{"description":"Any type"},"success":{"type":"boolean"}},"required":["data","meta","success"],"title":"Meeting notes_List meeting notes_Response_200"},"PartnerMeetingNotesSaturnRefIdGetResponsesContentApplicationJsonSchemaData":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"end_date":{"description":"Any type"},"created_at":{"type":"string","format":"date-time"},"start_date":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"completed_at":{"type":"string","format":"date-time"},"saturn_ref_id":{"type":"string","format":"uuid"},"duration_seconds":{"type":"integer"}},"required":["name","type","status","created_at","start_date","updated_at","completed_at","saturn_ref_id","duration_seconds"],"title":"PartnerMeetingNotesSaturnRefIdGetResponsesContentApplicationJsonSchemaData"},"PartnerMeetingNotesSaturnRefIdGetResponsesContentApplicationJsonSchemaError":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"title":"PartnerMeetingNotesSaturnRefIdGetResponsesContentApplicationJsonSchemaError"},"Meeting_notes_Get_meeting_note_Response_200":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PartnerMeetingNotesSaturnRefIdGetResponsesContentApplicationJsonSchemaData"},"error":{"$ref":"#/components/schemas/PartnerMeetingNotesSaturnRefIdGetResponsesContentApplicationJsonSchemaError"},"success":{"type":"boolean"}},"required":["data","error","success"],"title":"Meeting notes_Get meeting note_Response_200"},"PartnerMeetingNotesSaturnRefIdArtifactsGetResponsesContentApplicationJsonSchemaData":{"type":"object","properties":{"file_url":{"type":"string","format":"uri"},"saturn_ref_id":{"type":"string","format":"uuid"},"transcript_url":{"type":"string","format":"uri"}},"required":["file_url","saturn_ref_id","transcript_url"],"title":"PartnerMeetingNotesSaturnRefIdArtifactsGetResponsesContentApplicationJsonSchemaData"},"PartnerMeetingNotesSaturnRefIdArtifactsGetResponsesContentApplicationJsonSchemaError":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"title":"PartnerMeetingNotesSaturnRefIdArtifactsGetResponsesContentApplicationJsonSchemaError"},"Meeting_notes_Get_Meeting_Artifacts_Response_200":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PartnerMeetingNotesSaturnRefIdArtifactsGetResponsesContentApplicationJsonSchemaData"},"error":{"$ref":"#/components/schemas/PartnerMeetingNotesSaturnRefIdArtifactsGetResponsesContentApplicationJsonSchemaError"},"success":{"type":"boolean"}},"required":["data","error","success"],"title":"Meeting notes_Get Meeting Artifacts_Response_200"},"PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaDataDataItemsRowsItemsData":{"type":"object","properties":{"name":{"type":"string"},"provider":{"type":"string"},"ownership":{"type":"string"},"current_value":{"type":"string"}},"required":["name","provider","ownership","current_value"],"title":"PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaDataDataItemsRowsItemsData"},"PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaDataDataItemsRowsItems":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"data":{"$ref":"#/components/schemas/PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaDataDataItemsRowsItemsData"},"mapped_entity_id":{"type":"string","format":"uuid"}},"required":["id","data","mapped_entity_id"],"title":"PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaDataDataItemsRowsItems"},"PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaDataDataItems":{"type":"object","properties":{"rows":{"type":"array","items":{"$ref":"#/components/schemas/PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaDataDataItemsRowsItems"}},"entity_name":{"type":"string"}},"required":["rows","entity_name"],"title":"PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaDataDataItems"},"PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaData":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaDataDataItems"}},"meeting_note_id":{"type":"string","format":"uuid"}},"required":["data","meeting_note_id"],"title":"PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaData"},"Meeting_notes_Get_fact_find_Response_200":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PartnerMeetingNotesSaturnRefIdFactFindGetResponsesContentApplicationJsonSchemaData"},"error":{"description":"Any type"},"success":{"type":"boolean"}},"required":["data","success"],"title":"Meeting notes_Get fact find_Response_200"},"PartnerWebhooksPostResponsesContentApplicationJsonSchemaData":{"type":"object","properties":{"endpoint":{"type":"string","format":"uri"},"is_active":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"saturn_ref_id":{"type":"string","format":"uuid"},"event_subscribed":{"type":"string"}},"required":["endpoint","is_active","created_at","saturn_ref_id","event_subscribed"],"title":"PartnerWebhooksPostResponsesContentApplicationJsonSchemaData"},"PartnerWebhooksPostResponsesContentApplicationJsonSchemaError":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"title":"PartnerWebhooksPostResponsesContentApplicationJsonSchemaError"},"Webhooks_Register_a_webhook_Response_201":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PartnerWebhooksPostResponsesContentApplicationJsonSchemaData"},"error":{"$ref":"#/components/schemas/PartnerWebhooksPostResponsesContentApplicationJsonSchemaError"},"success":{"type":"boolean"}},"required":["data","error","success"],"title":"Webhooks_Register a webhook_Response_201"}},"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization"}}}}