Solution Center 2.0 API

Comprehensive REST API Documentation - Auto-Generated from Code Comments

1199
Total Endpoints
98
API Groups
v2
API Version

Getting Started

Authentication

All API endpoints require authentication using a Bearer token obtained from the Solution Center Identity service.

Step 1: Obtain an Access Token

Make a POST request to the identity token endpoint:

POST {{IDENTITY_URL}}/connect/token
Content-Type: application/x-www-form-urlencoded

grant_type=password
&client_id=SolutionCenter
&scope=openid mapping offline_access SolutionCenter.api
&username=YOUR_USERNAME
&password=YOUR_PASSWORD
Step 2: Use the Access Token

Include the access token in the Authorization header of your API requests:

GET https://api.mysolutioncenter.com/v2/companies
Authorization: Bearer YOUR_ACCESS_TOKEN
companyId: YOUR_COMPANY_ID
Step 3: Refresh Your Token

Access tokens expire after 25 minutes (1500 seconds). Use your refresh token to obtain a new access token without re-entering credentials:

POST {{IDENTITY_URL}}/connect/token
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
&client_id=SolutionCenter
&refresh_token=YOUR_REFRESH_TOKEN
Required Scopes:
  • openid - OpenID Connect authentication
  • mapping - User-to-company mapping rights
  • offline_access - Refresh token for session renewal
  • SolutionCenter.api - Access to Solution Center API
Important: Most endpoints require a companyId header to scope requests to a specific company context.

Select an endpoint from the sidebar to view detailed information including parameters, responses, and code examples.

Last Updated: Jun 18, 2026 07:58:25 UTC Refresh

GET /v2/Advisor/CaseManagementConfigs

Get Case Management Configurations

Retrieves all active Case Management Configurations for the specified company. **Tags:**Advisor, Case Management, Configuration **Behavior:** - Manually maps`NeedType`names from AdvisorMaster. - Results are sorted by Need Type, Call Type, and Location.
Parameters
companyId (header) - The unique identifier of the company whose Case Management Configs should be retrieved.
Responses
200 - Successfully returns all configurations.
GET /v2/Advisor/CaseManagementConfig/{caseManagementConfigId}

Get a Specific Case Management Configuration

Retrieves a specific Case Management Configuration by its ID for the given company. **Tags:**Advisor, Case Management, Configuration
Parameters
companyId (header) - The company ID associated with the configuration.
caseManagementConfigId (path) * - The ID of the configuration to retrieve.
Responses
200 - Successfully returns the configuration details.
PUT /v2/Advisor/CaseManagementConfig/{caseManagementConfigId}

Update a Case Management Configuration

Updates an existing Case Management Configuration for the specified company and configuration ID. **Tags:**Advisor, Case Management, Configuration
Parameters
companyId (header) - The company ID associated with the configuration.
selectedFhIdForPermissionsCheck (header) - Optional Funeral Home ID for permission verification.
caseManagementConfigId (path) * - The ID of the configuration to update.
body (body) * - The updated configuration details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Configuration successfully updated.
DELETE /v2/Advisor/CaseManagementConfig/{caseManagementConfigId}

Delete a Case Management Configuration

Deletes an existing Case Management Configuration by its ID for the specified company. **Tags:**Advisor, Case Management, Configuration
Parameters
companyId (header) - The company ID associated with the configuration.
selectedFhIdForPermissionsCheck (header) - Optional Funeral Home ID for permission verification.
caseManagementConfigId (path) * - The ID of the configuration to delete.
Responses
200 - Configuration successfully deleted.
POST /v2/Advisor/CaseManagementConfig

Create a Case Management Configuration

Creates a new Case Management Configuration for a company. **Tags:**Advisor, Case Management, Configuration
Parameters
companyId (header) - The company ID for which the configuration is being created.
selectedFhIdForPermissionsCheck (header) - Optional Funeral Home ID for permission verification.
body (body) * - The configuration details to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Configuration successfully created.
GET /v2/Advisor/CaseManagementConfig/Call/{callId}

Get Case Management Configuration by Call

Retrieves the most applicable Case Management Configuration for a given call, based on company ID and call parameters. **Tags:**Advisor, Case Management, Configuration **Behavior:** - Attempts to find the most specific configuration match using precedence rules. - If no company configuration is found, falls back to the master configuration for the Need Type.
Parameters
companyId (header) - The company ID associated with the call.
callId (path) * - The call ID for which to retrieve the configuration.
Responses
200 - Successfully returns the matching configuration.
GET /v2/Advisor/RecentCases

Get Recent Cases

Retrieves a list of cases that have been created or modified within the last 12 months for the specified company. This endpoint provides a quick view of recently active cases to help users track current workload and recent activity. **Usage Notes:** - Cases are included if created or modified within the last 12 months. - Results are ordered by last modification date in descending order. - Each case includes decedent information, location, call type, and dates. - This endpoint is useful for dashboard views and recent activity tracking. **Tags:**Cases, Recent Activity, Case Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to filter cases belonging to this specific company.
Responses
200 - Successfully returns the list of recent cases for the specified company.
GET /v2/Advisor/CasesByDate

Get Cases by Date Range

Retrieves a filtered list of active cases within a specified date range for the current user. Cases are filtered by funeral home access, creation date, and modification date. This endpoint also includes queued cases if the user has appropriate permissions. **Usage Notes:** - Results are filtered by the user's assigned funeral homes unless they have elevated roles (Zeus, AuroraAdmin, CorporateManager). - Only active cases are returned; pre-need cases that have been converted are excluded. - If the user has CreateQueuedCase permission, queued cases are included in the results. - Both new queued cases (CallQueue) and legacy V1 queued cases are retrieved when applicable. - Results are ordered by last modification date in descending order. - Profile picture URLs and tracking location information are included when available. **Tags:**Cases, Date Range, Case Management, Queued Cases
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to filter cases belonging to this specific company.
startDate (query) - The start date of the date range (inclusive). Cases created or modified on or after this date will be included.
endDate (query) - The end date of the date range (inclusive). Cases created or modified on or before this date will be included.
Responses
200 - Successfully returns the list of cases within the date range for the user's authorized funeral homes.
GET /v2/Advisor/Call/{callId}/NeedTypeId

Get a case's need type ID.

Parameters
companyId (header) - The company identifier from the request header.
callId (path) * - The unique identifier of the call (case).
Responses
200 - Returns the need type ID (nullable).
GET /v2/Advisor/Call/{callId}

Get Call Details

Retrieves comprehensive details for a specific case (call), including decedent information, location data, biographical information, assigned reports, and profile pictures. This endpoint provides all essential case information needed for case management and reporting. **Usage Notes:** - Report links are dynamically determined based on location-specific or company-wide report configurations. - Standard reports include: Contract, Detailed Statement, Selections Summary, Gatherings Summary, and People Summary. - Profile picture URLs default to a placeholder image if no profile picture is set. - Biographical dates (birth and death) are formatted and combined into a RelevantDates field. - Trade firm pricing tier information is included when applicable. - Pre-need conversion information and case transfer details are included when available. **Tags:**Cases, Call Details, Case Management, Reports
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the call details are retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) to retrieve.
Responses
200 - Successfully returns the complete call details for the specified case.
POST /v2/Advisor/Call/Create

Create New Call (Case)

Creates a new case (call) for the specified company. This endpoint initializes a new at-need or pre-need case with the provided vital information, generates a case number, creates the initial contract, and optionally processes ship-track removal requests. **Usage Notes:** - This endpoint uses the CreateCaseCommand handler to ensure proper case initialization. - A case number is automatically generated based on company settings and naming conventions. - A default contract is created automatically for the new case. - The need type ID determines whether the case is at-need (1) or pre-need (2). - If ShipTrackRemoval is enabled, the ship-track processing is triggered after case creation. - The source system is automatically set to "Advisor" for tracking purposes. **Tags:**Case Creation, Case Management, New Case
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. The new case will be created within this company's database.
body (body) * - A CreateCallDto object containing the vital information and configuration for the new case. Includes decedent information, location, call type, need type, and other essential case details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the new case and returns the call ID and default contract ID.
POST /v2/Advisor/Call/ConvertPreneed/{preneedCallId}

Convert Pre-Need Call to At-Need Call

Converts an existing pre-need case to an at-need case when the death occurs. This process creates a new at-need case while preserving the original pre-need case for historical reference. Contract details, people, and attachments are copied based on company settings. **Usage Notes:** - The original pre-need case is marked with a conversion date but remains in the system for historical reference. - A new at-need case is created with a link back to the original pre-need case via PreNeedCallId. - Contract copying behavior is controlled by the ExcludeContractFromPreNeedConversion company setting. - If contract exclusion is disabled, all pre-need contract details are copied to the at-need case. - If contract exclusion is enabled, a blank contract is created for the at-need case. - All people associated with the pre-need case are copied to the new at-need case. - All attachments (including profile pictures) are duplicated for the new at-need case. - A new case number is generated for the at-need case based on company numbering settings. - The conversion process is transactional; if any step fails, all changes are rolled back. **Tags:**Pre-Need, At-Need, Case Conversion, Case Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to ensure the conversion occurs within the correct company context.
preneedCallId (path) * - The unique identifier of the pre-need call (case) to be converted to at-need.
body (body) - A token for cancelling the request.
Request Body Schema:
{
  "oneOf": [
    {
      "nullable": true
    },
    {
      "type": "object"
    }
  ]
}
Responses
200 - Successfully converted the pre-need case and returns the new at-need call ID.
GET /v2/Advisor/Call/{callId}/TaxPrepaymentEligibility

Get Tax Prepayment Eligibility

Determines whether the pre-need case is eligible for tax prepayment based on the case's location state and the company's pre-need tax prepayment state configuration.
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
callId (path) * - The unique identifier of the pre-need call (case) to evaluate.
Responses
200 - Returns the tax prepayment eligibility for the case.
GET /v2/Advisor/Call/{callId}/TaxPrepaidSummary

Get Sales Tax Prepaid Summary

Returns a brief summary indicating whether the case has any contract detail rows flagged as having sales tax prepaid, along with the earliest source date among those rows.
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
callId (path) * - The unique identifier of the call (case) to evaluate.
Responses
200 - Returns the tax-prepaid summary for the case.
GET /v2/Advisor/Call/{preneedCallId}/PreNeedContractDate

Get Pre-Need Contract Date

Returns the effective pre-need contract date for the specified pre-need case. The date is taken from the earliest contract on the case, falling back to the case's creation date when no contract date is available.
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
preneedCallId (path) * - The unique identifier of the pre-need call (case).
Responses
200 - Returns the pre-need contract date.
GET /v2/Advisor/Call/CheckCaseNumber

Check Case Number Availability

Verifies whether a case number is already in use within the company or at a specific location. This endpoint helps prevent duplicate case numbers by checking for existing cases before assignment or manual entry. **Usage Notes:** - This is a read-only validation endpoint that does not modify any data. - Case number comparison is exact and case-sensitive. - If no location ID is provided, the check searches across all locations in the company. - If a location ID is provided, the check is limited to cases at that specific location. - This endpoint should be called before allowing users to manually assign or change case numbers. - The case number must not be null, empty, or whitespace only. **Tags:**Case Management, Validation, Case Number
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. The case number check is scoped to this company's cases.
caseNumber (query) - The case number string to verify for uniqueness. This is the value that will be checked against existing cases.
locationId (query) - Optional location ID to scope the check to a specific location. If provided, only checks for duplicates within that location; otherwise checks company-wide.
Responses
200 - Successfully completed the check and returns true if duplicate exists, false otherwise.
POST /v2/Advisor/Call/{callId}/Transfer

Transfer Case to Different Location

Transfers an existing case to a different funeral home location within the company. This process updates the case's location assignment, generates a new case number, and allows selective retention of notes, attachments, people, and gatherings. **Usage Notes:** - The original case ID is preserved; only the location, case number, and selected data are updated. - All contract details are removed during transfer; a new contract must be created at the target location. - The original location is saved in OriginalLocationId for historical tracking. - The previous case number is saved in PreviousCaseNumber before generating a new one. - A new case number is automatically generated based on the target location's numbering rules. - The CaseTransferDate is set to the current UTC timestamp. - Notes, Attachments, People, and Gatherings are selectively retained based on the Keep list in the request. - Items not in the Keep list are permanently removed (not soft-deleted). - The transfer operation is transactional; if any step fails, all changes are rolled back. **Tags:**Case Management, Case Transfer, Location Transfer
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. The case transfer occurs within this company's database.
callId (path) * - The unique identifier of the call (case) to be transferred.
body (body) * - A TransferCaseRequest object specifying the target funeral home and which data to retain. Includes TargetFhId and a list of items to keep (Notes, Attachments, People, Gatherings).
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully transferred the case and returns the call ID.
GET /v2/Advisor/Call/{callId}/Overview

Get Case Overview

Retrieves a comprehensive overview of a case including decedent biographical information, disposition details, service information, and related metadata. This endpoint provides a summary view of key case information for dashboard and overview displays. **Usage Notes:** - Includes decedent's full biographical information such as birth/death dates, SSN, and personal details. - Provides disposition information including cremation, burial, or other final disposition details. - Includes service/gathering information with dates and locations. - SSN values are decrypted before being returned if present. - Combines data from multiple related tables (Calls, BioGraphicalInfo, Disposition, Events). - This endpoint is typically used for overview/dashboard displays and summary printouts. - Empty or null values are returned for optional fields that haven't been populated. **Tags:**Case Management, Overview, Dashboard, Case Summary
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the overview is retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which the overview should be retrieved.
Responses
200 - Successfully returns the case overview data.
GET /v2/Advisor/Call/{callId}/History

Get Case Posting History

Retrieves the complete posting and export history for a case, showing when the case was posted to accounting systems or exported. User names are enriched for each history entry to show who performed each action. **Usage Notes:** - History entries are ordered by date created in descending order (most recent first). - User names are looked up from AdvisorUsers and formatted as "FirstName LastName" or username. - If the case has been exported, the export event is prepended to the history list. - Export events have CallPostId = 0 and Posted = false to distinguish them from post events. - The Posted flag indicates whether the event was a posting (true) or export (false) operation. - This history provides an audit trail of financial system integrations. **Tags:**Case Management, History, Audit, Posting, Export, Accounting
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures history is retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which history should be retrieved.
Responses
200 - Successfully returns the case posting history.
GET /v2/Advisor/Call/{callId}/ConversionHistory

Get Pre-Need Conversion History

Retrieves conversion history for pre-need cases that have been converted to at-need, or for at-need cases that were converted from pre-need. Shows the relationship between pre-need and at-need cases and tracks conversion details. **Usage Notes:** - For at-need cases (NeedTypeId = 1), shows the pre-need case it was converted from if applicable. - For pre-need cases (NeedTypeId = 2), shows the at-need case(s) it has been converted to if applicable. - Includes case numbers, decedent names, and conversion dates for tracking purposes. - Returns empty/null values if the case has no conversion history. - Useful for tracking pre-need policy fulfillment and at-need case origin. **Tags:**Case Management, Pre-Need, At-Need, Conversion, History
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures history is retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which conversion history should be retrieved.
Responses
200 - Successfully returns the conversion history.
PUT /v2/Advisor/Call/{callId}/MarkInactive

Mark Case as Inactive

Marks a case as inactive, removing it from active case lists and workflows. Inactive cases are archived but retained in the system for historical records and reporting. **Usage Notes:** - Inactive cases are excluded from default case lists and search results. - The case data is preserved; this is not a deletion operation. - Cases can be reactivated using the MarkActive endpoint. - Useful for archiving cancelled or declined arrangements. **Tags:**Case Management, Status, Archive
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
callId (path) * - The unique identifier of the call (case) to mark as inactive.
Responses
200 - No content is returned on successful update.
PUT /v2/Advisor/Call/{callId}/MarkActive

Mark Case as Active

Marks a case as active, returning it to active case lists and workflows. This endpoint also deactivates any "LOST CALL" notes associated with the case to reflect the status change. **Usage Notes:** - Reactivates a previously inactive or lost case. - Automatically deactivates any notes containing "LOST CALL" in their content. - The case returns to active case lists and search results. - Useful for cases that were mistakenly marked inactive or lost but are now proceeding. **Tags:**Case Management, Status, Reactivate
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
callId (path) * - The unique identifier of the call (case) to mark as active.
Responses
200 - No content is returned on successful update.
PUT /v2/Advisor/Call/{callId}/MarkLost

Mark Case as Lost

Marks a case as lost with a reason, changing the case status and creating a note documenting why the arrangement was lost. This is used when a family chooses another funeral home or declines services. **Usage Notes:** - Changes the case status to "Lost" (MasterId 210). - Marks the case as inactive, removing it from active case lists. - Creates an active note with the format "LOST CALL REASON : [reason]". - The note is created as a Call note type and is visible to all staff (not arranger-only). - Useful for tracking lost business and understanding competitive losses. **Tags:**Case Management, Status, Lost Call, Analytics
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
callId (path) * - The unique identifier of the call (case) to mark as lost.
body (body) * - A LostReasonDto containing the reason the case was lost.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content is returned on successful update.
GET /v2/Advisor/Call/{callId}/NoCost/{contractId}

Get Contract Items Missing Cost

Retrieves a list of product items on a contract that are missing cost values (items with null or zero cost). This endpoint is used to identify inventory items that need cost information populated before finalizing the contract or performing financial calculations. **Usage Notes:** - Only product items (items with IsProduct = true) are included in results. - Items are considered "missing cost" if Cost is null or equals zero. - Package items (PackageDetailId is set) are always excluded since their cost is bundled in the package. - When showWarnings = 1, only ad-hoc items (ItemStatus = AdHoc) are returned. - Each result includes the item type, name, location item details, and current price. - This endpoint is commonly used in contract validation workflows to ensure pricing completeness. - Results include ContractDetailId to facilitate quick cost updates on identified items. **Tags:**Contract Management, Pricing, Validation, Products
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to filter items belonging to this specific company.
callId (path) * - The unique identifier of the case. Used to validate the contract belongs to this case.
contractId (path) * - The unique identifier of the contract to check for missing cost items. Only items from this specific contract will be included.
showWarnings (query) - Controls which items are returned: 0 = none, 1 = ad-hoc items only, 2 = all items with missing cost (default).
Responses
200 - Successfully returns the list of items missing cost information.
GET /v2/Advisor/Call/{callId}/SaleDate

Get Contract Sale Date

Retrieves the sale date (contract date) from the default contract associated with the specified case. Only non-addendum contracts are considered when determining the sale date. This date represents when the original contract was signed by the client. **Usage Notes:** - Only the default (non-addendum) contract is queried for the sale date. - Addendum contracts are explicitly excluded from this lookup. - Returns null if no default contract exists for the specified case. - The sale date corresponds to the ContractDate property on the Contract entity. - This date is commonly used for regulatory reporting and financial tracking. **Tags:**Contract Management, Sale Date, Contract Date
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to locate the default contract for sale date retrieval.
Responses
200 - Successfully returns the sale date from the default contract.
PUT /v2/Advisor/Call/{callId}/SaleDate

Update Contract Sale Date

Updates the sale date (contract date) on the default contract for the specified case. This endpoint modifies the contract date on the original non-addendum contract to reflect when the contract was signed by the client. **Usage Notes:** - Only the default (non-addendum) contract is updated. - Throws an exception if no default contract exists for the case. - The sale date is persisted to the ContractDate property on the Contract entity. - This operation does not affect addendum contracts. - The updated date is immediately saved to the database. **Tags:**Contract Management, Sale Date, Contract Date, Updates
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to locate the default contract for sale date update.
body (body) * - A SaleDateDto object containing the new sale date value. Must include a valid date in the SaleDate property.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content (204) on successful update.
POST /v2/Advisor/Call/{callId}/PostCall

Mark Case as Posted to Accounting

Marks a case as "posted" to indicate that it has been posted to the accounting system. This operation is typically performed after finalizing the contract and before exporting financial data to accounting software. Requires the AllowCallPosting permission. **Usage Notes:** - Requires the AllowCallPosting permission for the specified funeral home. - Uses the PostCaseCommand handler to execute the posting logic. - Posting a case typically locks it from certain modifications. - Posted cases can be unposted using the UnPostCall endpoint if needed. - This operation creates an audit trail entry in the call post history. - Once posted, the case is ready for accounting export operations. **Tags:**Case Management, Accounting, Posting, Financial Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
selectedFhIdForPermissionsCheck (header) - The unique identifier of the funeral home location, provided in the request header. Used for location-specific permission validation. Optional parameter that may be null for company-level permissions.
callId (path) * - The unique identifier of the case to mark as posted. The case must exist and belong to the specified company.
Responses
200 - Successfully marked the case as posted to accounting.
POST /v2/Advisor/Call/{callId}/UnPostCall/{wasAdminUnposting}

Mark Case as Unposted (Reverse Posting)

Marks a previously posted case as "unposted" to allow modifications to the contract or financial data. This operation reverses the posting action and creates an audit trail entry. It also removes empty contract addendums (addendums with no contract details) to maintain data integrity. **Usage Notes:** - Requires the AllowCallPosting permission for the specified funeral home. - Sets the Posted property of the case to false. - Creates a CallPostHistory entry to track the unposting action with timestamp. - Automatically removes empty contract addendums (addendums with no contract details). - The wasAdminUnposting parameter tracks whether an admin performed the operation. - Unposting allows the case to be modified before re-posting to accounting. **Tags:**Case Management, Accounting, Posting, Unposting, Financial Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
selectedFhIdForPermissionsCheck (header) - The unique identifier of the funeral home location, provided in the request header. Used for location-specific permission validation. Optional parameter that may be null for company-level permissions.
callId (path) * - The unique identifier of the case to unpost. The case must exist, belong to the specified company, and be in a posted state.
wasAdminUnposting (path) * - A boolean flag indicating whether this unposting operation is being performed by an administrator. This parameter may affect audit logging or permission requirements.
Responses
200 - Successfully marked the case as unposted.
GET /v2/Advisor/Call/AreRunningAddendumsEnabledForCompany

Check if Running Addendums Enabled for Company

Checks whether the "running addendums" feature is enabled for the specified company. When running addendums are enabled, only one addendum can exist at a time for any case. This setting affects how addendums are created and managed across all cases for the company. **Usage Notes:** - This is a company-wide configuration setting that affects all cases. - When true, only one addendum can exist per case at any given time. - This setting is enforced in the CreateNewContractAddendum endpoint. - The configuration is stored in the company's database settings. - Useful for UI to determine whether to allow multiple addendums for a case. **Tags:**Contract Management, Addendums, Configuration, Company Settings
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to check the company's running addendum configuration.
Responses
200 - Successfully returns the running addendum configuration status for the company.
PUT /v2/Advisor/Call/{callId}/FinancialDisclaimer

Update Financial Disclaimer

Updates the financial disclaimer text for a case. Financial disclaimers are custom messages that can be added to contracts to provide important financial information, payment terms, or legal disclaimers. The update only occurs if the provided disclaimer text is not null or whitespace. **Usage Notes:** - Throws an exception if the case is not found. - Only updates the disclaimer if the provided text is not null or whitespace. - If the disclaimer text is empty, whitespace, or null, no database update occurs. - Financial disclaimers are typically displayed on printed contracts. - The updated disclaimer is immediately saved to the database. - Common uses include payment policy statements, cancellation terms, or legal notices. **Tags:**Case Management, Financial Disclaimer, Updates, Contract Messages
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case to update. The case must exist and belong to the specified company.
body (body) * - A FinancialDisclaimerDto object containing the new financial disclaimer text. Must contain a non-empty FinancialDisclaimer property for the update to occur.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content (204) on successful update.
GET /v2/Advisor/Call/{callId}/Disposition

Get Case Disposition

Retrieves the disposition category for a case. The disposition indicates the final placement or handling method for the decedent's remains, such as burial, cremation, entombment, or other disposition types configured in the system. **Usage Notes:** - Returns null if no disposition has been assigned to the case. - Throws an exception if the case is not found. - The disposition category ID references a DispositionCategory lookup table. - Common disposition types include burial, cremation, entombment, and donation. - Use the UpdateDisposition endpoint to assign or change the disposition. **Tags:**Case Management, Disposition, Final Placement
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to retrieve the disposition category for this specific case.
Responses
200 - Successfully returns the disposition category for the specified case.
PUT /v2/Advisor/Call/{callId}/Disposition

Update Case Disposition

Updates the disposition category for a case. This endpoint allows changing the final placement or handling method for the decedent's remains. The disposition category must be a valid value from the system's DispositionCategory lookup table. **Usage Notes:** - Throws an exception if the case is not found. - The DispositionCategoryId must reference a valid entry in the DispositionCategory lookup table. - Common disposition types include burial, cremation, entombment, and donation. - The updated disposition is immediately saved to the database. - Can be set to null to clear the disposition for a case. **Tags:**Case Management, Disposition, Updates, Final Placement
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case to update. The case must exist and belong to the specified company.
body (body) * - A CallDispositionDto object containing the new disposition category ID. Must include a valid DispositionCategoryId value.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content (204) on successful update.
GET /v2/Advisor/Call/{callId}/Export

Export Case Data as XML

Exports complete case data as XML for integration with external systems, form filling, or data archival. The XML includes all case information: decedent details, family/arranger information, service details, contract information, custom fields, and more. This comprehensive export is commonly used for PDF form population and third-party integrations. **Usage Notes:** - Returns a complete XML document with all case information. - XML structure includes: call metadata, decedent info, people/relationships, services, contract details, custom fields. - Used for PDF form filling via form field mappings (XPath-based field population). - Commonly integrated with document management systems and third-party software. - XML is UTF-8 encoded with proper XML declaration. - The export is generated dynamically and reflects the current state of the case. - Custom fields are included in CustomFieldData section with CustomDataFieldId attributes. - Use GetExportFields endpoint to see all available fields and their values for a case. **Tags:**Export, XML, Integration, Data Export, Form Filling
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions and retrieve company-specific data.
callId (path) * - The unique identifier of the case to export. All data associated with this case will be included in the XML export.
Responses
200 - Successfully exports case data as XML. Returns the XML document as content.
GET /v2/Advisor/Call/{callId}/Export/Fields

Get Export Field Values for Case

Retrieves all form field mappings with their actual values populated from the case data. This endpoint exports the case as XML, evaluates each XPath expression against the XML, and returns the field names with their corresponding values. Includes a QR code for mobile case access. Used for preview and debugging form field mappings. **Usage Notes:** - Generates case XML export and evaluates all XPath expressions against it. - Returns actual values from the case for each mapped field. - Includes error messages if XPath evaluation fails (invalid XPath or missing data). - ValueClass indicates status: "normal" for success, "error" for failures. - Automatically includes a QR code image URL for the case (dec_QRCodeImage field). - QR code contains JSON with CompanyKey and CallId for mobile access. - Useful for debugging form field mappings and previewing PDF form data. - Shows which fields have values and which are missing or have mapping errors. **Tags:**Export, Field Mapping, PDF Forms, Data Preview, QR Code
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access and retrieve custom fields.
callId (path) * - The unique identifier of the case. Used to export case data and evaluate field mappings.
Responses
200 - Successfully returns all export fields with evaluated values for the case.
GET /v2/Advisor/SearchQueue

Search Queued Cases

Returns a list of Queued Cases matching Search Term in request.
Parameters
companyId (header) - Company ID
searchTerm (query) - Search Term
Responses
200 - List of Queued Case Search Results
POST /v2/Advisor/AdvancedSearch

Advanced Search Cases

Returns a list of Cases matching Advanced Search Criteria payload in request.
Parameters
body (body) * - Search Criteria payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - List of Advanced Case Search Results
GET /v2/Advisor/SearchPeople

Parameters
companyId (header)
searchTerm (query)
Responses
200 - OK
GET /v2/Advisor/Call/{callId}/ArrangerHistory

Get Arranger History

Returns list of Arranger History matching Call Id in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - List of Arranger History
POST /v2/Advisor/Queue

Queue a Case

Queues a Case using payload in request.
Parameters
companyId (header) - Company Id
body (body) * - Queued Case payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Queued Case identifier
DELETE /v2/Advisor/Queue/{callQueueId}

Delete a Queued Case

Deletes a Queued Case using Queued Case Id in request.
Parameters
companyId (header) - Company Id
callQueueId (path) * - Queued Case Identifier
Responses
200 -
PUT /v2/Advisor/Queue/{callQueueId}

Convert a Queued Case

Converts a Queued Case using Queued Case Id in request.
Parameters
companyId (header) - Company Id
callQueueId (path) * - Queued Call Identifier
Responses
200 -
DELETE /v2/Advisor/QueueLegacy/{callQueueId}

Delete Legacy Queued Case

Permanently deletes a legacy queued case entry from the historical queue table using its integer identifier. **Usage Notes:** - Targets the deprecated`Queues`table used by older workflows. - Requires both company access and queued case management permission. - Throws`SolutionCenterException`when the queue ID is invalid. **Tags:**Advisor, Case Management, Legacy
Parameters
companyId (header) - Company identifier supplied via the request header.
callQueueId (path) * - The legacy queue record identifier (int) to remove.
Responses
200 - Successfully deletes the legacy queued case record.
PUT /v2/Advisor/QueueLegacy/{callQueueId}

Convert a Legacy Queued Case

Converts a Queued Case using Queued Case Id in request.
Parameters
companyId (header) - Company Id
callQueueId (path) * - Queued Call Identifier
Responses
200 -
GET /v2/Advisor/Call/LoggedInUserPerson

Get Logged In User's Person Information

Retrieves the person information for the currently logged-in user based on the user's ID and company. If no person is found, returns null.
Parameters
companyId (header) - The company identifier from the request header.
Responses
200 - Returns the person details for the logged-in user, or null if not found.
POST /v2/Advisor/Call/{callId}/ClaimCall

Claim a Case

Allows for a Case to be claimed using Call Id and Claim payload in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
body (body) * - Claim payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Advisor/Call/{callId}/Notes

Get Call Notes

Retrieves all active notes associated with a specific case (call). Notes include documentation of communications, observations, and important case-related information. User information is enriched to display the names of users who modified each note. **Usage Notes:** - Only active notes are returned; soft-deleted notes are excluded. - Results are ordered by last modification date, creation date, and note ID. - Modified by names are enriched from the AdvisorUsers table using first/last name or username. - Notes without a modification timestamp use the creation date as the last modified date. - Notes without a modifier are labeled "N/A" in the ModifiedByName field. **Tags:**Notes, Case Management, Documentation
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to filter notes within the correct company context.
callId (path) * - The unique identifier of the call (case) for which notes should be retrieved.
Responses
200 - Successfully returns the list of active notes for the specified call.
GET /v2/Advisor/Call/{callId}/CaseNotes

Get Aggregated Case Notes

Retrieves all notes associated with a case from multiple sources: call fields, note table, events, cemetery plots, crematory info, embalming info, persons on case, and product notes. This mirrors the SCV1 usp_CaseNotes stored procedure behavior. **Tags:**Notes, Case Management, Documentation
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
callId (path) * - The unique identifier of the call (case) for which notes should be retrieved.
Responses
200 - A list of CaseNoteDto objects representing all notes from all sources, sorted by date created descending.
POST /v2/Advisor/Call/{callId}/Note

Create Call Note

Creates a new note associated with a specific case (call). Notes are used to document important information, communications, and observations related to the case throughout the arrangement process. **Usage Notes:** - Notes are created with the "Call" note type automatically assigned. - The note is marked as active upon creation. - ArrangerOnly flag is set to false by default, making the note visible to all authorized users. - The current user and timestamp are automatically captured for audit purposes. **Tags:**Notes, Case Management, Documentation
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the note is created within the correct company context.
callId (path) * - The unique identifier of the call (case) to which the note will be attached.
body (body) * - The note data transfer object containing the note content and metadata. Includes fields such as note text, visibility settings, and other relevant information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the note and returns the complete note object.
PUT /v2/Advisor/Call/{callId}/Note/{noteId}

Update Call Note

Updates an existing note associated with a specific case (call). This endpoint allows modification of note content and metadata while maintaining audit trails and ensuring only active call notes can be modified. **Usage Notes:** - Only active notes can be updated; inactive notes will throw an exception. - The note must be of type "Call" to be updated through this endpoint. - Modification timestamp and user information are automatically updated. - All validations are performed before any changes are persisted. **Tags:**Notes, Case Management, Update, Documentation
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the note update occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the note. Used to verify the note belongs to the specified case.
noteId (path) * - The unique identifier of the note to be updated.
body (body) * - The note data transfer object containing the updated note content and metadata.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updated the note with the provided information.
DELETE /v2/Advisor/Call/{callId}/Note/{noteId}

Delete Call Note

Performs a soft delete on an existing call note by marking it as inactive. This endpoint ensures notes are never permanently removed from the system, maintaining data integrity and audit trails for compliance purposes. **Usage Notes:** - This is a soft delete operation; the note remains in the database but is marked as inactive. - Inactive notes will not appear in standard note retrieval operations. - The note must be of type "Call" to be deleted through this endpoint. - The operation is idempotent; deleting an already inactive note will succeed without error. **Tags:**Notes, Case Management, Delete, Soft Delete
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the note deletion occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the note. Used to verify the note belongs to the specified case.
noteId (path) * - The unique identifier of the note to be deleted (marked inactive).
Responses
200 - Successfully marked the note as inactive.
GET /v2/Advisor/Call/{callId}/EmbalmingNotes

Get Call Embalming Notes

Retrieves embalming notes associated with a specific case (call). This includes pre-embalming, embalming, and post-embalming notes that document the preparation process. These notes are critical for tracking embalmer procedures, conditions, and special circumstances. **Usage Notes:** - Embalming notes are stored on the decedent person record, not the call itself. - If no embalming information has been recorded, the endpoint returns empty strings for all note fields. - Pre-embalming notes document observations before the embalming process begins. - Embalming notes record procedures, chemicals used, and conditions during the process. - Post-embalming notes capture the final results and any special care instructions. - These notes are typically used by embalmers and preparation staff for documentation and compliance. **Tags:**Embalming, Notes, Case Management, Preparation
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to ensure embalming notes are retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which embalming notes should be retrieved.
Responses
200 - Successfully returns the embalming notes for the specified call.
GET /v2/Advisor/Call/{callId}/ProductNotes

Get Call Product Notes

Retrieves all product-specific notes associated with a specific case (call). Product notes capture special instructions, customizations, or important details about items, packages, and adjustments selected on the contract. **Usage Notes:** - Only contract details with non-empty notes are included in the results. - Product notes can apply to items (caskets, urns, services), packages, or adjustments. - The item name is resolved from the location-specific item name first, falling back to the master item name. - For adjustments, the adjustment type name is used instead of an item name. - For packages, the package name is used. - These notes are typically used for special engraving instructions, customizations, or handling requirements. **Tags:**Products, Notes, Case Management, Contract Details
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to ensure product notes are retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which product notes should be retrieved.
Responses
200 - Successfully returns the list of product notes for the specified call.
GET /v2/Advisor/Call/{callId}/NotesPrintoutOverview

Get Notes Printout Overview

Retrieves an overview of case information specifically formatted for notes printouts. This endpoint provides essential case details including decedent information, dates, personnel, and system metadata optimized for printed case documentation. **Usage Notes:** - This endpoint is specifically designed for generating printed case notes documentation. - Includes decedent name in reversed format (Last, First) for formal documentation. - Provides dates of birth and death when available from biographical information. - Includes director name, family care advisor, and recorder information. - Shows the contract sale date and source system for audit purposes. - Identifies the informant from the people associated with the case. - The output format is optimized for header information on printed case notes. **Tags:**Notes, Case Management, Printout, Overview, Documentation
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the overview is retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which the notes printout overview should be retrieved.
Responses
200 - Successfully returns the notes printout overview data.
GET /v2/Advisor/Call/{callId}/DeathCertificateNote

Get Death Certificate Note

Retrieves the death certificate note associated with a specific case (call). This note contains special instructions or information related to death certificate processing and filing for the case. **Usage Notes:** - This is a specialized note field specific to death certificate processing. - The note is stored as a single text field on the Call entity. - Returns an empty value if no death certificate note has been created. **Tags:**Death Certificates, Notes, Case Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to ensure the note is retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which the death certificate note should be retrieved.
Responses
200 - Successfully returns the death certificate note for the specified call.
PUT /v2/Advisor/Call/{callId}/DeathCertificateNote

Update Death Certificate Note

Updates the death certificate note for a specific case (call). This note is used to document special instructions or information related to death certificate processing, filing requirements, or coordination with vital statistics offices. **Usage Notes:** - The note can be set to any text value or cleared by providing an empty/null value. - This operation updates the note directly on the Call entity. - No audit trail is maintained for death certificate note changes beyond standard entity tracking. **Tags:**Death Certificates, Notes, Case Management, Update
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the note update occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) for which the death certificate note should be updated.
body (body) * - A CallDeathCertificateNoteDto object containing the updated death certificate note text.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updated the death certificate note.
DELETE /v2/Advisor/Call/{callId}/DeathCertificateNote

Delete Death Certificate Note

Clears the death certificate note for a specific case (call) by setting it to null. This effectively removes any special instructions or information previously documented for death certificate processing. **Usage Notes:** - This operation sets the death certificate note to null rather than performing a soft delete. - The operation is idempotent; clearing an already empty note will succeed without error. - No audit trail is maintained beyond standard entity tracking. **Tags:**Death Certificates, Notes, Case Management, Delete
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the note deletion occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) for which the death certificate note should be deleted.
Responses
200 - Successfully deleted (cleared) the death certificate note.
GET /v2/Advisor/Call/{callId}/WarningMessage

Get Call Warning Message

Retrieves the warning message associated with a specific case (call). Warning messages are displayed prominently in the UI to alert staff about important case-specific information such as special circumstances, restrictions, or alerts that require attention. **Usage Notes:** - Warning messages are displayed prominently to ensure staff awareness. - The message is stored as a single text field on the Call entity. - Returns an empty value if no warning message has been set. - Common uses include credit holds, special handling instructions, or family situation alerts. **Tags:**Warnings, Case Management, Alerts
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to ensure the warning message is retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which the warning message should be retrieved.
Responses
200 - Successfully returns the warning message for the specified call.
PUT /v2/Advisor/Call/{callId}/WarningMessage

Update Call Warning Message

Updates the warning message for a specific case (call). Warning messages are prominently displayed in the UI to alert staff about critical case information such as credit holds, special handling requirements, or important family situation alerts. **Usage Notes:** - Warning messages should be used for critical alerts that require staff attention when viewing the case. - The message can be cleared by providing an empty or null value in the DTO. - Warning messages are displayed prominently throughout the case management interface. - Common use cases include credit holds, special payment arrangements, family restrictions, and handling instructions. - The warning message is stored directly on the Call entity and persists until explicitly changed or removed. **Tags:**Warnings, Case Management, Alerts, Update
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the warning message update occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) for which the warning message should be updated.
body (body) * - A CallWarningMessageDto object containing the updated warning message text. Can be set to null or empty to clear the warning message.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updated the warning message for the specified call.
DELETE /v2/Advisor/Call/{callId}/WarningMessage

Delete Call Warning Message

Clears the warning message for a specific case (call) by setting it to null. This removes any critical alerts or warnings that were previously displayed to staff when viewing the case. **Usage Notes:** - This operation clears the warning message by setting it to null rather than performing a soft delete. - The operation is idempotent; clearing an already empty warning message will succeed without error. - After deletion, no warning message will be displayed for the case in the UI. - This endpoint internally calls the Put endpoint with an empty DTO to clear the message. **Tags:**Warnings, Case Management, Alerts, Delete
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the warning message deletion occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) for which the warning message should be deleted.
Responses
200 - Successfully deleted (cleared) the warning message for the specified call.
GET /v2/Advisor/Call/{callId}/FinancialDisclaimer

Get Financial Disclaimer for Case

Retrieves the financial disclaimer text associated with a case. Financial disclaimers are custom messages that can be added to contracts to provide important financial information, payment terms, or legal disclaimers specific to the case. **Usage Notes:** - Returns null if no financial disclaimer has been set for the case. - Throws an exception if the case is not found. - Financial disclaimers are typically displayed on printed contracts. - The disclaimer text is stored in the FinancialDisclaimer property of the Call entity. - Use the PutFinancialDisclaimer endpoint to update the disclaimer text. **Tags:**Case Management, Financial Disclaimer, Contract Messages
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to retrieve the financial disclaimer for this specific case.
Responses
200 - Successfully returns the financial disclaimer for the specified case.
GET /v2/Advisor/Call/{callId}/CallEvents

Get Call Events (Gatherings)

Retrieves all events (gatherings) associated with a specific case (call). Events include services, visitations, and other scheduled gatherings. This endpoint provides event details including type, date, time, location, and associated notes. **Usage Notes:** - Events include services, visitations, viewings, burials, and other scheduled gatherings. - Each event includes the event type name, date, start/end times, and family arrival time. - Location information is included when the event is held at a specific facility. - Special flags identify the main service, first visitation, and second visitation events. - Event notes capture special instructions, clergy information, or other important details. - This data is used for scheduling, obituary publishing, and coordinating event logistics. **Tags:**Events, Gatherings, Case Management, Scheduling
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to ensure events are retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which events should be retrieved.
Responses
200 - Successfully returns the list of events for the specified call.
GET /v2/Advisor/Call/{callId}/Events

Get Case Events (Gatherings)

Retrieves all events (gatherings) associated with a specific case. Events include services, visitations, viewings, burials, cremations, and other scheduled gatherings. This endpoint delegates to the event service for consistent event retrieval logic. **Usage Notes:** - Events are ordered chronologically by date and time. - Each event includes type, date, start/end times, location, and special designation flags. - Special flags identify main service, first visitation, and second visitation events. - The endpoint delegates to IEventService.GetCallEvents for business logic. - Events include associated resources (chapels, vehicles) and participants (clergy, musicians). - This endpoint is used for event management screens, scheduling, and obituary publishing. **Tags:**Events, Gatherings, Case Management, Services, Scheduling
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures events are retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which events should be retrieved.
Responses
200 - Successfully returns the list of events for the specified case.
GET /v2/Advisor/Call/{callId}/Event/{eventId}

Get Specific Event Details

Retrieves detailed information about a specific event (gathering) associated with a case. This endpoint provides comprehensive event details including type, scheduling, location, resources, and participants. Delegates to the event service for consistent data retrieval. **Usage Notes:** - The endpoint delegates to IEventService.GetCallEvent for business logic. - Returns event type, date, start/end times, family arrival time, and location information. - Includes associated resources such as chapels, vehicles, and equipment. - Includes participant information such as clergy, musicians, and other service providers. - Special flags indicate if the event is the main service, first visitation, or second visitation. - Returns 400 Bad Request if the event is not found rather than 404 Not Found. - This endpoint is used for event detail views and editing forms. **Tags:**Events, Gatherings, Case Management, Event Details
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the event is retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the event.
eventId (path) * - The unique identifier of the event to retrieve.
Responses
200 - Successfully returns the event details.
PUT /v2/Advisor/Call/{callId}/Event/{eventId}

Update Event (Gathering)

Updates an existing event (gathering) with new information. This endpoint allows modification of event details including date, time, location, and notes. Special handling applies for "Arrangement Conference" events which sync with case arrangement information. **Usage Notes:** - The event must belong to the specified call; mismatches return an error. - If an event sub type is provided, it must be valid for the company. - "Arrangement Conference" events have special handling: date/time changes sync to the case's ArrangementDateTime. - For "Arrangement Conference" events, the location is also synced to ArrangementLocationId on the case. - All event fields can be updated including date, time, end time, family arrival time, location, notes, and sub type. - The update operation validates event ownership before applying changes. **Tags:**Events, Gatherings, Case Management, Update, Services
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the update occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the event.
eventId (path) * - The unique identifier of the event to update.
body (body) * - An UpdateEventDto object containing the updated event information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updated the event.
DELETE /v2/Advisor/Call/{callId}/Event/{eventId}

Delete Event (Gathering)

Permanently deletes an event (gathering) from a case. This is a hard delete operation that removes the event and all associated resources and participants. Special handling applies for "Arrangement Conference" events which also clear the case's arrangement information. **Usage Notes:** - This is a permanent hard delete; the event cannot be recovered after deletion. - All associated EventResources (chapels, vehicles, equipment) are removed first. - All associated PersonPersonTypes (participants like clergy, musicians) are removed. - The event record itself is then permanently deleted from the database. - For "Arrangement Conference" events, the case's arrangement information is cleared (ArrangementDateTime, ArrangementTime, ArrangementLocationId, ArrangementNotes). - The event must belong to the specified call; mismatches return an error. - Use this operation with caution as it cannot be undone. **Tags:**Events, Gatherings, Case Management, Delete, Hard Delete
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the deletion occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the event.
eventId (path) * - The unique identifier of the event to delete.
Responses
200 - Successfully deleted the event and all associated data.
GET /v2/Advisor/EventTypes/{callId}

Get Available Event Types for Location

Retrieves the list of event types available for a specific case based on its location. Event types are filtered by location configuration to show only types that are enabled for the funeral home location associated with the case. **Usage Notes:** - Event types are filtered based on the LocationEventTypes configuration for the call's location. - Only active event types that are enabled for the location are returned. - Results are ordered alphabetically by event type name for easier selection. - Common event types include: Service, Visitation, Viewing, Burial, Cremation, Memorial, Graveside. - Special event type "Arrangement Conference" may have unique business rules. - Each location can have different event types enabled based on their facilities and services. - This endpoint is used to populate event type dropdowns when creating new events. **Tags:**Events, Event Types, Case Management, Gatherings, Configuration
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures event types are retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case). The call's location determines which event types are available.
Responses
200 - Successfully returns the list of available event types for the case's location.
POST /v2/Advisor/Call/{callId}/Event

Create Event (Gathering)

Creates a new event (gathering) for a specific case. Events include services, visitations, viewings, burials, and other scheduled gatherings. Special handling applies for "Arrangement Conference" events which sync with case arrangement information and are limited to one per case. **Usage Notes:** - The event type ID must be valid and enabled for the location. - A contract must exist for the case before events can be created. - "Arrangement Conference" events have special rules: only one per case is allowed. - When creating an "Arrangement Conference", the arrangement date/time are synced to the case's ArrangementDateTime field. - Events are associated with the primary (non-addendum) contract for the case. - After creation, the complete event details are retrieved via IEventService for consistency. - The created event can include date, time, end time, family arrival time, location, and notes. **Tags:**Events, Gatherings, Case Management, Create, Services
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the event is created within the correct company context.
callId (path) * - The unique identifier of the call (case) to which the event should be associated.
body (body) * - A CreateEventDto object containing event details including type, date, time, location, and notes.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the event and returns the complete event details.
GET /v2/Advisor/Call/{callId}/Event/{eventId}/Resources

Get Event Resources

Retrieves all resources (chapels, vehicles, equipment) assigned to a specific event. Resources are physical or spatial assets required for conducting the gathering. **Usage Notes:** - Resources include chapels, visitation rooms, vehicles, and equipment. - Only resources currently assigned to the event are returned. - Resource information includes name, type, and capacity details. - This endpoint is used to display which resources are reserved for the event. **Tags:**Events, Resources, Gatherings, Case Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures resources are retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the event.
eventId (path) * - The unique identifier of the event for which resources should be retrieved.
Responses
200 - Successfully returns the list of event resources.
GET /v2/Advisor/Location/{locationId}/Events/{eventId}/AvailableResources

Get Available Location Resources for Event Time

Retrieves resources at a specific location that are available during the specified event time window. This endpoint checks for scheduling conflicts and applies a scheduling buffer to prevent double-booking of resources. Only unbooked resources are returned. **Usage Notes:** - Only active resources at the specified location are considered. - The company's SchedulingBuffer setting adds buffer time before/after events to prevent conflicts. - The specified eventId is excluded from conflict checks (allows editing existing events). - Overlapping event times are calculated including the scheduling buffer. - Resources already booked during the time window (including buffer) are excluded from results. - This endpoint is used when adding or editing events to show available resource options. **Tags:**Events, Resources, Gatherings, Availability, Scheduling
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures resources are retrieved within the correct company context.
locationId (path) * - The unique identifier of the location whose resources should be checked for availability.
eventId (path) * - The unique identifier of the event being scheduled. This event is excluded from conflict checking (allows updating an existing event's time without self-conflict).
eventDate (query) - The date on which the event will occur.
startTime (query) - The start time of the event.
endTime (query) - The end time of the event.
Responses
200 - Successfully returns the list of available resources for the specified time period.
POST /v2/Advisor/Call/{callId}/Event/{eventId}/Resource/{resourceId}

Assign Resource to Event

Assigns a resource (chapel, vehicle, equipment) to a specific event. This creates a reservation of the resource for the event's date and time. The resource must be active and available during the event's scheduled time. **Usage Notes:** - The resource must be active to be assigned to an event. - This creates an EventResource association record in the database. - No duplicate checking is performed; the same resource can be assigned multiple times (though this should be avoided). - Resource availability should be checked using GetAvailableLocationResources before assignment. - Common resources include chapels, visitation rooms, hearses, limousines, and audio/visual equipment. **Tags:**Events, Resources, Gatherings, Assignment, Case Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the resource assignment occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the event.
eventId (path) * - The unique identifier of the event to which the resource should be assigned.
resourceId (path) * - The unique identifier of the resource to assign to the event.
Responses
200 - Successfully assigned the resource to the event.
DELETE /v2/Advisor/Call/{callId}/Event/{eventId}/Resource/{resourceId}

Remove Resource from Event

Removes a resource assignment from an event, freeing the resource for other uses during that time period. This is a permanent deletion of the EventResource association. **Usage Notes:** - This is a permanent deletion of the EventResource association. - The resource itself is not deleted, only its assignment to this specific event. - The resource becomes available for other events once removed. - Returns an error if the event doesn't have the specified resource assigned. **Tags:**Events, Resources, Gatherings, Delete, Case Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the removal occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the event.
eventId (path) * - The unique identifier of the event from which the resource should be removed.
resourceId (path) * - The unique identifier of the resource to remove from the event.
Responses
200 - Successfully removed the resource from the event.
GET /v2/Advisor/Call/{callId}/Event/{eventId}/Participants

Get Event Participants

Retrieves all people participating in a specific event in participant roles. Participants include clergy, musicians, celebrants, pallbearers, and other individuals who have active roles in conducting or supporting the gathering. **Usage Notes:** - Only people with active participant role person types are returned. - Each person can have multiple roles in the same event (e.g., clergy and celebrant). - Person types are ordered by their sort order for consistent display. - Duplicate persons are consolidated with their roles listed in PersonTypeIds. - Common participant roles include: Clergy, Musician, Celebrant, Pallbearer, Speaker, Officiant. **Tags:**Events, Participants, Gatherings, Case Management, People
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures participants are retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the event.
eventId (path) * - The unique identifier of the event for which participants should be retrieved.
Responses
200 - Successfully returns the list of event participants.
POST /v2/Advisor/Call/{callId}/Event/{eventId}/Participant/{personId}/Role/{personTypeId}

Add Participant to Event

Adds a person as a participant to an event with a specific role. Participants are individuals who actively contribute to conducting the gathering, such as clergy, musicians, or celebrants. The person type must be marked as a participant role. **Usage Notes:** - The person type must be marked as IsParticipantRole to be used for event participants. - A person can have multiple roles in the same event (added separately with different personTypeIds). - Duplicate checking prevents adding the same person in the same role twice. - After adding, the SynchronizeUnspecifiedPersonType method is called to clean up orphaned roles. - Common participant roles include: Clergy, Musician, Celebrant, Pallbearer, Speaker. **Tags:**Events, Participants, Gatherings, Case Management, People, Add
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the participant is added within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the event.
eventId (path) * - The unique identifier of the event to which the participant should be added.
personId (path) * - The unique identifier of the person to add as a participant.
personTypeId (path) * - The unique identifier of the person type (role) for the participant. Must be a person type marked as IsParticipantRole.
Responses
200 - Successfully added the participant to the event.
DELETE /v2/Advisor/Call/{callId}/Event/{eventId}/Participant/{personId}/Role/{personTypeId}

Remove Participant from Event

Removes a person's participant role from an event. This permanently deletes the PersonPersonType association for the specific role. After removal, the SynchronizeUnspecifiedPersonType method ensures the person maintains appropriate associations with the case. **Usage Notes:** - This is a permanent deletion of the specific role assignment for the event. - The person type must be marked as IsParticipantRole. - If the person has multiple roles in the event, only the specified role is removed. - After removal, SynchronizeUnspecifiedPersonType is called to manage the person's case association. - If removing the last role leaves the person with no roles on the case, an "Unspecified" role is automatically added. - If the person has other roles, any "Unspecified" role is automatically removed. **Tags:**Events, Participants, Gatherings, Delete, Case Management, People
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the removal occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the event.
eventId (path) * - The unique identifier of the event from which the participant should be removed.
personId (path) * - The unique identifier of the person to remove as a participant.
personTypeId (path) * - The unique identifier of the person type (role) to remove. Must be a participant role.
Responses
200 - Successfully removed the participant from the event.
GET /v2/Advisor/Call/{callId}/GatheringSettings

Get Gathering Settings

Retrieves the gathering configuration for a specific case, identifying which events are designated as the main service, first visitation, and second visitation. These settings determine how events are displayed on reports and in the user interface. **Usage Notes:** - Only one event can be designated as the main service per case. - Only one event can be designated as visitation 1 per case. - Only one event can be designated as visitation 2 per case. - Null values indicate no event is currently assigned to that role. - These settings affect how events appear on printable forms and summaries. **Tags:**Gatherings, Events, Case Management, Settings
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to ensure settings are retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which gathering settings should be retrieved.
Responses
200 - Successfully returns the gathering settings for the specified call.
POST /v2/Advisor/Call/{callId}/GatheringSettings

Update Gathering Settings

Updates the gathering configuration for a specific case, designating which events should serve as the main service, first visitation, and second visitation. This endpoint clears any previous designations and applies the new settings atomically. **Usage Notes:** - All previous main service, visitation 1, and visitation 2 designations are cleared before applying new settings. - Only events belonging to the specified call can be designated. - Designating an invalid event ID will not fail but will have no effect. - All settings are applied in a single database transaction for consistency. - These settings immediately affect report generation and UI displays. **Tags:**Gatherings, Events, Case Management, Settings, Update
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to ensure settings are updated within the correct company context.
callId (path) * - The unique identifier of the call (case) for which gathering settings should be updated.
body (body) * - A GatheringSettingsDto object containing the event IDs to designate as the main service, first visitation, and second visitation. Null values clear the designation.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updated the gathering settings and returns the confirmed configuration.
GET /v2/Advisor/Call/Attachment/{companyId}/{callKey}/{storageKey}

Download Call Attachment File

Downloads a specific call attachment file from cloud storage. This endpoint supports optional image resizing for efficient delivery and caching. The endpoint is publicly accessible (anonymous) to support embedding in reports and external viewing scenarios. **Usage Notes:** - This endpoint allows anonymous access to support embedding attachments in public-facing reports and documents. - Files are stored in blob storage using the path pattern: companyId/callKey/storageKey. - Response is cached for 600 seconds (10 minutes) on the client side to improve performance. - Cache varies by all query string parameters (width, height, fit) to support multiple sizes. - Image resizing is performed on-demand by the media service when width/height parameters are provided. - The original file is returned if no resize parameters are specified. **Tags:**Attachments, Download, Files, Media, Images
Parameters
companyId (path) * - The unique identifier of the company that owns the attachment. Used to construct the storage path for the file.
callKey (path) * - The unique GUID identifier for the call (case). Used to construct the storage path for the file.
storageKey (path) * - The unique GUID identifier for the specific attachment file. This key uniquely identifies the file within the call's attachments.
width (query) - Optional desired width in pixels for image resizing. Only applies to image file types; ignored for other file types.
height (query) - Optional desired height in pixels for image resizing. Only applies to image file types; ignored for other file types.
fit (query) - Optional ImageResizeFit parameter specifying how the image should be resized. Options include fit, fill, crop, pad, etc. Only applies to image files.
Responses
200 - Successfully returns the file contents as a stream.
GET /v2/Advisor/Call/{callId}/Attachments

Get Call Attachments

Retrieves a complete list of all active file attachments associated with a specific case (call). Attachments may include documents, images, forms, or other files uploaded during the case workflow. This endpoint provides metadata and access URLs for each attachment. **Usage Notes:** - Only active attachments are returned; soft-deleted attachments are excluded. - Results are ordered by creation date and attachment ID. - Each attachment includes a full URL for downloading/viewing the file. - MIME types are automatically determined based on file extensions. - User information (modified by name) is enriched from the AdvisorUsers table. - Profile pictures are indicated with the IsProfilePicture flag. **Tags:**Attachments, Case Management, Files, Documents
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to ensure attachments are retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which attachments should be retrieved.
Responses
200 - Successfully returns the list of active attachments for the specified call.
PUT /v2/Advisor/Call/{callId}/Attachments/Reorder

Reorder call attachments by setting their display order.

Parameters
companyId (header) - The company ID from header.
callId (path) * - The call (case) ID.
body (body) * - Ordered list of attachment IDs.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - NoContent on success.
POST /v2/Advisor/Call/{callId}/Attachments/Download

Download multiple call attachments as a ZIP file.

Parameters
companyId (header)
callId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Advisor/Call/{callId}/Attachment

Upload Call Attachments

Uploads one or more files as attachments to a specific case (call). Files are stored in cloud storage and associated with the case for future retrieval. This endpoint handles file validation, upload to blob storage, and database record creation. **Usage Notes:** - At least one file must be provided; empty requests will fail. - Maximum number of files per request is enforced (see MediaConstants.MaxFileUploadCount). - Zero-length files are rejected with a descriptive error message. - Files are stored in Azure Blob Storage using the pattern: companyId/callKey/storageKey. - MIME types are automatically determined from file extensions. - Each file receives a unique storage key (GUID) for secure retrieval. - All attachments are marked as active and not profile pictures by default. - The ManageCallAttachments permission is required for this operation. **Tags:**Attachments, Case Management, Upload, Files, Documents
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to organize storage and ensure proper company data isolation.
selectedFhIdForPermissionsCheck (header) - The funeral home ID (optional) used for granular permission checking. Ensures the user has permission to manage attachments for the specific funeral home.
callId (path) * - The unique identifier of the call (case) to which files will be attached.
isTranscript (query) - Indicates if the attachment is the CareAssist transcript
body (body) * - A list of files to upload as attachments. Each file is provided as an IFormFile. Multiple files can be uploaded in a single request.
Request Body Schema:
{
  "files": {}
}
Responses
200 - Successfully uploaded all files and returns the list of created attachment records.
DELETE /v2/Advisor/Call/{callId}/Attachment/{callAttachmentId}

Delete Call Attachment

Performs a soft delete on a call attachment by marking it as inactive. The attachment file remains in storage but is excluded from queries and listings. If the attachment was set as a profile picture, that flag is also cleared. **Usage Notes:** - This is a soft delete operation; the attachment record remains in the database but is marked inactive. - The actual file in blob storage is not removed and could potentially be recovered. - If the attachment was set as the profile picture, the IsProfilePicture flag is cleared. - Attempting to delete an already-deleted attachment returns a 400 error. - The attachment must belong to the specified call ID; mismatches return a 400 error. - Requires the ManageCallAttachments permission. **Tags:**Attachments, Delete, Case Management, Soft Delete
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the attachment deletion occurs within the correct company context.
selectedFhIdForPermissionsCheck (header) - The funeral home ID (optional) for granular permission checking. Ensures the user has ManageCallAttachments permission for this funeral home.
callId (path) * - The unique identifier of the call (case) that owns the attachment.
callAttachmentId (path) * - The unique identifier of the attachment to delete.
Responses
200 - Successfully marked the attachment as inactive.
PUT /v2/Advisor/Call/{callId}/Attachment/{callAttachmentId}/ProfilePicture

Set Call Attachment as Profile Picture

Designates a specific call attachment as the profile picture for the case. Only one attachment can be the profile picture at a time; this operation automatically unsets any previously designated profile picture for the case. **Usage Notes:** - Only one attachment per case can be designated as the profile picture. - Setting a new profile picture automatically clears the IsProfilePicture flag on all other attachments for the case. - The attachment must be active; attempting to set a deleted attachment as profile picture returns an error. - The attachment must belong to the specified call ID. - Profile pictures are typically displayed prominently in case listings and detail views. - Requires the ManageCallAttachments permission. **Tags:**Attachments, Profile Picture, Case Management, Update
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the operation occurs within the correct company context.
selectedFhIdForPermissionsCheck (header) - The funeral home ID (optional) for granular permission checking. Ensures the user has ManageCallAttachments permission for this funeral home.
callId (path) * - The unique identifier of the call (case) that owns the attachment.
callAttachmentId (path) * - The unique identifier of the attachment to designate as the profile picture.
Responses
200 - Successfully set the attachment as the profile picture.
DELETE /v2/Advisor/Call/{callId}/Attachment/{callAttachmentId}/ProfilePicture

Unset Call Attachment as Profile Picture

Removes the profile picture designation from a specific call attachment. The attachment itself remains active and available; only the IsProfilePicture flag is cleared. This allows removing a profile picture without deleting the attachment file. **Usage Notes:** - This operation only clears the IsProfilePicture flag; the attachment remains active and accessible. - After this operation, the case will have no profile picture unless another attachment is designated. - The attachment must be active; attempting to modify a deleted attachment returns an error. - The attachment must belong to the specified call ID. - Requires the ManageCallAttachments permission. **Tags:**Attachments, Profile Picture, Case Management, Update
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the operation occurs within the correct company context.
selectedFhIdForPermissionsCheck (header) - The funeral home ID (optional) for granular permission checking. Ensures the user has ManageCallAttachments permission for this funeral home.
callId (path) * - The unique identifier of the call (case) that owns the attachment.
callAttachmentId (path) * - The unique identifier of the attachment from which to remove the profile picture designation.
Responses
200 - Successfully removed the profile picture designation from the attachment.
DELETE /v2/Advisor/Call/{callId}/ProfilePicture

Mark all Call Attachments as not a Profile Picture

Updates all Call Attachment for the Call Id specified in request to not be Profile Pictures.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
callId (path) * - Call Id
Responses
200 -
GET /v2/Advisor/Call/{callId}/PeopleOnCase

Case People

Returns People associated with a Case for the Call Id specified in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - List of People with Roles
POST /v2/Advisor/Call/{callId}/Person

Add Person to Case

Creates a new person record and associates them with a specific case (call). This endpoint is used to add family members, friends, clergy, or other individuals connected to the case. The person is created with specified roles and biographical information. **Usage Notes:** - All newly created persons are marked with "Unreviewed" status for data quality purposes. - The person is marked as active upon creation. - A PersonTypeId must be provided to establish the person's relationship to the case (e.g., spouse, child, clergy). - If PersonTypeId is not provided, the person is assigned the "Unspecified" role. - AutomaticRoles can be specified to assign multiple roles simultaneously (e.g., informant and next-of-kin). - The DoNotContact flag prevents automated communications to this person. - The IncludeInObituary flag determines whether the person appears in published obituaries. - Organizations can be created by setting IsOrganization to true. - Email addresses and phone numbers are optional and can be marked as "not provided" with appropriate flags. **Tags:**People, Case Management, Person Creation
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. The person will be created within this company's database.
callId (path) * - The unique identifier of the call (case) to which the person should be associated.
body (body) * - A CreatePersonDto object containing the person's information including name, contact details, person type/role, and flags such as deceased status and obituary inclusion.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the person and associated them with the case.
DELETE /v2/Advisor/Call/{callId}/Person/{personId}

Remove Person from Case

Permanently removes a person and their associated roles from a specific case (call). This is a hard delete operation that removes the person record entirely from the database. Use this endpoint with caution as the deletion cannot be undone. **Usage Notes:** - This is a permanent hard delete operation; the person record is completely removed from the database. - All PersonPersonType associations for the person and call are removed first. - The person record itself is then deleted from the People table. - This operation cannot be undone; consider carefully before deleting. - If the person is associated with other cases, only their association with this specific case is removed. - Use this endpoint only when a person was added in error or is no longer relevant to the case. **Tags:**People, Case Management, Delete, Hard Delete
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the deletion occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) from which the person should be removed.
personId (path) * - The unique identifier of the person to be deleted.
Responses
200 - Successfully deleted the person and returns their person ID.
GET /v2/Advisor/Call/{callId}/Person/{personId}

Get Person Details for Editing

Retrieves comprehensive information about a specific person associated with a case, formatted for editing purposes. This includes personal information, address, contact details, SSN (decrypted), relationship to the case, and assigned case roles. **Usage Notes:** - The person's SSN is decrypted from storage before being returned. - Address information is included with related county data when available. - PersonTypeId represents the person's primary relationship to the decedent (e.g., spouse, child, friend). - CaseRoles is an array of role IDs representing functional roles on the case (e.g., informant, next-of-kin, clergy). - Only roles marked as IsRelationship are considered for PersonTypeId. - Only roles marked as IsCaseRole or IsParticipantRole are included in the CaseRoles array. - This endpoint is typically used to populate edit forms in the user interface. **Tags:**People, Case Management, Person Details, Edit
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the person is retrieved within the correct company context.
callId (path) * - The unique identifier of the call (case) for which the person's information should be retrieved.
personId (path) * - The unique identifier of the person whose details should be retrieved.
Responses
200 - Successfully returns the person's details formatted for editing.
PATCH /v2/Advisor/Call/{callId}/Person/{personId}

Update Person Information (Partial)

Performs a partial update on a person's information using JSON Patch operations. This endpoint supports updating personal details, relationship type, case roles, and special handling for parent biographical information. SSN values are automatically encrypted when updated. **Usage Notes:** - Uses JSON Patch (RFC 6902) for partial updates; only specified fields are modified. - SSN values are automatically encrypted before saving when the Ssn field is patched. - Updating PersonTypeId changes the person's relationship role (e.g., spouse, child, friend). - Updating CaseRoles modifies the person's functional roles on the case (e.g., informant, next-of-kin). - When PersonTypeId is set to Father or Mother, birth location is copied to the decedent's biographical info. - The endpoint automatically manages PersonPersonType associations when roles change. - If no CaseRoles are provided, all existing case roles are removed. - The SynchronizeUnspecifiedPersonType method is called after save to clean up orphaned "Unspecified" roles. - Model validation is performed after applying the patch; invalid data returns a 400 error with details. **Tags:**People, Case Management, Update, PATCH, JSON Patch
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the update occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) associated with the person.
personId (path) * - The unique identifier of the person to be updated.
body (body) * - A JSON Patch document containing the operations to apply to the person record. Supports standard JSON Patch operations (add, remove, replace) on PersonEditDto properties.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content is returned on successful update (HTTP 204).
GET /v2/Advisor/Call/{callId}/GetPersonByFullName/{customerName}

Get Person ID by Full Name

Searches for a person by their full name and returns their person ID. This endpoint performs a case-insensitive search and is typically used for person lookup operations during case management workflows when only the person's name is known. **Usage Notes:** - The search is case-insensitive using CurrentCultureIgnoreCase comparison. - The search matches against the Person.FullName computed field, not individual name components. - Only the first matching person is returned; if multiple people have the same name, only one is returned. - The call ID parameter is currently not used in filtering but is part of the route for consistency. - This endpoint is useful for linking existing persons to cases or events. - An exception is thrown if no matching person is found, rather than returning null or 404. **Tags:**People, Case Management, Person Search, Lookup
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the search occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) for context. Note: This parameter is in the route but not currently used in the search logic.
customerName (path) * - The full name of the person to search for. The search is case-insensitive and matches against the Person.FullName field (which is typically formatted as "FirstName LastName").
Responses
200 - Successfully found a person with the specified name and returns their person ID.
PATCH /v2/Advisor/Call/{callId}/Person/{personId}/Address

Update Person Address (Partial)

Performs a partial update on a person's address using JSON Patch operations. If the person doesn't have an address, a new address record is created. County information is automatically resolved and linked based on the provided county name. **Usage Notes:** - Uses JSON Patch (RFC 6902) for partial updates; only specified fields are modified. - If the person doesn't have an existing address, a new address record is automatically created. - The address is marked as active and associated with the company upon creation. - County information is automatically resolved and linked based on the county name provided in the patch. - Model validation is performed after applying the patch; invalid data returns a 400 error with details. - The person record is automatically linked to the new address if one is created. - Address fields include street, city, state, ZIP code, county, and country. **Tags:**People, Address, Case Management, Update, PATCH, JSON Patch
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the update occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) for context. Not directly used in the operation but maintains routing consistency.
personId (path) * - The unique identifier of the person whose address should be updated.
body (body) * - A JSON Patch document containing the operations to apply to the address record. Supports standard JSON Patch operations (add, remove, replace) on AddressDto properties.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content is returned on successful update (HTTP 204).
POST /v2/Advisor/Call/{callId}/QrToken

Gets or creates a QR token for a case. Used by the PeopleQR PageBuilder component.

Parameters
companyId (header)
callId (path) *
Responses
200 - OK
GET /v2/Advisor/Call/{callId}/ContractTotal

Get Contract Grand Total

Calculates and returns the grand total amount for a case's contract by summing all line item extended prices and taxes. This provides a quick total without the detailed breakdown. **Usage Notes:** - The grand total is calculated as the sum of (ExtendedPrice + TotalTax2) for all contract details. - Includes all contract details: merchandise, services, cash advances, adjustments, and deductions. - Returns 0 if no contract details exist for the case. - This is a simplified calculation; use GetContractSummary for a detailed breakdown. **Tags:**Contracts, Financial, Case Management, Totals
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the calculation occurs within the correct company context.
callId (path) * - The unique identifier of the call (case) for which the contract total should be calculated.
Responses
200 - Successfully calculated and returns the contract grand total.
GET /v2/Advisor/Call/{callId}/ContractSummary

Get Contract Financial Summary

Retrieves a comprehensive financial summary of a case's contract including subtotal, adjustments, tax, grand total, payments made, and outstanding balance. This provides a complete financial overview of the arrangement contract. **Usage Notes:** - Subtotal includes all line items without adjustment types (merchandise, services, cash advances). - Adjustments include items with adjustment types (discounts, credits, additional charges). - Tax is the sum of TotalTax2 from all contract details. - Grand Total = Subtotal + Adjustments + Tax. - Payments includes only active payments for the call. - Balance = Grand Total - Payments. - The Addendums field is currently always false (legacy field). - Throws an exception if no contract details exist (null check). **Tags:**Contracts, Financial, Case Management, Summary, Payments, Balance
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Ensures the summary is calculated within the correct company context.
callId (path) * - The unique identifier of the call (case) for which the contract summary should be retrieved.
Responses
200 - Successfully calculated and returns the contract financial summary.
GET /v2/Advisor/Call/{callId}/ContractSummaryBreakdown

Contract Summaries

Returns list of Contract Summaries matching Call Id specified in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - List of Contract Summaries
GET /v2/Advisor/Call/{callId}/Contracts

Get Case Contracts and Addendums

Retrieves all contracts and contract addendums for a specific case. The primary contract is listed first, followed by any addendums in order. Each contract includes metadata such as contract date, lock status, and addendum flag. **Usage Notes:** - Contracts are ordered with primary contract (IsAddendum = false) first, then addendums by ContractId. - Each contract includes metadata like ContractDate, IsLocked, and IsAddendum flags. - Most cases have one primary contract, but addendums are created for contract modifications. - Addendums allow changes to be tracked separately while preserving the original contract. **Tags:**Contracts, Case Management, Addendums
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
callId (path) * - The unique identifier of the call (case) for which contracts should be retrieved.
Responses
200 - Successfully returns the list of contracts.
POST /v2/Advisor/Call/{callId}/CreateNewContractAddendum

Create Contract Addendum

Creates a new contract addendum for a posted case. Addendums allow additional items or charges to be added to a contract after the original contract has been posted to accounting. The case must be in a posted state before an addendum can be created. Companies with running addendums enabled can only have one addendum at a time. **Usage Notes:** - Requires the CreateAddendum permission for the specified funeral home. - The case must be in a posted state before an addendum can be created. - Throws an exception if the case is not posted. - For companies with running addendums enabled, only one addendum can exist at a time. - The new addendum is created with IsAddendum = true to distinguish it from the original contract. - Addendums can have items added to them and can be locked separately from the original contract. **Tags:**Contract Management, Addendums, Contract Modifications, Posted Cases
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
selectedFhIdForPermissionsCheck (header) - The unique identifier of the funeral home location, provided in the request header. Used for location-specific permission validation. Optional parameter that may be null for company-level permissions.
callId (path) * - The unique identifier of the case for which to create the addendum. The case must exist, belong to the specified company, and be in a posted state.
Responses
200 - Successfully created a new contract addendum for the specified case.
POST /v2/Advisor/Call/{callId}/LockContractAddendum/{contractId}

Lock Contract Addendum

Locks a contract addendum to prevent further modifications. Once locked, the addendum cannot be edited unless it is explicitly unlocked. An addendum must have at least one contract detail item added to it before it can be locked. Locking an addendum records the lock timestamp and the user who performed the lock. **Usage Notes:** - Requires the LockAddendum permission for the specified funeral home. - The addendum must have at least one contract detail item before it can be locked. - Throws an exception if attempting to lock an empty addendum. - Sets IsAddendumLocked = true, DateAddendumLocked = current timestamp, and AddendumLockedBy = current user ID. - Locked addendums cannot be modified without first unlocking them. - This operation is commonly used to finalize an addendum before accounting export. **Tags:**Contract Management, Addendums, Locking, Contract Security
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
selectedFhIdForPermissionsCheck (header) - The unique identifier of the funeral home location, provided in the request header. Used for location-specific permission validation. Optional parameter that may be null for company-level permissions.
callId (path) * - The unique identifier of the case. Used to validate that the contract belongs to this case.
contractId (path) * - The unique identifier of the contract addendum to lock. The addendum must exist and have at least one item before it can be locked.
Responses
200 - Successfully locked the contract addendum. Returns true.
POST /v2/Advisor/Call/{callId}/UnLockContractAddendum/{contractId}

Unlock Contract Addendum

Unlocks a previously locked contract addendum to allow modifications. Before unlocking an addendum, the system verifies that no other unlocked addendums exist for the same case (only one addendum can be unlocked at a time). Unlocking clears the lock timestamp and user information. **Usage Notes:** - Requires the LockAddendum permission for the specified funeral home. - Only one addendum can be unlocked at a time for any given case. - Throws an exception if another unlocked addendum exists - it must be locked or deleted first. - Sets IsAddendumLocked = false and clears DateAddendumLocked and AddendumLockedBy fields. - Unlocking allows the addendum to be modified before re-locking. - This operation is commonly used when corrections need to be made to a locked addendum. **Tags:**Contract Management, Addendums, Unlocking, Contract Security
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
selectedFhIdForPermissionsCheck (header) - The unique identifier of the funeral home location, provided in the request header. Used for location-specific permission validation. Optional parameter that may be null for company-level permissions.
callId (path) * - The unique identifier of the case. Used to validate that the contract belongs to this case and check for other unlocked addendums.
contractId (path) * - The unique identifier of the contract addendum to unlock. The addendum must exist and be in a locked state.
Responses
200 - Successfully unlocked the contract addendum. Returns true.
POST /v2/Advisor/Call/{callId}/DeleteContractAddendum/{contractId}

Delete Contract Addendum

Deletes a contract addendum and all associated contract details and engraving information. An addendum must be unlocked before it can be deleted, and it cannot be deleted if any of its items have been exported to accounting systems. This operation permanently removes the addendum and all related data. **Usage Notes:** - Requires the DeleteAddendum permission for the specified funeral home. - The addendum must be unlocked before deletion - throws exception if locked. - Throws an exception if any contract details have been exported to accounting. - Deletes all associated engraving information for items on the addendum. - Removes all contract details before removing the contract itself. - This is a permanent deletion operation and cannot be undone. - Changes are saved to both the client database and the advisor orders database. **Tags:**Contract Management, Addendums, Deletion, Contract Removal
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
selectedFhIdForPermissionsCheck (header) - The unique identifier of the funeral home location, provided in the request header. Used for location-specific permission validation. Optional parameter that may be null for company-level permissions.
callId (path) * - The unique identifier of the case. Used to validate that the contract belongs to this case.
contractId (path) * - The unique identifier of the contract addendum to delete. The addendum must exist, be unlocked, and have no exported items.
Responses
200 - Successfully deleted the contract addendum. Returns true.
GET /v2/Advisor/Call/{callId}/Contract/Details

Get All Contract Details for Case

Retrieves all contract detail items (products, services, merchandise) for all contracts and addendums associated with a case. This endpoint returns a comprehensive list of all items that have been added to any contract for the case, including items on the original contract and all addendums. **Usage Notes:** - Returns items from both the original contract and all addendums. - Each contract detail includes item information, pricing, quantities, and notes. - Results include both active and deleted items (check the Active flag). - Use this endpoint to get a complete view of all items across all contracts for a case. - To retrieve items for a specific contract only, use the contract-specific overload. **Tags:**Contract Management, Contract Details, Items, Services, Products
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to retrieve all contract details for this case across all contracts.
Responses
200 - Successfully returns all contract details for the specified case.
GET /v2/Advisor/Call/{callId}/GetLatestContractId

Get Latest Contract ID for Case

Retrieves the most recent contract ID for a case by returning the highest (most recent) contract ID value. This endpoint is useful for determining the latest contract or addendum that was created for a case, as contract IDs are assigned sequentially. **Usage Notes:** - Returns the contract with the highest ContractId value (most recently created). - Includes both original contracts and addendums in the search. - Throws an exception if no contract exists for the case. - Useful for identifying the active or current contract/addendum for a case. - Contract IDs are auto-incrementing, so higher values indicate newer contracts. **Tags:**Contract Management, Contract ID, Latest Contract
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions and filter contracts.
callId (path) * - The unique identifier of the case. Used to locate all contracts for this case and identify the most recent one.
Responses
200 - Successfully returns the latest contract ID for the specified case.
GET /v2/Advisor/Call/{callId}/Contract/{contractId}/Details

Get Contract Details for Specific Contract

Retrieves contract detail items (products, services, merchandise) for a specific contract or addendum. This endpoint returns only the items that belong to the specified contract, allowing for granular access to items on individual contracts or addendums. **Usage Notes:** - Returns items only from the specified contract or addendum. - Each contract detail includes item information, pricing, quantities, and notes. - Results include both active and deleted items (check the Active flag). - Use this endpoint when you need items from a specific contract or addendum. - To retrieve all items across all contracts for a case, use the overload without contractId. **Tags:**Contract Management, Contract Details, Items, Services, Products
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the contract belongs to this case.
contractId (path) * - The unique identifier of the specific contract or addendum. Used to retrieve only the items belonging to this contract.
Responses
200 - Successfully returns contract details for the specified contract.
PUT /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/{contractDetailId}/DateCreated

Update Contract Detail Date Created (addendums only)

Updates the DateCreated on a single addendum contract-detail line item. Restricted to , , and . The target row must belong to a contract where IsAddendum == true; otherwise 400 Bad Request is returned.
Parameters
companyId (header) - Company id from header.
callId (path) * - Case id (route).
contractId (path) * - Contract id (route). Must be an addendum.
contractDetailId (path) * - Contract-detail id (route).
body (body) * - New DateCreated value.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - `204 No Content` on success.
GET /v2/Advisor/Call/{callId}/DeletedContractDetails

Get Deleted Contract Details (Audit History)

Retrieves all contract details that have been deleted from a case by querying the audit history table. This endpoint provides visibility into items that were previously on contracts but have been removed, allowing users to review deleted items for audit purposes or to restore information if needed. **Usage Notes:** - Retrieves data from the ContractDetailAudit table using XML parsing of DeletedRecords column. - Includes comprehensive item information by joining with Location_Item, Item, ItemType, PackageLocation, and Package tables. - Each deleted item includes pricing, quantities, tax information, and modification tracking. - Results include ModifiedBy user display names for audit tracking. - Items are sorted by RetailPrice (descending) and then ContractDetailId. - Deleted deductions show DiscountAmount as the RetailPrice. - Useful for reviewing contract changes and understanding what items were removed. **Tags:**Contract Management, Contract Details, Audit History, Deleted Items
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to retrieve deleted contract details from the audit history for this case.
Responses
200 - Successfully returns deleted contract details from the audit history.
POST /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail

Add Item to Contract

Adds a new item (service, product, or merchandise) to a contract or addendum. This endpoint creates a contract detail record that associates an inventory item with a specific contract, including pricing, quantity, and tax information. The item must be from the location's inventory. **Usage Notes:** - Creates a new ContractDetail record with pricing and tax calculations. - The LocationItemId must reference a valid inventory item for the case's location. - Pricing is calculated based on the location item's price and any package associations. - Tax calculations are performed automatically based on the item's taxable flag. - Returns the complete contract detail with all calculated fields populated. - The current user's ID is recorded as the creator for audit tracking. - This endpoint is used when adding individual items to a contract during arrangement. **Tags:**Contract Management, Contract Details, Items, Contract Modifications
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the contract belongs to this case.
contractId (path) * - The unique identifier of the contract or addendum. Used to associate the item with this specific contract.
body (body) * - An UpdateContractDetailDto object containing the item details. Must include LocationItemId, price, quantity, and optionally package information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully added the item to the contract. Returns the created contract detail.
POST /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/{contractDetailId}/Engraving

Add Engraving to Contract Item

Adds engraving information to a contract detail item (typically a casket, urn, or memorial product). This operation creates both an engraving package contract detail (for the engraving service charge) and an engraving information record (containing the personalization details). If the operation fails, the engraving package detail is automatically rolled back to maintain data consistency. **Usage Notes:** - This operation creates TWO records: a contract detail for the engraving package and an engraving information record. - EngravingPackage must be in format "ItemCode_Description" (e.g., "ENG-BRONZE_Bronze Engraving"). - The engraving package item code is extracted from before the underscore. - The engraving package is added to the contract as a billable line item. - Engraving information is stored in the AdvisorOrders database for order processing. - Supports up to 4 lines of engraving text, font selection, and clip art. - If ProofRequested = true, a proof email will be sent to the specified ProofEmailAddress. - Automatic rollback: if engraving info creation fails, the contract detail is deleted. **Tags:**Contract Management, Engraving, Personalization, Contract Details
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the contract belongs to this case.
contractId (path) * - The unique identifier of the contract or addendum. Used to associate the engraving package with this specific contract.
contractDetailId (path) * - The unique identifier of the contract detail item that will be engraved. This is the parent item (e.g., casket) that the engraving applies to.
itemCode (query) - The item code of the product being engraved (parent item). Used for tracking and linking the engraving to the specific product.
body (body) * - An EngravingInformationDto object containing the engraving details. Must include EngravingPackage (format: ItemCode_Description), engraving text lines, font, location, and optionally clip art and proof request.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully added engraving information. Returns the created engraving record.
PUT /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/{contractDetailId}/Engraving

Update Contract Detail Engraving

Updates existing engraving information for a contract detail. The method updates properties such as clip art file, engraving location, font, and various lines of text. It also handles the item code and proof email address based on the provided DTO. The method saves changes to the database and returns the updated engraving information.
Parameters
companyId (header) - ID of the company making the update.
callId (path) * - ID of the call associated with the contract.
contractId (path) * - ID of the contract being updated.
contractDetailId (path) * - ID of the contract detail being updated.
itemCode (query) - Item code related to the engraving information.
body (body) * - Data transfer object containing updated engraving information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The updated engraving information.
POST /v2/Advisor/Call/{callId}/Contract/{contractId}/Deduction

Add Deduction to Contract

Adds a deduction (discount or credit) to a contract to reduce the total contract amount. Deductions can be predefined deduction types or custom ad-hoc deductions created on the fly. Deductions can optionally be associated with a specific contract detail item. Posted contracts and locked addendums cannot be modified. **Usage Notes:** - The Amount must be greater than zero (positive value representing the deduction amount). - Deductions are stored as negative values in the contract details. - If DeductionId is not provided, a custom ad-hoc deduction item is created using OtherName. - Custom deductions create new Item and LocationItem records with status = AdHoc. - Deductions are always non-taxable (Taxable = false). - Can be associated with a specific contract detail via AssociatedContractDetailId (DiscountContractDetailId). - Posted contracts cannot have deductions added unless on an unlocked addendum. - Automatically triggers package and tax recalculation for the contract. **Tags:**Contract Management, Deductions, Discounts, Contract Adjustments
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the contract belongs to this case.
contractId (path) * - The unique identifier of the contract or addendum. Used to associate the deduction with this specific contract.
body (body) * - A NewDeductionDto object containing the deduction details. Must include Amount (positive value). Either DeductionId for predefined deduction or OtherName for custom deduction. Optionally includes AssociatedContractDetailId to link to a specific line item.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully added the deduction to the contract.
POST /v2/Advisor/Call/{callId}/Contract/{contractId}/Adjustment

Add Adjustment to Contract

Adds a price adjustment to a contract to increase or decrease the total contract amount. Unlike deductions, adjustments can be either positive (additions) or negative (reductions) and are typically used for miscellaneous charges or credits not associated with inventory items. Adjustments include a description and adjustment type. **Usage Notes:** - The Amount must not be zero. - MathType determines if the adjustment adds (Positive) or subtracts (Negative) from the contract total. - Negative adjustments are stored as negative Price and TaxableAmount values. - Adjustments do not use LocationItemId - they are contract-specific line items. - The Description field is stored in the Notes property of the contract detail. - AdjustmentTypeId categorizes the adjustment (e.g., admin fee, credit, misc charge). - Can be associated with a specific contract detail via AssociatedContractDetailId. - Posted contracts cannot have adjustments added unless on an unlocked addendum. - Automatically triggers package and tax recalculation for the contract. **Tags:**Contract Management, Adjustments, Price Adjustments, Contract Modifications
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the contract belongs to this case.
contractId (path) * - The unique identifier of the contract or addendum. Used to associate the adjustment with this specific contract.
body (body) * - A NewAdjustmentDto object containing the adjustment details. Must include Amount (cannot be zero), Description, AdjustmentTypeId, and MathType (Positive or Negative). Optionally includes AssociatedContractDetailId to link to a specific line item.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully added the adjustment to the contract.
PUT /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/{contractDetailId}

Update Contract Detail Item

Updates an existing contract detail item with new pricing, quantity, or other modifications. This endpoint allows changes to items already on a contract, including price adjustments, quantity changes, and notes updates. The operation includes automatic tax and package recalculation. **Usage Notes:** - Updates are applied through the SaveContractDetail method which handles validation and calculations. - Price and quantity changes automatically recalculate extended price, tax, and package totals. - The current user's ID is recorded for audit tracking. - Returns the complete updated contract detail with all recalculated fields. - Tax amounts are recalculated based on updated taxable amounts and tax rates. - Package allowances are recalculated if the item is part of a package. **Tags:**Contract Management, Contract Details, Updates, Item Modifications
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the contract belongs to this case.
contractId (path) * - The unique identifier of the contract or addendum. Used to validate the contract detail belongs to this contract.
contractDetailId (path) * - The unique identifier of the contract detail to update. This is the line item on the contract being modified.
body (body) * - An UpdateContractDetailDto object containing the updated values. Can include changes to price, quantity, notes, package associations, and other properties.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updated the contract detail. Returns the updated item with recalculated values.
DELETE /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/{contractDetailId}

Delete Contract Detail Item

Removes an item from a contract, including associated engraving information and order records. If the item is an ad-hoc item not used on any other contracts, the item and location item are automatically deactivated. Posted contracts and locked addendums cannot have items deleted. This operation creates an audit trail entry. **Usage Notes:** - This is a permanent deletion - the contract detail is removed from the database. - An audit trail entry is created in ContractDetailAudit for record-keeping. - Posted contracts cannot have items deleted unless the item is on an unlocked addendum. - Locked addendums cannot have items deleted - must be unlocked first. - If the item has engraving, both the engraving information AND the engraving package detail are deleted. - Any associated OrderItem records in AdvisorOrders are removed. - Ad-hoc items: If this is the last usage of an ad-hoc item, the Item and LocationItem are deactivated. - Regular catalog items are not affected - only the contract detail is removed. - Triggers automatic package and tax recalculation for the contract. **Tags:**Contract Management, Contract Details, Deletion, Item Removal
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate the contract belongs to this case and check posted status.
contractId (path) * - The unique identifier of the contract or addendum. Used to validate the contract detail belongs to this contract.
contractDetailId (path) * - The unique identifier of the contract detail to delete. This is the line item to be removed from the contract.
Responses
200 - Successfully deleted the contract detail item.
PUT /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/{contractDetailId}/UpdateCost

Update Contract Detail Cost (Wholesale Price)

Updates the cost (wholesale/purchase price) of a contract detail item. This operation modifies only the cost field without affecting retail pricing or other contract detail properties. Cost updates are subject to contract state restrictions - posted contracts and locked addendums cannot be modified. **Usage Notes:** - Only updates the Cost field - does not affect Price, Quantity, or other fields. - Cost represents the wholesale/purchase price paid to suppliers. - Posted contracts cannot have costs updated unless the item is on an unlocked addendum. - Locked addendums cannot have costs modified - must be unlocked first. - Cost changes do not trigger tax or package recalculations. - Used for tracking profit margins and cost of goods sold. - The cost field is typically hidden from clients and used for internal accounting. **Tags:**Contract Management, Cost Updates, Wholesale Pricing, Accounting
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the contract belongs to this case and check posted status.
contractId (path) * - The unique identifier of the contract or addendum. Used to validate the contract detail belongs to this contract.
contractDetailId (path) * - The unique identifier of the contract detail to update. This is the line item whose cost will be modified.
body (body) * - An UpdateCostDto object containing the new cost value. Must include a valid Cost property.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updated the cost for the contract detail.
PUT /v2/Advisor/Call/{callId}/Contract/Detail/{contractDetailId}/Notes

Update Contract Detail Notes

Updates only the notes field of a contract detail item without modifying pricing, quantity, or other properties. This lightweight operation is useful for adding product-specific notes, instructions, or special handling information to a line item on a contract. **Usage Notes:** - Only updates the Notes field - does not affect Price, Quantity, Cost, or other fields. - The notes are stored in the contract detail's Notes property. - Notes can include special instructions, personalization details, or internal comments. - This is a lightweight operation that doesn't trigger tax or package recalculations. - Notes are typically displayed on contracts and work orders. - Can be used to track special handling requirements or customer preferences. **Tags:**Contract Management, Contract Details, Notes, Item Annotations
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the contract detail belongs to a contract for this case.
contractDetailId (path) * - The unique identifier of the contract detail to update. This is the line item whose notes will be modified.
body (body) * - An UpdateContractDetailDto object containing the new notes value. Only the ProductNotes property is used from this DTO.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content (204) on successful update.
POST /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/AdHoc

Add Custom Ad-Hoc Item to Contract

Creates and adds a custom ad-hoc item to a contract that doesn't exist in the standard inventory. This endpoint dynamically creates a new Item and LocationItem record with AdHoc status, then adds it to the contract. Useful for one-off products, special requests, or items not in the regular catalog. **Usage Notes:** - Creates THREE records: Item, LocationItem, and ContractDetail. - The new item is marked with ItemStatus = AdHoc to distinguish it from catalog items. - The Item and LocationItem are set to Active = true and AuroraProduct = false. - ItemName is required and must not be empty or whitespace. - Quantity must be greater than zero. - ItemTypeId must reference a valid ItemType for the company. - The ad-hoc item is associated with the case's location. - If the ad-hoc item is later deleted from all contracts, it will be automatically deactivated. - Useful for custom items, special requests, or products not in the standard catalog. **Tags:**Contract Management, Ad-Hoc Items, Custom Items, Contract Details
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to determine the location for the ad-hoc item and validate the contract.
contractId (path) * - The unique identifier of the contract or addendum. Used to add the newly created ad-hoc item to this contract.
body (body) * - A CreateAdHocContractDetailDto object containing the ad-hoc item details. Must include ItemName, ItemTypeId, Price, Quantity (> 0), and optionally ItemCode, Cost, and Taxable flag.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the ad-hoc item and added it to the contract. Returns the contract detail.
DELETE /v2/Advisor/Call/{callId}/Contract/{contractId}/Package/{packageLocationId}

Delete Package from Contract

Removes an entire package and all its associated items from a contract. When a package is deleted, all contract details linked to that package (via PackageLocationId) are removed, including any engraving information. This operation is useful for removing pre-selected service packages when clients change their service selections. **Usage Notes:** - Removes ALL contract details associated with the specified PackageLocationId. - Posted contracts cannot have packages deleted unless the package is on an unlocked addendum. - Locked addendums cannot have packages deleted - must be unlocked first. - Engraving information for all items in the package is automatically removed. - This operation creates audit trail entries for each deleted contract detail. - Useful for removing service packages (e.g., removing a full-service package to select itemized services). - Triggers automatic tax recalculation for the contract. - Package allowances are recalculated after deletion. **Tags:**Contract Management, Packages, Deletion, Service Packages
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate the contract belongs to this case and check posted status.
contractId (path) * - The unique identifier of the contract or addendum. Used to validate the package belongs to this contract.
packageLocationId (path) * - The unique identifier of the package location to remove. All contract details with this PackageLocationId will be deleted.
Responses
200 - Successfully deleted the package and all associated items from the contract.
GET /v2/Advisor/Call/{callId}/Disclosures

Get Case Contract Disclosures

Retrieves all contract disclosures associated with a case. Disclosures are legal statements and consumer notices that must be presented during the arrangement process, such as GPL requirements, embalming disclosures, and other regulatory notices. **Usage Notes:** - Disclosures include FTC-required GPL disclosures, state-specific notices, and embalming disclosures. - Each disclosure tracks which regulatory requirements have been presented to the family. - Required for compliance with funeral industry regulations. - Disclosures are typically presented during arrangement conferences and signed contracts. **Tags:**Contracts, Disclosures, Compliance, GPL, Case Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
callId (path) * - The unique identifier of the call (case) for which disclosures should be retrieved.
Responses
200 - Successfully returns the list of contract disclosures.
POST /v2/Advisor/Call/{callId}/Disclosure

Toggle Case Contract Disclosure

Adds or removes a contract disclosure for a case. If the CallContractDisclosureId is 0, a new disclosure is added. If an ID is provided, the existing disclosure is removed. This toggle behavior allows easy management of which disclosures apply to a case. **Usage Notes:** - If CallContractDisclosureId = 0, creates a new CallContractDisclosure record. - If CallContractDisclosureId > 0, removes the existing CallContractDisclosure record. - This toggle pattern simplifies UI checkbox-style disclosure management. - Only the ContractDisclosureId is needed when adding a new disclosure. - Removal is a hard delete from the database. **Tags:**Contracts, Disclosures, Toggle, Case Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
callId (path) * - The unique identifier of the call (case) for which the disclosure should be toggled.
body (body) * - A CallContractDisclosureDto containing the disclosure details. If CallContractDisclosureId is 0, adds a new disclosure; otherwise removes the existing one.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully added or removed the disclosure.
GET /v2/Advisor/Call/{callId}/UnusedAllowances

Get All Unused Package Allowances

Retrieves all unused allowances from packages selected in the case's contracts. Allowances are credit amounts included in packages that can be applied toward specific item types (e.g., $500 casket allowance). This endpoint calculates remaining allowances after deducting items already selected. **Usage Notes:** - Calculates total allowances from all packages on all contracts for the case. - Deducts the retail value of items already selected in each item type category. - Only returns allowances with remaining balance greater than zero. - Common allowance types: casket, outer burial container, memorial package, flowers. - Useful for showing families what credits they have left to use. **Tags:**Allowances, Contracts, Packages, Financial, Case Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
callId (path) * - The unique identifier of the call (case) for which unused allowances should be calculated.
Responses
200 - Successfully returns the list of unused allowances.
GET /v2/Advisor/Call/{callId}/UnusedAllowances/{contractId}

Get Unused Allowances for Specific Contract

Retrieves unused allowances from packages selected in a specific contract. Similar to GetAllUnusedAllowances but filtered to a single contract, useful when working with contract addendums or viewing allowances per contract. **Usage Notes:** - Calculates allowances only from packages in the specified contract. - Deducts items selected in this contract from the allowance amounts. - Useful for viewing allowances specific to primary contract vs. addendums. - Only returns allowances with remaining balance greater than zero. **Tags:**Allowances, Contracts, Packages, Financial, Case Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
callId (path) * - The unique identifier of the call (case).
contractId (path) * - The unique identifier of the specific contract for which allowances should be calculated.
Responses
200 - Successfully returns the list of unused allowances for the specified contract.
GET /v2/Advisor/Call/{callId}/Payments

Get Case Payments

Retrieves all payments recorded for a case, including payment details, payer information, payment types, and export status. This endpoint returns comprehensive payment data including transaction information, QuickBooks integration status, PayPal payment links, and TSYS credit card processing details. **Usage Notes:** - Returns all payments including active and inactive (deleted) payments. - Each payment includes payment type, amount, check number, payment date, and payer information. - Payer information can be either a person or a third-party organization. - Includes export tracking with DateExported and ExportedBy for accounting integration. - Includes DateImported for payments imported from external sources like QuickBooks. - Indicates TSYS credit card transactions with IsTsys flag based on Tsysresponse data. - Tracks PayPal payments through PaymentPayPalPaymentLinks. - Returns ModifiedBy and ExportedBy user display names for audit tracking. **Tags:**Payment Management, Payments, Financial Transactions, Accounting
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions and filter payments.
callId (path) * - The unique identifier of the case. Used to retrieve all payments associated with this case.
Responses
200 - Successfully returns all payments for the specified case.
POST /v2/Advisor/Call/{callId}/Payments

Add Payment (Record Received Payment)

Records a new payment received for a case. This endpoint creates an actual payment record to track funds received from clients, insurance companies, or other payers. If the payment is associated with an anticipated payment, the anticipated payment will be automatically removed when the actual payment is recorded. **Usage Notes:** - If ContractPaymentSourceId is provided, the corresponding anticipated payment is automatically deleted. - The payment is assigned a transaction number for tracking within the case. - Payer can be either a Person or a ThirdPartyOrganization (e.g., insurance company). - Payment types include cash, check, credit card, insurance, etc. - Include check number for check payments for tracking and reconciliation. - Payments can be soft-deleted later using the DeletePayment endpoint if needed. **Tags:**Payment Management, Payments, Payment Recording, Financial Transactions
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the case exists and to associate the payment with the case.
body (body) * - A NewPaymentDto object containing the payment details. Must include payment amount, payment type, payment date, and contract ID. Optionally includes payer information, check number, and ContractPaymentSourceId if converting from anticipated payment.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully recorded the payment. Returns the created payment with generated ID.
GET /v2/Advisor/Call/{callId}/AnticipatedPayments

Get Anticipated Payments for Case

Retrieves all anticipated (expected) payments for a case. Anticipated payments represent payment commitments or expected payment sources that have not yet been received. These are tracked separately from actual payments and can be converted to actual payments when received. **Usage Notes:** - Anticipated payments are tracked in the ContractPaymentSources table. - Each anticipated payment includes amount, payer information, and notes. - Payer information can be either a person or a third-party organization (e.g., insurance company). - Returns payments for all contracts associated with the case. - When an anticipated payment is converted to an actual payment, it is removed from this list. - Results include ModifiedBy user display names for audit tracking. **Tags:**Payment Management, Anticipated Payments, Payment Sources, Financial Planning
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions and filter payments.
callId (path) * - The unique identifier of the case. Used to retrieve all anticipated payments associated with contracts for this case.
Responses
200 - Successfully returns all anticipated payments for the specified case.
POST /v2/Advisor/Call/{callId}/AnticipatedPayments

Create Anticipated Payment

Creates a new anticipated (expected) payment for a case. Anticipated payments are used to track expected payment sources such as insurance claims, installment payments, or other promised payments that have not yet been received. These can later be converted to actual payments when the funds are received. **Usage Notes:** - The CoId (company ID) is automatically set to the value from the header. - Payer can be either a Person or a ThirdPartyOrganization (e.g., insurance company). - The anticipated payment is associated with a specific contract via ContractId. - Can include notes to track additional information about the expected payment. - When the actual payment is received, use the AddPayment endpoint and reference the ContractPaymentSourceId. - The anticipated payment will be automatically deleted when converted to an actual payment. **Tags:**Payment Management, Anticipated Payments, Payment Creation, Financial Planning
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the case exists for the anticipated payment.
body (body) * - A ContractPaymentSourceDto object containing the anticipated payment details. Must include amount, contract ID, and optionally payer information (PersonId or ThirdPartyOrganizationId).
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the anticipated payment. Returns the created payment with generated ID.
DELETE /v2/Advisor/Call/{callId}/AnticipatedPayments/{paymentId}

Delete Anticipated Payment

Permanently deletes an anticipated (expected) payment from a case. This is a hard delete operation that completely removes the payment source record from the database. Use this when an anticipated payment is no longer expected or was entered in error. **Usage Notes:** - This is a permanent deletion - the anticipated payment is completely removed from the database. - Throws an exception if the case is not found. - Throws an exception if the anticipated payment ID is invalid. - Use this when the anticipated payment is no longer expected or was added in error. - If converting an anticipated payment to an actual payment, use AddPayment instead - it will automatically delete the anticipated payment. **Tags:**Payment Management, Anticipated Payments, Deletion, Payment Removal
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the case exists.
paymentId (path) * - The unique identifier of the anticipated payment (ContractPaymentSourceId) to delete. Must be a valid anticipated payment ID for the specified case.
Responses
200 - Successfully deleted the anticipated payment.
DELETE /v2/Advisor/Call/{callId}/Payments/{paymentId}

Delete Payment (Soft Delete with Reason)

Soft-deletes a payment by marking it as inactive and recording the deletion reason. This operation does not permanently remove the payment from the database but instead flags it as deleted while preserving the payment record for audit purposes. The deletion reason is appended to the payment notes for tracking. **Usage Notes:** - This is a soft delete - the payment record is retained but marked as inactive (Active = false). - The delete reason is required and must not be empty or whitespace. - The delete reason is appended to the existing payment notes with "Deleted Reason:" prefix. - Throws an exception if the case is not found. - Throws an exception if the payment ID is invalid. - Deleted payments will still appear in payment queries but can be filtered using the Active flag. - Use this for correcting errors or voiding payments - the audit trail is preserved. **Tags:**Payment Management, Payments, Deletion, Soft Delete, Audit Trail
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to validate that the case exists.
paymentId (path) * - The unique identifier of the payment to delete. Must be a valid payment ID for the specified case.
deleteReason (query) - The reason for deleting the payment, provided as a query string parameter. This is a required field and must not be empty or whitespace. The reason will be appended to the payment notes with a "Deleted Reason:" prefix.
Responses
200 - Successfully soft-deleted the payment.
GET /v2/Advisor/Payments/Invoice

Get Invoice Payments from Trade Firms

Retrieves invoice payments made by trade firms (suppliers/vendors) on behalf of cases. These payments represent credits or advances from suppliers like casket manufacturers or vault companies. Returns payments with calculated remaining balances based on how much has been applied to actual case payments. Only includes recent payments (last 6 years) or payments with remaining balances. **Usage Notes:** - Requires ManageInvoicePayments permission for the specified funeral home. - AmountRemaining is calculated as: Amount - Sum(applied case payments). - Only returns payments from the last 6 years OR payments with remaining balance > 0. - Trade firms are suppliers/vendors (casket companies, vault companies, etc.). - Invoice payments can be applied to multiple case payments until fully used. - Used to track supplier credits and advances applied to customer cases. - Includes payment type, check number, and payment date information. **Tags:**Payments, Invoice Payments, Trade Firms, Vendor Credits
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to filter invoice payments for this company.
selectedFhIdForPermissionsCheck (header) - The unique identifier of the funeral home location, provided in the request header. Used to validate ManageInvoicePayments permission for this location.
Responses
200 - Successfully returns the list of invoice payments.
POST /v2/Advisor/Payments/Invoice

Add Invoice Payment from Trade Firm

Records a new invoice payment received from a trade firm (supplier/vendor). Invoice payments represent credits or advances from suppliers that can be applied to case payments. Common scenarios include casket manufacturer credits, vault company advances, or promotional allowances from suppliers. **Usage Notes:** - Requires ManageInvoicePayments permission for the specified funeral home. - The invoice payment is automatically set to Active = true. - CoId is automatically set from the header parameter. - TradeFirmLocationId must reference a valid trade firm/supplier location. - The full amount is available for application to case payments initially. - Can be applied to multiple case payments until fully consumed. - Common payment types: Check, ACH, Credit, Promotional Allowance. - Used to track supplier credits applied to reduce customer balances. **Tags:**Payments, Invoice Payments, Trade Firms, Vendor Credits
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to associate the invoice payment with this company.
selectedFhIdForPermissionsCheck (header) - The unique identifier of the funeral home location, provided in the request header. Used to validate ManageInvoicePayments permission for this location.
body (body) * - A NewInvoicePaymentDto object containing the invoice payment details. Must include TradeFirmLocationId, PaymentTypeId, Amount, PaymentDate, and optionally CheckNumber.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the invoice payment. Returns the created record.
GET /v2/Advisor/Payments/Invoice/{invoicePaymentId}

Get Invoice Payment By ID

Retrieves the invoice payment details including payment type, trade firm location, and amount remaining. Requires permission to manage invoice payments.
Parameters
companyId (header) - The company identifier from the request header.
selectedFhIdForPermissionsCheck (header) - The funeral home identifier for permission checking.
invoicePaymentId (path) * - The ID of the invoice payment to retrieve.
Responses
200 - Returns the details of the invoice payment.
GET /v2/Advisor/Payments/Invoice/{invoicePaymentId}/Payments

Invoice Payment Payments

Returns list of Invoice Payment Payments matching Invoice Payment Id in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
invoicePaymentId (path) * - Invoice Payment Id
Responses
200 - List of Invoice Payment Payments
POST /v2/Advisor/Payments/Invoice/{invoicePaymentId}/Payments

Adds a Payment to an Invoice Payment

Adds a Payment to an Invoice Payment matching Invoice Payment Id in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
invoicePaymentId (path) * - Invoice Payment Id
body (body) * - Payment payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - List of Invoice Payment Payments
GET /v2/Advisor/Payments/Invoice/{invoicePaymentId}/Calls

Invoice Payment Outstanding Balances

Returns list of Invoice Payment Outstanding Balances matching Invoice Payment Id in request.
Parameters
companyId (header) - Company Id
invoicePaymentId (path) * - Invoice Payment Id
Responses
200 - List of Outstanding Balances
POST /v2/Advisor/Call/Arrangement/Completion

Saves Arrangement Completion

Updates Call Status to Arrangement Complete.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Arrangement Completion payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
POST /v2/Advisor/Call/{callId}/ArrangerHistory

Add Arranger History

Adds Arranger History matching Call Id in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
body (body) * - Arranger History payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Advisor/Call/{callId}/Selection/Services

Get Available Service Selections for Case

Retrieves all available professional service items (excluding gatherings) that can be added to a case's contract. This endpoint returns items based on the case's location and disposition, filtering out inactive, discontinued, or incompatible items. Items already on the contract are included with their contract detail information. **Usage Notes:** - Returns only professional service items (IsProfessionalService = true), excluding gatherings. - Items already on any contract for the case are included with ContractDetailId and quantity/price information. - Filters out inactive items, discontinued items, and items with incompatible disposition categories. - Disposition filtering ensures only appropriate items for burial/cremation/both are shown. - Results are sorted by item type sort order, then display order, then item name. - Includes pricing tier information for trade/wholesale pricing. - Single-select items and variable-price items are flagged in the response. - Ad-hoc items (custom items) are identified with the IsAdHoc flag. **Tags:**Service Selection, Professional Services, Contract Items, Item Catalog
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to retrieve available service items based on the case's location and disposition.
Responses
200 - Successfully returns available service selections for the case.
GET /v2/Advisor/Call/{callId}/Selection/Services/{contractId}

Get Available Service Selections for Specific Contract

Retrieves available professional service items for a specific contract or addendum. This endpoint is similar to GetCallServiceSelection but filters items to show only those already on the specified contract or those available to add to that contract. Useful when working with addendums or specific contract versions. **Usage Notes:** - Returns only professional service items (IsProfessionalService = true), excluding gatherings. - Items already on the specified contract are included with ContractDetailId and quantity/price information. - Items from other contracts on the same case are NOT included in contract details. - Filters out inactive items, discontinued items, and items with incompatible disposition categories. - Useful for managing addendums or viewing contract-specific item selections. - Results are sorted by item type sort order, then display order, then item name. - Includes pricing tier information for trade/wholesale pricing. **Tags:**Service Selection, Professional Services, Contract Items, Addendums
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to retrieve available service items based on the case's location and disposition.
contractId (path) * - The unique identifier of the specific contract or addendum. Used to filter items to show only those on this contract or available to add to it.
Responses
200 - Successfully returns available service selections for the specified contract.
GET /v2/Advisor/Call/{callId}/AvailableDeductions

Get Available Deductions for Case

Retrieves all available deduction items that can be applied to a case's contract. Deductions are special items that reduce the total contract price, such as discounts, credits, trade allowances, or package deductions. Only active, non-discontinued deduction items from the case's location are returned. **Usage Notes:** - Returns only items with MasterItemTypeId = Deduction. - Filters to include only active items (both location item and master item must be active). - Only includes items with ItemStatus of Active or Modified. - Each deduction includes item name, description, cost, price, and GL code information. - Deductions appear as negative amounts when applied to contracts. - Common deduction types include trade-ins, package allowances, and promotional discounts. - The Taxable flag indicates whether the deduction affects taxable amounts. **Tags:**Deductions, Discounts, Contract Adjustments, Pricing
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
callId (path) * - The unique identifier of the case. Used to retrieve available deduction items based on the case's location.
Responses
200 - Successfully returns available deductions for the case.
PUT /v2/Advisor/Call/{callId}/Detail/{contractDetailId}/UpdateEngravingInformationContractDetailId/{engravingInformationContractDetailId}

Update Engraving Information Contract Detail ID

Updates the EngravingInformation.EngravingInformationContractDetailId for the engraving record linked to the specified call and contract detail, typically after moving or replacing the originating package line. **Usage Notes:** - This endpoint is used when reassigning engraving information to a different package line item. - The engraving information is located by the original contract detail and call combination. - Updates are persisted to the AdvisorOrders database context.
Parameters
companyId (header) - Company identifier supplied in the request header; used to resolve permissions and the client database context.
callId (path) * - Identifier of the call/case that owns the engraving information entry.
contractDetailId (path) * - Identifier of the contract detail currently linked to the engraving information entry.
engravingInformationContractDetailId (path) * - Identifier of the contract detail that should replace the existing reference on long? EngravingInformation.EngravingInformationContractDetailId.
Responses
200 - No content on successful update.
DELETE /v2/Advisor/Engraving/{engravingInformationId}

Delete Engraving Information

Deletes an engraving information record from Advisor Orders and, when applicable, removes the associated engraving contract detail from the client database. Ensures both sources stay in sync, rolling back if either delete fails. **Usage Notes:** - Deletes the Advisor Orders record first, then removes the linked client contract detail if one exists. - Attempts to reinsert the Advisor Orders record if the client delete fails. - Throws`SolutionCenterException`when the engraving record cannot be found. **Tags:**Advisor, Contracts, Engraving
Parameters
companyId (header) - Company identifier supplied in the request header. Used to scope permission checks and client DB access.
engravingInformationId (path) * - Identifier of the engraving information entry to delete.
Responses
200 - Successfully removes the engraving information (and linked contract detail when present).
GET /v2/Advisor/Call/{callId}/ContractDetail/{contractDetailId}/EngravingInformation

Get Engraving Information for Contract Details

Retrieves engraving information associated with a specific contract detail and call. Returns null if no engraving information is found.
Parameters
companyId (header) - The company identifier from the request header.
callId (path) * - The call identifier.
contractDetailId (path) * - The contract detail identifier.
Responses
200 - Returns the engraving information for the specified contract detail and call, or null if not found.
GET /v2/Advisor/{fhId}/EngravingItems

Engraving Items

Returns list of Engraving Items matching Funeral Home Id in request.
Parameters
companyId (header) - Company Id
fhId (path) * - Funeral Home Id
Responses
200 - List of Engraving Items
GET /v2/Advisor/FormFieldMaps

Get Form Field Mappings for PDF Form Population

Retrieves all available form field mappings that define how case data maps to PDF form fields via XPath expressions. Includes both standard system mappings and dynamically generated mappings for company-specific custom fields. These mappings are used to automatically populate PDF forms with case data during document generation. **Usage Notes:** - Returns system-defined mappings from AdvisorMaster.FormFieldMaps. - Dynamically generates additional mappings for each active custom field. - Custom field mappings use format: "custom_Field{CustomFieldId}" for PdfFieldName. - Custom field XPath: //call/CustomFieldData/CustomField[@CustomDataFieldId="{id}"]/Value - Custom field mappings are assigned auto-incremented IDs above the max system mapping ID. - Used by PDF form filling service to map case XML data to PDF form fields. - IsMultiValued flag indicates if the field can contain multiple values. - Note field provides human-readable description of what the field contains. **Tags:**Forms, PDF Forms, Field Mapping, Export, Custom Fields
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to retrieve company-specific custom field mappings.
Responses
200 - Successfully returns all form field mappings including custom fields.
GET /v2/Report

Get Reports

Retrieves a list of reports for the specified company, optionally including last viewed information.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check (optional).
lastViewed (query) - A flag to indicate if last viewed information should be included (default is false).
Responses
200 - Returns a list of reports.
POST /v2/Report

Post Report

Creates a new report based on the provided report data.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
body (body) * - The report data to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Indicates that the report was successfully created.
GET /v2/Report/CallReports

Get Call Reports

Retrieves a list of call reports for the specified company. When callId or locationId is provided, state-specific reports are filtered to show only those matching the location's state. Reports that are not state-specific are always included.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
callId (query) - Optional call ID to filter state-specific reports based on the case's location state.
locationId (query) - Optional location ID to filter state-specific reports based on the location's state (alternative to callId).
Responses
200 - Returns a list of call reports.
GET /v2/Report/ArrangerReports

Get Arranger Reports

Retrieves a list of arranger reports for the specified company. When callId or locationId is provided, state-specific reports are filtered to show only those matching the location's state. Reports that are not state-specific are always included.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
callId (query) - Optional call ID to filter state-specific reports based on the case's location state.
locationId (query) - Optional location ID to filter state-specific reports based on the location's state (alternative to callId).
Responses
200 - Returns a list of arranger reports.
GET /v2/Report/CallReportById

Get Call Report By Id

Retrieves a single call report based on the provided report ID.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
reportId (query) - The ID of the report to retrieve.
Responses
200 - Returns the report with the specified ID.
GET /v2/Report/BusinessReports

Get Business Reports

Retrieves a list of business reports for the specified company.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
Responses
200 - Returns a list of business reports.
GET /v2/Report/CorporateReports

Get Corporate Reports

Retrieves a list of corporate reports based on the user's roles and permissions.
Parameters
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
Responses
200 - Returns a list of corporate reports.
GET /v2/Report/SSRS

Get SSRS Reports

Retrieves a list of SSRS reports with their details.
Responses
200 - Returns a list of SSRS reports.
GET /v2/Report/SSRS/Parameters

Get SSRS Report Parameters

Retrieves parameters for the specified SSRS report.
Parameters
reportPath (query) - The path of the SSRS report.
Responses
200 - Returns a list of SSRS report parameters.
GET /v2/Report/SSRS/{companyId}/DatabaseName

Get Client Database Name

Returns the SQL database name backing the specified company’s client context. Intended for SSRS configuration scenarios where the database needs to be referenced explicitly. **Usage Notes:** - Parses the connection string from the resolved client DbContext. - Useful when constructing SSRS data sources dynamically. **Tags:**Forms, Reports, SSRS
Parameters
companyId (path) * - Company identifier provided in the route.
Responses
200 - Successfully resolves and returns the database name.
PATCH /v2/Report/{reportId}

Patch Report

Updates the specified report based on the provided patch document. For `HttpPatch` methods, include a sample patch document in the remarks.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
reportId (path) * - The ID of the report to update.
body (body) * - The patch document containing the updates.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Report/FormData/{reportId}

Get Report Bits

Retrieves the form data for the specified report ID, including handling blob storage.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
reportId (path) * - The ID of the report to retrieve.
Responses
200 - Returns the report bits (form data).
GET /v2/Report/PreviewImage/{reportName}

Get Preview Image

Retrieves the preview image for the specified report.
Parameters
companyId (header) - The ID of the company.
reportName (path) * - The name of the report.
Responses
200 - Returns the preview image of the report.
POST /v2/Advisor/ThirdPartyOrganization

Create Third-Party Organization

Creates a new third-party organization entity such as an insurance company, cemetery, church, or other external organization that may be involved with cases. Third-party organizations can be associated with payments, services, or other case activities. **Usage Notes:** - Creates a new entry in the ThirdPartyOrganizations table. - CoId is automatically set to the company from the header. - Common types: insurance companies, cemeteries, churches, funeral homes, crematoriums. - Organizations can be selected as payers for anticipated payments. - Can be associated with service locations, disposition facilities, etc. - Typically includes contact information for coordination and billing. - The created organization is available immediately for use in cases. **Tags:**Third-Party Organizations, Insurance, Cemeteries, External Entities
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to associate the third-party organization with this company.
body (body) * - A ThirdPartyOrganizationDto object containing the organization details. Must include organization name and optionally contact information, address, and type.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the third-party organization. Returns the created entity.
GET /v2/Advisor/PersonRequirement

Get Person Data Requirements Configuration

Retrieves the company's configuration for which person fields are required during case data entry. This allows companies to customize which demographic and biographical fields must be completed for decedents, next-of-kin, and other people involved in cases. Used by the UI to enforce data validation rules. **Usage Notes:** - Returns company-specific person field requirement rules. - Each requirement specifies which form field is required for which person roles. - Used by the UI to display required field indicators and enforce validation. - Common required fields: name, SSN, date of birth, address, phone, email. - Different requirements can apply to different person types (decedent vs. next-of-kin). - Empty list means only system default required fields apply. - Configuration is stored per company in the PersonRequirements table. **Tags:**Settings, Person Requirements, Data Validation, Configuration
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to retrieve company-specific person requirement configuration.
Responses
200 - Successfully returns the person data requirements configuration.
POST /v2/Advisor/PersonRequirement

Save Person Data Requirements Configuration

Updates the company's configuration for which person fields are required during case data entry. This endpoint performs a full replacement - it removes requirements that are no longer in the list and adds new requirements. Used by administrators to customize required person data fields for their company. **Usage Notes:** - This is a full replacement operation - not a patch/merge. - Existing requirements not in the new list are deleted from the database. - New requirements (PersonRequirementId = 0) are inserted as new records. - Each requirement specifies PersonTypeId and ColumnName (field identifier). - CoId is automatically set from the header parameter. - Changes take effect immediately for data entry validation. - Uses PersonRequirementDtoComparer to identify deleted requirements. **Tags:**Settings, Person Requirements, Configuration, Data Validation
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to save company-specific person requirement configuration.
body (body) * - A list of PersonRequirementDto objects defining the new set of required fields. Items with PersonRequirementId = 0 are treated as new requirements to be added.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully saved the person requirements configuration.
GET /v2/Advisor/PersonRequirement/AvailableFields

Get Available Fields for Person Requirements

Retrieves the list of person form fields that can be configured as required fields. Returns all visible fields from the person form (FormId = 51) excluding certain system fields. This endpoint provides the available options when configuring which person fields should be required for data entry. **Usage Notes:** - Returns fields from the person form (FormId = 51) in AdvisorGlobal. - Only includes visible fields (IsVisible = true). - Excludes specific system fields: 754, 762, 763, 764, 1694, 745, 747. - Used to populate dropdown/selection UI when configuring person requirements. - Administrators use this to determine which fields can be marked as required. - Available fields include demographic, contact, biographical, and identification fields. - Field list is consistent across all companies (from global configuration). **Tags:**Settings, Person Requirements, Form Fields, Configuration
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to validate company access permissions.
Responses
200 - Successfully returns the available person form fields.
GET /v2/Person/{personId}

Get Person

Retrieves a person based on the provided person ID and company ID. Applies view permissions if necessary.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID for permissions check.
personId (path) * - The ID of the person to retrieve.
Responses
200 - Returns the person details.
PUT /v2/Person/{personId}

Update Person

Updates the details of an existing person based on the provided ID and data.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID for permissions check.
personId (path) * - The ID of the person to update.
body (body) * - The updated details of the person.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Update successful.
DELETE /v2/Person/{personId}

Delete Person

Soft deletes a person by setting the 'Active' flag to false.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID for permissions check.
personId (path) * - The ID of the person to delete.
Responses
200 - Deletion successful.
POST /v2/Person

Create Person

Creates a new person record and returns the newly created person. Requires appropriate permissions.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID for permissions check.
body (body) * - The details of the person to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the created person details.
GET /v2/Person/{personId}/Licenses

Get Licenses

Retrieves a list of licenses associated with a person based on the provided person ID and company ID.
Parameters
companyId (header) - The ID of the company.
personId (path) * - The ID of the person to retrieve licenses for.
Responses
200 - Returns the list of licenses.
POST /v2/Person/{personId}/License

Create License

Creates a new license record for a person and returns the newly created license.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID for permissions check.
personId (path) * - The ID of the person to add the license to.
body (body) * - The details of the license to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the created license details.
PUT /v2/Person/{personId}/License/{licenseId}

Updates License

Updates the details of an existing license based on the provided license ID and data.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID for permissions check.
personId (path) * - The ID of the person the license is associated with.
licenseId (path) * - The ID of the license to update.
body (body) * - The updated details of the license.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Update successful.
DELETE /v2/Person/{personId}/License/{licenseId}

Delete License

Soft deletes a license by setting the 'Active' flag to false.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID for permissions check.
personId (path) * - The ID of the person the license is associated with.
licenseId (path) * - The ID of the license to delete.
Responses
200 - Deletion successful.
GET /v2/Advisor/Payments/QuickbooksImportPayments

Retrieves all QuickBooks payments that have not yet been marked as imported.

This endpoint is typically used by integration services to identify which QuickBooks payments need to be processed and marked as imported.
Parameters
realmId (query)
Responses
200 - Returns a list of pending QuickBooks payments ready for import.
PUT /v2/Advisor/Payments/UpdateQuickbooksPaymentImport/{paymentId}

Updates the import status of a specific QuickBooks payment by setting its DateImported to the current UTC time.

This endpoint is typically called after a successful import operation to prevent duplicate processing of the same QuickBooks payment record.
Parameters
paymentId (path) * - The unique identifier of the QuickBooks payment to update.
Responses
200 - Indicates the payment was successfully marked as imported.
GET /v2/Advisor/Arrangement/{caseId}/Progress

Get Arrangement Progress

Returns saved page completion progress for the specified case.
Parameters
companyId (header) - Company Id
caseId (path) * - Case Id (CallId)
Responses
200 - Arrangement progress for the case
POST /v2/Advisor/Arrangement/{caseId}/Progress

Save Arrangement Progress

Saves page completion progress for the specified case. Creates a new record or updates existing.
Parameters
companyId (header) - Company Id
caseId (path) * - Case Id (CallId)
body (body) * - Arrangement progress payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Advisor/PageFlows

Page Flows

Returns list of Page Flows.
Parameters
companyId (header) - Company Id
Responses
200 - List of Page Flows
GET /v2/Advisor/PageFlow/{pageFlowId}

Retrieve page flow details by ID

Retrieves the page flow based on the provided page flow ID and company ID. The method projects the data into a DTO, manually maps additional properties, and includes associated media details.
Parameters
companyId (header) - ID of the company requesting the page flow.
pageFlowId (path) * - ID of the page flow to retrieve.
Responses
200 - Returns the details of the page flow.
PUT /v2/Advisor/PageFlow/{pageFlowId}

Update a Page Flow

Updates a Page Flow matching Page Flow Id using Page Flow payload in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowId (path) * - Page Flow Id
body (body) * - Page Flow payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Updated Page Flow
DELETE /v2/Advisor/PageFlow/{pageFlowId}

Delete a Page Flow

Deletes a Page Flow matching Page Flow Id in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowId (path) * - Page Flow Id
Responses
200 - Updated Page Flow
POST /v2/Advisor/PageFlow

Add a Page Flow

Adds a Page Flow using Page Flow payload in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Page Flow payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Added Page Flow
GET /v2/Advisor/PageFlow/Call/{callId}

Page Flow for Call

Returns Page Flow for Case matching Call Id in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - Page Flow
GET /v2/Advisor/PageFlow/{pageFlowId}/Media

Page Flow Media

Returns Page Flow Media matching Page Flow Id in request.
Parameters
companyId (header) - Company Id
pageFlowId (path) * - Page Flow Id
Responses
200 - Page Flow Medium
POST /v2/Advisor/PageFlow/{pageFlowId}/Media

Adds Page Flow Media

Adds Page Flow Media for Page Flow Id and using Files form fields in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowId (path) * - Page Flow Id
body (body) * - Files
Request Body Schema:
{
  "files": {}
}
Responses
200 - Added Page Flow Medium
GET /v2/Advisor/PageFlow/Media/{pageFlowMediumId}

Page Flow Media Contents

Returns Page Flow Media contents matching Page Flow Id using Width, Height and Fit in request.
Parameters
pageFlowMediumId (path) * - Page Flow Media Id
width (query) - Width
height (query) - Height
fit (query) - Fit
Responses
200 - Page Flow Medium contents
POST /v2/Advisor/PageFlow/{pageFlowId}/Media/Blob

Adds Page Flow Medium contents only

Adds Page Flow Media contents only for Page Flow Id and using Files form fields in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowId (path) * - Page Flow Id
body (body) * - Files
Request Body Schema:
{
  "files": {}
}
Responses
200 - List of Page Flow Media blob ids
DELETE /v2/Advisor/PageFlow/{pageFlowId}/Media/{pageFlowMediumId}

Deletes Page Flow Medium

Deletes Page Flow Media for Page Flow Medium Id in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowId (path) * - Page Flow Id
pageFlowMediumId (path) * - Page Flow Medium Id
Responses
200 -
GET /v2/AdvisorV2/PageFlows

Page Flows

Returns list of Page Flows.
Parameters
companyId (header) - Company Id
Responses
200 - List of Page Flows
GET /v2/AdvisorV2/PageFlow/{pageFlowId}

Retrieve page flow details by ID

Retrieves the page flow based on the provided page flow ID and company ID. The method projects the data into a DTO, manually maps additional properties, and includes associated media details.
Parameters
companyId (header) - ID of the company requesting the page flow.
pageFlowId (path) * - ID of the page flow to retrieve.
Responses
200 - Returns the details of the page flow.
PUT /v2/AdvisorV2/PageFlow/{pageFlowId}

Update a Page Flow

Updates a Page Flow matching Page Flow Id using Page Flow payload in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowId (path) * - Page Flow Id
body (body) * - Page Flow payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Updated Page Flow
DELETE /v2/AdvisorV2/PageFlow/{pageFlowId}

Delete a Page Flow

Deletes a Page Flow matching Page Flow Id in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowId (path) * - Page Flow Id
Responses
200 - Updated Page Flow
POST /v2/AdvisorV2/PageFlow

Add a Page Flow

Adds a Page Flow using Page Flow payload in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Page Flow payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Added Page Flow
GET /v2/AdvisorV2/PageFlow/Call/{callId}

Page Flow for Call

Returns Page Flow for Case matching Call Id in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - Page Flow
GET /v2/AdvisorV2/PageFlow/{pageFlowId}/Media

Page Flow Media

Returns Page Flow Media matching Page Flow Id in request.
Parameters
companyId (header) - Company Id
pageFlowId (path) * - Page Flow Id
Responses
200 - Page Flow Medium
POST /v2/AdvisorV2/PageFlow/{pageFlowId}/Media

Adds Page Flow Media

Adds Page Flow Media for Page Flow Id and using Files form fields in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowId (path) * - Page Flow Id
body (body) * - Files
Request Body Schema:
{
  "files": {}
}
Responses
200 - Added Page Flow Medium
GET /v2/AdvisorV2/PageFlow/Media/{pageFlowMediumId}

Page Flow Media Contents

Returns Page Flow Media contents matching Page Flow Id using Width, Height and Fit in request.
Parameters
pageFlowMediumId (path) * - Page Flow Media Id
width (query) - Width
height (query) - Height
fit (query) - Fit
Responses
200 - Page Flow Medium contents
POST /v2/AdvisorV2/PageFlow/{pageFlowId}/Media/Blob

Adds Page Flow Medium contents only

Adds Page Flow Media contents only for Page Flow Id and using Files form fields in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowId (path) * - Page Flow Id
body (body) * - Files
Request Body Schema:
{
  "files": {}
}
Responses
200 - List of Page Flow Media blob ids
DELETE /v2/AdvisorV2/PageFlow/{pageFlowId}/Media/{pageFlowMediumId}

Deletes Page Flow Medium

Deletes Page Flow Media for Page Flow Medium Id in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowId (path) * - Page Flow Id
pageFlowMediumId (path) * - Page Flow Medium Id
Responses
200 -
GET /v2/ApplicationVersion/company/{companyId}

Get version settings for a company

Retrieves the current application version settings for a company, including Arranger and Connections versions.
Parameters
companyId (path) * - The company ID
Responses
200 - Returns the version settings
GET /v2/ApplicationVersion/funeralhome/{funeralHomeId}

Get version settings for a funeral home

Retrieves the application version settings for a funeral home, including inherited company settings and any overrides.
Parameters
companyId (header) - The company ID from header
funeralHomeId (path) * - The funeral home ID
Responses
200 - Returns the version settings with effective versions
PUT /v2/ApplicationVersion/company/{companyId}/arranger

Set Arranger version for a company

Updates the Arranger version setting for a company. This affects all funeral homes that don't have an override set.
Parameters
companyId (path) * - The company ID
body (body) * - The version update request
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
PUT /v2/ApplicationVersion/company/{companyId}/connections

Set Connections version for a company

Updates the Connections version setting for a company. This affects all funeral homes that don't have an override set.
Parameters
companyId (path) * - The company ID
body (body) * - The version update request
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
PUT /v2/ApplicationVersion/funeralhome/{funeralHomeId}/arranger

Set Arranger version override for a funeral home

Sets or clears the Arranger version override for a funeral home. Pass null to inherit from company.
Parameters
companyId (header) - The company ID from header
funeralHomeId (path) * - The funeral home ID
body (body) * - The override request (null version clears override)
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
PUT /v2/ApplicationVersion/funeralhome/{funeralHomeId}/connections

Set Connections version override for a funeral home

Sets or clears the Connections version override for a funeral home. Pass null to inherit from company.
Parameters
companyId (header) - The company ID from header
funeralHomeId (path) * - The funeral home ID
body (body) * - The override request (null version clears override)
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/ApplicationVersion/company/{companyId}/overrides

Get all funeral homes with version overrides

Returns a list of all funeral homes in the company that have version overrides set. Useful for displaying in company settings to show which locations have customizations.
Parameters
companyId (path) * - The company ID
Responses
200 - Returns the list of funeral homes with overrides
GET /v2/ApplicationVersion/resolve/{funeralHomeId}

Resolve effective version for a funeral home

Returns just the resolved/effective version for a funeral home. Used by the UI to determine which version to display. Supports preview override via query parameter.
Parameters
companyId (header) - The company ID from header
funeralHomeId (path) * - The funeral home ID
application (query) - Which application ("arranger" or "connections")
preview (query) - Optional preview override version
Responses
200 - Returns the resolved version string
GET /v2/Apps

Get Accessible Applications

Retrieves a filtered list of applications available to the current user, based on their roles, company edition, and assigned permissions. This endpoint excludes internal or restricted applications unless the user has elevated access. **Usage Notes:** - Applications are filtered by both company edition and assigned roles. - Internal-use-only applications are hidden from non-administrative users. - Ifis true, only apps flagged for mobile visibility are included. **Tags:**Apps, Permissions, Roles, Interface
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to resolve the correct company edition and permissions scope.
selectedFhIdForPermissionsCheck (header) - The funeral home ID (optional) used to check user-specific permissions.
mobileOnly (query) - Optional flag indicating whether to return only applications visible in the Solution Center mobile app. Default is `false`.
Responses
200 - Successfully returns the list of applications the user has permission to access.
GET /v2/ArrangementData/Products/{fhId}

Get products for a funeral home (lean DTO for Arranger 2.0).

Parameters
companyId (header) - Company identifier from header.
fhId (path) * - Funeral home identifier.
dispositionCategoryId (query) - Disposition filter (1=Burial, 2=Cremation, 4=All).
Responses
200 - List of lean product DTOs with image URLs and showroom membership.
GET /v2/ArrangementData/Categories/{fhId}

Get product categories for a funeral home.

Parameters
companyId (header) - Company identifier from header.
fhId (path) * - Funeral home identifier.
dispositionCategoryId (query) - Disposition filter (1=Burial, 2=Cremation, 4=All).
Responses
200 - List of category DTOs with product counts.
GET /v2/ArrangementData/Showrooms/{fhId}

Get showrooms for a funeral home.

Parameters
companyId (header) - Company identifier from header.
fhId (path) * - Funeral home identifier.
dispositionCategoryId (query) - Disposition filter (1=Burial, 2=Cremation, 4=All).
Responses
200 - List of showroom DTOs.
GET /v2/ArrangementData/SelectionGuideAttributes/{fhId}

Get selection guide attribute values with product counts for the guided funnel. Returns attributes ordered by SelectionGuideOrder for the 4 main attributes: Exterior Material, Exterior Color, Interior Material, Interior Color.

Parameters
companyId (header) - Company identifier from header.
fhId (path) * - Funeral home identifier.
dispositionCategoryId (query) - Disposition filter (1=Burial, 2=Cremation, 4=All).
Responses
200 - List of attribute DTOs with per-value product counts.
GET /v2/ArrangementTemplates/{companyId}

Get arrangement template configuration for a company.

Parameters
companyId (path) * - The company ID.
Responses
200 - The arrangement template configuration or null if not found.
PUT /v2/ArrangementTemplates/{companyId}

Create or update arrangement template configuration.

Parameters
companyId (path) * - The company ID.
body (body) * - The arrangement template configuration.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/ArrangementTemplates/{companyId}

Delete arrangement template configuration for a company (resets to default).

Parameters
companyId (path) * - The company ID.
Responses
200 - OK
GET /v2/ArrangementTemplates/{companyId}/active

Get arrangement template configuration for the arranger (public endpoint for rendering). Returns default configuration if none exists.

Parameters
companyId (path) * - The company ID.
Responses
200 - The arrangement template configuration with defaults.
GET /v2/ArrangementTemplates/Guide/{guideId}

Get arrangement template configuration for an arranger guide.

Parameters
guideId (path) * - The arranger guide ID.
Responses
200 - The arrangement template configuration or null if not found.
PUT /v2/ArrangementTemplates/Guide/{guideId}

Create or update arrangement template configuration for an arranger guide.

Parameters
companyId (header) - The company ID for context.
guideId (path) * - The arranger guide ID.
body (body) * - The arrangement template configuration.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/ArrangementTemplates/Guide/{guideId}/active

Get arrangement template configuration for an arranger guide (read-only, for rendering). Returns null if no guide-specific template is configured.

Parameters
guideId (path) * - The arranger guide ID.
Responses
200 - The arrangement template configuration or null if not found.
GET /v2/ArrangerGuide

Parameters
companyId (header)
includeInactive (query)
Responses
200 - OK
POST /v2/ArrangerGuide

Parameters
companyId (header)
corporationId (query)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/ArrangerGuide/{globalId}

Parameters
globalId (path) *
Responses
200 - OK
PUT /v2/ArrangerGuide/{globalId}

Parameters
globalId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/ArrangerGuide/{globalId}

Parameters
globalId (path) *
Responses
200 - OK
GET /v2/ArrangerGuide/Default

Responses
200 - OK
POST /v2/ArrangerGuide/{globalId}/Duplicate

Parameters
companyId (header)
globalId (path) *
newName (query)
Responses
200 - OK
GET /v2/ArrangerGuide/Assignment

Parameters
entityType (query)
entityId (query)
Responses
200 - OK
POST /v2/ArrangerGuide/Assignment

Parameters
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/ArrangerGuide/Assignment

Parameters
entityType (query)
entityId (query)
Responses
200 - OK
GET /v2/{entityType}/{entityId}/ArrangerGuide

Parameters
entityType (path) *
entityId (path) *
Responses
200 - OK
GET /v2/ArrangerGuide/{globalId}/Media

Parameters
globalId (path) *
Responses
200 - OK
POST /v2/ArrangerGuide/{globalId}/Media

Parameters
globalId (path) *
body (body) *
Request Body Schema:
{
  "files": {}
}
Responses
200 - OK
GET /v2/ArrangerGuide/{globalId}/Media/{mediaId}

Parameters
globalId (path) *
mediaId (path) *
width (query)
height (query)
fit (query)
Responses
200 - OK
DELETE /v2/ArrangerGuide/{globalId}/Media/{mediaId}

Parameters
globalId (path) *
mediaId (path) *
Responses
200 - OK
POST /v2/ArrangerGuide/{globalId}/Media/CopyFromLibrary

Parameters
globalId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/ArrangerGuide/{globalId}/Export

Parameters
globalId (path) *
Responses
200 - OK
POST /v2/ArrangerGuide/Import/Validate

Parameters
companyId (header)
overrideGuideId (query)
body (body) *
Request Body Schema:
{
  "file": {}
}
Responses
200 - OK
POST /v2/ArrangerGuide/Import

Parameters
companyId (header)
corporationId (query)
nameOverride (query)
overrideGuideId (query)
body (body) *
Request Body Schema:
{
  "file": {}
}
Responses
200 - OK
GET /v2/ArrangerGuide/Import/Templates

Responses
200 - OK
POST /v2/ArrangerGuide/Import/Template/{templateName}

Parameters
companyId (header)
templateName (path) *
body (body)
Request Body Schema:
{
  "oneOf": [
    {
      "nullable": true
    },
    {
      "type": "object"
    }
  ]
}
Responses
200 - OK
POST /v2/Auth/MATTSEC

Authenticate via Solution Center Identity (legacy MATTSEC route)

Authenticates a user against the Solution Center Identity user access management system. Returns authorization details, claims, and required user metadata if authentication succeeds. Note: The route name MATTSEC and the response type MattsecAuthorizationResponse are retained for backward compatibility with existing API consumers. The underlying identity provider is now Solution Center Identity. **Tags:**Authentication, Authorization, Solution Center Identity **Behavior:** - Checks credentials against the UAM (User Access Management) database. - Returns`ErrorMessage`if credentials are invalid or the account is locked. - Populates`Claims`,`Roles`, and`RequiredClaims`upon success. **Example:**POST /v2/Auth/MATTSEC { "username": "jdoe@example.com", "password": "MySecurePassword123" }
Parameters
body (body) * - The login request containing a username and password to authenticate against the UAM database.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns a valid object indicating whether authentication was successful.
GET /v2/BrandingKit

Get all branding kits

Retrieves all branding kits visible to the user's company. Includes global kits (available to all) and company-specific kits.
Parameters
companyId (header) - The company ID from the request header
includeInactive (query) - Whether to include inactive kits
Responses
200 - Returns the list of branding kits
POST /v2/BrandingKit

Create a new branding kit

Creates a new branding kit owned by the specified company or corporation. Corporation-level kits require Zeus, AuroraAdmin, or CorporateManager role.
Parameters
companyId (header) - The company ID from the request header
corporationId (query) - Optional corporation ID for corporation-level kits
body (body) * - The branding kit data
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/BrandingKit/{globalId}

Get a specific branding kit

Retrieves a single branding kit by its global ID, including all colors, fonts, and logos.
Parameters
globalId (path) * - The branding kit's unique identifier
Responses
200 - Returns the branding kit
PUT /v2/BrandingKit/{globalId}

Update a branding kit

Updates an existing branding kit. Only company-owned kits can be modified. Global kits cannot be edited. Corporation kits require Zeus, AuroraAdmin, or CorporateManager role.
Parameters
companyId (header) - The company ID from the request header
globalId (path) * - The branding kit's unique identifier
body (body) * - The updated branding kit data
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Branding kit updated successfully
DELETE /v2/BrandingKit/{globalId}

Delete a branding kit

Soft deletes a branding kit by setting it to inactive. Global kits and the default kit cannot be deleted. Corporation kits require Zeus, AuroraAdmin, or CorporateManager role.
Parameters
companyId (header) - The company ID from the request header
globalId (path) * - The branding kit's unique identifier
Responses
200 - OK
GET /v2/BrandingKit/Default

Get the default branding kit

Retrieves the system default branding kit.
Responses
200 - Returns the default branding kit
POST /v2/BrandingKit/{globalId}/Duplicate

Duplicate a branding kit

Creates a copy of an existing branding kit with a new name. The new kit will be owned by the user's company.
Parameters
companyId (header) - The company ID from the request header
globalId (path) * - The branding kit to duplicate
newName (query) - The name for the new kit
Responses
200 - OK
GET /v2/BrandingKit/{globalId}/Export

Export a branding kit as a ZIP

Exports a branding kit to a portable ZIP format containing branding-kit.json and any font files embedded under a fonts/ directory.
Parameters
globalId (path) * - The branding kit's unique identifier
Responses
200 - Returns the ZIP file
POST /v2/BrandingKit/Import/Validate

Validate a branding kit import file

Validates a JSON or ZIP file for import without creating the kit. Returns validation results and any warnings.
Parameters
body (body) * - The JSON or ZIP file to validate
Request Body Schema:
{
  "file": {}
}
Responses
200 - Returns the validation result
POST /v2/BrandingKit/Import

Import a branding kit from JSON

Creates a new branding kit from an exported JSON file. Corporation-level kits require Zeus, AuroraAdmin, or CorporateManager role.
Parameters
companyId (header) - The company ID from the request header
corporationId (query) - Optional corporation ID for corporation-level kits
name (query) - Optional name to use instead of the exported name
body (body) * - The JSON file to import
Request Body Schema:
{
  "file": {}
}
Responses
200 - OK
GET /v2/BrandingKit/Assignment

Get branding assignment for an entity

Retrieves the branding kit assignment for a specific entity.
Parameters
entityType (query) - Corporation, Company, or FuneralHome
entityId (query) - The entity's ID
Responses
200 - Returns the assignment
POST /v2/BrandingKit/Assignment

Assign a branding kit to an entity

Assigns a branding kit to a Corporation, Company, or FuneralHome. Replaces any existing assignment for the entity.
Parameters
body (body) * - The assignment data
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Assignment created successfully
DELETE /v2/BrandingKit/Assignment

Remove branding assignment from an entity

Removes the branding kit assignment from a Corporation, Company, or FuneralHome. The entity will inherit branding from its parent in the hierarchy.
Parameters
entityType (query) - Corporation, Company, or FuneralHome
entityId (query) - The entity's ID
Responses
200 - OK
GET /v2/FuneralHome/{fhId}/Branding

Get resolved branding for a funeral home

Resolves the effective branding for a funeral home by walking up the hierarchy. Checks FuneralHome -> Company -> Corporation -> Default. Returns ready-to-use CSS variables.
Parameters
fhId (path) * - The funeral home ID
Responses
200 - Returns the resolved branding
GET /v2/Company/{companyId}/Branding

Get resolved branding for a company

Resolves the effective branding for a company by walking up the hierarchy. Checks Company -> Corporation -> Default.
Parameters
companyId (path) * - The company ID
Responses
200 - Returns the resolved branding
GET /v2/Corporation/{corporationId}/Branding

Get resolved branding for a corporation

Resolves the effective branding for a corporation. Checks Corporation -> Default.
Parameters
corporationId (path) * - The corporation ID
Responses
200 - Returns the resolved branding
POST /v2/BrandingKit/Preview

Generate branding preview

Generates a preview of branding changes without persisting them. Returns CSS variables and WCAG contrast warnings. Used for live preview in the admin UI.
Parameters
body (body) * - The preview request with proposed colors/fonts/logos
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the preview with generated CSS and warnings
GET /v2/BrandingKit/{globalId}/Validate

Validate a branding kit

Performs comprehensive validation of a branding kit including: - WCAG color contrast checking - Logo dimension validation - Font URL accessibility checking - Completeness checking (required colors, fonts, logos) - Consistency checking (similar colors, light text, etc.)
Parameters
globalId (path) * - The branding kit ID to validate
Responses
200 - Returns the validation result with categorized issues
POST /v2/BrandingKit/Validate

Validate branding preview

Validates proposed branding changes without persisting them. Useful for showing validation warnings in the editor before saving.
Parameters
body (body) * - The preview request with proposed colors/fonts/logos
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the validation result
POST /v2/BrandingKit/Media/Upload

Upload branding media

Uploads an image file for use in branding kits (logos, fonts, etc). Files are stored in a dedicated branding media container organized by kit.
Parameters
kitId (query) - Optional branding kit ID for organization
context (query) - Optional context (e.g., "Primary", "Favicon")
body (body) * - The file to upload
Request Body Schema:
{
  "file": {}
}
Responses
200 - Returns the media GUID and dimensions
GET /v2/BrandingKit/Media/{mediaGuid}

Download branding media

Downloads a branding media file by its GUID. Supports optional width/height parameters for image resizing.
Parameters
mediaGuid (path) * - The media GUID
width (query) - Optional width for resizing
height (query) - Optional height for resizing
fit (query) - Optional fit mode for resizing
Responses
200 - Returns the media file
POST /v2/CareAssist/{companyId}/{caseId}/transcript

Parameters
companyId (path) *
caseId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/CareAssist/{companyId}/{caseId}/extraction

Parameters
companyId (path) *
caseId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/CareAssist/{companyId}/{caseId}/action

Parameters
companyId (path) *
caseId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/CareAssist/{companyId}/{caseId}/status

Parameters
companyId (path) *
caseId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/CareAssist/{companyId}/{caseId}/error

Parameters
companyId (path) *
caseId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/CareAssist/{companyId}/{caseId}/pending

Parameters
companyId (path) *
caseId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/CareAssist/{caseId}/result/{resultType}

Get a saved CareAssist result (summary or people).

Parameters
companyId (header)
caseId (path) *
resultType (path) *
Responses
200 - OK
GET /v2/CareAssist/{caseId}/transcript-status

Get transcript status (timestamps, staleness) for a case — lightweight check for auto-generation decisions.

Parameters
companyId (header)
caseId (path) *
Responses
200 - OK
GET /v2/CareAssist/{caseId}/stored-transcript

Get the stored CareAssist transcript(s) for a case. Merges all transcript files into one conversation.

Parameters
companyId (header)
caseId (path) *
Responses
200 - OK
POST /v2/CareAssist/{caseId}/summary

Generate an AI summary of the CareAssist transcript.

Parameters
companyId (header)
caseId (path) *
Responses
200 - OK
POST /v2/CareAssist/{caseId}/people

Extract people mentioned in the CareAssist transcript.

Parameters
companyId (header)
caseId (path) *
Responses
200 - OK
POST /v2/CareAssist/{caseId}/chat

Ask a question about the CareAssist transcript.

Parameters
companyId (header)
caseId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/CareAssist/{caseId}/chat/sessions

List chat sessions for a case.

Parameters
companyId (header)
caseId (path) *
Responses
200 - OK
POST /v2/CareAssist/{caseId}/chat/sessions

Save or update a chat session.

Parameters
companyId (header)
caseId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/CareAssist/{caseId}/chat/sessions/{sessionId}

Get a specific chat session with full messages.

Parameters
companyId (header)
caseId (path) *
sessionId (path) *
Responses
200 - OK
DELETE /v2/CareAssist/{caseId}/chat/sessions/{sessionId}

Delete a chat session.

Parameters
companyId (header)
caseId (path) *
sessionId (path) *
Responses
200 - OK
GET /v2/CareTrack/{callId}

Case Tracking Information

Returns list of Case Tracking Information for Case Id specified in request.
Parameters
companyId (header) - Company Id
callId (path) * - Case Id
Responses
200 - List of Case Tracking Information
POST /v2/CareTrack

Add a Case Tracking record

Adds a Case Tracking record for Case Id specified in request.
Parameters
companyId (header) - Company Id
body (body) * - Case Tracking payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Cart

Get Cart Items

Retrieves all active items currently in the user's cart for the specified company. Executes the stored procedure usp_GetCartItems_v5 to return detailed cart contents, including product information and associated media. Supports optional paging for large result sets. **Usage Notes:** - Results are scoped to the authenticated user based on their Advisor user ID. - Executes the`usp_GetCartItems_v5`stored procedure with`@CountOnly = 0`to retrieve full item details. - Automatically enriches the result set with item media via`AddItemMedia`. - Used to populate shopping cart and order preview interfaces. - When paging parameters are omitted, returns all cart items (backward compatible behavior). - When paging is enabled, both pageNumber and pageSize should be provided for optimal results. **Paging Examples:** - No paging (all items):`GET /cart?companyId=3779` - First page (20 items):`GET /cart?companyId=3779&pageNumber=1&pageSize=20` - Second page (20 items):`GET /cart?companyId=3779&pageNumber=2&pageSize=20` **Tags:**Cart, Orders, E-Commerce
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to retrieve the current user's cart items for that company.
pageNumber (query) - Optional. The page number to retrieve (1-based). Defaults to null (no paging). When null, all cart items are returned. When specified, must be greater than 0.
pageSize (query) - Optional. The number of items per page. Defaults to null (no paging). When null, all cart items are returned. When specified, must be greater than 0. Both pageNumber and pageSize must be provided together for paging to be applied.
hideAdvisorItems (query) - Optional. When set to true, filters out Advisor items (items with a CallId) from the results. Use this to retrieve only non-case-linked cart items.
Responses
200 - Successfully returns the list of items in the user's cart.
POST /v2/Cart

Add To Cart

Adds a specified product to the user�s shopping cart, optionally linking it to a parent order item. **Usage Notes:** - Resolves Bill-To and Ship-To funeral home relationships automatically. - Supports hierarchical cart structures via the`ParentOrderItemId`property. - Initializes engraving data when applicable. - Used to populate the user�s active shopping cart. **Tags:**Cart, Orders, E-Commerce
Parameters
companyId (header) - The unique company identifier provided in the request header.
body (body) * - The AddToCartItemDto containing product details, quantity, and related order info.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully adds the item to the cart.
PUT /v2/Cart

Update Order Details

Updates details for a specific order item and its related records, including associated contract details and engraving information. **Usage Notes:** - Performs batch updates for order items and contract details. - Ensures consistency between parent and child order items. - Automatically updates engraving information for the parent order item. - Uses EF Core`ExecuteUpdateAsync`for efficient SQL updates. **Tags:**Orders, Updates, E-Commerce
Parameters
companyId (header) - The unique company identifier, provided in the request header.
body (body) * - A cancellation token used to cancel the operation if requested.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Cart/Count

Get Cart Count

Retrieves the total number of items currently in the user�s cart for the specified company. Executes the stored procedure usp_GetCartItems_v5 in count-only mode. **Usage Notes:** - Uses`@CountOnly = 1`in the stored procedure to return only the total count. - Count reflects active cart items that have not yet been submitted for order. - Useful for displaying cart badges or quick summaries in the UI. **Tags:**Cart, Count, E-Commerce
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to filter the cart count for the authenticated user within that company.
hideAdvisorItems (query) - Optional. When set to true, excludes Advisor items (items with a CallId) from the count. Use this to get a count of only non-case-linked cart items.
Responses
200 - Successfully returns the current item count for the user�s cart.
DELETE /v2/Cart/{orderItemId}

Delete Cart Item

Removes an item from the user�s cart by its order item ID, ensuring that the item is not linked to an existing Advisor contract before deletion. **Usage Notes:** - Deletes related engraving information before removing the cart item. - Prevents removal of items tied to Advisor contract details. - Used for cart cleanup and product removal prior to checkout. **Tags:**Cart, Orders, E-Commerce
Parameters
companyId (header) - The company ID, provided in the request header, used to validate access rights.
orderItemId (path) * - The unique identifier of the order item to be deleted from the cart.
Responses
200 - OK
PUT /v2/Cart/MarkOrdered

Mark Item Ordered

Marks a specific order item as ordered, setting the timestamp and user who performed the action. **Usage Notes:** - Records the user and date of the �Mark Ordered� action for auditing. - Used by fulfillment workflows to update order progress. - Does not trigger any automatic downstream integration (manual step only). **Tags:**Orders, Cart, Status
Parameters
companyId (header) - The company ID associated with the order item.
body (body) * - The OrderItemUpdateDto containing the order item ID to mark as ordered.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Cart/MarkNeedsOrdered

Mark Item Needs Ordered

Resets an order item to indicate it still needs to be ordered, clearing related SAP and tracking data. **Usage Notes:** - Clears order ID, SAP delivery information, and other related fields. - Used to roll back mistakenly marked orders to a �pending� state. - Commonly triggered when an external order submission fails or is canceled. **Tags:**Orders, Reset, E-Commerce
Parameters
companyId (header) - The company ID associated with the order item.
body (body) * - The OrderItemUpdateDto representing the order item to reset.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
PUT /v2/Cart/MarkReceived

Mark Item Received

Marks an order item as received by setting its received date to the current time. **Usage Notes:** - Sets`DateReceived`to the current timestamp. - Used for tracking delivery confirmation of ordered products. - Completes the fulfillment lifecycle for individual order items. **Tags:**Orders, Receiving, Inventory
Parameters
companyId (header) - The company ID, provided in the request header.
body (body) * - The OrderItemUpdateDto containing the order item ID to mark as received.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Cart/SubmitOrder/{orderSource}

Submit Order

Finalizes checkout for the specified order items, submitting them to the Advisor ordering system and generating a confirmation number upon success. **Usage Notes:** - Invokes`CompleteCheckout`to process all included items. - Used as the primary endpoint for submitting pending cart items as an order. - Returns confirmation data used for order tracking and customer notification. **Tags:**Orders, Checkout, E-Commerce
Parameters
companyId (header) * - The unique identifier of the company submitting the order.
orderSource (path) * - The origin of the order (e.g., Solution Center, Arranger, etc.).
body (body) * - The list of order item IDs to include in the submitted order.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully submits the order and returns confirmation details.
POST /v2/Cart/BuyItNow

Buy It Now

Creates an immediate order for a single product and related accessories (panels, corners) and directly submits it for checkout without adding it to the cart. **Usage Notes:** - Immediately creates and submits order items for the specified product. - Optionally includes panel and corner items based on the input DTO. - Applies engraving data and submits the order via`CompleteCheckout`. - Used for one-click purchasing without using the shopping cart. **Tags:**Orders, Checkout, E-Commerce
Parameters
companyId (header) - The company ID, provided in the request header, used for scoping the order.
orderSource (query) - The source of the order (e.g., Solution Center V2). Optional.
body (body) * - The BuyItNowDto containing all order details, including product, quantity, and optional engraving information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully processes the Buy It Now order and returns confirmation details.
POST /v2/Cart/AddToCartNow

Add To Cart Now

Creates a new order item and immediately adds it to the cart for the specified funeral home. This operation supports adding the primary product, as well as associated panel and corner items, and initializes any engraving information linked to the order. **Usage Notes:** - Automatically determines the correct Bill-To and Ship-To funeral home based on configuration. - Creates order items for the main product and optionally for related panel and corner items. - Initializes engraving information for applicable products using`AddOrUpdateEngravingInformationForOrderItem`. - Used for quick order placement and bypasses standard cart review flow. - Ensures database consistency by saving each order item as it is created. **Tags:**Ordering, Cart, E-Commerce
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to scope the order creation to the correct company context.
body (body) * - The AddToCartNowDto containing order details such as item codes, funeral home IDs, quantities, and engraving information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully adds the specified items to the cart and creates associated order records.
GET /v2/Cart/History

Get Order History

Retrieves a list of previously ordered items for the specified company and date range. Combines order, funeral home, contract, and engraving information to provide a complete order history view for the logged-in user. **Usage Notes:** - Filters results based on the provided`startDate`and`endDate`. - Includes both user-created and case-linked orders (where`CallId`is present). - Joins data from Advisor Orders, Advisor Master, and Client databases. - Populates funeral home, contract, and engraving information for each order item. - Uses`AddItemMedia`to enrich items with media metadata. **Tags:**Orders, History, E-Commerce, Reporting
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to filter orders belonging to the current company.
startDate (query) - The start date of the date range for filtering historical orders.
endDate (query) - The end date of the date range for filtering historical orders.
Responses
200 - Successfully returns the order history for the specified date range.
PUT /v2/CaseStep/{callId}

Updates a case to a specific workflow step.

Assigns a workflow step to a case, tracking the case's current position in an active workflow. The workflow step must exist and be active in the AdvisorMaster database. **Usage Notes:** - Validates that the workflow step exists and is active before assignment. - Updates the Call.CaseStepId field in the client database. - Requires`ManageWorkflow`permission.
Parameters
callId (path) * - The ID of the case to update.
workflowStepId (query) - The ID of the workflow step to assign.
companyId (header) - The company ID supplied in the request header.
Responses
200 - No content if the update was successful.
GET /v2/CaseStep/{callId}

Retrieves the current case step details for a case.

Returns information about a case's current position in a workflow, including the step name, workflow name, display order, and whether the step is terminal. **Usage Notes:** - Returns null (204 No Content) if the case is not assigned to a workflow. - Requires`ViewWorkflow`permission. - Includes workflow definition details for context.
Parameters
callId (path) * - The ID of the case.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns the case step information if found.
DELETE /v2/CaseStep/{callId}

Removes a case from its workflow (clears the case step).

Clears the workflow step assignment for a case, effectively removing it from the active workflow. The case itself remains in the system. **Usage Notes:** - Sets Call.CaseStepId to null in the client database. - Does not fail if the case is not found; logs a warning instead. - Requires`ManageWorkflow`permission.
Parameters
callId (path) * - The ID of the case.
companyId (header) - The company ID supplied in the request header.
Responses
200 - No content if the operation was successful.
GET /v2/CaseStep/step/{workflowStepId}

Retrieves all cases currently at a specific workflow step.

Returns a list of case IDs for all cases currently assigned to the specified workflow step. Useful for reporting and workflow management. **Usage Notes:** - Returns an empty list if no cases are at the specified step. - Requires`ViewWorkflow`permission. - Does not validate if the workflow step exists; returns empty list for invalid steps.
Parameters
workflowStepId (path) * - The workflow step ID.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns a list of case IDs (may be empty).
GET /v2/Workflow/case-steps/has-active

Checks if the company has any active workflow definitions.

This lightweight endpoint allows any authenticated user to check if their company has active workflows configured. Used by the Advisor Overview to determine whether to display the workflow step column. **Usage Notes:** - This endpoint does NOT require ViewWorkflow permission. - Returns only a boolean, no workflow configuration details are exposed.
Parameters
companyId (header) - The company ID from the request header.
Responses
200 - Returns whether active workflows exist.
GET /v2/Workflow/case-steps

Gets the current workflow step status for all cases in the company.

This lightweight endpoint returns the current workflow step name and status for all cases that have workflow instances. Used by the Advisor Overview to display case workflow progress without requiring full workflow view permissions. **Usage Notes:** - This endpoint does NOT require ViewWorkflow permission. - Returns only CallId, CurrentStepName, and Status - no sensitive workflow details.
Parameters
companyId (header) - The company ID from the request header.
Responses
200 - Returns the list of case workflow statuses.
GET /v2/CashReceipt

Get Cash Receipts

Retrieves a list of cash receipts for the specified company within the given date range, checking for necessary permissions.
Parameters
companyId (header) - ID of the company.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
startDate (query) - Start date for filtering receipts.
endDate (query) - End date for filtering receipts.
Responses
200 - List of cash receipts within the specified date range.
POST /v2/CashReceipt

Create Cash Receipt

Creates a new cash receipt for the specified company, ensuring the user has the necessary permissions.
Parameters
companyId (header) - ID of the company.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
body (body) * - New cash receipt item.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - ID of the created cash receipt.
PATCH /v2/CashReceipt/{receiptId}

Patch Cash Receipt

Applies a patch to the specified cash receipt, ensuring the user has the necessary permissions. Sample Patch Document: { "op": "replace", "path": "/propertyName", "value": "newValue" }
Parameters
companyId (header) - ID of the company.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
receiptId (path) * - ID of the receipt to patch.
body (body) * - Patch document with the changes.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Catalog/ItemTypes

Item Types

Returns list of Item Types.
Parameters
companyId (header) - Company Id
Responses
200 - List of Items with Count
GET /v2/Catalog/ItemTypes/Location/{locationId}

Item Types by Location

Returns list of Item Types matching Location Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
locationId (path) * - LocationId
Responses
200 - List of Item Types
GET /v2/Catalog/ItemType/{itemTypeId}

Get Item Type

Retrieves the details of the specified item type and includes any associated photo paragraph text from miscellaneous page data. Applies view permissions based on the provided identifier for permissions check.
Parameters
companyId (header) - The company identifier from the request header.
selectedFhIdForPermissionsCheck (header) - Optional identifier for permissions check.
itemTypeId (path) * - The unique identifier for the item type.
Responses
200 - The details of the requested item type.
PUT /v2/Catalog/ItemType/{itemTypeId}

Update an Item Type

Updates an Item Type matching Item Type Id and using payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
body (body) * - Item Type payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
PATCH /v2/Catalog/ItemType/{itemTypeId}

Update Item Type (patch)

Updates an Item Type matching Item Type Id and using patch payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
body (body) * - Patch payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
POST /v2/Catalog/ItemType

Create an Item Type

Creates an Item Type matching Item Type payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Type payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Created Item Type
GET /v2/Catalog/ItemType/SubTypes

Item Sub Types

Returns list of Item Sub Types
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
Responses
200 - List of Item Sub Types
GET /v2/Catalog/ItemType/{itemTypeId}/SubTypes

Item Sub Type Names

Returns Item Sub Type Names matching Item Type Id specified in request.
Parameters
companyId (header) - Company Id
itemTypeId (path) * - Item Type Id
Responses
200 - List of Item Sub Type Names
PUT /v2/Catalog/ItemType/{itemTypeId}/SubTypes

Updates Item Sub Type Names

Updates Item Sub Type Names matching Item Type Id using Sub Type Names specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
body (body) * - Updated Sub Type Names
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Catalog/ItemAttributes

Item Attributes

Returns list of Item Attributes
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
Responses
200 - List of Item Attributes
GET /v2/Catalog/ItemType/{itemTypeId}/ItemAttributes

Item Type Item Attributes

Returns list of Item Type Item Attributes matching Item Type Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
Responses
200 - List of Item Type Item Attributes
PUT /v2/Catalog/ItemType/{itemTypeId}/ItemAttributes

Update Item Type Item Attributes

Updates Item Type Item Attributes matching Item Type Id and Item Attributes payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
body (body) * - Item Type Item Attributes payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Catalog/ItemAttribute/{itemAttributeId}/Values

Item Attribute Values

Returns list of Item Attribute Values matching Item Attribute Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemAttributeId (path) * - Item Attribute Id
Responses
200 - List of Item Attribute Values
PUT /v2/Catalog/ItemAttribute/{itemAttributeId}/Values

Update Item Attribute Values

Updates Item Attribute Values matching Item Attribute Id and Item Attributes payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemAttributeId (path) * - Item Attribute Id
body (body) * - Attribute Values payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Updated list of Attribute Values
GET /v2/Catalog/ItemType/{itemTypeId}/ItemAttribute/{itemAttributeId}/Values

Item Type Item Attribute Values

Returns list of Item Attribute Values matching Item Type Id and Item Attribute Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
itemAttributeId (path) * - Item Attribute Id
Responses
200 - List of Item Type Item Attribute Values
GET /v2/Catalog/ItemType/{itemTypeId}/LocationCodes

Item Type Location Codes

Returns a list of Item Type Location Codes matching Item Type Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
Responses
200 - List of Item Type Location Codes
PUT /v2/Catalog/ItemType/{itemTypeId}/LocationCodes

Update Item Type Location Codes

Updates Item Type Location Codes matching Item Type Id and Location Codes payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
body (body) * - Location Codes payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Catalog/ItemType/{itemTypeId}/CallTypeCodes

Item Type Call Type Codes

Returns list of Item Type Call Type Codes matching Item Type Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
Responses
200 - List of Item Type Call Type Codes
PUT /v2/Catalog/ItemType/{itemTypeId}/CallTypeCodes

Updates Item Type Call Type Codes

Updates Item Type Call Type Codes matching Item Type Id using Call Type Codes payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
body (body) * - Call Type Coedes payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
POST /v2/Catalog/ItemAttribute

Create Item Attribute

Creates an Item Attribute.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Attribute payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Newly created Item Attribute
GET /v2/Catalog/ItemType/{itemTypeId}/Media

Item Type Media

Returns list of Item Type Media matching Item Type Id specified in request.
Parameters
companyId (header) - Company Id
itemTypeId (path) * - Item Type Id
Responses
200 - Newly created Item Attribute
POST /v2/Catalog/ItemType/{itemTypeId}/Media

Uploads/ creates Item Type Media

Uploads and creates Item Type Media for Item Type Id and Item Type Media payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
body (body) * - Item Type Media payload
Request Body Schema:
{
  "files": {}
}
Responses
200 - List of resulting Item Type Media
GET /v2/Catalog/ItemType/Media/{itemTypeMediumId}

Item Type Media by Medium Id

Returns stream for Item Type Medium matching Item Type Medium Id specified in request.
Parameters
itemTypeMediumId (path) * - Item Type Medium Id
width (query) - Width
height (query) - Height
fit (query) - Fit
Responses
200 - Item Type Medium stream
DELETE /v2/Catalog/ItemType/{itemTypeId}/Media/{itemTypeMediumId}

Deletes Item Type Medium

Deletes Item Type Medium for Item Type Id and Item Type Media Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
itemTypeMediumId (path) * - Item Type Medium Id
Responses
200 -
GET /v2/Catalog/ItemType/{itemTypeId}/Availability

Item Type Availability

Returns list of Item Type Availability matching Item Type Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemTypeId (path) * - Item Type Id
Responses
200 - List of Item Type Availability
PUT /v2/Catalog/ItemType/{itemTypeId}/Availability

Updates Item Type Availabilities

Updates Item Type Availabilities matching Item Type Id and Availabilties payload specified in request.
Parameters
companyId (header) - Company Id
itemTypeId (path) * - Item Type Id
body (body) * - Availabilities payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Catalog/Showrooms

Showrooms

Returns list of Showrooms.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
Responses
200 - List of Showrooms
POST /v2/Catalog/Showrooms

Creates a Showroom

Creates a Showroom matching Showroom payload in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Showroom payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Showroom Attribute List Id
GET /v2/Catalog/Showrooms/{fhid}

Showrooms by Funeral Home

Returns a list of Showrooms matching Funeral Home Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
fhid (path) * - Funeral Home Id
Responses
200 - List of Showrooms
GET /v2/Catalog/Showroom/{showroomId}

Get Showroom by Identifier

Retrieves the showroom details by its identifier. If the catalog's out-of-stock type is set to hidden and a funeral home ID is provided, out-of-stock items will be excluded from the results. Permissions are applied based on the provided funeral home ID.
Parameters
companyId (header) - The company identifier from the request header.
selectedFhIdForPermissionsCheck (header) - The optional funeral home identifier for permissions check from the request header.
showroomId (path) * - The showroom identifier.
Responses
200 - Returns the showroom details.
GET /v2/Catalog/Showroom/{showRoomId}/Locations

Showroom Locations

Returns list of Showroom Location Display Rooms matching Showroom Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
showroomId (path) * - Showroom Id
Responses
200 - List of Location Display Rooms
GET /v2/Catalog/Showroom/{showRoomId}/Items

Showroom Items

Returns list of Showroom Items matching Showroom Id specified in request. Optionally filtered by Disposition Category.
Parameters
companyId (header) - Company Id
showroomId (path) * - Showroom Id
dispositionCategoryId (query) - Optional Disposition Category Id to filter items
Responses
200 - List of Items
GET /v2/Catalog/Showroom/{showRoomId}/Items/{fhid}

Showroom Items for Funeral Home

Returns list of Showroom Catalog Items matching Showroom Id and Funeral Home Id specified in request.
Parameters
companyId (header) - Company Id
showroomId (path) * - Showroom Id
fhid (path) * - Funeral Home Id (for Permissions)
Responses
200 - List of Catalog Items
PUT /v2/Catalog/Showroom/{showRoomId}

Update a Showroom

Updates a Showroom matching Showroom Id and using Showroom payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
showRoomId (path) * - Showroom Id
body (body) * - Showroom payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
DELETE /v2/Catalog/Showroom/{showRoomId}

Delete a Showroom

Deletes a Showroom matching Showroom Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
showroomId (path) * - Showroom Id
Responses
200 -
PUT /v2/Catalog/Showroom/{showRoomId}/SortOrder

Update Showroom Sort Order

Updates the sort order for a showroom attribute value list so that display rooms render in the specified order across locations. **Tags:**Catalog, Showrooms
Parameters
companyId (header) - Company identifier supplied via the request header.
selectedFhIdForPermissionsCheck (header) - Optional funeral home scope used when enforcing `ManageShowrooms` permissions.
showRoomId (path) * - Identifier of the showroom (attribute value list) whose sort order should be updated.
body (body) * - DTO containing the new sort order value.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the showroom sort order.
GET /v2/Catalog/Item/Services

Item Services

Returns list of Product Items.
Parameters
companyId (header) - Company Id
Responses
200 - List of Product Items
PUT /v2/Catalog/Item/Services/{itemId}/DisplayOrder

Update Location Items Display Order

Updates Display Order of Location Items matching Item Id to Product Item payload Display Order specified in request.
Parameters
companyId (header) - Company Id
itemId (path) * - Item Id
body (body) * - Product Item payload containing desired Display Order
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Product Item echo'd back
GET /v2/Catalog/Item/GetPanels

Panel Items

Returns list of Panel Items.
Parameters
companyId (header) - Company Id
Responses
200 - List of Items
GET /v2/Catalog/Item/{funeralHomeKey}/GetCatalogAddOns

Catalog AddOns

Returns list of Catalog AddOns.
Parameters
companyId (header) - Company Id
funeralHomeKey (path) * - Funeral Home Key
Responses
200 - List of Arranger Product
GET /v2/Catalog/Item/{funeralHomeKey}/GetArrangementAddOns/{callId}

Arrangement AddOns

Returns list of Arrangement AddOns matching Funeral Home Key.
Parameters
companyId (header) - Company Id
funeralHomeKey (path) * - Funeral Home Key
callId (path) * - Call Id
Responses
200 - List of Arranger Products
GET /v2/Catalog/Item/GetMatchingCorners

Items Matching Corners

Returns list of Items Matching Corner Group.
Parameters
companyId (header) - Company Id
cornerGroup (query) - Corner Group
Responses
200 - List of Item
GET /v2/Catalog/Item/{fhId}/CatalogSearch

Catalog Search

Returns List of Catalog Items matching Funeral Home Id and Keyword specified in request.
Parameters
companyId (header) - Company Id
fhId (path) * - Funeral Home Id
keyword (query) - Keyword
Responses
200 - List of Catalog Item
GET /v2/Catalog/Item/Visibility

Item Visibility

Returns List of Item Visibilities matching criteria specified in request.
Parameters
companyId (header) - Company Id
locationId (query)
itemTypeId (query) - Item Type Id
itemCode (query) - Item Code
showroomId (query) - Showroom Id
status (query)
exteriorMaterialTypeId (query) - Exterior Material Type Id
couchStyleId (query) - Couch Style Id
productCategoryId (query) - Product Category Id
manufacturerId (query) - Manufacturer Id
taxable (query) - Taxable?
active (query) - Active?
embedCatalog (query) - Embed Catelog?
digitalCatalog (query) - Digital Catalog?
connections (query) - Connections?
minCost (query) - Minimum Cost
maxCost (query) - Maximum Cost
minPrice (query) - Minimum Price
maxPrice (query) - Maximum Price
Responses
200 - List of Item Visibilities
GET /v2/Catalog/Item/Pricing

Item Pricing

Returns List of Item Pricing Data matching criteria specified in request.
Parameters
companyId (header) - Company Id
locationId (query)
itemTypeId (query) - Item Type Id
itemCode (query) - Item Code
showroomId (query) - Showroom Id
status (query)
exteriorMaterialTypeId (query) - Exterior Material Id
productCategoryId (query) - Product Category Id
manufacturerId (query) - Manufacturer Id
minCost (query) - Minimum Cost
maxCost (query) - Maximum Cost
minPrice (query) - Minimum Price
maxPrice (query) - Maximum Price
keyword (query) - Keyword
couchStyleId (query) - Couch Style
Responses
200 - List of Item Pricing
GET /v2/Catalog/Item/Pricing/PrintRetailPricing

Get Print Retail Pricing Data

Retrieves pricing data for items based on various filters, including item types, manufacturers, and price ranges. The results include information about funeral homes, scheduled price updates, and disclosure details. If `showroomIds` is provided, it filters the results to include only those items associated with the specified showrooms.
Parameters
companyId (header) - The company identifier from the request header.
locationId (query)
itemTypeId (query)
showroomId (query)
exteriorMaterialTypeId (query)
productCategoryId (query)
manufacturerId (query)
minPrice (query) - Minimum price filter.
maxPrice (query) - Maximum price filter.
priceType (query) - Type of price to print (e.g., "Wholesale").
Responses
200 - Returns the print retail pricing data including funeral homes, pricing items, scheduled updates, disclosure locations, disclosure types, and location disclosures.
GET /v2/Catalog/Item/{itemId}

Get Item Details

Retrieves details of an item based on the provided item ID. The item details are projected to `ItemDto` for response. If the item is not found, a `BadRequest` response is returned. The method also applies view permissions to the result.
Parameters
companyId (header) - The company identifier from the request header.
itemId (path) * - The identifier of the item to retrieve.
Responses
200 - Returns the item details if found.
PUT /v2/Catalog/Item/{itemId}

Update Item

Updates an Item matching Item Id and using Item payload specified in request.
Parameters
companyId (header) - Company Id
itemId (path) * - Item Id
body (body) * - Item payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Catalog/Item/MatchingNameOrItemCode

Items matching Item Name or Item Code

Returns a list of Items with Location Item matching Item Name or Item Code.
Parameters
companyId (header) - Company Id
newItemName (query) - Item Name
newItemCode (query) - Item Code
locationId (query) - Location Id
itemTypeId (query) - Item Type Id
Responses
200 - List of Item with Location Item
POST /v2/Catalog/Items

Create Items

Batch creates Items using Items payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Items payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Catalog/Items

Items with Location Item

Returns List of Item with Location Item.
Parameters
companyId (header) - Company Id
Responses
200 - List of Item with Location Item
POST /v2/Catalog/Item

Create Item

Creates an Item using Item payload specified in request.
Parameters
companyId (header) - Company Id
body (body) * - Item payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Created Item
GET /v2/Catalog/Item/{itemId}/Attributes

Item Attributes

Returns a list of Item Attributes for the specified Item Id.
Parameters
companyId (header) - Company Id
itemId (path) * - Item Id
Responses
200 - List of Item Attributes
PUT /v2/Catalog/Item/{itemId}/Attributes

Update Item Attributes

Updates an Item's Atributes matching Item Id and using Item Attributes payload specified in request.
Parameters
companyId (header) - Company Id
itemId (path) * - Item Id
body (body) * - Item Attributes payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Catalog/Item/{itemId}/Location/{locationId}

Location Item

Returns a Location Item matching Item Id and Location Id.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemId (path) * - Item Id
locationId (path) * - Location Id
Responses
200 - List of Location Item Call Type Codes
PATCH /v2/Catalog/Item/{itemId}/Location/{locationId}

Update Location Item

Updates a Location Item matching Item Id and Location Id using Location Item payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id
itemId (path) * - Item Id
locationId (path) * - Location Id
body (body) * - Location Item payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Catalog/Item/{itemId}/Location/{locationId}/CallTypeCodes

Location Item Call Type Codes

Returns a list of Location Item Call Type Codes matching Item Id and Location Id.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemId (path) * - Item Id
locationId (path) * - Location Id
Responses
200 - List of Location Item Call Type Codes
PUT /v2/Catalog/Item/{itemId}/Location/{locationId}/CallTypeCodes

Update Location Item Call Type Codes

Updates a Location Item matching Item Id and Location Id using Location Item Call Types payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
itemId (path) * - Item Id
locationId (path) * - Location Id
body (body) * - Location Item Call Type Codes payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
POST /v2/Catalog/Item/Prices

Batch Update Item Prices

Batch Update Item Prices using Item Prices payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Prices payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
POST /v2/Catalog/Item/Costs

Batch Update Item Costs

Batch Update Item Prices using Item Prices payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Prices payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
POST /v2/Catalog/Item/ScheduledPrices

Batch Create Item Scheduled Prices

Batch Create Item Scheduled Prices using Item Scheduled Prices payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Scheduled Prices payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
DELETE /v2/Catalog/Item/ScheduledPrices

Batch Delete Item Scheduled Prices

Batch Delete Item Scheduled Prices using Item Scheduled Prices payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Scheduled Prices payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
PUT /v2/Catalog/Item/ScheduledPrices

Batch Update Item Scheduled Prices

Batch Update Item Scheduled Prices using Item Scheduled Prices payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Scheduled Prices payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
POST /v2/Catalog/Item/ScheduledCosts

Batch Create Item Scheduled Costs

Batch Create Item Scheduled Costs using Item Scheduled Costs payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Scheduled Costs payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
DELETE /v2/Catalog/Item/ScheduledCosts

Batch Delete Item Scheduled Costs

Batch Delete Item Scheduled Costs using Item Scheduled Costs payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Scheduled Costs payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
PUT /v2/Catalog/Item/ScheduledCosts

Batch Update Item Scheduled Costs

Batch Update Item Scheduled Costs using Item Scheduled Costs payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Scheduled Costs payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
POST /v2/Catalog/Item/Visibilities

Batch Update Item Visibilities

Batch Update Item Visibilities using Item Visibilities payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Visibilities payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Catalog/Item/ScheduledVisibility/EffectiveDates

Item Scheduled Visibility Effective Dates

Returns a list of Item Scheduled Visibility Effective Dates.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
Responses
200 - List of Item Scheduled Visibilitie Effective Dates
GET /v2/Catalog/Item/ScheduledVisibilities

Get Item Scheduled Visibilities for Effective Date

Returns a list of Location Item Scheduled Visibilities for the specified effective date.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
effectiveDate (query) - Effective Date
Responses
200 - List of Location Item Scheduled Visibilities
POST /v2/Catalog/Item/ScheduledVisibilities

Batch Create Item Scheduled Visibilities

Batch Create Item Scheduled Visibilities using Item Scheduled Visibilities payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Scheduled Visibilities payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
PUT /v2/Catalog/Item/ScheduledVisibilities

Batch Update Item Scheduled Visibilities

Batch Update Item Scheduled Visibilities using Item Scheduled Visibilities payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Scheduled Visibilities payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
DELETE /v2/Catalog/Item/ScheduledVisibilities

Batch Delete Item Scheduled Visibilities

Batch Delete Item Scheduled Visibilities using Item Scheduled Visibilities payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Item Scheduled Visiblities payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Catalog/Package

Package Overviews

Returns list of Package Overviews.
Parameters
companyId (header) - Company Id
userTimeZone (query) - IANA timezone id used to anchor "today" when classifying package effective dates.
Responses
200 - List of Package Overviews
POST /v2/Catalog/Package

Create a new package

Creates a new package with the provided details including name, description, and sort order. The package is set to active by default and saved to the database. The method returns the ID of the newly created package.
Parameters
companyId (header) - ID of the company creating the package.
selectedFhIdForPermissionsCheck (header) - Optional ID of the funeral home for permissions check.
body (body) * - Data transfer object containing package details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The ID of the newly created package.
POST /v2/Catalog/Package/Reorder

Reorder Packages

Updates the sort order for multiple packages in bulk, allowing clients to re-sequence package presentation. **Tags:**Catalog, Packages
Parameters
companyId (header) - Company identifier.
body (body) * - Collection of package IDs with their new sort orders.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully saves the new order.
GET /v2/Catalog/Package/Location/{locationId}

Package by Location

Returns a list of Packages by Location Id.
Parameters
companyId (header) - Company Id
locationId (path) * - Location Id
callId (query) - Provide call ID to ensure inactive packages on a call still show
saleId (query) - Provide misc sale ID to ensure inactive packages on a misc sale still show
arrangerOnly (query) - Show only packages visible in arranger
Responses
200 - List of Packages
GET /v2/Catalog/Package/{packageId}

Get Package Details

Retrieves details of a package based on the provided package ID. The package details are projected to `PackageDto` for response. The method includes related data such as package locations, details, tax rate types, and call type codes. If the package is not found, a `NotFound` response is returned.
Parameters
companyId (header) - The company identifier from the request header.
packageId (path) * - The identifier of the package to retrieve.
Responses
200 - Returns the package details if found.
PUT /v2/Catalog/Package/{packageId}

Update a Package

Update a Package using Package payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
packageId (path) * - Package Id
body (body) * - Package payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
DELETE /v2/Catalog/Package/{packageId}/ScheduledChanges

Delete Scheduled Package Changes

Removes pending package schedule changes (overview, codes, contents, and locations) for the specified effective date. **Tags:**Catalog, Packages, Scheduling
Parameters
companyId (header) - Company identifier.
packageId (path) * - Package identifier that owns the scheduled changes.
effectiveDate (query) - Effective date of the scheduled change.
Responses
200 - IActionResult indicating completion.
GET /v2/Catalog/Integration/{companyId}/{embedKey}

Integration Embeds

Returns Embeds for Integration
Parameters
companyId (path) * - Company Id
embedKey (path) * - Embed Key
Responses
200 - Embeds
GET /v2/Catalog/Integration/{companyId}/Company

Get Integration Company Details

Retrieves company details based on the provided company ID. The company details are projected to `CompanyBaseDto` for response. If the company is not found, a `NotFound` response is returned.
Parameters
companyId (path) * - The identifier of the company to retrieve.
Responses
200 - Returns the company details if found.
GET /v2/Catalog/Integration/MyWebsites

My Websites

Returns a list of Embeds that are My Websites.
Parameters
companyId (header) - Company Id
Responses
200 - List of Embed
POST /v2/Catalog/Integration/MyWebsites

My Websites

Creates a new Embed for My Websites.
Parameters
body (body) * - Website Embed payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
POST /v2/Catalog/Integration/FamilyLinks

Create a Family Link

Creates a new Embed for Family Links.
Parameters
body (body) * - Family Link Embed payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
PATCH /v2/Catalog/Integration/{embedKey}

Patch an Embed

Patch an Embed using Patch payload specified in request.
Parameters
companyId (header) - Company Id
embedKey (path) * - Embed Key
body (body) * - Embed Patch payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
DELETE /v2/Catalog/Integration/{embedKey}

Delete an Embed

Deletes an Embed using Embed Key specified in request.
Parameters
companyId (header) - Company Id
embedKey (path) * - Embed Key
Responses
200 -
GET /v2/Catalog/Categories/{fhid}

Get Catalog Items

Returns a list of Catalog Items for the specified Funeral Home Id.
Parameters
companyId (header) - Company Id
fhId (path) * - Funeral Home Id
Responses
200 - List of Catalog Items
GET /v2/Catalog/SelectionGuide/{fhid}

Selection Guides

Returns Selection Guide Items for a given Funeral Home.
Parameters
companyId (header) - Company Id
fhId (path) * - Funeral Home Id
isArranger (query) - Is Arranger
dispositionCategoryId (query) - Disposition to filter by
Responses
200 - List of Selection Guide Items
GET /v2/Catalog/SelectedItem/Dimensions

Get Selected Item Dimensions

Retrieves exterior and interior dimensions for a merchandise item by querying the SAP-to-SQL digital asset attributes. **Tags:**Catalog, Dimensions
Parameters
companyId (header) - Company identifier.
itemCode (query) - Material number or item code to look up.
Responses
200 - Dimensions retrieved successfully.
GET /v2/Catalog/SelectedItem/{itemId}/UrnDisposition

Get Selected Item Urn Disposition

Returns the urn disposition attributes assigned to the specified item, concatenated into a user-friendly string. **Tags:**Catalog, Attributes
Parameters
companyId (header) - Company identifier.
itemId (path) * - Item identifier to inspect.
itemType (query) - Optional item type filter (unused but preserved for compatibility).
Responses
200 - Disposition values returned successfully.
GET /v2/Catalog/ServiceCenter/Items/New

New Service Center Items

Returns New Service Center Items.
Parameters
companyId (header) - Company Id
Responses
200 - List of Service Center Items
GET /v2/Catalog/ServiceCenter/Items/Discontinued

Discoutinued Service Center Items

Search for Discontinued Items in Service Center.
Parameters
companyId (header) - Company Id
Responses
200 - List of Service Center Items
GET /v2/Catalog/Item/{itemTypeId}/Call/{callId}

Item Case Search

Search for Items by Item Type Id and Call Id.
Parameters
companyId (header) - Company Id
itemTypeId (path) * - Item Type Id
callId (path) * - Call Id
Responses
200 - List of Item Location Search Results
GET /v2/Catalog/Item/{itemTypeId}/MiscSale/{miscSaleId}

Item Miscellaenous Sale Search

Search for Items by Item Type Id and Miscellaneous Sale Id
Parameters
companyId (header) - Company Id
itemTypeId (path) * - Item Type Id
miscSaleId (path) * - Miscellaneous Sale Id
Responses
200 - List of Item Location Search Results
GET /v2/Catalog/ClipArt

Clip Art Files

Returns list of clipart available in Engraving
Responses
200 - List of Clip Art
GET /v2/Catalog/Fonts

Engraving Fonts

Returns list of fonts available in Engraving
Responses
200 - List of engraving fonts
GET /v2/Catalog/ClipArt/{fileName}

Download Clip Art File

Streams a clip art image from blob storage, with optional resizing parameters to optimize display. **Tags:**Catalog, Engraving
Parameters
fileName (path) * - Name of the clip art file (without the container prefix).
width (query) - Optional width to resize the image to.
height (query) - Optional height to resize the image to.
fit (query) - Optional resize fit mode.
Responses
200 - File returned successfully.
GET /v2/Catalog/Font/{fileName}

Download Font File

Streams an engraving font file from blob storage for client consumption. **Tags:**Catalog, Engraving
Parameters
fileName (path) * - Name of the font file to download.
Responses
200 - Font file returned successfully.
GET /v2/Company

Get Company

Retrieves details of a specific company based on the provided company ID. This endpoint returns the company profile as a . **Usage Notes:** - Requires valid company context and permission verification. - Primarily used to load company profile information in management views. - Results are mapped using AutoMapper from the Advisor Master database. **Tags:**Companies, Profile, Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to locate and return the matching company record.
Responses
200 - Successfully returns the details of the specified company.
PATCH /v2/Company

Patch Company

Applies JSON Patch operations to a company, ensuring the user has permission to modify the record. **Usage Notes:** - Ensures patch operations comply with user access restrictions. - Validates model state after applying patch operations. - Automatically persists changes via the Advisor Master DbContext. **Example Patch Document:**[ { "op": "replace", "path": "/address", "value": "New Address" } ] **Tags:**Companies, Updates, Management
Parameters
companyId (header) - The unique identifier of the company being modified.
body (body) * - A JsonPatchDocument<TModel> containing field-level modifications.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - A NoContentResult if the patch is successfully applied.
GET /v2/Companies

Get All Companies

Retrieves a list of all available companies, ordered alphabetically by name. This includes both corporate and individual company records. **Usage Notes:** - Does not require a company header since it enumerates all accessible companies. - Supports permission-based filtering when loaded in the UI. - Typically used for global company selection and administrative dashboards. **Tags:**Companies, Directory, Management
Responses
200 - Successfully returns a list of companies.
GET /v2/Companies/ByRepCode

Get Companies by RepCode

Retrieves companies associated with customers in the current user's sales territory (RepCode). Used by mobile applications (Procura) to get company details for any company associated with the user's assigned customers.
Responses
200 - List of CompanyBaseDto for companies in the user's territory
GET /v2/Company/{companyId}/SecurityRoles

Get Company Security Roles

Retrieves all security roles associated with a specific company, optionally filtered by a provided Funeral Home ID for permission validation. **Usage Notes:** - Calls`GetSecurityRoles`internally to resolve role data. - Used to populate company-specific role configuration screens. **Tags:**Companies, Roles, Security
Parameters
selectedFhIdForPermissionsCheck (header) - Optional parameter for verifying access based on a specific Funeral Home ID.
companyId (path) * - The unique identifier of the company whose roles should be retrieved.
Responses
200 - Successfully returns the list of security roles for the company.
GET /v2/Company/SecurityRoles

Get Security Roles

Retrieves a list of available security roles for the specified company, including both company-specific and global roles. **Usage Notes:** - Includes both company-specific and shared (global) roles. - Excludes internal roles such as “System Administrator” (RoleId 6). - Results are sorted by company scope and role name. - Applies permission filtering via`ApplyViewPermissions`. **Tags:**Companies, Roles, Security
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
selectedFhIdForPermissionsCheck (header) - Optional parameter used to apply view permissions based on a Funeral Home ID.
Responses
200 - Successfully returns all available roles for the company.
GET /v2/Company/{companyId}/FuneralHomes

Get Company Funeral Homes

Retrieves all funeral homes associated with the specified company. Acts as a route-specific wrapper for the GetFuneralHomes method. **Usage Notes:** - Delegates execution to`GetFuneralHomes`for unified logic. - Commonly used by company detail views and administrative tools. **Tags:**Companies, Funeral Homes, Management
Parameters
companyId (path) * - The unique identifier of the company whose funeral homes should be retrieved.
Responses
200 - Successfully returns the list of funeral homes for the company.
GET /v2/Company/FuneralHomes

Get Funeral Homes

Retrieves a detailed list of funeral homes associated with the specified company, including related location, address, contract, and report information. **Usage Notes:** - Performs a joined lookup between Advisor Master and client databases. - Includes related data such as addresses, tags, service centers, and contracts. - Populates report IDs (Contract/Addendum) using company-level or master fallbacks. - Applies permission filtering per funeral home record. - Used by company administration and reporting configuration screens. **Tags:**Companies, Funeral Homes, Locations, Management
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
Responses
200 - Successfully returns the list of funeral homes and associated metadata.
GET /v2/Company/FuneralHomeKey

Get Funeral Home Key

Retrieves the unique key (GUID) for a specified funeral home by its ID. Returns null if no key is assigned or the funeral home does not exist. **Usage Notes:** - Used for linking external integrations or uniquely identifying funeral homes across systems. - Returns`null`for inactive or uninitialized records. - Does not perform company or permission validation (key-only retrieval). **Tags:**Funeral Homes, Keys, Management
Parameters
fhId (query) - The unique identifier of the funeral home whose key should be retrieved.
Responses
200 - Successfully returns the funeral home key, or null if the record is missing or unassigned.
GET /v2/Company/MyFuneralHomes

Get User Funeral Homes

Retrieves a list of funeral homes associated with the logged-in user's accessible companies. Optionally filters the results to a specific company if a Company ID is provided. **Usage Notes:** - Performs company-level permission validation before retrieving data. - Groups funeral homes by company to optimize client database queries. - Includes contract and addendum report mappings using location relationships. - Applies view permissions to restrict funeral homes based on the user’s roles. **Tags:**Funeral Homes, Companies, Permissions
Parameters
companyId (query) - Optional. Filters results to a single company if specified; otherwise returns funeral homes across all accessible companies.
Responses
200 - Successfully returns the list of funeral homes accessible to the current user.
GET /v2/Company/MyCompaniesWithFuneralHomes

Get User Companies and Funeral Homes

Retrieves a lightweight list of companies and their associated funeral homes for the logged-in user. This endpoint combines company and funeral home data in a single call for efficient loading. **Usage Notes:** - Returns only lightweight DTOs with minimal data (IDs and names only). - Performs company-level permission validation before retrieving data. - Applies view permissions to restrict funeral homes based on the user's roles. - Optimized for UI components that need to display company/funeral home selection. **Tags:**Companies, Funeral Homes, Permissions
Responses
200 - Successfully returns the list of companies and funeral homes accessible to the current user.
GET /v2/Company/FuneralHome/{funeralHomeId}

Get Funeral Home

Retrieves detailed information for a specific funeral home, validating company and user permissions. **Usage Notes:** - Validates both company and funeral home permissions using the permission service. - Joins data from Advisor Master and client contexts for full location mapping. - Includes default report IDs (Contract/Addendum) if location-specific ones are missing. - Throws a`SolutionCenterException`if the funeral home ID is invalid. **Tags:**Funeral Homes, Companies, Details
Parameters
companyId (header) - The unique identifier of the company to which the funeral home belongs.
funeralHomeId (path) * - The unique identifier of the funeral home to retrieve.
Responses
200 - Successfully returns the funeral home details.
PATCH /v2/Company/FuneralHome/{funeralHomeId}

Patch Funeral Home

Applies JSON Patch updates to a specific funeral home record, synchronizing related contracts and addendum settings in the associated client database. **Usage Notes:** - Ensures the funeral home belongs to an accessible company. - Handles synchronization of related report mappings (Contract and Addendum). - Automatically removes or adds client-side`LocationContracts`and`LocationInvoices`as needed. - Performs validation after applying the patch to maintain data consistency. **Example Patch Document:**[ { "op": "replace", "path": "/address", "value": "New Address" } ] **Tags:**Funeral Homes, Updates, Management
Parameters
funeralHomeId (path) * - The unique identifier of the funeral home to update.
body (body) * - A JsonPatchDocument<TModel> describing the field updates to apply.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - A NoContentResult if the patch was applied successfully.
GET /v2/Company/Tags

Get Company Tags

Retrieves tags associated with the user’s company or corporation, applying permission filtering based on the user’s role and optional funeral home ID. **Usage Notes:** - Supports different tag scopes depending on role (Zeus, AuroraAdmin, CorporateManager, etc.). - For corporate users, retrieves tags across all subsidiary companies. - Applies permission filtering through`ApplyViewPermissions`. - Used to populate tag selectors and reporting filters throughout the platform. **Tags:**Tags, Companies, Roles
Parameters
selectedFhIdForPermissionsCheck (header) - Optional. A funeral home ID used to apply view permissions during tag retrieval.
Responses
200 - Successfully returns the list of tags available to the user’s role and company context.
PATCH /v2/Company/Tags

Patch Company Tags

Applies partial updates to the tags associated with a company using a JSON Patch document. Ensures the user has permission to modify tags for the specified company. **Usage Notes:** - Ensures tag updates are only applied to companies the user can access. - Removes invalid or obsolete tags and adds new tags as specified in the patch document. - Automatically creates new`Tag`records when necessary. **Example Patch Document:**[ { "op": "add", "path": "/companyTags/-", "value": "UpdatedTag" }, { "op": "replace", "path": "/companyTags/0", "value": "ReplacedTag" } ] **Tags:**Tags, Companies, Metadata
Parameters
companyId (header) - The unique identifier of the company whose tags will be updated.
body (body) * - The JsonPatchDocument<TModel> containing the tag modifications to apply.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully applies the specified tag modifications to the company.
GET /v2/Company/FuneralHome/Tags

Get Funeral Home Tags

Retrieves a distinct list of tags associated with all funeral homes belonging to the user’s companies. Applies permission-based filtering if a funeral home ID is provided. **Usage Notes:** - Collects funeral home IDs from all companies the user can access. - Maps tag data from`FuneralHomeTags`and ensures uniqueness. - Applies permission filtering to limit tag visibility by funeral home. **Tags:**Funeral Homes, Tags, Permissions
Parameters
selectedFhIdForPermissionsCheck (header) - Optional. Funeral home ID used for permission-based filtering.
Responses
200 - Successfully returns the list of funeral home tags for the user’s accessible companies.
PATCH /v2/Company/{companyId}/Tags

Patch Company Tags

Applies partial updates to the tags associated with a specific company using a JSON Patch document. Supports adding, removing, or replacing tag relationships. **Usage Notes:** - Supports JSON Patch operations such as`add`,`remove`, and`replace`. - Requires the company to be within the user’s permission scope. - Use for tag management interfaces and dynamic metadata updates. **Example Patch Document:**[ { "op": "add", "path": "/companyTags/-", "value": "NewTag" }, { "op": "remove", "path": "/companyTags/0" } ] **Tags:**Tags, Companies, Metadata
Parameters
companyId (path) * - The unique identifier of the company whose tags are being modified.
body (body) * - A JsonPatchDocument<TModel> containing the list of operations to apply.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully applies the specified patch operations to the company’s tags.
PATCH /v2/Company/FuneralHome/{funeralHomeId}/Tags

Patch Funeral Home Tags

Applies partial updates to the tags associated with a specific funeral home using a JSON Patch document. Validates user permissions before applying modifications. **Usage Notes:** - Ensures the funeral home belongs to a company accessible by the current user. - Removes tags that no longer exist in the patch payload and adds new ones as needed. - Automatically creates new`Tag`records if they do not exist. **Example Patch Document:**[ { "op": "add", "path": "/funeralHomeTags/-", "value": "NewTag" }, { "op": "remove", "path": "/funeralHomeTags/0" } ] **Tags:**Funeral Homes, Tags, Metadata
Parameters
funeralHomeId (path) * - The unique identifier of the funeral home whose tags are being updated.
body (body) * - A JsonPatchDocument<TModel> describing the tag modifications.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the funeral home’s tag associations.
PATCH /v2/Company/{companyId}

Patch Specified Company

Applies partial updates to a company record identified by its ID, verifying user permissions. **Usage Notes:** - Delegates to`Patch`for shared patch handling logic. - Validates that the user can modify the targeted company. - Does not allow structural changes to the company hierarchy. **Example Patch Document:**[ { "op": "replace", "path": "/name", "value": "UpdatedCompanyName" } ] **Tags:**Companies, Updates, Management
Parameters
companyId (path) * - The unique identifier of the company being updated.
body (body) * - The JsonPatchDocument<TModel> containing company property modifications.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns IActionResult indicating success or failure of the update.
GET /v2/Company/Media

Get Company Media

Retrieves a list of active media files associated with a specific company, including file metadata and fully qualified URLs. **Usage Notes:** - Filters active records (`Active = true`) from the`CompanyMedia`table. - Generates fully qualified URLs using`Request.GetBaseUrl()`. - Used by company management and content display pages. **Tags:**Companies, Media, Files
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
showInCaseManagement (query) - Optional filter. When specified, only returns media items matching this ShowInCaseManagement value.
Responses
200 - Successfully returns a list of company media items.
POST /v2/Company/Media

Upload Company Media

Uploads one or more media files for the specified company, validating file type, size, and count before storing them and recording metadata. **Usage Notes:** - Supports multiple file uploads (limited by`MediaConstants.MaxFileUploadCount`). - Automatically calculates image dimensions for supported image types. - Generates publicly accessible URLs for uploaded media. - Files are persisted in the designated blob storage container and referenced in SQL. **Tags:**Companies, Media, Uploads
Parameters
companyId (header) - The unique identifier of the company that owns the uploaded media.
selectedFhIdForPermissionsCheck (header) - Optional. Funeral Home ID used to apply permission-based validation.
body (body) * - A collection of files (IFormFile) to upload.
Request Body Schema:
{
  "files": {}
}
Responses
200 - Successfully uploads and returns metadata for all files.
GET /v2/Company/Media/{companyMediumId}

Get Company Medium

Retrieves a specific company media file (such as an image or document) by its unique identifier, with optional parameters for resizing and fit behavior. **Usage Notes:** - Supports on-the-fly image resizing using`width`,`height`, and`fit`parameters. - Response is cached on the client for 10 minutes for performance. - Allows anonymous access for public display scenarios. **Tags:**Companies, Media, Files
Parameters
companyMediumId (path) * - The unique identifier (Guid) of the company media file to retrieve.
width (query) - Optional. The desired width of the returned image (if applicable).
height (query) - Optional. The desired height of the returned image (if applicable).
fit (query) - Optional. Determines how the image should scale within the provided dimensions.
Responses
200 - Successfully returns the specified media file.
DELETE /v2/Company/Media/{companyMediumId}

Delete Company Medium

Marks a company media file as inactive, effectively removing it from the company’s active media list, while retaining the file record for auditing. **Usage Notes:** - Performs soft deletion by setting`Active = false`. - Does not physically remove files from storage; retention is handled separately. - Validates ownership to prevent cross-company modifications. **Tags:**Companies, Media, Deletion
Parameters
companyId (header) - The unique identifier of the company that owns the media file.
selectedFhIdForPermissionsCheck (header) - Optional. Funeral Home ID used to check permissions for deletion.
companyMediumId (path) * - The unique identifier (Guid) of the media file to delete.
Responses
200 - Successfully marks the media file as inactive.
PUT /v2/Company/Media/{companyMediumId}/ShowInCaseManagement

Patch Company Medium Show In Case Management

Updates the ShowInCaseManagement flag on a company media item, controlling whether it appears in Case Management overview panels.
Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
companyMediumId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Company/FuneralHome/ServiceCenters

Get active service centers available for assignment to a funeral home.

Used by the Settings → Company → Funeral Homes "Add" dialog to populate the Service Center dropdown. Authorization is scoped to users who can manage funeral home locations, so it is usable from settings pages without elevating to the Zeus role required by the distributor-facing endpoint.
Parameters
companyId (header)
Responses
200 - OK
POST /v2/Company/FuneralHome

Create a new Funeral Home for the current company.

Mirrors the V1 "Add Location" workflow: inserts a FuneralHome row, copies the calling user's Headquarters roles to the new funeral home, inserts a companion AURORA.Location record, runs the company import stored procedure, and optionally copies settings from an existing funeral home. Permission cache is cleared on success so the new FH appears for the caller immediately.
Parameters
companyId (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Company/FuneralHome/{funeralHomeId}/Address/{addressType}

Add Funeral Home Address

Adds a new address to a funeral home, or links an existing address if it already exists. Updates both Advisor Master and client databases to keep address records synchronized.
Parameters
funeralHomeId (path) * - The unique identifier of the funeral home to which the address is being added.
addressType (path) * - The type of address (e.g., Physical, Mailing, or Billing).
body (body) * - The address details to be created or linked.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns ActionResult indicating success.
PATCH /v2/Company/FuneralHome/{funeralHomeId}/Address/{addressType}

Patch Funeral Home Address

Updates or creates an address for a funeral home using a JSON Patch document. Supports adding new addresses, updating existing ones, or reassigning address types. **Usage Notes:** - Handles three scenarios: creating a new address, updating an existing address, or linking an existing address ID. - Synchronizes changes with the client database to maintain consistency. - Automatically removes outdated address records if type assignments change. **Example Patch Document:**[ { "op": "replace", "path": "/street", "value": "123 New St" } ] **Tags:**Funeral Homes, Addresses, Updates
Parameters
funeralHomeId (path) * - The unique identifier of the funeral home whose address is being modified.
addressType (path) * - The type of address being updated (e.g., Physical, Mailing).
body (body) * - The JsonPatchDocument<TModel> containing the field-level changes to apply.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - A NoContentResult on success, or BadRequestResult on validation errors.
GET /v2/Company/TaxRates

Get Tax Rates

Retrieves all active tax rates for the specified company, including related rate details, location rates, and tax rate types. **Usage Notes:** - Includes related entities (`TaxRateDetails`,`LocationTaxRates`,`TaxRateType`). - Uses split queries to improve performance and avoid Cartesian expansion. - Used for tax configuration management and reporting interfaces. **Tags:**Companies, Tax, Finance
Parameters
companyId (header) - The unique identifier of the company whose tax rates are being retrieved.
Responses
200 - Successfully returns the list of tax rates.
GET /v2/Company/TaxRate/{taxRateId}

Get Tax Rate

Retrieves detailed information about a single tax rate for the specified company. **Usage Notes:** - Retrieves associated rate details and location rates for comprehensive results. - Used in the tax management editor and rate validation routines. **Tags:**Companies, Tax, Finance
Parameters
companyId (header) - The unique identifier of the company associated with the tax rate.
taxRateId (path) * - The unique identifier of the tax rate to retrieve.
Responses
200 - Successfully returns the requested tax rate.
POST /v2/Company/TaxRate

Create Tax Rate

Creates a new tax rate for a company, including its details and applicable locations. **Usage Notes:** - Automatically assigns creation metadata and associates the rate with the company. - Calls`UpdateTaxDetailAndLocations`to apply detailed configurations. - Persists all changes to the client database via EF Core. **Tags:**Companies, Tax, Finance
Parameters
companyId (header) - The unique identifier of the company for which the tax rate is being created.
body (body) * - The TaxRateUploadDto object containing tax rate configuration data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully creates a new tax rate and related records.
PUT /v2/Company/TaxRate

Update Tax Rate

Updates an existing tax rate record for a company using provided configuration data. **Usage Notes:** - Validates that the tax rate exists before applying updates. - Calls`UpdateTaxDetailAndLocations`to maintain linked configurations. - Used in tax rate edit forms and administrative settings. **Tags:**Companies, Tax, Finance
Parameters
companyId (header) - The unique identifier of the company whose tax rate is being updated.
body (body) * - The TaxRateUploadDto containing the updated tax rate details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the existing tax rate record.
GET /v2/Company/Locations

List Company Locations

Retrieves all locations that belong to the specified company, optionally filtering by location type and applying view permissions scoped to a selected funeral home. **Usage Notes:** - Each result includes physical, mailing, shipping, and billing addresses when available. - Use`locationTypeId`to drive dropdown filters inside Location Settings UI. - Permission enforcement is handled by`permissionService.ApplyViewPermissions`. **Tags:**Locations, Directory, Settings
Parameters
companyId (header) - The unique company identifier supplied in the request header.
selectedFhIdForPermissionsCheck (header) - Optional funeral home identifier used to limit the returned locations to those the caller may view.
locationTypeId (query) - Optional location type master ID used to narrow the results to a single type.
Responses
200 - Successfully returns the list of company locations.
POST /v2/Company/Location

Create Location

Creates a new company location, persists the provided attributes, and returns the fully hydrated DTO for display. **Usage Notes:** - New records default to`Active = true`before being mapped from the incoming DTO. - Uses AutoMapper to keep DTO and entity models synchronized. - Returns the created record by re-querying to ensure all navigation properties are included. **Tags:**Locations, Create, Settings
Parameters
companyId (header) - Identifier for the company receiving the new location.
selectedFhIdForPermissionsCheck (header) - Optional funeral home scope that must grant the caller `ManageLocations` permission.
body (body) * - Request payload describing the location profile to persist.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully creates the location and returns the hydrated DTO.
PUT /v2/Company/Location/{locationId}

Update Location

Updates an existing location that belongs to the specified company using the fields supplied in the request body. **Usage Notes:** - Maps data with AutoMapper, so DTO validation should align with entity constraints. - Only locations belonging to the supplied company can be updated. - Used in the Settings > Locations edit workflow. **Tags:**Locations, Update, Settings
Parameters
companyId (header) - Identifier of the company that owns the location record.
selectedFhIdForPermissionsCheck (header) - Optional funeral home context used to verify `ManageLocations` permissions.
locationId (path) * - Unique identifier of the location being modified.
body (body) * - Updated field values for the location.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the location.
GET /v2/Company/Location/{locationId}/Resources

Get Location Resources

Retrieves the active resources assigned to a specific location within the company for scheduling and staffing needs. **Usage Notes:** - Only resources flagged as active are included. - Used by the scheduling UI to populate staffing pickers per location. - Query leverages AutoMapper projection for performance. **Tags:**Locations, Resources, Scheduling
Parameters
companyId (header) - Company identifier read from the request header.
locationId (path) * - Unique identifier for the location whose resources should be returned.
Responses
200 - Successfully returns the resources for the location.
POST /v2/Company/Locations/Resources

Get Resources For Multiple Locations

Returns active resources for a batch of location identifiers in a single request. **Usage Notes:** - Use when a UI needs to hydrate resources for several locations simultaneously. - Gracefully handles null/empty input by returning an empty list. - Resources are filtered to those whose underlying resource is marked active. **Tags:**Locations, Resources, Scheduling
Parameters
companyId (header) - Identifier of the company that owns the requested locations.
body (body) * - Collection of location IDs to resolve. When null or empty, an empty list is returned.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully returns the aggregated resources.
GET /v2/Company/EventTypes

Get Event Types

Retrieves all event types configured for a company, ensuring related description data exists and returning the results ordered by name. **Usage Notes:** - Automatically seeds`MiscPageData`records if a type is missing descriptive content. - Results are used throughout the Gathering Types administration experience. - Uses AutoMapper projections for efficient loading. **Tags:**Events, Settings, GatheringTypes
Parameters
companyId (header) - Identifier for the company whose event types should be returned.
Responses
200 - Successfully returns the full list of event types.
POST /v2/Company/EventTypes

Create Event Type

Creates a new event type along with its backing item, misc page data, sections, and location associations. **Usage Notes:** - Automatically creates an`Item`entry tied to the Gathering master item type. - Materializes related collections (sections, locations, misc page data) inside a single transaction. - Used by Settings > Gathering Types when adding a new ceremony template. **Tags:**Events, Create, GatheringTypes
Parameters
companyId (header) - Identifier of the company that the event type will belong to.
body (body) * - Payload describing the new event type, including colors, sections, and location relationships.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully creates the event type.
GET /v2/Company/GetEventTypeImage

Get Event Type Image

Downloads the stored image for the requested event type and optionally resizes it for use in public experiences. **Usage Notes:** - Endpoint is anonymous to support family websites and other public views. - Delegates image retrieval and resizing to`IMediaService`. - Throws`SolutionCenterException`when the event type cannot be found. **Tags:**Events, Media, GatheringTypes
Parameters
companyId (query) - Company identifier that scopes the event type lookup.
eventTypeId (query) - Unique identifier for the event type whose image should be returned.
width (query) - Optional target width for the rendered image.
height (query) - Optional target height for the rendered image.
fit (query) - Optional resize mode describing how to fit the image within the requested dimensions.
Responses
200 - Successfully returns the stored image.
POST /v2/Company/EventType/{eventTypeId}/Image

Upload Event Type Image

Accepts an image file and stores it as the visual asset for the specified event type. **Usage Notes:** - Generates a new blob identifier via`systemService.NewGuid()`. - Uploads the content to the`CompanyMedia`container using`IMediaService`. - Used by administrators managing imagery for Gathering Types. **Tags:**Events, Media, GatheringTypes
Parameters
companyId (header) - Company identifier supplied in the header to scope the event type lookup.
eventTypeId (path) * - Identifier of the event type whose image should be updated.
body (body) * - Uploaded image file. Only image MIME types are permitted.
Request Body Schema:
{
  "file": {}
}
Responses
200 - Successfully uploads the image and associates it with the event type.
DELETE /v2/Company/EventType/{eventTypeId}/Image

Remove Event Type Image

Clears the stored image reference for an event type, effectively removing the associated media. **Usage Notes:** - Only clears the pointer stored in SQL; associated blob cleanup is handled separately. - Useful when administrators want to revert to the default event type imagery. - Ensures the event type being edited belongs to the requesting company. **Tags:**Events, Media, GatheringTypes
Parameters
companyId (header) - Identifier for the company that owns the event type.
eventTypeId (path) * - Identifier of the event type whose image should be removed.
Responses
200 - Successfully removes the image reference.
GET /v2/Company/EventSubTypes

Get Event Subtypes

Returns all event subtypes configured for the company, including their parent event type relationships. **Usage Notes:** - Used to populate dropdowns when configuring Gathering Types. - Loads related entities via EF split queries for efficiency. **Tags:**Events, Subtypes, GatheringTypes
Parameters
companyId (header) - Company identifier provided in the request header.
Responses
200 - Successfully returns the event subtypes.
POST /v2/Company/EventSubTypes

Create Event Subtype

Creates a new event subtype for the specified company to be associated with a parent event type downstream. **Usage Notes:** - New records default to`Active = true`. - Relies on AutoMapper to map the saved entity back to a DTO. - Used when admins add subtype options in the Gathering Types UI. **Tags:**Events, Subtypes, GatheringTypes
Parameters
companyId (header) - Identifier of the company that owns the gathering configuration.
body (body) * - Payload containing the name and other properties for the new subtype.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully creates the event subtype.
PUT /v2/Company/EventTypes/{eventTypeId}

Update Event Type

Updates an existing event type, synchronizing its misc page data, sections, locations, and settings. **Usage Notes:** - Rebuilds event-section and location associations to match the incoming payload. - Ensures misc page data exists and reflects the current description. - Sets`Active`based on whether the type is available to any locations. **Tags:**Events, Update, GatheringTypes
Parameters
companyId (header) - Company identifier for the event type being updated.
eventTypeId (path) * - Identifier of the event type to update.
body (body) * - DTO containing the updated values.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates and returns the event type.
PUT /v2/Company/EventSubTypes/{eventSubTypeId}

Update Event Subtype

Updates the name, active state, and parent relationship for an existing event subtype. **Usage Notes:** - Throws`SolutionCenterException`when the subtype cannot be located. - Allows administrators to toggle subtype availability per event type. - Relies on AutoMapper for the response DTO. **Tags:**Events, Subtypes, GatheringTypes
Parameters
companyId (header) - Company identifier associated with the subtype.
eventSubTypeId (path) * - Unique identifier of the subtype to update.
body (body) * - DTO containing the new subtype values.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the subtype.
GET /v2/Company/EventClassifications

Get Event Classifications

Returns all event classifications available to the company for grouping event types. **Usage Notes:** - Used to populate drop-downs when assigning classifications to event types. - Orders results alphabetically for predictable UI presentation. **Tags:**Events, Classifications, GatheringTypes
Parameters
companyId (header) - Identifier of the company requesting data.
Responses
200 - Successfully returns the classifications.
GET /v2/Company/EventSections

Get Event Sections

Returns the ordered list of event sections a company can use to compose gathering templates. **Usage Notes:** - Used when configuring which sections appear inside an event type. - Projection keeps the payload lightweight for UI rendering. **Tags:**Events, Sections, GatheringTypes
Parameters
companyId (header) - Identifier of the company to scope the query.
Responses
200 - Successfully returns the sections.
GET /v2/Company/FuneralHome/{funeralHomeId}/DisclosureTypes

Get Funeral Home Disclosure Types

Returns the disclosure types available to the funeral home’s company for contract and paperwork configuration. **Usage Notes:** - Derives the company ID from Advisor Master before querying the client database. - Used when configuring funeral home-specific disclosures in Settings. **Tags:**Disclosures, FuneralHomes, Compliance
Parameters
funeralHomeId (path) * - Unique identifier of the funeral home whose company data should be queried.
Responses
200 - Successfully returns the disclosure types.
GET /v2/Company/FuneralHome/{funeralHomeId}/Disclosures

Get Funeral Home Disclosures

Retrieves the disclosure configurations assigned to the specified funeral home. **Usage Notes:** - Requires both funeral home access and the ManageDisclosures permission. - Used in Settings when editing funeral home-specific disclosures. **Tags:**Disclosures, FuneralHomes, Compliance
Parameters
funeralHomeId (path) * - Funeral home identifier used for permission checks and data lookup.
Responses
200 - Successfully returns the disclosures.
PATCH /v2/Company/FuneralHome/{funeralHomeId}/Disclosure/{disclosureTypeId}

Patch Funeral Home Disclosure

Applies a JSON Patch document to a funeral home's disclosure, creating the disclosure record if it does not yet exist. **Usage Notes:** - Auto-creates the disclosure if it does not yet exist for the funeral home. - Validates the patched DTO before persisting changes. - Returns`NoContent`on success to align with PATCH semantics. **Tags:**Disclosures, FuneralHomes, Compliance
Parameters
funeralHomeId (path) * - Identifier of the funeral home being updated.
disclosureTypeId (path) * - Identifier of the disclosure type being modified.
body (body) * - JSON Patch document describing the changes to apply to DisclosureDto.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - IActionResult indicating success or validation errors.
GET /v2/Company/ContractDisclosures

Get Contract Disclosures

Retrieves the contract disclosures configured at the company level. **Usage Notes:** - Used when editing company-wide disclosures that appear on contracts. - Data is projected directly to DTOs for efficient serialization. **Tags:**Disclosures, Contracts, Compliance
Parameters
companyId (header) - Identifier for the company, provided via the request header.
Responses
200 - Successfully returns the company's contract disclosures.
POST /v2/Company/ContractDisclosures

Create Contract Disclosure

Adds a new contract disclosure for the company using the provided DTO payload. **Usage Notes:** - Maps the DTO to the entity and automatically stamps the company ID. - Only adds a new record when the identifier is zero (i.e., not yet persisted). - Used when administrators compose new disclosure paragraphs. **Tags:**Disclosures, Contracts, Compliance
Parameters
companyId (header) - Identifier of the company receiving the disclosure.
selectedFhIdForPermissionsCheck (header) - Optional funeral home context for permission enforcement.
body (body) * - DTO containing the disclosure content to persist.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully inserts the disclosure.
PATCH /v2/Company/ContractDisclosures/{contractDisclosureId}

Patch Contract Disclosure

Applies a JSON Patch document to a company contract disclosure after enforcing access permissions. **Usage Notes:** - Validates company ownership before allowing edits. - Applies the patch to a DTO instance before mapping changes back to the entity. - Requires`ManageDisclosures`permission when a funeral home context is provided. **Tags:**Disclosures, Contracts, Compliance
Parameters
companyId (header) - Identifier for the company whose disclosure is being modified.
selectedFhIdForPermissionsCheck (header) - Optional funeral home scope for permission enforcement.
contractDisclosureId (path) * - Identifier of the contract disclosure to patch.
body (body) * - JSON Patch document that modifies ContractDisclosureDto values.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully applies the patch and persists the disclosure.
POST /v2/Company/Event/Search

Search Events

Executes the shared event search pipeline using the provided criteria and returns a paged result set. **Usage Notes:** - Delegates the heavy lifting to`IEventService.SearchEvents`. - Commonly used by the calendar and obituary management screens. **Tags:**Events, Search, Scheduling
Parameters
companyId (header) - Company identifier used to scope the search.
body (body) * - Search criteria including date ranges, funeral home filters, and pagination metadata.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully executes the search and returns results.
GET /v2/Company/GeneralLedger

Get General Ledger Accounts

Returns all general ledger accounts configured for the company. **Usage Notes:** - Used on the Settings > Finance screens to list GL accounts. - Projects entities directly into DTOs for serialization efficiency. **Tags:**Finance, GeneralLedger, Settings
Parameters
companyId (header) - Company identifier supplied through the header.
Responses
200 - Successfully returns the accounts.
POST /v2/Company/GeneralLedger

Create General Ledger Account

Creates a new general ledger account and associates it with any requested locations. **Usage Notes:** - Maps DTOs into entities using AutoMapper before persisting. - Automatically links the account to new location records when their IDs are zero. - Used in Settings when finance admins add GL accounts. **Tags:**Finance, GeneralLedger, Settings
Parameters
companyId (header) - Identifier of the company.
selectedFhIdForPermissionsCheck (header) - Optional funeral home context used to verify `ManageGeneralLedgerAccounts` permission.
body (body) * - DTO describing the new general ledger account.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully creates the account and returns its ID.
GET /v2/Company/CashAccount

Get Cash Accounts

Returns all cash accounts configured for the company, including their location assignments. **Usage Notes:** - Feeds Settings UIs that manage payment routing per location. - Uses AutoMapper projection to avoid over-fetching entity graphs. **Tags:**Finance, CashAccounts, Settings
Parameters
companyId (header) - Company identifier from the request header.
Responses
200 - Successfully returns the cash accounts.
POST /v2/Company/CashAccount

Create Cash Account

Creates a new cash account and links it to the provided locations. **Usage Notes:** - Any location links with an ID of zero are treated as new. - Used when administrators add accounts for payment routing. **Tags:**Finance, CashAccounts, Settings
Parameters
companyId (header) - Identifier of the company.
selectedFhIdForPermissionsCheck (header) - Optional funeral home context for permission validation.
body (body) * - DTO describing the cash account to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully creates the cash account.
PUT /v2/Company/GeneralLedger/{generalLedgerId}

Update General Ledger Account

Updates an existing general ledger account and reconciles its location assignments to match the supplied DTO. **Usage Notes:** - Removes orphaned location links and adds new ones where necessary. - Uses AutoMapper to map DTO changes onto the tracked entity. **Tags:**Finance, GeneralLedger, Settings
Parameters
companyId (header) - Identifier of the company.
selectedFhIdForPermissionsCheck (header) - Optional funeral home scope for permission enforcement.
generalLedgerId (path) * - Identifier of the general ledger account being updated.
body (body) * - Updated general ledger data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the account.
PUT /v2/Company/CashAccount/{cashAccountId}

Update Cash Account

Updates an existing cash account and syncs its location assignments to match the request payload. **Usage Notes:** - Removes stale location links and inserts new ones as needed. - Ensures updates are scoped to the requesting company. **Tags:**Finance, CashAccounts, Settings
Parameters
companyId (header) - Identifier of the company.
selectedFhIdForPermissionsCheck (header) - Optional funeral home context for permission enforcement.
cashAccountId (path) * - Identifier of the cash account to update.
body (body) * - DTO containing the updated cash account details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the cash account.
GET /v2/Company/IntermentOption

Get Interment Options

Retrieves the list of interment options configured for the company. **Usage Notes:** - Used in Settings screens that manage interment offerings. - Projection keeps payload lightweight. **Tags:**Interment, Settings
Parameters
companyId (header) - Company identifier provided in the header.
Responses
200 - Successfully returns interment options.
POST /v2/Company/IntermentOption

Create Interment Option

Creates a new interment option for the specified company using the provided DTO. **Usage Notes:** - Relies on AutoMapper to copy DTO data onto the entity. - Persisted in the client database tied to the header company. **Tags:**Interment, Create, Settings
Parameters
companyId (header) - Company identifier.
body (body) * - DTO describing the interment option to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully creates the interment option.
PATCH /v2/Company/IntermentOption/{intermentOptionId}

Patch Interment Option

Applies a JSON Patch document to an existing interment option. **Usage Notes:** - Maps the entity to DTO, applies patch, validates, then maps back. - Used by the interment options editor for partial updates. **Tags:**Interment, Update, Settings
Parameters
companyId (header) - Company identifier.
intermentOptionId (path) * - Identifier of the interment option being updated.
body (body) * - JSON Patch instructions for IntermentOptionDto.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - IActionResult indicating success or validation failure.
GET /v2/Company/CaseNumberSettings

Get Company Case Number Settings

Retrieves the company-wide case number settings including formats, counters, and enforcement flags. **Usage Notes:** - Used by Settings > Case Numbers to populate edit forms. - Combines values from Advisor Master and the client database. **Tags:**CaseNumbers, Settings
Parameters
companyId (header) - Company identifier supplied in the header.
Responses
200 - Successfully returns the settings.
PATCH /v2/Company/CaseNumberSettings

Patch Company Case Number Settings

Applies a JSON Patch document to the company-level case number settings and persists the changes. **Usage Notes:** - Persists both Advisor Master fields and client DB app settings. - Converts boolean toggles to the expected "1"/"0" storage format. **Tags:**CaseNumbers, Settings
Parameters
companyId (header) - Company identifier.
selectedFhIdForPermissionsCheck (header) - Optional funeral home context used when enforcing `ManageCaseNumberSettings`.
body (body) * - JSON Patch operations for CompanyCaseNumberSettingsDto.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the settings.
GET /v2/Company/FuneralHome/{funeralHomeId}/CaseNumberSettings

Get Funeral Home Case Number Settings

Retrieves case number settings scoped to a specific funeral home. **Usage Notes:** - Used for per-location overrides in the Case Number Settings UI. **Tags:**CaseNumbers, FuneralHomes, Settings
Parameters
companyId (header) - Company identifier header value.
funeralHomeId (path) * - Funeral home identifier.
Responses
200 - Successfully returns the settings.
PATCH /v2/Company/FuneralHome/{funeralHomeId}/CaseNumberSettings

Patch Funeral Home Case Number Settings

Applies case number setting changes for a specific funeral home using a JSON Patch document. **Usage Notes:** - Ensures the funeral home is active before applying updates. - Requires both company and funeral home permission checks. **Tags:**CaseNumbers, FuneralHomes, Settings
Parameters
companyId (header) - Company identifier header value.
funeralHomeId (path) * - Funeral home identifier.
body (body) * - JSON Patch instructions for FuneralHomeCaseNumberSettingsDto.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the funeral home settings.
GET /v2/Company/PreferenceSettings

Get Preference Settings Metadata

Retrieves the preference configuration model including available types, defaults, and current values for the company. **Usage Notes:** - Used to populate the comprehensive Preference Settings UI. - Combines shared Advisor Master metadata with client-specific values. **Tags:**Preferences, Settings
Parameters
companyId (header) - Company identifier from the header.
Responses
200 - Successfully returns the preference model.
PUT /v2/Company/PreferenceSettings

Update Preference Settings

Persists changes to the company’s preference settings using the provided DTO collection. **Usage Notes:** - Creates new records when an AppSettingsId is not found. - Maps incoming DTO fields onto tracked entities to persist updates. **Tags:**Preferences, Settings
Parameters
companyId (header) - Company identifier.
body (body) * - Collection of DbAppSettingDto values to upsert.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully saves the preference values.
GET /v2/Company/{companyId}/Preferences

Get Company Preferences Key-Value

Returns the company’s preferences as an by translating stored key-value pairs. **Usage Notes:** - Used by legacy components expecting a flattened settings object. - Normalizes stored key names by removing spaces to match property names. **Tags:**Preferences, Settings
Parameters
companyId (path) * - Company identifier routed in the URL.
Responses
200 - Successfully returns the preference values.
GET /v2/Company/MemoriesQuestions

Get Memories Questions

Retrieves all memories questions configured for the specified company. **Usage Notes:** - Used to populate the Memories Question management UI. **Tags:**Memories, Settings
Parameters
companyId (header) - Company identifier supplied via request header.
Responses
200 - Successfully returns the memories questions.
POST /v2/Company/MemoriesQuestion

Create Memories Question

Creates a new memories question for the company after enforcing the necessary permissions. **Tags:**Memories, Create, Settings
Parameters
companyId (header) - Company identifier.
selectedFhIdForPermissionsCheck (header) - Optional funeral home context for permission enforcement.
body (body) * - Question payload to persist.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Question created successfully.
PUT /v2/Company/MemoriesQuestion/{memoriesQuestionId}

Update Memories Question

Updates an existing memories question belonging to the company. **Tags:**Memories, Update, Settings
Parameters
companyId (header) - Company identifier.
selectedFhIdForPermissionsCheck (header) - Optional funeral home scope for permissions.
memoriesQuestionId (path) * - Identifier of the memories question to update.
body (body) * - Updated values.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Update succeeded.
GET /v2/Company/Location/{locationId}/MemoriesQuestions

Get Location Memories Questions

Retrieves the memories questions assigned to a specific location under the company. **Tags:**Memories, Locations, Settings
Parameters
companyId (header) - Company identifier.
locationId (path) * - Location identifier.
Responses
200 - Successfully returns the questions.
PUT /v2/Company/Location/{locationId}/MemoriesQuestion/{memoriesQuestionId}

Upsert Location Memories Question

Creates or updates a location-specific configuration for a memories question. **Tags:**Memories, Locations, Settings
Parameters
companyId (header) - Company identifier.
selectedFhIdForPermissionsCheck (header) - Optional funeral home scope.
locationId (path) * - Location identifier.
memoriesQuestionId (path) * - Memories question identifier.
body (body) * - Updated location-level settings.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully saves the configuration.
DELETE /v2/Company/Location/{locationId}/MemoriesQuestion/{memoriesQuestionId}

Delete Location Memories Question

Removes a location-specific memories question assignment. **Tags:**Memories, Locations, Settings
Parameters
companyId (header) - Company identifier.
selectedFhIdForPermissionsCheck (header) - Optional funeral home context.
locationId (path) * - Location identifier.
memoriesQuestionId (path) * - Memories question identifier to remove.
Responses
200 - Successfully removes the assignment.
POST /v2/Company/Location/{locationId}/MemoriesQuestions/Sync/{destFhId}

Sync Location Memories Questions

Copies memories questions from the specified source location to a destination funeral home, syncing both company and location level data. **Tags:**Memories, Sync, Settings
Parameters
companyId (header) - Company identifier.
locationId (path) * - Source location identifier.
destFhId (path) * - Destination funeral home identifier.
Responses
200 - Sync completed successfully.
GET /v2/Company/ObituaryTemplates

Get Obituary Templates

Returns the active obituary templates for the specified company, including mapped DTO metadata. **Tags:**Obituaries, Templates, Settings
Parameters
companyId (header) - Company identifier header value.
Responses
200 - Successfully returns templates.
POST /v2/Company/ObituaryTemplate

Create Obituary Template

Creates a new obituary template for the company and returns the saved DTO. **Tags:**Obituaries, Templates, Create
Parameters
companyId (header) - Company identifier.
body (body) * - Template content to persist.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Template created successfully.
PUT /v2/Company/ObituaryTemplates/{obituaryTemplateId}

Update Obituary Template

Updates an existing obituary template after validating it belongs to the company and is active. **Tags:**Obituaries, Templates, Update
Parameters
companyId (header) - Company identifier.
obituaryTemplateId (path) * - Template identifier.
body (body) * - Updated template values.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Template updated successfully.
DELETE /v2/Company/ObituaryTemplates/{ObituaryTemplateId}

Delete Obituary Template

Soft deletes an obituary template by marking it inactive. **Tags:**Obituaries, Templates, Delete
Parameters
companyId (header) - Company identifier.
obituaryTemplateId (path) * - Template identifier.
Responses
200 - Template deactivated or already absent.
GET /v2/Company/ObituaryFields

Get Obituary Fields Metadata

Retrieves the database field metadata used for obituary exports by executing the Aurora stored procedure. **Tags:**Obituaries, Metadata
Parameters
companyId (header) - Company identifier.
Responses
200 - Successfully returns field metadata.
GET /v2/Company/CaseViewData

Get Case View Data

Aggregates calls, events, notes, tasks, and resources needed to populate the Case View dashboard for the company. **Usage Notes:** - Includes calls from the last month or those with future events. - Optimized via batch queries to minimize DB round-trips. **Tags:**Cases, Dashboard, Analytics
Parameters
companyId (header) - Company identifier.
Responses
200 - Successfully returns case view data.
POST /v2/Company/LinkQuickbooks

Link QuickBooks

Stores the QuickBooks token and company identifier after the OAuth flow completes. **Tags:**QuickBooks, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - QuickBooks token payload.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Linking succeeded.
POST /v2/Company/DisconnectQuickbooks

Disconnect QuickBooks

Clears the saved QuickBooks tokens for the company. **Tags:**QuickBooks, Integrations
Parameters
companyId (header) - Company identifier.
Responses
200 - Disconnect succeeded.
400 - Bad Request
POST /v2/Company/PostQuickbooksPreferredPersonType

Update QuickBooks Preferred Person Type

Persists the preferred person type used when syncing to QuickBooks. **Tags:**QuickBooks, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Payload containing the preferred person type.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Update succeeded.
POST /v2/Company/LinkPayPal

Link PayPal

Stores PayPal credentials and configuration after completing the OAuth handshake. **Tags:**PayPal, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Payload containing tokens and term settings.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Linking succeeded.
POST /v2/Company/DisconnectPayPal

Disconnect PayPal

Clears stored PayPal credentials and resets related configuration. **Tags:**PayPal, Integrations
Parameters
companyId (header) - Company identifier.
Responses
200 - Disconnect succeeded.
POST /v2/Company/UpdatePaypalTermLimit

Update PayPal Term Limit

Updates the PayPal term limit setting for the company. **Tags:**PayPal, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Term limit payload.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Term limit updated.
POST /v2/Company/LinkCallToPayPalInvoice

Link Call To PayPal Invoice

Associates a case call with a PayPal invoice for reference tracking. **Tags:**PayPal, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Linking DTO containing call and invoice IDs.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Link created.
POST /v2/Company/UpdatePaypalPartialPaymentAllowance

Update PayPal Partial Payment Allowance

Toggles whether partial payments are allowed for the company’s PayPal integration. **Tags:**PayPal, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Payload indicating the allowance flag.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Setting updated.
POST /v2/Company/LinkPaymentToPayPalPayment

Link Payment To PayPal Payment

Creates a link between a Solution Center payment and a PayPal payment identifier. **Tags:**PayPal, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Payload containing the IDs to link.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Link created successfully.
GET /v2/Company/TwilioConfig

Get Twilio Configuration

Retrieves the current Twilio integration configuration for the company. Auth token is masked for security. **Tags:**Twilio, Integrations
Parameters
companyId (header) - Company identifier.
Responses
200 - Configuration retrieved successfully.
POST /v2/Company/LinkTwilio

Link Twilio

Saves Twilio credentials for the company. **Tags:**Twilio, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Twilio credentials to save.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Linking succeeded.
POST /v2/Company/DisconnectTwilio

Disconnect Twilio

Clears stored Twilio credentials and phone numbers for the company. **Tags:**Twilio, Integrations
Parameters
companyId (header) - Company identifier.
Responses
200 - Disconnect succeeded.
POST /v2/Company/TestTwilio

Test Twilio Credentials

Validates Twilio credentials by attempting to connect to the Twilio API. **Tags:**Twilio, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Twilio service for validation.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Test completed.
GET /v2/Company/TwilioPhoneNumbers

Get Twilio Phone Numbers

Retrieves all configured Twilio phone numbers for the company. **Tags:**Twilio, Integrations
Parameters
companyId (header) - Company identifier.
Responses
200 - Phone numbers retrieved successfully.
POST /v2/Company/TwilioPhoneNumber

Add Twilio Phone Number

Adds a phone number to the company's Twilio configuration. **Tags:**Twilio, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Phone number to add.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Phone number added successfully.
DELETE /v2/Company/TwilioPhoneNumber/{id}

Delete Twilio Phone Number

Removes a phone number from the company's Twilio configuration. **Tags:**Twilio, Integrations
Parameters
companyId (header) - Company identifier.
id (path) * - Phone number record ID to delete.
Responses
200 - Phone number deleted successfully.
PUT /v2/Company/TwilioPhoneNumber/{id}

Update Twilio Phone Number

Updates the friendly name of a Twilio phone number. **Tags:**Twilio, Integrations
Parameters
companyId (header) - Company identifier.
id (path) * - Phone number record ID to update.
body (body) * - Updated phone number data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Phone number updated successfully.
POST /v2/Company/TwilioPhoneNumber/{id}/SetDefault

Set Default Twilio Phone Number

Sets the specified phone number as the default for SMS sending. **Tags:**Twilio, Integrations
Parameters
companyId (header) - Company identifier.
id (path) * - Phone number record ID to set as default.
Responses
200 - Default set successfully.
POST /v2/Company/FetchTwilioAccountPhoneNumbers

Fetch Phone Numbers from Twilio Account

Fetches available phone numbers from the Twilio account using the provided credentials. **Tags:**Twilio, Integrations
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
body (body) * - Twilio service for fetching phone numbers.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Phone numbers fetched successfully.
POST /v2/Company/SendTestSms

Send Test SMS

Sends a test SMS using the company's Twilio configuration to verify it works correctly. **Tags:**Twilio, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Twilio service.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Test SMS sent (check result for success/failure).
GET /v2/Company/EmailConfig

Get Email Configuration

Retrieves the current email/SMTP configuration for the company. **Tags:**Email, Integrations
Parameters
companyId (header) - Company identifier.
Responses
200 - Configuration retrieved successfully.
GET /v2/Company/PublishObituaryIntegrations

Get Publish-Obituary Integration Configuration Status

Reports whether FuneralTech, CFS, Tukios, and DOMO are configured for the company so the workflow action picker can enable or disable the corresponding action types. Does NOT guarantee that any specific case will publish or sync successfully; credentials and per-funeral-home configuration are validated at runtime when the action fires. Despite the endpoint name, this also reports DOMO configuration status.
Parameters
companyId (header) - Company identifier.
Responses
200 - Configuration status retrieved.
POST /v2/Company/LinkEmail

Save Email Configuration

Saves email/SMTP configuration for the company. **Tags:**Email, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - SMTP configuration to save.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Configuration saved successfully.
POST /v2/Company/DisconnectEmail

Disconnect Email

Clears stored email/SMTP configuration and email addresses for the company. **Tags:**Email, Integrations
Parameters
companyId (header) - Company identifier.
Responses
200 - Disconnect succeeded.
POST /v2/Company/TestEmail

Test Email Configuration

Tests SMTP configuration by attempting to connect to the server. **Tags:**Email, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Email service for testing.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Test completed.
GET /v2/Company/EmailAddresses

Get Email Addresses

Retrieves all configured email addresses for the company. **Tags:**Email, Integrations
Parameters
companyId (header) - Company identifier.
Responses
200 - Email addresses retrieved successfully.
POST /v2/Company/EmailAddress

Add Email Address

Adds an email address to the company's email configuration. **Tags:**Email, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Email address to add.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Email address added successfully.
DELETE /v2/Company/EmailAddress/{id}

Delete Email Address

Removes an email address from the company's configuration. **Tags:**Email, Integrations
Parameters
companyId (header) - Company identifier.
id (path) * - Email address record ID to delete.
Responses
200 - Email address deleted successfully.
PUT /v2/Company/EmailAddress/{id}

Update Email Address

Updates the display name of an email address. **Tags:**Email, Integrations
Parameters
companyId (header) - Company identifier.
id (path) * - Email address record ID to update.
body (body) * - Updated email address data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Email address updated successfully.
POST /v2/Company/EmailAddress/{id}/SetDefault

Set Default Email Address

Sets the specified email address as the default for email sending. **Tags:**Email, Integrations
Parameters
companyId (header) - Company identifier.
id (path) * - Email address record ID to set as default.
Responses
200 - Default set successfully.
POST /v2/Company/SendTestEmail

Send Test Email

Sends a test email using the company's SMTP configuration to verify it works correctly. **Tags:**Email, Integrations
Parameters
companyId (header) - Company identifier.
body (body) * - Email service for sending.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Test email sent (check result for success/failure).
GET /v2/CompanySettings/TaxPrepayment

Parameters
companyId (header)
Responses
200 - OK
PUT /v2/CompanySettings/TaxPrepayment

Parameters
companyId (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Connections/Settings/{funeralHomeKey}

Retrieve setup settings for a specific funeral home

Retrieves setup settings for a funeral home by its unique key. If settings do not exist, default settings are created from a master setting template.
Parameters
companyId (header) - The company ID to verify permissions.
funeralHomeKey (path) * - The unique key of the funeral home.
Responses
200 - Returns the setup settings for the funeral home.
PUT /v2/Connections/Settings

Update Funeral Home Settings

Allows for Updating Funeral Home Settings matching Company Id and Funeral Home Key specified in request.
Parameters
companyId (header) - Company Id
body (body) * - Settings
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Connections/PageFlows

Page Flows

Allows for Updating Funeral Home Settings matching Company Id and Funeral Home Key specified in request.
Parameters
companyId (header) - Company Id
Responses
200 - List of Connections Page Flows
GET /v2/Connections/Cases

Cases

Returns list of Cases matching Company Id specified in request.
Parameters
companyId (header) - Company Id
Responses
200 - List of Cases
GET /v2/Connections/Leads

Leads

Returns list of Leads matching Company Id specified in request.
Parameters
companyId (header) - Company Id
Responses
200 - List of Leads
GET /v2/Connections/PageFlow/{pageFlowConnectionsId}

Retrieve page flow connections by ID

Retrieves page flow connections based on the provided ID. Additionally, it fetches and includes related media information.
Parameters
companyId (header) - The company ID to ensure the request is authorized for the correct company.
pageFlowConnectionsId (path) * - The ID of the page flow connections to retrieve.
Responses
200 - Returns the details of the page flow connections if found.
PUT /v2/Connections/PageFlow/{pageFlowConnectionsId}

Update a Page Flow

Allows for updating a Page Flow for the Company Id and Selected Funeral Home Id (for Permissions check) to match Page Flow payload in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Selected Funeral Home Id (for Permissions)
pageFlowConnectionsId (path) * - Page Flow Id to Update
body (body) * - Updated Page Flow payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
DELETE /v2/Connections/PageFlow/{pageFlowConnectionsId}

Delete a Page Flow

Allows for deleting a Page Flow for the Company Id, Selected Funeral Home Id (for Permissions check) and Page Flow in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Selected Funeral Home Id (for Permissions)
pageFlowConnectionsId (path) * - Page Flow Id to Delete
Responses
200 -
POST /v2/Connections/PageFlow

Add a Page Flow

Allows for adding a new Page Flow for the Company Id and Selected Funeral Home Id (for Permissions check) and Page Flow payload in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Selected Funeral Home Id (for Permissions Check)
body (body) * - Page Flow
Request Body Schema:
{
  "type": "object"
}
Responses
200 - New Page Flow Id
GET /v2/Connections/PageFlow/{PageFlowConnectionsId}/Media

Page Flow Media

Returns Page Flow Media for the Company Id and Page Flow Id in request.
Parameters
companyId (header) - Company Id
pageFlowConnectionsId (path) * - Page Flow Id
Responses
200 - List of Page Flow Media
GET /v2/Connections/PageFlow/Media/{pageFlowConnectionsMediumId}

Page Flow Media

Returns Page Flow Media for the Company Id and Page Flow Id in request.
Parameters
pageFlowConnectionsMediumId (path) * - Page Flow Media Id
width (query) - Width
height (query) - Height
fit (query) - Resize Fit (Container or Cover)
Responses
200 - List of Page Flow Media
POST /v2/Connections/PageFlow/{pageFlowConnectionsId}/Media

Adds Page Flow Media

Allows for add of Page Flow Media for the Company Id and Page Flow Id in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowConnectionsId (path) * - Page Flow Id
body (body) * - List of Files to Add
Request Body Schema:
{
  "files": {}
}
Responses
200 - Full List of Page Flow Media
POST /v2/Connections/PageFlow/{PageFlowConnectionsId}/Media/Blob

Adds Page Flow Media Blobs

Allows for add of Page Flow Media for the Company Id and Page Flow Id in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowConnectionsId (path) * - Page Flow Id
body (body) * - Files to Upload/ Add
Request Body Schema:
{
  "files": {}
}
Responses
200 - Full List of Page Flow Media
DELETE /v2/Connections/PageFlow/{pageFlowConnectionsId}/Media/{pageFlowConnectionsMediumId}

Delete a Page Flow Media

Allows for deletion of Page Flow Media for the Company Id and Page Flow/ Page Flow Media Ids in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
pageFlowConnectionsId (path) * - Page Flow Id
pageFlowConnectionsMediumId (path) * - Page Flow Media Id to Delete
Responses
200 -
GET /v2/Connections/Advisor/Case/{CallId}

Case (by Call Id)

Returns a Case that matches the Call Id specified in the request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - Case
POST /v2/Connections/Advisor/Case/{CallId}

Create a Case (for a Call)

Creates a Case for Call Id specified in the request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - New Case
GET /v2/ConnectionsGuide

Parameters
companyId (header)
includeInactive (query)
Responses
200 - OK
POST /v2/ConnectionsGuide

Parameters
companyId (header)
corporationId (query)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/ConnectionsGuide/{globalId}

Parameters
companyId (header)
globalId (path) *
Responses
200 - OK
PUT /v2/ConnectionsGuide/{globalId}

Parameters
companyId (header)
globalId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/ConnectionsGuide/{globalId}

Parameters
companyId (header)
globalId (path) *
Responses
200 - OK
GET /v2/ConnectionsGuide/Default

Responses
200 - OK
POST /v2/ConnectionsGuide/{globalId}/Duplicate

Parameters
companyId (header)
globalId (path) *
newName (query)
Responses
200 - OK
GET /v2/ConnectionsGuide/Assignment

Parameters
entityType (query)
entityId (query)
Responses
200 - OK
POST /v2/ConnectionsGuide/Assignment

Parameters
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/ConnectionsGuide/Assignment

Parameters
entityType (query)
entityId (query)
Responses
200 - OK
GET /v2/{entityType}/{entityId}/ConnectionsGuide

Parameters
entityType (path) *
entityId (path) *
Responses
200 - OK
GET /v2/ConnectionsGuide/{globalId}/Media

Parameters
globalId (path) *
Responses
200 - OK
POST /v2/ConnectionsGuide/{globalId}/Media

Parameters
globalId (path) *
body (body) *
Request Body Schema:
{
  "files": {}
}
Responses
200 - OK
GET /v2/ConnectionsGuide/{globalId}/Media/{mediaId}

Parameters
globalId (path) *
mediaId (path) *
width (query)
height (query)
fit (query)
Responses
200 - OK
DELETE /v2/ConnectionsGuide/{globalId}/Media/{mediaId}

Parameters
globalId (path) *
mediaId (path) *
Responses
200 - OK
POST /v2/ConnectionsGuide/{globalId}/Media/CopyFromLibrary

Parameters
globalId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/ConnectionsGuide/{globalId}/Export

Parameters
globalId (path) *
Responses
200 - OK
POST /v2/ConnectionsGuide/Import/Validate

Parameters
companyId (header)
overrideGuideId (query)
body (body) *
Request Body Schema:
{
  "file": {}
}
Responses
200 - OK
POST /v2/ConnectionsGuide/Import

Parameters
companyId (header)
corporationId (query)
nameOverride (query)
overrideGuideId (query)
body (body) *
Request Body Schema:
{
  "file": {}
}
Responses
200 - OK
GET /v2/ConnectionsGuide/Import/Templates

Responses
200 - OK
POST /v2/ConnectionsGuide/Import/Template/{templateName}

Parameters
companyId (header)
templateName (path) *
body (body)
Request Body Schema:
{
  "oneOf": [
    {
      "nullable": true
    },
    {
      "type": "object"
    }
  ]
}
Responses
200 - OK
GET /v2/Connections/{funeralHomeKey}/FuneralHomeName

Retrieve the name and basic details of a funeral home by its key

Retrieves basic information about a funeral home using its unique key. Throws an exception if the funeral home key is invalid.
Parameters
funeralHomeKey (path) * - The unique key of the funeral home.
Responses
200 - Returns the funeral home details.
GET /v2/Connections/{funeralHomeKey}/Version

Retrieve the effective Connections version for a funeral home by its key. This is an anonymous endpoint so the public Connections app can resolve versions.

Parameters
funeralHomeKey (path) * - The unique key of the funeral home.
Responses
200 - Returns the effective Connections version string (e.g. "1.0" or "2.0").
GET /v2/Connections/{funeralHomeKey}/LeadPage

Retrieve the lead page configuration for a funeral home by its key. Resolves the Connections Guide via the assignment hierarchy and returns lead page customization fields, template type, and logo URL.

Parameters
funeralHomeKey (path) * - The unique key of the funeral home.
Responses
200 - Returns the lead page configuration.
GET /v2/Connections/Case/{token}

Case

Returns details for a Case matching the supplied Token value.
Parameters
token (path) * - Token
Responses
200 - Funeral Home Name
PUT /v2/Connections/Case/{token}

Update a Case

Updates a Case to match the Application State specified in request.
Parameters
token (path) * - Token
body (body) * - Application State
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Page Flow Connections
POST /v2/Connections/Case/{token}/ValidateAccessCode

Validate Access Code

Validates an access code against the case identified by the supplied token. Returns 200 with true if valid, 200 with false if invalid.
Parameters
token (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Connections/Case/{token}/RefreshAccessCodeValidation

Re-establishes the server-side access code validation cache for an active session. Called by the Blazor client after a circuit reconnect or when the in-memory cache has expired.

Parameters
token (path) * - The case token.
Responses
200 - True if the validation was refreshed, false if the token is invalid.
GET /v2/Connections/Case/{token}/Finished

Mark Case As Finished

Finalizes a Connections case identified by the token, sends any configured lead notification emails, and returns a flag indicating success. **Tags:**Connections, Public, Case
Parameters
token (path) * - The case token provided in the Connections flow.
Responses
200 - Indicates whether the case was successfully marked finished.
POST /v2/Connections/Case

Create a Case

Creates a new Case.
Parameters
body (body) * - New Application State
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Saved Application State
GET /v2/Connections/Case/{Token}/PageFlow

Page Flow

Returns Page Flow Connections matching Token specified in request.
Parameters
token (path) * - Token
Responses
200 - Page Flow Connections
GET /v2/Connections/FuneralHome/{FuneralHomeKey}/PageFlow

Funeral Home Page Flow

Returns Page Flow Connections for Funeral Home matching Funeral Home Key in request.
Parameters
funeralHomeKey (path) * - Funeral Home Key
Responses
200 - Page Flow Connections
GET /v2/Connections/Case/{token}/Album

Case Album

Returns List of Photos for Case matching Token in request.
Parameters
token (path) * - Token
Responses
200 - List of Case Photos
POST /v2/Connections/Case/{token}/Album

Upload Photos to Case Album

Allows for Upload of Photos to a Case Album matching token in request.
Parameters
token (path) * - Token
body (body) * - List of Files to Upload
Request Body Schema:
{
  "files": {}
}
Responses
200 -
GET /v2/Connections/Case/{token}/Album/{fileName}

Case Album File

Returns a Case Album File matching Token and File Name with the Height, Width and Resize Fit in the request.
Parameters
token (path) * - Token
fileName (path) * - File Name
width (query) - Width
height (query) - Height
fit (query) - Image Resize Fit
Responses
200 - List of Case Photos
DELETE /v2/Connections/Case/{token}/Album/{filename}

Delete a Case Album Photo

Allows for Delete of Photo in a Case Album matching Token and File Name in request.
Parameters
token (path) * - Token
fileName (path) * - File Name
Responses
200 -
GET /v2/Connections/Case/{token}/PageNames

Case Page Names

Returns a list of Case Page Names matching Token specified in request.
Parameters
token (path) * - Token
Responses
200 - List of Page Names
GET /v2/Connections/Case/{token}/Page/{pageName}

Retrieve a specific vital page by token and page name

Retrieves the vital page information based on the provided token and page name. This involves validating the token, fetching the associated funeral home and company details, and locating the requested page.
Parameters
token (path) * - The token representing the case or session.
pageName (path) * - The name of the vital page to retrieve.
Responses
200 - Returns the details of the specified vital page if found.
GET /v2/Connections/Case/{token}/AvailablePackages

Funeral Home Packages

Returns a list of Packages for Funeral Home matching Funeral Home Key specified in request.
Parameters
token (path) * - Token
Responses
200 - List of Packages
GET /v2/Connections/Case/{token}/Products

Case Products

Returns a list of Connection Products Case matching Token specified in request.
Parameters
token (path) * - Token
Responses
200 - List of Connection Products
GET /v2/Connections/SelectionGuide/{token}

Retrieve Selection Guide for Case

Returns a comprehensive catalog of available products and items for a Connections case identified by token. The selection guide includes detailed product information, attributes, pricing, availability, and media URLs for display in the Connections interface. Out-of-stock items are filtered or marked based on company settings. **Usage Notes:** - This is an anonymous endpoint accessible without authentication. - Filters products based on location-specific visibility settings for Connections. - Excludes panels and corners from the selection guide. - Handles out-of-stock items according to company configuration (hidden vs. marked). - Retrieves item attributes via stored procedure `PRODUCT.GetSelectionGuideValues`. - Includes comprehensive product metadata: dimensions, materials, colors, engraving options, etc. - Automatically appends media URLs for product images. - Only returns active products with valid location item mappings.
Parameters
token (path) * - The unique case token identifying the Connections session.
Responses
200 - Returns the complete selection guide for the specified case.
GET /v2/Connections/Case/{token}/RelationshipTypes

Case Relationship Types

Returns a list of applicable Relationship Types for Case matching Token specified in request.
Parameters
token (path) * - Token
Responses
200 - List of Relationship Types
GET /v2/Connections/Case/{token}/PersonTitles

Returns person title lookups for a Connections case.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{token}/PersonSuffixes

Returns person suffix lookups for a Connections case.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{token}/CaseRoles

Returns case role person types for a Connections case.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{token}/SelectedProducts

Case Selected Products

Returns a list of Selected Products for a Case matching Token specified in request.
Parameters
token (path) * - Token
Responses
200 - List of Selected Products
GET /v2/Connections/Case/{Token}/Guide

Resolve the Connections Guide for a case via token. Walks the hierarchy: FuneralHome > Company > Corporation > Default.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{Token}/Template

Get the template configuration for a case via token. Resolves the Connections Guide and returns the associated template, or null if none configured.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{Token}/V2PageFlow

Get the V2 page flow for a case via token. Returns the full page definitions (with components) from the resolved Connections Guide.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{Token}/Branding

Get branding for a case via token. Returns the resolved branding (logo, colors, fonts) for the funeral home.

Parameters
token (path) *
Responses
200 - OK
POST /v2/Connections/Case/{token}/Submit

Submit a Connections V2 case.

Finalizes a Connections V2 case by marking it as submitted, sending notification emails to the funeral home and confirmation to the family, and returning a success indicator.
Parameters
token (path) * - The case token provided in the Connections flow.
Responses
200 - Submission result.
POST /v2/Connections/Case/{token}/Role/{role}

Sets the informant role for a Connections V2 case. Updates the IsSelf flag on the case data.

Parameters
token (path) * - The case token.
role (path) * - The role: "Self" or "Other".
Responses
200 - Success indicator.
GET /v2/Connections/Case/{token}/Vital

Retrieves the vital data for a Connections case from the AppState.

Parameters
token (path) * - The case token.
Responses
200 - The VitalDto stored in the case data.
PATCH /v2/Connections/Case/{token}/Vital

Updates vital fields on a Connections case using a JSON patch document.

Parameters
token (path) * - The case token.
body (body) * - The JSON patch operations to apply.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Connections/Case/{token}/PeopleOnCase

Retrieves the list of people on a Connections case. If the case has a CallId, queries from the client database. Otherwise, returns people from AppState case data.

Parameters
token (path) * - The case token.
source (query) - Arranger or Connections
Responses
200 - OK
POST /v2/Connections/Case/{token}/AppStatePerson/{role}

Adds a person to AppState under the specified role.

Parameters
token (path) *
role (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
PUT /v2/Connections/Case/{token}/AppStatePerson/{personId}

Updates an existing person in AppState by matching their synthetic PersonId. Uses the same ID generation logic as GetCasePeople.

Parameters
token (path) *
personId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Connections/Case/{token}/AppStatePerson/{personId}

Retrieves a single person from AppState by synthetic PersonId for editing.

Parameters
token (path) *
personId (path) *
Responses
200 - OK
DELETE /v2/Connections/Case/{token}/Person/{personId}

Removes a person from AppState by matching their synthetic PersonId. Also handles DB-linked cases by removing from PersonPersonTypes.

Parameters
token (path) *
personId (path) *
Responses
200 - OK
GET /v2/Connections/Case/{token}/States

Retrieves states list for a Connections case.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{token}/Countries

Retrieves countries list for a Connections case.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{token}/Disposition

Retrieves the disposition for a Connections case.

Parameters
token (path) *
Responses
200 - OK
PUT /v2/Connections/Case/{token}/Disposition

Updates the disposition for a Connections case.

Parameters
token (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Connections/Case/{token}/DispositionTypes

Retrieves disposition types for the funeral home associated with a Connections case.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{token}/DispositionCategories

Retrieves disposition categories for the funeral home associated with a Connections case.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{token}/Events

Retrieves scheduled gatherings/events for a Connections case that has a linked CallId.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{token}/Attachments

Retrieves attachments for a Connections case that has a linked CallId.

Parameters
token (path) *
Responses
200 - OK
POST /v2/Connections/Case/{token}/Attachment

Uploads an attachment to a Connections case that has a linked CallId.

Parameters
token (path) *
body (body) *
Request Body Schema:
{
  "files": {}
}
Responses
200 - OK
DELETE /v2/Connections/Case/{token}/Attachment/{attachmentId}

Deletes an attachment from a Connections case that has a linked CallId.

Parameters
token (path) *
attachmentId (path) *
Responses
200 - OK
GET /v2/Connections/Case/{token}/SelectionSummary

Retrieves a selection summary for a Connections case, computed from AppState data. Returns the same shape as ContractSummaryBreakdown for compatibility with RunningTotalComponent.

Parameters
token (path) *
Responses
200 - OK
GET /v2/Connections/Case/{token}/CatalogProducts

Retrieves catalog products for a Connections case. Uses the same product filtering as the Arranger 2.0 catalog but scoped to token-based access.

Parameters
token (path) * - The case token.
Responses
200 - List of lean product DTOs with image URLs.
GET /v2/Connections/Case/{token}/CatalogCategories

Retrieves catalog categories for a Connections case.

Parameters
token (path) * - The case token.
Responses
200 - List of category DTOs with product counts.
GET /v2/Connections/Case/{token}/CatalogAddOns

Retrieves catalog add-ons (panels, corners) for a Connections case. Anonymous equivalent of CatalogController.GetArrangementAddOns.

Parameters
token (path) * - The case token.
Responses
200 - List of add-on products (panels and corners).
GET /v2/Connections/Case/{token}/EngravingPackages

Retrieves available engraving packages for a Connections case. Anonymous equivalent of EngravingController.GetEngravingPackages.

Parameters
token (path) * - The case token.
Responses
200 - List of engraving package DTOs.
GET /v2/ConnectionsTemplates/Guide/{guideId}

Get connections template configuration for a connections guide.

Parameters
guideId (path) * - The connections guide ID.
Responses
200 - The connections template configuration or null if not found.
PUT /v2/ConnectionsTemplates/Guide/{guideId}

Create or update connections template configuration for a connections guide.

Parameters
companyId (header) - The company ID for context.
guideId (path) * - The connections guide ID.
body (body) * - The connections template configuration.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Contract/Detail/{contractDetailId}/TaxReversalPreview

Parameters
companyId (header)
contractDetailId (path) *
Responses
200 - OK
POST /v2/Contract/Detail/{contractDetailId}/ToggleTaxPrepaid

Parameters
companyId (header)
contractDetailId (path) *
Responses
200 - OK
GET /v2/Ditto

Responses
200 - OK
GET /v2/Documents/RecentlyUsed

Get recently used documents for the current user.

Parameters
funeralHomeId (query) - Optional funeral home ID filter.
limit (query) - Maximum number of results (default 10).
Responses
200 - OK
DELETE /v2/Documents/RecentlyUsed

Clear all usage history for the current user.

Parameters
funeralHomeId (query) - Optional funeral home ID to clear only that location's history.
Responses
200 - OK
GET /v2/Documents/MostUsed

Get most frequently used documents for the current user.

Parameters
funeralHomeId (query) - Optional funeral home ID filter.
limit (query) - Maximum number of results (default 10).
Responses
200 - OK
POST /v2/Documents/Usage

Record that a document was used/generated.

Parameters
body (body) * - The usage details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Documents/Favorites

Get all favorite documents for the current user.

Responses
200 - OK
POST /v2/Documents/Favorites/Toggle/{documentId}

Toggle the favorite status of a document.

Parameters
documentId (path) * - The document ID to toggle.
Responses
200 - True if now favorited, false if removed.
DELETE /v2/Documents/Favorites/{documentId}

Remove a document from favorites.

Parameters
documentId (path) * - The document ID to remove.
Responses
200 - OK
POST /v2/Documents/Favorites/Reorder

Reorder favorite documents.

Parameters
body (body) * - The new order of document IDs.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Documents/Preferences

Get the current user's document preferences (sort option, view mode).

Responses
200 - OK
PUT /v2/Documents/Preferences

Save the current user's document preferences.

Parameters
body (body) * - The preferences to save.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Domo/GenerateSampleFiles

Generate sample CSV files for DOMO datasets

Queries the company's case data within the specified date range and generates CSV files matching the Halcyon column format for DOMO import. Returns a single CSV if one dataset is selected, or a ZIP if multiple are selected.
Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Domo/Configuration

Get DOMO configuration for a company

Returns the DOMO configuration for the specified company, creating a default if none exists.
Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
Responses
200 - OK
PUT /v2/Domo/Configuration

Update DOMO configuration (enabled state and cron schedule) for a company

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
PUT /v2/Domo/Configuration/Credentials

Save DOMO API credentials for a company

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Domo/Configuration/TestConnection

Test DOMO API connection for a company

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
Responses
200 - OK
PUT /v2/Domo/Configuration/Dataset

Update a dataset configuration for a company

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Domo/Configuration/Dataset/{datasetName}/CreateNew

Create a new SCV2-managed dataset in DOMO (Stream API, APPEND mode)

Creates a brand-new Domo dataset + stream owned by SCV2 for the named built-in dataset. Use this when the company has no pre-existing Domo dataset to link.
Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
datasetName (path) *
Responses
200 - OK
POST /v2/Domo/Configuration/Dataset/{datasetName}/Reset

Reset a dataset configuration — clears the linked Domo dataset, stream, watermark, and mappings

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
datasetName (path) *
Responses
200 - OK
GET /v2/Domo/Datasets

List datasets from the company's DOMO instance

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
Responses
200 - OK
GET /v2/Domo/Datasets/{domoDatasetId}/Schema

Get schema (columns + types) for a DOMO dataset

Returns an empty list when the dataset id is not found in Domo (orphaned link), letting the UI surface a "linked dataset no longer exists" empty state without a 5xx response.
Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
domoDatasetId (path) *
Responses
200 - OK
GET /v2/Domo/Configuration/Dataset/{datasetName}/Mapping

Get saved field mappings for a dataset

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
datasetName (path) *
Responses
200 - OK
PUT /v2/Domo/Configuration/Dataset/{datasetName}/Mapping

Save field mappings for a dataset

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
datasetName (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Domo/Configuration/Dataset/{datasetName}/AutoMatch

Auto-match source fields to DOMO columns

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
datasetName (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Domo/Sync

Trigger a manual DOMO sync for a company

If a dataset name is specified, syncs only that dataset. If no dataset name is specified, triggers a full company sync via the scheduler.
Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Domo/SyncHistory

Get DOMO sync history for a company

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
datasetName (query)
from (query)
to (query)
take (query)
Responses
200 - OK
GET /v2/Domo/Admin/Status

Get DOMO sync status for all configured companies (Zeus admin only)

Responses
200 - OK
GET /v2/EditionPermissions

Get all edition-permission mappings (Zeus only)

Responses
200 - Returns all edition-permission mappings.
POST /v2/EditionPermissions/Batch

Batch update edition-permission mappings (Zeus only)

Parameters
body (body) * - The batch of edition-permission changes to apply.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Engraving

Get engraving information by ContractDetailId or OrderItemId.

Parameters
companyId (header) - Company identifier from header.
contractDetailId (query) - The contract detail ID (for case management scenarios).
orderItemId (query) - The order item ID (for cart/merchandise scenarios).
Responses
200 - The engraving information if found, otherwise null.
POST /v2/Engraving

Create a new engraving record. For ContractDetailId: Creates both the engraving package ContractDetail AND EngravingInformation. For OrderItemId: Creates only the EngravingInformation record.

Parameters
companyId (header) - Company identifier from header.
body (body) * - The create request containing engraving data and context.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The created engraving information.
GET /v2/Engraving/{engravingInformationId}

Get engraving information by ID.

Parameters
companyId (header) - Company identifier from header.
engravingInformationId (path) * - The engraving information ID.
Responses
200 - The engraving information if found.
PUT /v2/Engraving/{engravingInformationId}

Update an existing engraving record.

Parameters
companyId (header) - Company identifier from header.
engravingInformationId (path) * - The ID of the engraving to update.
body (body) * - The updated engraving data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The updated engraving information.
DELETE /v2/Engraving/{engravingInformationId}

Delete an engraving record. Also deletes the associated engraving package ContractDetail if one exists.

Parameters
companyId (header) - Company identifier from header.
engravingInformationId (path) * - The ID of the engraving to delete.
Responses
200 - OK
GET /v2/Engraving/Packages/{funeralHomeId}

Get available engraving packages for a funeral home.

Parameters
companyId (header) - Company identifier from header.
funeralHomeId (path) * - The funeral home ID (MasterFhId).
Responses
200 - List of available engraving packages.
GET /v2/Engraving/ClipArts

Get available clip art images.

Parameters
companyId (header) - Company identifier from header.
Responses
200 - List of available clip art.
POST /v2/Engraving/Preview

Generate a preview image for engraving.

Parameters
companyId (header) - Company identifier from header.
body (body) * - The preview request with text and styling information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Base64 encoded preview image.
GET /v2/EntityLogo/{entityType}/{entityId}

Parameters
entityType (path) *
entityId (path) *
Responses
200 - OK
PUT /v2/EntityLogo/{entityType}/{entityId}/{logoKey}

Parameters
entityType (path) *
entityId (path) *
logoKey (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/EntityLogo/{entityType}/{entityId}/{logoKey}

Parameters
entityType (path) *
entityId (path) *
logoKey (path) *
Responses
200 - OK
GET /v2/EntityLogo/Resolve/{entityType}/{entityId}

Parameters
entityType (path) *
entityId (path) *
companyId (query)
corporationId (query)
Responses
200 - OK
GET /v2/EntityLogo/Resolve/{entityType}/{entityId}/{logoKey}

Parameters
entityType (path) *
entityId (path) *
logoKey (path) *
companyId (query)
corporationId (query)
Responses
200 - OK
GET /v2/EnvironmentAccess/settings

Returns the current lockdown settings.

Responses
200 - OK
PUT /v2/EnvironmentAccess/settings

Enables or disables the lockdown flag.

Parameters
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/EnvironmentAccess/allowlist

Returns all allow-list entries.

Responses
200 - OK
POST /v2/EnvironmentAccess/allowlist

Adds an entry to the allow-list, resolving the user by email address.

Parameters
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
PUT /v2/EnvironmentAccess/allowlist/{id}

Updates an existing allow-list entry.

Parameters
id (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/EnvironmentAccess/allowlist/{id}

Removes an allow-list entry.

Parameters
id (path) *
Responses
200 - OK
GET /v2/EnvironmentAccess/requests

Returns access requests, optionally filtered by status.

Parameters
status (query)
Responses
200 - OK
POST /v2/EnvironmentAccess/requests

Anonymous: blocked users submit a "request access" form. The body's identity fields are untrusted — the service validates that AdvisorUserId resolves to a real user and overwrites DisplayName from the trusted AdvisorMaster row. Unknown IDs are dropped silently and the response is indistinguishable from a successful submission, so the endpoint cannot be used as a user-enumeration oracle.

Parameters
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/EnvironmentAccess/requests/{id}/approve

Approves a pending access request.

Parameters
id (path) *
Responses
200 - OK
POST /v2/EnvironmentAccess/requests/{id}/deny

Denies a pending access request.

Parameters
id (path) *
Responses
200 - OK
GET /v2/EnvironmentPersistence/Corporation/{corporationId}

Get Corporation Backups

Retrieves all environment persistence backups for a corporation, grouped by company.
Parameters
corporationId (path) * - The corporation ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
Responses
200 - Successfully returns the corporation backup overview.
403 - User does not have permission to view environment persistence.
GET /v2/EnvironmentPersistence/Company/{companyId}

Get Company Backups

Retrieves all environment persistence backups for a specific company.
Parameters
companyId (path) * - The company ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
Responses
200 - Successfully returns the company backups.
403 - User does not have permission to view environment persistence.
GET /v2/EnvironmentPersistence/{backupId}

Get Backup Detail

Retrieves a specific backup including its full JSON data.
Parameters
backupId (path) * - The backup ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
Responses
200 - Successfully returns the backup detail.
403 - User does not have permission to view environment persistence.
404 - Backup not found.
PUT /v2/EnvironmentPersistence/{backupId}

Update Backup

Updates the description or notes of an existing backup.
Parameters
backupId (path) * - The backup ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
body (body) * - The update request.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updated the backup.
403 - User does not have permission to manage environment persistence.
404 - Backup not found.
DELETE /v2/EnvironmentPersistence/{backupId}

Delete Backup

Soft deletes a backup (sets IsActive = false).
Parameters
backupId (path) * - The backup ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
Responses
204 - Successfully deleted the backup.
403 - User does not have permission to manage environment persistence.
404 - Backup not found.
POST /v2/EnvironmentPersistence/Workflow/{companyId}

Create Workflow Backups

Creates backups for one or more workflow definitions.
Parameters
companyId (path) * - The company ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
body (body) * - The workflow backup request.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the workflow backups.
403 - User does not have permission to manage environment persistence.
POST /v2/EnvironmentPersistence/Webhook/{companyId}

Create Webhook Backups

Creates backups for one or more webhook subscriptions.
Parameters
companyId (path) * - The company ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
body (body) * - The webhook backup request.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the webhook backups.
403 - User does not have permission to manage environment persistence.
POST /v2/EnvironmentPersistence/BrandingKit/{companyId}

Create Branding Kit Backups

Creates backups for one or more branding kits.
Parameters
companyId (path) * - The company ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
body (body) * - The branding kit backup request.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the branding kit backups.
403 - User does not have permission to manage environment persistence.
POST /v2/EnvironmentPersistence/Email/{companyId}

Create Email Config Backup

Creates a backup of the company's email/SMTP configuration.
Parameters
companyId (path) * - The company ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
body (body) * - The email backup request.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the email configuration backup.
403 - User does not have permission to manage environment persistence.
404 - No email configuration found for the company.
POST /v2/EnvironmentPersistence/Sms/{companyId}

Create SMS Config Backup

Creates a backup of the company's Twilio/SMS configuration.
Parameters
companyId (path) * - The company ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
body (body) * - The SMS backup request.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully created the SMS configuration backup.
403 - User does not have permission to manage environment persistence.
404 - No Twilio configuration found for the company.
POST /v2/EnvironmentPersistence/{backupId}/Validate

Validate Restore

Validates a backup before restore, checking for conflicts and missing dependencies.
Parameters
backupId (path) * - The backup ID.
companyId (header) - The target company ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
Responses
200 - Successfully validated the restore.
403 - User does not have permission to restore environment persistence.
404 - Backup not found.
POST /v2/EnvironmentPersistence/{backupId}/Restore

Restore Backup

Restores a workflow or webhook from a backup to the target company.
Parameters
backupId (path) * - The backup ID.
companyId (header) - The target company ID.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
body (body) * - The restore request.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully restored from backup.
403 - User does not have permission to restore environment persistence.
404 - Backup not found.
GET /v2/EnvironmentPersistence/History

Get Restore History

Retrieves restore history for a backup or company.
Parameters
backupId (query) - Optional backup ID to filter by.
companyId (query) - Optional company ID to filter by.
selectedFhIdForPermissionsCheck (header) - The funeral home ID for permission checks.
Responses
200 - Successfully returns restore history.
403 - User does not have permission to view environment persistence.
GET /v2/Export

Get Previous Exports

Retrieves export information for the specified company and date range, including multiple export types such as contracts, addendums, payments, miscellaneous sales, miscellaneous sale payments, and cash receipts. Results are grouped by export date and location, aggregated across all databases accessible to the current user. **Usage Notes:** - Supports filtering by date range and permission scope. - Combines export data for all companies the user has access to. - Each record includes company name, location, and export counts. - Useful for reviewing export activity and verifying data integration. **Tags:**Data Export, Reports, Integration
Parameters
companyId (header) - The ID of the company for which export data is being retrieved.
selectedFhIdForPermissionsCheck (header) - The funeral home ID used to validate that the user has permission to view export data.
startDate (query) - The start date of the range for which export data should be included.
endDate (query) - The end date of the range for which export data should be included.
Responses
200 - Successfully returns a list of export data records matching the specified criteria.
POST /v2/Export

Perform Export

Executes a data export operation for the specified export type, funeral homes, and date range. The endpoint runs the associated stored procedure and returns the exported results in Excel format. **Usage Notes:** - Dynamically selects the correct stored procedure based on export type and category. - Includes parameters for funeral homes, date range, and mark-as-exported option. - Supports multi-company aggregation by iterating through accessible databases. - Returns an Excel file generated via`ExcelExportHelper.ExportExcel()`. **Tags:**Data Export, Excel, Reporting
Parameters
selectedFhIdForPermissionsCheck (header) - The funeral home ID used to verify that the user has permission to execute an export.
body (body) * - The ExportViewModelDto containing export parameters such as date range, export type, and output preferences.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully returns an Excel file containing exported data.
GET /v2/Export/{callId}/CallHistory

Get Call Export Data

Retrieves detailed export history for a specific call, including contracts, addendums, and payment records. This endpoint provides visibility into when and by whom each item was exported. **Usage Notes:** - Includes contract, addendum, and payment export records. - Each record includes the export date and exporting user. - Used to audit and troubleshoot data export history for specific calls. - Results are ordered chronologically by export date. **Tags:**Data Export, Case Management, Audit
Parameters
companyId (header) - The unique identifier of the company that owns the call record.
callId (path) * - The ID of the call for which export data is requested.
Responses
200 - Successfully returns export data for the specified call.
POST /v2/Export/ResetCaseItem

Reset Export Line

Clears the export status for a specific exported record, such as a call, contract detail, or payment. This allows the record to be re-exported if needed. **Usage Notes:** - Supports resetting export flags for contracts, addendums, and payments. - Removes values from`DateExported`and`ExportedBy`fields. - Commonly used when correcting export errors or regenerating files. - Applies only to the specific record identified in the request. **Tags:**Data Export, Maintenance, Administration
Parameters
companyId (header) - The ID of the company that owns the exported record.
body (body) * - The object identifying which record to reset, including call, contract detail, or payment IDs.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returned when the export line is successfully reset.
POST /v2/Export/Reset

Reset Exports

Clears export data across one or more funeral homes for a specified export type and date. This process resets export flags to allow data to be re-exported. **Usage Notes:** - Clears`DateExported`and`ExportedBy`fields for matching records. - Supports export types: Contract, Addendum, Payment, MiscSale, MiscSalePayment, and CashReceipt. - Processes all accessible client databases associated with the user's companies. - Used for rollback and data reprocessing after export issues. **Tags:**Data Export, Rollback, Administration
Parameters
selectedFhIdForPermissionsCheck (header) - The funeral home ID used to verify that the user has permission to perform a reset.
body (body) * - The ExportReset object containing export type, export date, and the list of funeral home IDs to reset.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Export/ExportTypes

Get Export Types

Retrieves all active export configurations from the master database, providing metadata about available export operations. **Usage Notes:** - Pulls data from the`ExportConfigurations`table where`Active = 1`. - Each record includes export type name, ID, and configuration metadata. - Used to populate export dropdowns or configuration lists in the UI. - Returns an empty list if no active configurations are found. **Tags:**Data Export, Configuration, Administration
Responses
200 - Successfully returns a list of export types available for the current environment.
GET /v2/Export/GetQuickbooksInvoiceId

Get QuickBooks Invoice IDs

Retrieves a list of QuickBooks invoice IDs from successful QuickBooks export audit records associated with the specified company. **Usage Notes:** - Includes only records with non-null QuickBooks object IDs marked as successful. - Used to verify which invoices were successfully synchronized with QuickBooks. - Results are filtered by the current company context. - Supports downstream reconciliation and integration validation. **Tags:**QuickBooks, Accounting, Integration
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to filter QuickBooks export audit data for that company.
Responses
200 - Successfully returns the list of QuickBooks invoice IDs.
PUT /v2/Export/UpdateGeneralLedgerAccount

Update General Ledger Account

Updates the general ledger (GL) code for a specified entity within QuickBooks-related tables. Supports updating GL codes for items, item types, location items, and package locations. **Usage Notes:** - Automatically clears dependent GL codes if a code is marked as invalid. - Supports update types: LocationItem, Item, ItemType, and PackageLocation. - Applies permission checks for each update type individually. - Used for financial integration and chart-of-accounts maintenance. **Tags:**QuickBooks, Finance, Configuration
Parameters
companyId (header) - The ID of the company to which the GL code update applies.
body (body) * - The UpdateGlDto containing details about the update type, target key ID, and new GL code.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Export/UpdateCallTable

Update Call Table

Marks a case (call) as exported to QuickBooks by updating its DateExported and ExportedBy fields. **Usage Notes:** - Updates export metadata when synchronizing calls to QuickBooks. - Sets the export timestamp to`UTC`and tracks the user performing the export. - Does nothing if the specified call is not found. - Supports asynchronous export tracking for accounting integration. **Tags:**QuickBooks, Data Export, Integration
Parameters
companyId (header) - The unique identifier of the company performing the export, provided in the header.
body (body) * - The ExportItemDto containing the call ID and relevant export details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully marks the call as exported.
POST /v2/Export/UpdatePaymentTable

Update Payment Table

Marks a payment as exported to QuickBooks by updating its DateExported and ExportedBy fields. **Usage Notes:** - Synchronizes payment records with QuickBooks export status. - Automatically sets the export timestamp and exporting user ID. - Ensures accurate financial audit trails across systems. - Does nothing if the specified payment does not exist. **Tags:**QuickBooks, Payments, Accounting
Parameters
companyId (header) - The unique identifier of the company performing the export, provided in the header.
body (body) * - The ExportPaymentDto containing the payment ID and related export data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully marks the payment as exported.
POST /v2/Export/UpdateQuickbooksExportAuditTable

Update QuickBooks Export Audit

Adds a new QuickBooks export audit record, linking exported data such as calls, contracts, contract details, and payments to their corresponding QuickBooks object identifiers. **Usage Notes:** - Supports export types: Contract, Payment, Addendum, MiscSale, MiscSalePayment, and CashReceipt. - Links related entities (Call, Contract, ContractDetail, Payment) where applicable. - Records export success or failure messages for traceability. - Transaction-protected to ensure consistency across multiple related entities. **Tags:**QuickBooks, Audit, Accounting
Parameters
companyId (header) - The unique identifier of the company for which the export audit record is being created.
body (body) * - The QbExportAuditDto containing export metadata, including QuickBooks object ID, export type, and success status.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully creates a new QuickBooks export audit entry.
PUT /v2/Export/AddQuickbooksTaxCodeMapping

Add QuickBooks Tax Code Mapping

Associates a QuickBooks tax code with an existing tax rate in the system. Enables synchronization of tax configurations between the application and QuickBooks. **Usage Notes:** - Ensures one-to-one mapping between internal tax rates and QuickBooks tax codes. - Used during export to align financial data structures between systems. - Automatically persists the change in the local database. - Essential for accurate tax reporting in integrated environments. **Tags:**QuickBooks, Tax, Configuration
Parameters
companyId (header) - The ID of the company for which the tax code mapping is applied.
body (body) * - The QuickbooksTaxCodeMappingDto containing the tax rate ID and QuickBooks tax code.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the tax rate record with the provided QuickBooks tax code.
GET /v2/Export/GetExistingInvoiceExports

Get Existing Invoice Exports

Retrieves all existing QuickBooks export audit records for the specified company. Includes details about each export, such as type, success status, and QuickBooks object ID. **Usage Notes:** - Includes export records regardless of success or failure status. - Each record contains audit metadata such as timestamps and error messages. - Used to verify export completion and assist in troubleshooting. - Supports financial reconciliation and duplicate export prevention. **Tags:**QuickBooks, Export Audit, Accounting
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to retrieve QuickBooks export audit records for that specific company.
Responses
200 - Successfully returns the list of existing QuickBooks export audit records.
GET /v2/Export/SearchPayments

Search Payments for Export

Searches for payments eligible for export to QuickBooks within a given date range and set of locations. Filters out payments that have already been exported. **Usage Notes:** - Filters payments by creation date and excludes already exported records. - Includes details such as case number, decedent name, location, and payment type. - Used to generate QuickBooks payment export batches. - Supports location-based financial reporting and export validation. **Tags:**QuickBooks, Payments, Export
Parameters
companyId (header) - The unique identifier of the company whose payments are being queried.
locationId (query)
startDate (query) - The start date of the date range filter.
endDate (query) - The end date of the date range filter.
Responses
200 - Successfully returns payments available for export.
GET /v2/Export/SearchAddendums

Search Addendums for Export

Retrieves addendum contract data eligible for export within a specified date range and list of locations. Each addendum includes associated contract details and pricing information. **Usage Notes:** - Filters addendums based on contract and creation dates. - Includes item details such as GL codes, cost, quantity, and taxability. - Used to build QuickBooks export files for addendum data. - Supports multi-contract scenarios and nested item detail resolution. **Tags:**QuickBooks, Addendum, Data Export
Parameters
companyId (header) - The ID of the company performing the addendum export search.
locationId (query)
startDate (query) - The start date for filtering addendum creation or contract dates.
endDate (query) - The end date for filtering addendum creation or contract dates.
Responses
200 - Successfully returns a list of addendum records ready for export.
GET /v2/Export/GetDataForPayPalInvoice/{callId}

Get Data for PayPal Invoice

Generates PayPal invoice data for a specific case (call), combining purchaser, contract, and location details into a formatted invoice structure. **Usage Notes:** - Calculates total contract amounts and applicable taxes for PayPal billing. - Maps internal address and purchaser information to PayPal�s invoice schema. - Automatically applies company-specific term limits for payment deadlines. - Used to generate external invoices for non-integrated payment workflows. **Tags:**PayPal, Invoicing, Integration
Parameters
companyId (header) - The company ID, provided in the request header, used to scope data retrieval.
callId (path) * - The unique identifier of the call for which the PayPal invoice should be generated.
Responses
200 - Successfully returns PayPal invoice data for the specified call.
GET /v2/Export/SearchExports

Search Contracts for Export

Retrieves contract data ready for export to QuickBooks based on specified locations, date range, and export type. Includes contract details, tax mappings, and validation messages. **Usage Notes:** - Excludes already exported contracts and filters by export type. - Includes validation flags such as unmapped tax codes or missing preferred persons. - Supports item-level detail, GL code mapping, and tax information export. - Used to prepare contract data for QuickBooks synchronization. **Tags:**QuickBooks, Contracts, Data Export
Parameters
companyId (header) - The company ID used to filter contract data.
locationId (query)
startDate (query) - The start date for filtering contract creation or modification dates.
endDate (query) - The end date for filtering contract creation or modification dates.
exportType (query) - The export type (e.g., Contract, Addendum) determining which records are returned.
Responses
200 - Successfully returns contract export data for the specified filters.
POST /v2/Import/CheckDuplicates

Check Service Name Duplicates

Compares the provided imported service list against existing company items to detect duplicate names before import. **Usage Notes:** - Performs case-insensitive comparison against existing item names. - Intended to run prior to calling`ImportServices`to prevent duplicate records. **Tags:**Imports, Validation
Parameters
companyId (header) - Company identifier supplied in the request header.
body (body) * - Parsed service DTOs being evaluated for import.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully returns the list of conflicts (empty when none are found).
POST /v2/Import/ImportServices

Import Services

Imports new service items for the specified company, automatically associating them with the selected funeral home locations. Validates permissions, required fields, and duplicate locations before persisting. **Usage Notes:** - Skips services marked as duplicates or flagged not to import. - Creates location-specific pricing records for each selected funeral home. - Item types and disposition categories are resolved by name at import time. **Tags:**Imports, Services
Parameters
companyId (header) - Company identifier supplied via the header.
body (body) * - Import request payload containing service definitions and funeral home targets.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully imports all eligible services.
GET /v2/Kiosk/Configurations

Parameters
companyId (query)
Responses
200 - OK
GET /v2/Kiosk/Configuration/{id}

Parameters
id (path) *
Responses
200 - OK
PUT /v2/Kiosk/Configuration/{id}

Parameters
id (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/Kiosk/Configuration/{id}

Parameters
id (path) *
Responses
200 - OK
POST /v2/Kiosk/Configuration

Parameters
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Kiosk/Instances

Parameters
companyId (query)
Responses
200 - OK
POST /v2/Kiosk/Pair

Parameters
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Kiosk/Instance/{id}/Revoke

Parameters
id (path) *
Responses
200 - OK
POST /v2/Kiosk/Register

Parameters
body (body)
Request Body Schema:
{
  "oneOf": [
    {
      "nullable": true
    },
    {
      "type": "object"
    }
  ]
}
Responses
200 - OK
GET /v2/Kiosk/Status

Responses
200 - OK
GET /v2/Kiosk/Branding

Responses
200 - OK
POST /v2/Kiosk/Heartbeat

Responses
200 - OK
POST /v2/Kiosk/Unpair

Responses
200 - OK
GET /v2/Kiosk/Showroom/{showroomId}/Items

Parameters
showroomId (path) *
Responses
200 - OK
GET /v2/Kiosk/Catalog

Responses
200 - OK
GET /v2/Kiosk/Whiteboard

Parameters
layout (query)
Responses
200 - OK
GET /v2/Language/Terms/{companyId}

Get all language terms for a company.

Parameters
companyId (path) * - The company ID.
Responses
200 - List of language terms with override status.
PUT /v2/Language/Terms/{companyId}

Update or create a language term for a company.

Parameters
companyId (path) * - The company ID.
body (body) * - The term update request.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/Language/Terms/{companyId}

Delete all language term overrides for a company.

Parameters
companyId (path) * - The company ID.
Responses
200 - OK
GET /v2/Language/Defaults

Get default language terms (global terms without company overrides).

Responses
200 - Dictionary of term keys and values.
DELETE /v2/Language/Terms/{companyId}/{termKey}

Delete a specific language term override for a company.

Parameters
companyId (path) * - The company ID.
termKey (path) * - The term key to reset.
Responses
200 - OK
GET /v2/Language/Terms/Guide/{guideId}

Get all language terms for an arranger guide (including inactive). Does not merge global defaults — guides are self-contained.

Parameters
guideId (path) * - The arranger guide ID.
Responses
200 - List of language terms for this guide.
PUT /v2/Language/Terms/Guide/{guideId}

Update or create a language term for an arranger guide.

Parameters
guideId (path) * - The arranger guide ID.
body (body) * - The term update request.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/Language/Terms/Guide/{guideId}

Delete all language term overrides for an arranger guide.

Parameters
guideId (path) * - The arranger guide ID.
Responses
200 - OK
DELETE /v2/Language/Terms/Guide/{guideId}/{termKey}

Delete a specific language term override for an arranger guide.

Parameters
guideId (path) * - The arranger guide ID.
termKey (path) * - The term key to reset.
Responses
200 - OK
POST /v2/Language/Terms/Guide/{guideId}/InitializeDefaults

Initialize a guide's language configuration by copying all global defaults. Returns 409 Conflict if the guide already has any terms configured.

Parameters
guideId (path) * - The arranger guide ID.
Responses
200 - OK
POST /v2/Language/InvalidateCache/{companyId}

Invalidate the language cache for a company.

Parameters
companyId (path) * - The company ID.
Responses
200 - OK
GET /v2/List/Users

Get Company Users

This endpoint retrieves a list of users for a given company. It ensures that the requester has the required permissions to access the company's data. The users are returned as a list of `ListItemDto` objects, ordered by their display names.
Parameters
companyId (header) - The ID of the company for which to retrieve users, passed in the header.
Responses
200 - Returns a list of users associated with the specified company.
GET /v2/List/States

Get States

This endpoint retrieves a list of states from the database. Each state is represented as a `ListItemDto` object, ordered by the state name.
Responses
200 - Returns a list of states with their names and IDs.
GET /v2/List/Countries

Get Countries

This endpoint retrieves a list of countries from the database. Countries are ordered with the "United States" appearing first, followed by the remaining countries in alphabetical order. Each country is represented as a `ListItemDto` object.
Responses
200 - Returns a list of countries with their names and IDs.
GET /v2/List/Counties

Get Counties

This endpoint retrieves a list of counties from the database by calling the `GetLookups` method with `LookupType.County`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve counties, passed in the header.
Responses
200 - Returns a list of counties for the specified company.
GET /v2/List/NeedTypes/All

Get All Need Types (unfiltered).

Used by configuration screens (e.g. Gathering Types) where admins need to reference all possible need types, not just the ones currently enabled for case creation. Unlike`Int32)`, this endpoint does not filter out trade based on company settings or trade-firm location count.
Parameters
companyId (header)
Responses
200 - Returns every need type defined in master, regardless of company trade-case configuration.
GET /v2/List/NeedTypes

Get Need Types

This endpoint retrieves a list of need types from the database. Each need type is represented as a `ListItemDto` object, ordered by the need type name.
Parameters
companyId (header)
Responses
200 - Returns a list of need types with their names and IDs.
GET /v2/List/NeedTypesWithIcon

Get Need Types w/Icons

This endpoint retrieves a list of need types from the database. Each need type is represented as a `NeedTypeDto` object, ordered by the need type name.
Parameters
companyId (header)
Responses
200 - Returns a list of need types with their names, IDs and IconClasses.
GET /v2/List/PersonTypes

Get Person Types

This endpoint retrieves a list of person types for a given company. Only active person types that are marked as relationships are returned. The results are ordered by their sort order and represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve person types, passed in the header.
Responses
200 - Returns a list of active person types for the specified company.
GET /v2/List/FuneralHomeRolePersonTypes

Get Funeral Home Role Person Types

This endpoint retrieves a list of person types from the database that are marked as active and are associated with funeral home roles. The results are ordered by their sort order and represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve person types, passed in the header.
Responses
200 - Returns a list of active person types associated with funeral home roles for the specified company.
GET /v2/List/CaseRoles

Get Case Roles

This endpoint retrieves a list of person types from the database that are marked as active and are associated with case roles or participant roles. The results are ordered by their sort order and represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve person types, passed in the header.
Responses
200 - Returns a list of active person types associated with case roles for the specified company.
GET /v2/List/ManagedRoles

Get Managed Roles

This endpoint retrieves a list of person types from the database that are marked as active and are associated with case roles or participant roles. The results are ordered by their sort order and represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve person types, passed in the header.
Responses
200 - Returns a list of active person types associated with case roles for the specified company.
GET /v2/List/PersonTitles

Get Person Titles

This endpoint retrieves a list of person titles from the database. The titles are fetched by calling the `GetLookups` method with `LookupType.Title`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve person titles, passed in the header.
Responses
200 - Returns a list of person titles for the specified company.
GET /v2/List/PersonSuffixes

Get Person Suffixes

This endpoint retrieves a list of person suffixes from the database. The suffixes are fetched by calling the `GetLookups` method with `LookupType.Suffix`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve person suffixes, passed in the header.
Responses
200 - Returns a list of person suffixes for the specified company.
GET /v2/List/TaxRateTypes

Get Tax Rate Types

This endpoint retrieves a list of tax rate types from the database for the specified company. The results are ordered by the text value and represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve tax rate types, passed in the header.
Responses
200 - Returns a list of tax rate types for the specified company.
GET /v2/List/ItemTypes

Get Item Types

This endpoint retrieves a list of item types from the database for the specified company. If `isProduct` is provided, it filters the item types by whether they are marked as products. The results are ordered by the item type name and represented as `ListItemDto` objects. If the name is not provided, it defaults to "No Name".
Parameters
companyId (header) - The ID of the company for which to retrieve item types, passed in the header.
isProduct (query) - Optional flag to filter item types by product status.
Responses
200 - Returns a list of item types for the specified company, optionally filtered by product status.
GET /v2/List/Manufacturers

Get Manufacturers

This endpoint retrieves a list of manufacturers from the database that are marked as active for the specified company. The results are ordered by the manufacturer name and represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve manufacturers, passed in the header.
Responses
200 - Returns a list of active manufacturers for the specified company.
GET /v2/List/Showrooms

Get Showrooms

This endpoint retrieves a list of showrooms from the database that are active and associated with the `DisplayRoom` item attribute for the specified company. The results are ordered by the showroom name and represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve showrooms, passed in the header.
Responses
200 - Returns a list of active showrooms for the specified company.
GET /v2/List/FuneralHomeLocations

Get Funeral Home Locations

This endpoint retrieves a list of funeral home locations from the database that are active and have a non-null master FHID for the specified company. The results are ordered by the location name and represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve funeral home locations, passed in the header.
Responses
200 - Returns a list of active funeral home locations for the specified company.
GET /v2/List/MyFuneralHomeLocations

Get My Funeral Home Locations

This endpoint retrieves a list of funeral home locations from the database that are active and have a non-null master FHID for the specified company and the user has access to. The results are ordered by the location name and represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve funeral home locations, passed in the header.
Responses
200 - Returns a list of active funeral home locations for the specified company that the logged in user has access to.
GET /v2/List/IndianTribes

Get Indian Tribes

This endpoint retrieves a list of Indian tribes from the database by calling the `GetLookups` method with `LookupType.IndianTribe`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve Indian tribes, passed in the header.
Responses
200 - Returns a list of Indian tribes for the specified company.
GET /v2/List/Races

Get Races

This endpoint retrieves a list of races from the database by calling the `GetLookups` method with `LookupType.Race`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve races, passed in the header.
Responses
200 - Returns a list of races for the specified company.
GET /v2/List/MaritalStatuses

Get Marital Statuses

This endpoint retrieves a list of marital statuses from the database by calling the `GetLookups` method with `LookupType.MaritalStatus`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve marital statuses, passed in the header.
Responses
200 - Returns a list of marital statuses for the specified company.
GET /v2/List/HispanicOrigins

Get Hispanic Origins

This endpoint retrieves a list of Hispanic origins from the database by calling the `GetLookups` method with `LookupType.HispanicOrigin`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve Hispanic origins, passed in the header.
Responses
200 - Returns a list of Hispanic origins for the specified company.
GET /v2/List/Genders

Get Genders

This endpoint retrieves a list of genders from the database by calling the `GetLookups` method with `LookupType.Gender`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve genders, passed in the header.
Responses
200 - Returns a list of genders for the specified company.
GET /v2/List/CollegeLevels

Get College Levels

This endpoint retrieves a list of college levels from the database by calling the `GetLookups` method with `LookupType.College`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve college levels, passed in the header.
Responses
200 - Returns a list of college levels for the specified company.
GET /v2/List/EducationLevels

Get Education Levels

This endpoint retrieves a list of education levels from the database by calling the `GetLookups` method with `LookupType.Education`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve education levels, passed in the header.
Responses
200 - Returns a list of education levels for the specified company.
GET /v2/List/ArrangementTypes

Get Arrangement Types

This endpoint retrieves a list of arrangement types from the database by calling the `GetLookups` method with `LookupType.ArrangementType`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve arrangement types, passed in the header.
Responses
200 - Returns a list of arrangement types for the specified company.
GET /v2/List/LicenseTypes

Get License Types

This endpoint retrieves a list of license types from the database by calling the `GetLookups` method with `LookupType.LicenseType`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve license types, passed in the header.
Responses
200 - Returns a list of license types for the specified company.
GET /v2/List/CallTypes

Get Call Types

This endpoint retrieves a list of call types from the database by calling the `GetLookups` method with `LookupType.CallType`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve call types, passed in the header.
Responses
200 - Returns a list of call types for the specified company.
GET /v2/List/ItemStatuses

Get Item Statuses

This endpoint retrieves a list of item statuses from the database by calling the `GetLookups` method with `LookupType.ItemStatus`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve item statuses, passed in the header.
Responses
200 - Returns a list of item statuses for the specified company.
GET /v2/List/VeteranConflicts

Get Veteran Conflicts

This endpoint retrieves a list of veteran conflicts from the database by calling the `GetLookups` method with `LookupType.VeteranConflict`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve veteran conflicts, passed in the header.
Responses
200 - Returns a list of veteran conflicts for the specified company.
GET /v2/List/VeteranAwards

Get Veteran Awards

This endpoint retrieves a list of veteran awards from the database by calling the `GetLookups` method with `LookupType.VeteranAward`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve veteran awards, passed in the header.
Responses
200 - Returns a list of veteran awards for the specified company.
GET /v2/List/VeteranDischargeTypes

Get Veteran Discharge Types

This endpoint retrieves a list of veteran discharge types from the database by calling the `GetLookups` method with `LookupType.VeteranDischargeType`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve veteran discharge types, passed in the header.
Responses
200 - Returns a list of veteran discharge types for the specified company.
GET /v2/List/VeteranBranchesOfService

Get Veteran Branches of Service

This endpoint retrieves a list of veteran branches of service from the database by calling the `GetLookups` method with `LookupType.VeteranBranchOfService`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve veteran branches of service, passed in the header.
Responses
200 - Returns a list of veteran branches of service for the specified company.
GET /v2/List/VeteranHeadstoneMarkers

Get Veteran Headstone Markers

This endpoint retrieves a list of veteran headstone markers from the database by calling the `GetLookups` method with `LookupType.VeteranHeadstoneMarker`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve veteran headstone markers, passed in the header.
Responses
200 - Returns a list of veteran headstone markers for the specified company.
GET /v2/List/VeteranFuneralTypes

Get Veteran Funeral Types

This endpoint retrieves a list of veteran funeral types from the database by calling the `GetLookups` method with `LookupType.VeteranFuneralType`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve veteran funeral types, passed in the header.
Responses
200 - Returns a list of veteran funeral types for the specified company.
GET /v2/List/VeteranReleaseConditions

Get Veteran Release Conditions

This endpoint retrieves a list of veteran release conditions from the database by calling the `GetLookups` method with `LookupType.VeteranReleaseCondition`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve veteran release conditions, passed in the header.
Responses
200 - Returns a list of veteran release conditions for the specified company.
GET /v2/List/VeteranRanks

Get Veteran Ranks

This endpoint retrieves a list of veteran ranks from the database by calling the `GetLookups` method with `LookupType.VeteranRank`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve veteran ranks, passed in the header.
Responses
200 - Returns a list of veteran ranks for the specified company.
GET /v2/List/TradePricingTiers

Get Trade Pricing Tiers

This endpoint retrieves a list of trade pricing tiers from the database by calling the `GetLookups` method with `LookupType.TradePricingTier`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve trade pricing tiers, passed in the header.
Responses
200 - Returns a list of trade pricing tiers for the specified company.
GET /v2/List/VeteranEmblems

Get Veteran Emblems

This endpoint retrieves a list of active veteran emblems from the database where the description is not empty for the specified company. The results are ordered by the emblem description and represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve veteran emblems, passed in the header.
Responses
200 - Returns a list of active veteran emblems with non-empty descriptions for the specified company.
GET /v2/List/ExteriorMaterials

Get Exterior Materials

This endpoint retrieves a list of exterior materials from the database by calling the `GetItemAttributeValues` method with `MasterItemAttributes.ExteriorMaterial`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve exterior materials, passed in the header.
Responses
200 - Returns a list of exterior materials for the specified company.
GET /v2/List/ExteriorMaterialsByItemType/{itemTypeId}

Get Exterior Materials By Item Type

This endpoint retrieves a list of exterior materials from the database by calling the `GetItemAttributeValues` method with `MasterItemAttributes.ExteriorMaterial`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve exterior materials, passed in the header.
itemTypeId (path) * - The ID of the item type for which to retrieve exterior materials.
Responses
200 - Returns a list of exterior materials for the specified item type and company.
GET /v2/List/CouchStylesByItemType/{itemTypeId}

Get Couch Styles By Item Type

This endpoint retrieves a list of couch styles from the database by calling the `GetItemAttributeValues` method with `MasterItemAttributes.ExteriorMaterial`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve couch styles, passed in the header.
itemTypeId (path) * - The ID of the item type for which to retrieve couch styles.
Responses
200 - Returns a list of couch styles for the specified item type and company.
GET /v2/List/ProductCategories

Get Product Categories

This endpoint retrieves a list of product categories from the database by calling the `GetItemAttributeValues` method with `MasterItemAttributes.ProductCategory`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve product categories, passed in the header.
Responses
200 - Returns a list of product categories for the specified company.
GET /v2/List/CityVillageOrTownship

Get City, Village, or Township

This endpoint returns a static list of city, village, and township options. The results are represented as `ListItemDto` objects with `int` values.
Responses
200 - Returns a list of city, village, and township options.
GET /v2/List/TrackingLocations

Get Tracking Locations

This endpoint retrieves a list of tracking locations from the database by calling the `GetLookups` method with `LookupType.TrackingLocation`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve tracking locations, passed in the header.
Responses
200 - Returns a list of tracking locations for the specified company.
GET /v2/List/ObituaryTemplates

Get Obituary Template List

This endpoint retrieves a list of obituary templates from the database based on the company's ID and active status. The results are represented as `ListItemDto` objects, including the template name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve obituary templates, passed in the header.
Responses
200 - Returns a list of obituary templates for the specified company.
GET /v2/List/DispositionTypes

Get Disposition Type List

This endpoint retrieves a list of disposition types from the database based on the company's ID and active status. The results are represented as `ListItemDto` objects, including the disposition value and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve disposition types, passed in the header.
Responses
200 - Returns a list of disposition types for the specified company.
GET /v2/List/DispositionCategories

Get Disposition Categories List

This endpoint retrieves a list of disposition categories from the database based on the active status. The results are represented as `ListItemDto` objects, including the category value and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve disposition categories, passed in the header.
Responses
200 - Returns a list of disposition categories for the specified company.
GET /v2/List/OrganizationTypes

Get Organization Type List

This endpoint retrieves a list of organization types from the database based on the active status. The results are represented as `ListItemDto` objects, including the organization type name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve organization types, passed in the header.
Responses
200 - Returns a list of organization types for the specified company.
GET /v2/List/InsuranceAndTrustOrganizations

Get Insurance and Trust Organizations

This endpoint retrieves a list of insurance and trust organizations by calling the `GetOrganizationList` method with `OrganizationType.InsuranceCompany` and `OrganizationType.Trust` as filters. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve insurance and trust organizations, passed in the header.
Responses
200 - Returns a list of insurance and trust organizations for the specified company.
GET /v2/List/OrganizationTypes/Financials

Get Organization Types Visible in Financials

Returns active organization types whose CompanyOrganizationType.VisibleInFinancials flag is true for the supplied company. Types with no override row are excluded.
Parameters
companyId (header) - The ID of the company for which to retrieve organization types, passed in the header.
Responses
200 - Returns the active organization types flagged as visible in Financials for the company.
GET /v2/List/FinancialsOrganizations

Get Organizations whose Type is Visible in Financials

Replaces the hardcoded Insurance + Trust filter for Financials > Payments by honoring the per-company CompanyOrganizationType.VisibleInFinancials flags.
Parameters
companyId (header) - The ID of the company for which to retrieve organizations, passed in the header.
Responses
200 - Returns ThirdPartyOrganizations whose OrganizationType is flagged VisibleInFinancials for the company.
GET /v2/List/Organizations

Get Organization List

This endpoint retrieves a list of organizations from the database based on the company's ID and optionally filters by organization types. The results are represented as `ListItemDto` objects, including the organization name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve organizations, passed in the header.
type (query)
Responses
200 - Returns a list of organizations for the specified company and filters.
GET /v2/List/TradeLocations

Get Trade Locations

This endpoint retrieves a list of trade locations by calling the `GetLocationList` method with `LocationType.TradeFirm` as a filter. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve trade locations, passed in the header.
Responses
200 - Returns a list of trade locations for the specified company.
GET /v2/List/Locations

Get Location List

This endpoint retrieves a list of locations from the database based on the company's ID and optionally filters by location types. The results are represented as `ListItemDto` objects, including the location name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve locations, passed in the header.
type (query)
Responses
200 - Returns a list of locations for the specified company and filters.
GET /v2/List/LocationTypes

Get Location Types

This endpoint retrieves a list of location types from the database based on the company's ID and optionally filters by location types. The results are represented as `ListItemDto` objects, including the lookup value and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve location types, passed in the header.
type (query)
RequirePermission (query)
Responses
200 - Returns a list of location types for the specified company and filters.
GET /v2/List/EventTypes

Get Event Types

This endpoint retrieves a list of event types from the database based on the company's ID and active status. The results are represented as `ListItemDto` objects, including the event type name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve event types, passed in the header.
Responses
200 - Returns a list of event types for the specified company.
GET /v2/List/EventType/{eventTypeId}/EventSubTypes

Get Event Sub Types

This endpoint retrieves a list of event sub types from the database based on the company's ID, event type ID, and active status. The results are represented as `ListItemDto` objects, including the sub type name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve event sub types, passed in the header.
eventTypeId (path) * - The ID of the event type for which to retrieve sub types.
Responses
200 - Returns a list of event sub types for the specified event type and company.
GET /v2/List/FamilyCareAdvisors

Get Family Care Advisors

This endpoint retrieves a list of family care advisors by calling the `GetPeopleResources` method with the `isFamilyCareAdvisor` flag set to `true`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve family care advisors, passed in the header.
Responses
200 - Returns a list of family care advisors for the specified company.
GET /v2/List/PreNeedAdvisors

Get Pre Need Advisors

This endpoint retrieves a list of pre-need advisors by calling the `GetPeopleResources` method with the `isPreNeedAdvisor` flag set to `true`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve pre-need advisors, passed in the header.
Responses
200 - Returns a list of pre-need advisors for the specified company.
GET /v2/List/FuneralDirectors

Get Funeral Directors

This endpoint retrieves a list of funeral directors by calling the `GetPeopleList` method with the `PersonType.FuneralDirector` filter. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve funeral directors, passed in the header.
Responses
200 - Returns a list of funeral directors for the specified company.
GET /v2/List/CrematorySpecialists

Get Crematory Specialists

This endpoint retrieves a list of crematory specialists by calling the `GetPeopleList` method with the `PersonType.CrematorySpecialist` filter. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve crematory specialists, passed in the header.
Responses
200 - Returns a list of crematory specialists for the specified company.
GET /v2/List/Embalmers

Get Embalmers

This endpoint retrieves a list of embalmers by calling the `GetPeopleList` method with the `PersonType.Embalmer` filter. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve embalmers, passed in the header.
Responses
200 - Returns a list of embalmers for the specified company.
GET /v2/List/FuneralHomePeople

Get Funeral Home People

This endpoint retrieves a list of funeral home people by calling the `GetPeopleList` method with the `isFuneralHomePerson` flag set to `true`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve funeral home people, passed in the header.
Responses
200 - Returns a list of funeral home people for the specified company.
GET /v2/List/Call/{callId}/Relatives

Get Relatives by Call ID

This endpoint retrieves a list of relatives associated with a specific call by calling the `GetPeopleList` method with the `callId` parameter and the `isRelative` flag set to `true`. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve relatives, passed in the header.
callId (path) * - The ID of the call for which to retrieve relatives.
Responses
200 - Returns a list of relatives associated with the specified call ID for the company.
GET /v2/List/ReportTypes

Get Report Types

This endpoint retrieves a list of report types from the database based on the company's ID. The results are represented as `ListItemDto` objects, including the report type value and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve report types, passed in the header.
Responses
200 - Returns a list of report types for the specified company.
GET /v2/List/NonPersonResourceTypes

Get Non-Person Resource Types

This endpoint retrieves a list of non-person resource types from the database based on the company's ID. Resource names are pluralized if necessary. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve non-person resource types, passed in the header.
Responses
200 - Returns a list of non-person resource types for the specified company.
GET /v2/List/PersonResourceTypes

Get Person Resource Types

This endpoint retrieves a list of person resource types from the database based on the company's ID. The results are represented as `ListItemDto` objects, including the resource type name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve person resource types, passed in the header.
Responses
200 - Returns a list of person resource types for the specified company.
GET /v2/List/ReportGroups

Get Report Groups

This endpoint retrieves a list of report groups from the database based on the company's ID. The results are represented as `ListItemDto` objects, including the report group name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve report groups, passed in the header.
Responses
200 - Returns a list of report groups for the specified company.
GET /v2/List/PaymentTypes

Get Payment Types

This endpoint retrieves a list of payment types from the database based on the company's ID. The results are represented as `ListItemDto` objects, including the payment type name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve payment types, passed in the header.
Responses
200 - Returns a list of payment types for the specified company.
GET /v2/List/AppDataTypeLight

Get App Data Type Light

This endpoint retrieves a list of app data types filtered by a predefined set of accepted types. The `varchar` types are replaced with `text` in the results. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve app data types, passed in the header.
Responses
200 - Returns a list of specific app data types for the specified company.
GET /v2/List/TaskEvents

Get Task Events

This endpoint retrieves a list of task events from the database based on the company's ID. The results are represented as `ListItemDto` objects, including the task event name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve task events, passed in the header.
Responses
200 - Returns a list of task events for the specified company.
GET /v2/List/Languages

Get Language List

This endpoint retrieves a list of languages from the database based on the company's ID and active status. The results are represented as `ListItemDto` objects, including the language name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve languages, passed in the header.
Responses
200 - Returns a list of active languages for the specified company.
GET /v2/List/SourceSystems

Get Source Systems

This endpoint retrieves a list of source systems from the database based on the company's ID and active status. The results are represented as `ListItemDto` objects, including the source system name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve source systems, passed in the header.
Responses
200 - Returns a list of source systems for the specified company.
GET /v2/List/CallStatus

Get Call Status List

This endpoint retrieves a list of call statuses from the database based on the company's ID and active status. The results are represented as `ListItemDto` objects, including the call status value and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve call statuses, passed in the header.
Responses
200 - Returns a list of call statuses for the specified company.
GET /v2/List/ServiceTypes

Get Service Type List

This endpoint retrieves a list of service types from the database based on the company's ID and active status. The results are represented as `ListItemDto` objects, including the service type name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve service types, passed in the header.
Responses
200 - Returns a list of service types for the specified company.
GET /v2/List/SaleSources

Get Sale Source List

This endpoint retrieves a list of sale sources from the database based on the company's ID and active status. The results are represented as `ListItemDto` objects, including the sale source name and ID.
Parameters
companyId (header) - The ID of the company for which to retrieve sale sources, passed in the header.
Responses
200 - Returns a list of sale sources for the specified company.
GET /v2/List/HospiceOrganizations

Get Hospice Organization List

Parameters
companyId (header) - The ID of the company for which to retrieve hospice organizations, passed in the header.
Responses
200 - Returns the list of active hospice organizations for the specified company.
GET /v2/List/Call/{callId}/DeathFacilityReasons

Get Facility Reasons by Call ID

This endpoint retrieves a list of facility reasons associated with a specific call by calling the `GetDeathCertLookups` method. The results are represented as `ListItemDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve facility reasons, passed in the header.
callId (path) * - The ID of the call for which to retrieve facility reasons.
Responses
200 - Returns a list of facility reasons associated with the specified call ID for the company.
GET /v2/ManagedList/AdjustmentType

Get Adjustment Types

This endpoint retrieves a list of adjustment types from the database based on the company's ID. The results are represented as `AdjustmentTypeDto` objects, including adjustment type details.
Parameters
companyId (header) - The ID of the company for which to retrieve adjustment types, passed in the header.
Responses
200 - Returns a list of adjustment types for the specified company.
POST /v2/ManagedList/AdjustmentType

Create Adjustment Type

This endpoint creates a new adjustment type for the specified company. The adjustment type details are provided in the `AdjustmentTypeDto` object.
Parameters
companyId (header) - The ID of the company for which to create an adjustment type, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
body (body) * - The new adjustment type details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the ID of the created adjustment type.
GET /v2/ManagedList/TrackingLocationUpdateFieldNames

Get Tracking Location Updateable Field Names

This endpoint retrieves a list of tracking location updateable field names that are configurable when specifying tracking location lookups.
Responses
200 - Returns a list of tracking location updateable field names.
GET /v2/ManagedList/TrackingLocations

Get Tracking Location Lookups

This endpoint retrieves a list of tracking location lookups from the database based on the company's ID. The results are represented as `TrackingLocationLookupDto` objects, including tracking location update fields.
Parameters
companyId (header) - The ID of the company for which to retrieve tracking location lookups, passed in the header.
Responses
200 - Returns a list of tracking location lookups for the specified company.
POST /v2/ManagedList/TrackingLocations

Create Tracking Location Lookup

This endpoint creates a new lookup for the specified company and lookup type. The lookup details are provided in the `LookupDto` object.
Parameters
companyId (header) - The ID of the company for which to create a lookup, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
body (body) * - The new lookup details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the ID of the created lookup.
PUT /v2/ManagedList/TrackingLocations

Update Tracking Location Lookup

This endpoint updates an existing lookup for the specified company. The lookup details are provided in the `LookupDto` object.
Parameters
companyId (header) - The ID of the company for which to update the lookup, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
body (body) * - The updated lookup details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns an Ok result if the lookup is successfully updated.
PUT /v2/ManagedList/AdjustmentType/{adjustmentTypeId}

Update Adjustment Type

This endpoint updates an existing adjustment type for the specified company. The adjustment type details are provided in the `AdjustmentTypeDto` object.
Parameters
companyId (header) - The ID of the company for which to update the adjustment type, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
adjustmentTypeId (path) * - The ID of the adjustment type to update.
body (body) * - The updated adjustment type details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns an Ok result if the adjustment type is successfully updated.
PATCH /v2/ManagedList/AdjustmentType/{adjustmentTypeId}/Glcode

Update only the Glcode field on an Adjustment Type (lightweight version of PUT AdjustmentType).

Used by the QuickBooks Direct export validation grid to let the user assign a discount account inline without round-tripping the full AdjustmentTypeDto. Mirrors the experience of the existing GL Code dropdown for sales items. Sending an empty/null fqn clears the mapping. Permission required: ManageManagedLists (same as the full PUT).
Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
adjustmentTypeId (path) *
fqn (query)
Responses
200 - OK
GET /v2/ManagedList/{lookupTypeId}

Get Lookup Values for Type

This endpoint retrieves a list of lookup values from the database based on the company's ID and lookup type ID. The results are represented as `LookupDto` objects, including lookup value details.
Parameters
companyId (header) - The ID of the company for which to retrieve lookup values, passed in the header.
lookupTypeId (path) * - The ID of the lookup type.
Responses
200 - Returns a list of lookup values for the specified type and company.
POST /v2/ManagedList/{lookupTypeId}

Create Lookup

This endpoint creates a new lookup for the specified company and lookup type. The lookup details are provided in the `LookupDto` object.
Parameters
companyId (header) - The ID of the company for which to create a lookup, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
lookupTypeId (path) * - The ID of the lookup type for which to create a new lookup.
body (body) * - The new lookup details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the ID of the created lookup.
PUT /v2/ManagedList/{lookupId}

Update Lookup

This endpoint updates an existing lookup for the specified company. The lookup details are provided in the `LookupDto` object.
Parameters
companyId (header) - The ID of the company for which to update the lookup, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
lookupId (path) * - The ID of the lookup to update.
body (body) * - The updated lookup details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns an Ok result if the lookup is successfully updated.
GET /v2/ManagedList/DispositionType

Get Disposition Types

This endpoint retrieves a list of disposition types from the database based on the company's ID. The results are represented as `DispositionTypeDto` objects, including disposition type details.
Parameters
companyId (header) - The ID of the company for which to retrieve disposition types, passed in the header.
Responses
200 - Returns a list of disposition types for the specified company.
POST /v2/ManagedList/DispositionType

Create Disposition Type

This endpoint creates a new disposition type for the specified company. The disposition type details are provided in the `DispositionTypeDto` object.
Parameters
companyId (header) - The ID of the company for which to create a disposition type, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
body (body) * - The new disposition type details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the ID of the created disposition type.
PUT /v2/ManagedList/DispositionType/{dispositionTypeId}

Update Disposition Type

This endpoint updates an existing disposition type for the specified company. The disposition type details are provided in the `DispositionTypeDto` object.
Parameters
companyId (header) - The ID of the company for which to update the disposition type, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
dispositionTypeId (path) * - The ID of the disposition type to update.
body (body) * - The updated disposition type details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns an Ok result if the disposition type is successfully updated.
GET /v2/ManagedList/Locations

Get Locations

This endpoint retrieves a list of locations based on the company's ID and various optional filters such as location types, activity status, search text, and pagination parameters. The results are represented as `LocationListDto` objects.
Parameters
companyId (header) - The ID of the company for which to retrieve locations, passed in the header.
type (query)
active (query) - A boolean to filter active/inactive locations (optional).
searchText (query) - Text to search within location details (optional).
skip (query) - The number of locations to skip for pagination (optional).
take (query) - The number of locations to retrieve for pagination (optional).
requirePermission (query) - Optional boolean that allows users to query endpoint without permissions
Responses
200 - Returns a list of locations matching the specified criteria.
GET /v2/ManagedList/Location/{locationId}

Get Location

This endpoint retrieves the details of a specific location based on the company's ID and the location ID. The result is represented as a `LocationDto` object.
Parameters
companyId (header) - The ID of the company for which to retrieve the location, passed in the header.
locationId (path) * - The ID of the location to retrieve.
Responses
200 - Returns the details of the specified location.
PUT /v2/ManagedList/Location/{locationId}

Update Location

This endpoint updates an existing location for the specified company. The location details are provided in the `LocationDto` object, including optional addresses for physical, shipping, billing, and mailing.
Parameters
companyId (header) - The ID of the company for which to update the location, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
locationId (path) * - The ID of the location to update.
requirePermission (query) - Optional boolean that allows method to be queried without permissions being required
body (body) * - The updated location details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns an Ok result if the location is successfully updated.
POST /v2/ManagedList/Location

Create Location

This endpoint creates a new location for the specified company. The location details are provided in the `LocationDto` object, including optional addresses for physical, shipping, billing, and mailing.
Parameters
companyId (header) - The ID of the company for which to create a location, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
requirePermission (query) - Optional boolean that allows users to query method without required permissions
body (body) * - The new location details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the details of the created location.
GET /v2/ManagedList/Newspaper

Get Newspapers

This endpoint retrieves a list of newspapers from the database based on the company's ID. The results are represented as `NewspaperDto` objects, including newspaper details.
Parameters
companyId (header) - The ID of the company for which to retrieve newspapers, passed in the header.
Responses
200 - Returns a list of newspapers for the specified company.
POST /v2/ManagedList/Newspaper

Create Newspaper

This endpoint creates a new newspaper for the specified company. The newspaper details are provided in the `NewspaperDto` object.
Parameters
companyId (header) - The ID of the company for which to create a newspaper, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
body (body) * - The new newspaper details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the ID of the created newspaper.
PUT /v2/ManagedList/Newspaper/{newspaperId}

Update Newspaper

This endpoint updates an existing newspaper for the specified company. The newspaper details are provided in the `NewspaperDto` object.
Parameters
companyId (header) - The ID of the company for which to update the newspaper, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
newspaperId (path) * - The ID of the newspaper to update.
body (body) * - The updated newspaper details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns an Ok result if the newspaper is successfully updated.
GET /v2/ManagedList/ServiceType

Get Service Types

This endpoint retrieves a list of service types from the database based on the company's ID. The results are represented as `ServiceTypeDto` objects, including service type details.
Parameters
companyId (header) - The ID of the company for which to retrieve service types, passed in the header.
Responses
200 - Returns a list of service types for the specified company.
POST /v2/ManagedList/ServiceType

Create Service Type

This endpoint creates a new service type for the specified company. The service type details are provided in the `ServiceTypeDto` object.
Parameters
companyId (header) - The ID of the company for which to create a service type, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
body (body) * - The new service type details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the ID of the created service type.
PUT /v2/ManagedList/ServiceType/{serviceTypeId}

Update Service Type

This endpoint updates an existing service type for the specified company. The service type details are provided in the `ServiceTypeDto` object.
Parameters
companyId (header) - The ID of the company for which to update the service type, passed in the header.
selectedFhIdForPermissionsCheck (header) - The ID of the selected funeral home for permission checks, passed in the header.
serviceTypeId (path) * - The ID of the service type to update.
body (body) * - The updated service type details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns an Ok result if the service type is successfully updated.
GET /v2/ManagedList/SaleSource

Get Sale Source

Retrieves a list of sale sources for the specified company.
Parameters
companyId (header) - Company ID.
Responses
200 - List of sale sources.
POST /v2/ManagedList/SaleSource

Create Sale Source

Creates a new sale source for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
body (body) * - New sale source data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - ID of the newly created sale source.
PUT /v2/ManagedList/SaleSource/{saleSourceId}

Update Sale Source

Updates an existing sale source for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
saleSourceId (path) * - ID of the sale source to update.
body (body) * - Updated sale source data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Sale source updated successfully.
GET /v2/ManagedList/SourceSystem

Get Source System

Retrieves a list of source systems for the specified company.
Parameters
companyId (header) - Company ID.
Responses
200 - List of source systems.
POST /v2/ManagedList/SourceSystem

Create Source System

Creates a new source system for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
body (body) * - New source system data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - ID of the newly created source system.
PUT /v2/ManagedList/SourceSystem/{sourceSystemId}

Update Source System

Updates an existing source system for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
sourceSystemId (path) * - ID of the source system to update.
body (body) * - Updated source system data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Source system updated successfully.
GET /v2/ManagedList/Organization

Get Organizations

Retrieves a list of third-party organizations for the specified company.
Parameters
companyId (header) - Company ID.
Responses
200 - List of third-party organizations.
POST /v2/ManagedList/Organization

Create Organization

Creates a new third-party organization for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
body (body) * - New third-party organization data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - ID of the newly created organization.
PUT /v2/ManagedList/Organization/{organizationId}

Update Organization

Updates an existing third-party organization for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
organizationId (path) * - ID of the organization to update.
body (body) * - Updated third-party organization data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Organization updated successfully.
GET /v2/ManagedList/OrganizationType

Get Organization Types with company-level visibility settings.

Returns every active OrganizationType with the VisibleInFinancials flag from the per-company override table (CompanyOrganizationType). Types with no override row default to VisibleInFinancials=false.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID used for permission checking.
Responses
200 - List of organization types with the per-company VisibleInFinancials flag.
PUT /v2/ManagedList/OrganizationType/{organizationTypeId}

Set Organization Type visibility for the current company.

Upserts a row in CompanyOrganizationType for the supplied (CoID, OrganizationTypeID) pair.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Optional funeral home id used for permission checking.
organizationTypeId (path) * - OrganizationType ID being toggled.
body (body) * - Updated visibility flag.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Visibility setting saved.
GET /v2/ManagedList/ResourceType

Get Resource Types

Retrieves a list of resource types for the specified company.
Parameters
companyId (header) - Company ID.
Responses
200 - List of resource types.
POST /v2/ManagedList/ResourceType

Create Resource Type

Creates a new resource type for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
body (body) * - New resource type data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - ID of the newly created resource type.
PUT /v2/ManagedList/ResourceType/{resourceTypeId}

Update Resource Type

Updates an existing resource type for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
resourceTypeId (path) * - ID of the resource type to update.
body (body) * - Updated resource type data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Resource type updated successfully.
GET /v2/ManagedList/VerseSaying

Get Verse Sayings

Retrieves a list of verse sayings for the specified company.
Parameters
companyId (header) - Company ID.
Responses
200 - List of verse sayings.
POST /v2/ManagedList/VerseSaying

Create Verse Saying

Creates a new verse saying for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
body (body) * - New verse saying data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - ID of the newly created verse saying.
PUT /v2/ManagedList/VerseSaying/{verseId}

Update Verse Saying

Updates an existing verse saying for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
verseId (path) * - Verse ID.
body (body) * - Verse saying data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Indicates successful update.
GET /v2/ManagedList/People

Get People

Retrieves a list of people for the specified company based on various filters and criteria.
Parameters
companyId (header) - Company ID.
active (query) - Filter by active status.
searchText (query) - Filter by search text.
personType (query) - Filter by person type.
includeRoles (query) - Include roles in the response.
includeRecentCases (query) - Number of recent cases to include.
skip (query) - Number of records to skip.
take (query) - Number of records to take.
Responses
200 - List of people matching the criteria.
GET /v2/ManagedList/ManagedPeople

Get People

Retrieves a list of people for the specified company based on various filters and criteria.
Parameters
companyId (header) - Company ID.
active (query) - Filter by active status.
searchText (query) - Filter by search text.
personType (query) - Filter by person type.
includeRoles (query) - Include roles in the response.
skip (query) - Number of records to skip.
take (query) - Number of records to take.
Responses
200 - List of people matching the criteria.
GET /v2/ManagedList/Person/{personId}

Retrieve person details by ID

Retrieves the details of a person based on the provided person ID and company ID. The method uses the internal method `GetPersonInternal` to fetch the data from the database.
Parameters
companyId (header) - ID of the company requesting the person details.
personId (path) * - ID of the person to retrieve.
Responses
200 - Returns the details of the person.
PUT /v2/ManagedList/Person/{personId}

Update Person

Updates an existing person for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
personId (path) * - Person ID.
body (body) * - Person data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Indicates successful update.
PATCH /v2/ManagedList/Person/{personId}

Patch Person

Applies partial modifications to an existing person for the specified company. Sample Patch Document: { "op": "replace", "path": "/FirstName", "value": "NewFirstName" }
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
personId (path) * - Person ID.
body (body) * - JSON patch document.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/ManagedList/Person

Create Person

Creates a new person for the specified company.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
body (body) * - Person data transfer object.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Details of the newly created person.
PATCH /v2/ManagedList/Person/{personId}/Address

Patch Person Address

Applies partial modifications to the address of an existing person for the specified company. Sample Patch Document: { "op": "replace", "path": "/City", "value": "NewCity" }
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
personId (path) * - Person ID.
body (body) * - JSON patch document for address.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/ManagedList/HospiceOrganization

Get Hospice Organizations

Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check (only required when includePending=true).
includePending (query) - If true, return Pending and Rejected entries in addition to Active. Requires ManageManagedLists. Defaults to false (Active only).
Responses
200 - List of hospice organizations for the company.
POST /v2/ManagedList/HospiceOrganization

Create Hospice Organization

Users with ManageManagedLists create entries directly as Active. Other users (e.g. arrangers adding from the case-record typeahead) create entries as Pending; an admin must approve.
Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
body (body) * - New hospice organization data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - ID of the newly created hospice organization.
GET /v2/ManagedList/HospiceOrganization/{hospiceOrganizationId}

Get a single hospice organization by ID — used by the picker to render a label for a Pending/Rejected entry that isn't in the active list.

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
hospiceOrganizationId (path) *
Responses
200 - OK
PUT /v2/ManagedList/HospiceOrganization/{hospiceOrganizationId}

Update Hospice Organization

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
hospiceOrganizationId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/ManagedList/HospiceOrganization/Pending

Get Pending Hospice Organizations

Parameters
companyId (header) - Company ID.
selectedFhIdForPermissionsCheck (header) - Selected FH ID for permissions check.
Responses
200 - List of pending-approval hospice organizations.
POST /v2/ManagedList/HospiceOrganization/{hospiceOrganizationId}/Approve

Approve a pending hospice organization

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
hospiceOrganizationId (path) *
Responses
200 - OK
POST /v2/ManagedList/HospiceOrganization/{hospiceOrganizationId}/Reject

Reject a pending hospice organization. Existing Call references are preserved as historical case state; rejected rows are filtered out of typeahead/active queries via Status checks.

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
hospiceOrganizationId (path) *
Responses
200 - OK
GET /v2/ManagedList/HospiceOrganization/Export

Export hospice organizations to XLSX.

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
Responses
200 - OK
POST /v2/ManagedList/HospiceOrganization/Import

Import hospice organizations from XLSX. Existing rows are matched by Name (case-insensitive) and updated; new rows are inserted as Active. Returns counts of inserted vs. updated rows.

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
body (body) *
Request Body Schema:
{
  "file": {}
}
Responses
200 - OK
GET /v2/Manufacturers

Get Manufacturers

Retrieves a list of manufacturers, including their associated item types, for the specified company.
Parameters
companyId (header) - The company ID.
selectedFhIdForPermissionsCheck (header) - Optional. The selected funeral home ID for permissions check.
Responses
200 - Returns a list of manufacturers with item types.
GET /v2/Manufacturer/{manufacturerId}

Get Manufacturer

Retrieves detailed information about a specific manufacturer for the specified company.
Parameters
companyId (header) - The company ID.
selectedFhIdForPermissionsCheck (header) - Optional. The selected funeral home ID for permissions check.
manufacturerId (path) * - The manufacturer ID.
Responses
200 - Returns the details of the specified manufacturer.
PUT /v2/Manufacturer/{manufacturerId}

Put Manufacturer

Updates an existing manufacturer with the provided details.
Parameters
companyId (header) - The company ID.
selectedFhIdForPermissionsCheck (header) - Optional. The selected funeral home ID for permissions check.
manufacturerId (path) * - The manufacturer ID.
body (body) * - The data transfer object containing updated manufacturer information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - If the manufacturer is successfully updated.
POST /v2/Manufacturer

Post Manufacturer

Creates a new manufacturer with the provided details.
Parameters
companyId (header) - The company ID.
selectedFhIdForPermissionsCheck (header) - Optional. The selected funeral home ID for permissions check.
body (body) * - The data transfer object containing new manufacturer information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the newly created manufacturer.
GET /v2/Manufacturer/{manufacturerId}/Address/{addressType}

Get Address

Retrieves the address of a specified type for a manufacturer.
Parameters
companyId (header) - The company ID.
selectedFhIdForPermissionsCheck (header) - Optional. The selected funeral home ID for permissions check.
manufacturerId (path) * - The manufacturer ID.
addressType (path) * - The type of address to retrieve.
Responses
200 - Returns the address of the specified type for the manufacturer.
PUT /v2/Manufacturer/{manufacturerId}/Address/{addressType}

Put Address

Updates or adds an address for a manufacturer. Ensures no duplicate active addresses of the same type exist.
Parameters
companyId (header) - The company ID.
selectedFhIdForPermissionsCheck (header) - Optional. The selected funeral home ID for permissions check.
manufacturerId (path) * - The manufacturer ID.
addressType (path) * - The type of address to update.
body (body) * - The data transfer object containing address information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - If the address is successfully updated.
DELETE /v2/Manufacturer/{manufacturerId}/Address/{addressType}

Delete Address

Deletes the address of a specified type for a manufacturer.
Parameters
companyId (header) - The company ID.
selectedFhIdForPermissionsCheck (header) - Optional. The selected funeral home ID for permissions check.
manufacturerId (path) * - The manufacturer ID.
addressType (path) * - The type of address to delete.
Responses
200 - If the address is successfully deleted.
GET /v2/Media/Library

Get Media Library

Returns all media items available for selection in the media library. Aggregates media from company uploads and branding assets.
Parameters
companyId (header) - Company ID from header
type (query) - Optional filter by type (image, video, document)
Responses
200 - Returns list of media library items
POST /v2/Media/Library

Upload Media to Library

Uploads one or more media files to the company media library. Supports images, videos, and documents.
Parameters
companyId (header) - Company ID from header
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permission check
body (body) * - Files to upload
Request Body Schema:
{
  "files": {}
}
Responses
200 - Returns the uploaded media items
DELETE /v2/Media/Library/{mediaId}

Delete Media from Library

Soft-deletes a media item from the library.
Parameters
companyId (header) - Company ID from header
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permission check
mediaId (path) * - Media ID to delete
Responses
200 - Media deleted successfully
GET /v2/MiscSale

Get Sales

Retrieves miscellaneous sales records for a company within the specified date range. Includes related call and contract details, and enriches the results with case number and decedent name if available.
Parameters
companyId (header) - The company ID.
startDate (query) - The start date for the sales records.
endDate (query) - The end date for the sales records.
Responses
200 - Returns a list of miscellaneous sales within the specified date range.
POST /v2/MiscSale

Post Sale

Creates a new miscellaneous sale with the provided details and returns the created sale.
Parameters
companyId (header) - The company ID.
selectedFhIdForPermissionsCheck (header) - Optional ID for permissions check.
body (body) * - The data transfer object containing sale details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/MiscSale/{miscSaleId}

Get Sale

Retrieves the details of a specific miscellaneous sale, including related call and contract details. Enriches the result with case number and decedent name if available.
Parameters
companyId (header) - The company ID.
miscSaleId (path) * - The ID of the miscellaneous sale to retrieve.
Responses
200 - Returns the details of the specified miscellaneous sale.
DELETE /v2/MiscSale/{miscSaleId}

Cancel Sale

Marks the specified miscellaneous sale as inactive. The sale is logically deleted by setting its `Active` flag to false.
Parameters
companyId (header) - The company ID.
miscSaleId (path) * - The ID of the miscellaneous sale to cancel.
Responses
200 - OK
PUT /v2/MiscSale/{miscSaleId}/MarkActive

Mark Sale Active

Marks the specified miscellaneous sale as active. The sale is reactivated by setting its `Active` flag to true.
Parameters
companyId (header) - The company ID.
miscSaleId (path) * - The ID of the miscellaneous sale to mark as active.
Responses
200 - OK
PUT /v2/MiscSale/{miscSaleId}/MarkPosted

Mark Sale Posted

Marks the specified miscellaneous sale as posted.
Parameters
companyId (header) - The company ID.
miscSaleId (path) * - The ID of the miscellaneous sale to mark as posted.
Responses
200 - OK
PUT /v2/MiscSale/{miscSaleId}/MarkUnPosted

Mark Sale Un-Posted

Marks the specified miscellaneous sale as unposted.
Parameters
companyId (header) - The company ID.
miscSaleId (path) * - The ID of the miscellaneous sale to mark as unposted.
Responses
200 - OK
GET /v2/MiscSale/{miscSaleId}/Contract/Details

Get Contract Details

Retrieves the contract details associated with a specific miscellaneous sale.
Parameters
companyId (header) - The company ID.
miscSaleId (path) * - The ID of the miscellaneous sale whose contract details are to be retrieved.
Responses
200 - Returns a list of contract details related to the specified miscellaneous sale.
GET /v2/MiscSale/{miscSaleId}/Selection/Services

Get Call Service Selection

Retrieves a list of service location items related to the specified miscellaneous sale. The list includes items associated with the sale's location and contract details if available.
Parameters
companyId (header) - The company ID.
miscSaleId (path) * - The ID of the miscellaneous sale to retrieve service selection for.
Responses
200 - Returns a list of location item selections for the specified sale.
GET /v2/MiscSale/{miscSaleId}/ContractSummaryBreakdown

Get Contract Summary Breakdown

Provides a detailed summary of the contract including subtotals, adjustments, taxes, payments, and balance.
Parameters
companyId (header) - The company ID.
miscSaleId (path) * - The ID of the miscellaneous sale to get the contract summary for.
Responses
200 - Returns a summary breakdown of the contract for the specified sale.
GET /v2/MiscSale/{miscSaleId}/Payments

Get Payments

Retrieves all payments related to the specified miscellaneous sale, including details such as payment type and amounts.
Parameters
companyId (header) - The company ID.
miscSaleId (path) * - The ID of the miscellaneous sale to retrieve payments for.
Responses
200 - Returns a list of payments related to the specified miscellaneous sale.
POST /v2/MiscSale/{miscSaleId}/Payments

Add Payment

This method adds a new payment to a miscellaneous sale and returns the ID of the newly created payment.
Parameters
companyId (header) - The ID of the company.
miscSaleId (path) * - The ID of the miscellaneous sale.
body (body) * - The details of the new payment.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the ID of the newly created payment.
POST /v2/MiscSale/{miscSaleId}/ContractDate

Update Contract Date

Updates the contract date for the specified miscellaneous sale.
Parameters
companyId (header) - The company ID.
miscSaleId (path) * - The ID of the miscellaneous sale whose contract date is to be updated.
body (body) * - The new contract date.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
PUT /v2/MiscSale/{miscSaleId}/Contract/Detail/{contractDetailId}/Notes

Update Contract Detail Notes

This method updates the notes of a specific contract detail.
Parameters
companyId (header) - The ID of the company.
miscSaleId (path) * - The ID of the miscellaneous sale.
contractDetailId (path) * - The ID of the contract detail to update.
body (body) * - The updated contract detail information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/MiscSale/{miscSaleId}/Contract/Detail

Create Contract Detail

This method creates a new contract detail and returns the details of the newly created contract detail.
Parameters
companyId (header) - The ID of the company.
miscSaleId (path) * - The ID of the miscellaneous sale.
body (body) * - The contract detail information to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the details of the newly created contract detail.
PUT /v2/MiscSale/{miscSaleId}/Contract/Detail/{contractDetailId}

Update Contract Detail

This method updates an existing contract detail and returns the updated details.
Parameters
companyId (header) - The ID of the company.
miscSaleId (path) * - The ID of the miscellaneous sale.
contractDetailId (path) * - The ID of the contract detail to update.
body (body) * - The updated contract detail information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the details of the updated contract detail.
DELETE /v2/MiscSale/{miscSaleId}/Contract/Detail/{contractDetailId}

Delete Contract Detail

This method deletes a contract detail and deactivates any associated ad hoc items if necessary.
Parameters
companyId (header) - The ID of the company.
miscSaleId (path) * - The ID of the miscellaneous sale.
contractDetailId (path) * - The ID of the contract detail to delete.
Responses
200 - Indicates that the contract detail was successfully deleted.
POST /v2/MiscSale/{miscSaleId}/Contract/Detail/AdHoc

Create Ad Hoc Contract Detail

This method creates an ad hoc contract detail and returns the details of the newly created ad hoc contract detail.
Parameters
companyId (header) - The ID of the company.
miscSaleId (path) * - The ID of the miscellaneous sale.
body (body) * - The details of the ad hoc contract detail to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the details of the newly created ad hoc contract detail.
DELETE /v2/MiscSale/{miscSaleId}/Payments/{paymentId}

Delete Payment

This method marks a payment as inactive and logs the delete reason.
Parameters
companyId (header) - The ID of the company.
miscSaleId (path) * - The ID of the miscellaneous sale.
paymentId (path) * - The ID of the payment to delete.
deleteReason (query) - The reason for deleting the payment.
Responses
200 - Indicates that the payment was successfully deleted.
DELETE /v2/MiscSale/{miscSaleId}/Contract/Package/{packageLocationId}

Delete Contract Package

This method deletes contract details associated with a specific package location.
Parameters
companyId (header) - The ID of the company.
miscSaleId (path) * - The ID of the miscellaneous sale.
packageLocationId (path) * - The ID of the package location to delete.
Responses
200 - Indicates that the contract package was successfully deleted.
POST /v2/MiscSale/Case

Post Case Sale

Creates a new miscellaneous sale associated with a case, including details from the case.
Parameters
companyId (header) - The company ID.
selectedFhIdForPermissionsCheck (header) - Optional ID for permissions check.
body (body) * - The data transfer object containing case sale details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/MiscSale/{saleId}/Buyer/{personId}

Buyer for Edit

Returns a Case Person for the Call Id and Person Id specified in request.
Parameters
companyId (header) - Company Id
saleId (path) * - Sale Id
personId (path) * - Person Id
Responses
200 - Person
PATCH /v2/MiscSale/{saleId}/Buyer/{personId}

Update a Case Person

Updates a Case Person for the Sale Id and Person Id to Person patch payload specified in request.
Parameters
companyId (header) - Company Id
saleId (path) * - Misc Sale Id
personId (path) * - Person Id
body (body) * - Person patch payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/NewCall/Designers

Get New Call Designers

Retrieves all new call designer configurations for the specified company, including need type names. **Usage Notes:** - Need type names are populated manually because they originate from Advisor Master. - Results are sorted alphabetically by need type for UI convenience. **Tags:**NewCall, Designer
Parameters
companyId (header) - Company identifier.
Responses
200 - Successfully returns the call designer definitions.
GET /v2/NewCall/Designer/{newCallDesignerId}

Get New Call Designer

Retrieves a single new call designer definition by its identifier, including the readable need type. **Tags:**NewCall, Designer
Parameters
companyId (header) - Company identifier.
newCallDesignerId (path) * - The call designer identifier to fetch.
Responses
200 - Successfully returns the call designer.
PUT /v2/NewCall/Designer/{newCallDesignerId}

Update New Call Designer

Updates an existing new call designer definition including its page data and active status. **Tags:**NewCall, Designer
Parameters
companyId (header) - Company identifier.
selectedFhIdForPermissionsCheck (header) - Optional funeral home scope for permission enforcement.
newCallDesignerId (path) * - The call designer identifier to update.
body (body) * - Updated call designer data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Designer updated successfully.
DELETE /v2/NewCall/Designer/{newCallDesignerId}

Delete New Call Designer

Delete a New Call Designer for Company Id and New Call Designer Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Optional funeral home scope for permission enforcement
newCallDesignerId (path) * - New Call Designer Id
Responses
200 - Successfully deleted
GET /v2/NewCall/DesignerByNeedType/{needTypeId}

Get New Call Designer by Need Type

Retrieves a new call designer configuration for the specified company and need type. Used by the Create New Call form to determine if a custom flow exists. **Tags:**NewCall, Designer
Parameters
companyId (header) - Company identifier.
needTypeId (path) * - The need type identifier.
Responses
200 - Successfully returns the call designer or null.
POST /v2/NewCall/Designer

Create New Call Designer

Creates a new call designer configuration for the specified company and need type after ensuring no duplicate exists. **Usage Notes:** - Ensures the DTO's Company ID matches the request header. - Prevents duplicate need-type designers for a company. **Tags:**NewCall, Designer
Parameters
companyId (header) - Company identifier.
selectedFhIdForPermissionsCheck (header) - Optional funeral home scope for permission enforcement.
body (body) * - Payload describing the new call designer.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Call designer created and returned.
GET /v2/Obituary/{callId}

Get Obituary

Retrieves an obituary based on the specified call ID and company ID. The returned obituary is filtered for active status and sorted by chosen and family approval status.
Parameters
companyId (header) - The ID of the company making the request.
callId (path) * - The unique identifier for the call.
Responses
200 - Returns the requested obituary or null if not found.
PUT /v2/Obituary/{callId}

Put Obituary

Updates an existing obituary or creates a new one if none exists. Only modifies active obituaries, marks the updated one as chosen, and updates others as unchosen.
Parameters
companyId (header) - The ID of the company making the request.
callId (path) * - The unique identifier for the call.
body (body) * - The updated obituary details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successful update of the obituary.
DELETE /v2/Obituary/{callId}

Delete Obituary

Deactivates all active obituaries for the specified call. Does not permanently delete but sets the active status to false.
Parameters
companyId (header) - The ID of the company making the request.
callId (path) * - The unique identifier for the call.
Responses
200 - Successful deactivation of the obituary.
POST /v2/Obituary/{callId}/Submit/FuneralTech

Submit Obituary to FuneralTech

Submits the obituary information and related details to the FuneralTech platform. Includes handling of event types and profile picture attachments.
Parameters
companyId (header) - The ID of the company making the request.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permissions check.
callId (path) * - The unique identifier for the call.
Responses
200 - Successful submission to FuneralTech.
POST /v2/Obituary/{callId}/Submit/CFS

Submit Obituary to CFS

Submits the obituary and associated event information to the CFS platform. Includes handling of profile picture attachments.
Parameters
companyId (header) - The ID of the company making the request.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permissions check.
callId (path) * - The unique identifier for the call.
Responses
200 - Successful submission to CFS.
GET /v2/Obituary/Template/{obituaryTemplateId}

Get Obituary Template

Retrieves the specified obituary template for the given company. The template is returned as a DTO if found.
Parameters
companyId (header) - The ID of the company making the request.
obituaryTemplateId (path) * - The unique identifier for the obituary template.
Responses
200 - Returns the requested obituary template.
GET /v2/Obituary/Template/{obituaryTemplateId}/GetProcessedObituary/{callId}

Get Processed Obituary

Retrieves and processes the obituary template with details from the specified call. Replaces placeholders in the template with actual data from the call and obituary info.
Parameters
companyId (header) - The ID of the company making the request.
obituaryTemplateId (path) * - The unique identifier for the obituary template.
callId (path) * - The unique identifier for the call.
Responses
200 - Returns the processed obituary template with filled details.
POST /v2/Obituary/Generate

Generate Obituary from Prompt

Generates an obituary based on the provided prompt and optionally the original obituary text. Returns the generated text in a DTO.
Parameters
body (body) * - The request containing prompt details and other parameters.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the generated obituary text based on the prompt.
GET /v2/Obituary/{callId}/Generate/Prompt

Generate Prompt from Call

Generates a prompt for obituary generation based on the specified call details. Returns the prompt text in a DTO.
Parameters
companyId (header) - The ID of the company making the request.
callId (path) * - The unique identifier for the call.
Responses
200 - Returns the generated prompt based on the call details.
GET /v2/Obituary/{callId}/Generate

Generate Obituary from Call

Generates an obituary based on details from the specified call. Retrieves the prompt for the call and generates the obituary text accordingly.
Parameters
companyId (header) - The ID of the company making the request.
callId (path) * - The unique identifier for the call.
Responses
200 - Returns the generated obituary text based on the call details.
GET /v2/PageBuilder/Components

Get all component definitions

Retrieves all active component definitions that can be used to build pages. Components are defined in code via [PageBuilderComponent] attributes and discovered at startup.
Responses
200 - Returns the list of component definitions
GET /v2/PageBuilder/Components/{componentType}

Get component definition by type

Retrieves a specific component definition by its type identifier.
Parameters
componentType (path) * - The component type identifier
Responses
200 - Returns the component definition
GET /v2/PageBuilder/Components/Category/{category}

Get component definitions by category

Retrieves component definitions filtered by category.
Parameters
category (path) * - The category to filter by
Responses
200 - Returns the filtered list of component definitions
GET /v2/PageBuilder/Components/Categories

Get all component categories

Retrieves all unique component categories for organizing the component palette.
Responses
200 - Returns the list of categories
GET /v2/PageBuilder/Pages

Get all page definitions

Retrieves all page definitions visible to the user's company. Includes global pages (available to all) and company-specific pages.
Parameters
companyId (header) - The company ID from the request header
applicationType (query) - Optional filter by application type (Arranger, Connections)
includeInactive (query) - Whether to include inactive pages
arrangerGuideId (query) - Optional filter by arranger guide ID
connectionsGuideId (query) - Optional filter by connections guide ID
includeComponents (query) - Whether to include page components
needTypeId (query) - Optional filter by need type ID. When provided, returns only pages tagged with this need type plus untagged (universal) pages.
dispositionCategoryId (query) - Optional filter by disposition category ID. When provided, returns only pages tagged with this category plus untagged (universal) pages.
dispositionTypeId (query) - Optional filter by disposition type ID. Used with dispositionCategoryId for more specific filtering.
Responses
200 - Returns the list of page definitions
POST /v2/PageBuilder/Pages

Create a new page definition

Creates a new page definition owned by the specified company.
Parameters
companyId (header) - The company ID from the request header
body (body) * - The page definition data
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/PageBuilder/Pages/{globalId}

Get a specific page definition

Retrieves a single page definition by its global ID, including all components.
Parameters
globalId (path) * - The page definition's unique identifier
includeComponents (query) - Whether to include the page's components (default: true)
Responses
200 - Returns the page definition
PUT /v2/PageBuilder/Pages/{globalId}

Update a page definition

Updates an existing page definition. Only company-owned pages can be modified. Global pages cannot be edited except by Zeus users.
Parameters
companyId (header) - The company ID from the request header
globalId (path) * - The page definition's unique identifier
body (body) * - The updated page definition data
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Page definition updated successfully
DELETE /v2/PageBuilder/Pages/{globalId}

Delete a page definition

Soft deletes a page definition by setting it to inactive. Global pages cannot be deleted except by Zeus users.
Parameters
companyId (header) - The company ID from the request header
globalId (path) * - The page definition's unique identifier
Responses
200 - OK
GET /v2/PageBuilder/Pages/Slug/{slug}

Get a page definition by slug

Retrieves a page definition by its URL slug and application type. Company-specific pages take precedence over global pages.
Parameters
companyId (header) - The company ID from the request header
slug (path) * - The page slug
applicationType (query) - The application type (Arranger, Connections)
Responses
200 - Returns the page definition
GET /v2/PageBuilder/Pages/{globalId}/NeedTypes

Get need types assigned to a page

Parameters
companyId (header) - The company ID from the request header
globalId (path) * - The page definition's unique identifier
Responses
200 - Returns the list of need type IDs
PUT /v2/PageBuilder/Pages/{globalId}/NeedTypes

Update need types assigned to a page

Replaces all need-type associations for a page. An empty list means the page shows for all need types.
Parameters
companyId (header) - The company ID from the request header
globalId (path) * - The page definition's unique identifier
body (body) * - List of need type IDs to assign
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the updated page definition
GET /v2/PageBuilder/Pages/{globalId}/Dispositions

Get disposition tags assigned to a page

Parameters
companyId (header) - The company ID from the request header
globalId (path) * - The page definition's unique identifier
Responses
200 - Returns the list of disposition associations
PUT /v2/PageBuilder/Pages/{globalId}/Dispositions

Update disposition tags assigned to a page

Replaces all disposition associations for a page. An empty list means the page shows for all dispositions.
Parameters
companyId (header) - The company ID from the request header
globalId (path) * - The page definition's unique identifier
body (body) * - List of disposition associations to assign
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the updated page definition
PUT /v2/PageBuilder/Pages/Reorder

Reorder page definitions

Updates the display order of multiple pages at once.
Parameters
companyId (header) - The company ID from the request header
arrangerGuideId (query) - Optional arranger guide to scope the reorder to. When supplied, pages are matched by guide rather than by company, allowing corporation-owned pages to be reordered.
connectionsGuideId (query) - Optional connections guide to scope the reorder to. When supplied, pages are matched by guide rather than by company.
body (body) * - Dictionary of page global ID to new display order
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/PageBuilder/Pages/{globalId}/Duplicate

Duplicate a page definition

Creates a copy of an existing page definition with a new name and slug. The new page will be owned by the user's company.
Parameters
companyId (header) - The company ID from the request header
globalId (path) * - The page definition to duplicate
newName (query) - The name for the new page
newSlug (query) - The slug for the new page
arrangerGuideId (query) - Optional arranger guide to assign the new page to
connectionsGuideId (query) - Optional connections guide to assign the new page to
Responses
200 - OK
POST /v2/PageBuilder/Pages/CreateFromTemplates

Create company pages from template pages

Creates company-specific pages by copying all global template pages for the application type. Skips any pages where the company already has a page with the same slug.
Parameters
companyId (header) - The company ID from the request header
applicationType (query) - The application type (Arranger, Connections)
arrangerGuideId (query) - Optional arranger guide ID to assign pages to
connectionsGuideId (query) - Optional connections guide ID to assign pages to
Responses
200 - Pages created successfully (returns list of created pages)
GET /v2/PageBuilder/Pages/Unassigned

Get unassigned pages for a company

Returns active company pages that are not assigned to any guide for the given application type.
Parameters
companyId (header)
applicationType (query)
Responses
200 - OK
POST /v2/PageBuilder/Pages/AssignToGuide

Assign pages to a guide

Assigns the specified pages to a guide by setting the appropriate guide ID.
Parameters
companyId (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/PageBuilder/Pages/RemoveUnassigned

Remove all unassigned pages for a company

Deactivates all active company pages that are not assigned to any guide for the given application type.
Parameters
companyId (header)
applicationType (query)
Responses
200 - OK
GET /v2/PageBuilder/Pages/FlowChart

Generate a mermaid flow chart for a guide's page flow

Generates mermaid markdown representing the page flow for a specific arranger guide. Universal pages (no tags) create linear nodes, while tagged pages create branches with labels.
Parameters
companyId (header) - The company ID from the request header
arrangerGuideId (query) - The arranger guide to generate the flow chart for
Responses
200 - Returns the mermaid markdown string
GET /v2/PageBuilder/Pages/Global

Get all global page definitions

Retrieves all global page definitions (CompanyId == null). These are the default/template pages available to all companies. Requires Zeus or AuroraAdmin role.
Parameters
applicationType (query) - Optional filter by application type (Arranger, Connections)
includeInactive (query) - Whether to include inactive pages
Responses
200 - Returns the list of global page definitions
POST /v2/PageBuilder/Pages/Global

Create a new global page definition

Creates a new global page definition (CompanyId == null). Requires Zeus or AuroraAdmin role.
Parameters
body (body) * - The page definition data
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/PageBuilder/Pages/{globalId}/DuplicateGlobal

Duplicate a page definition as a global page

Creates a copy of an existing page definition as a global page (CompanyId == null). Requires Zeus or AuroraAdmin role.
Parameters
globalId (path) * - The page definition to duplicate
newName (query) - The name for the new page
newSlug (query) - The slug for the new page
Responses
200 - OK
PUT /v2/PageBuilder/Pages/Global/Reorder

Reorder global page definitions

Updates the display order of global pages. Requires Zeus or AuroraAdmin role.
Parameters
body (body) * - Dictionary of page global ID to new display order
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/PageBuilder/Pages/Corporation/{corporationId}

Get page definitions for a corporation

Retrieves page definitions owned by the specified corporation. Requires Zeus or AuroraAdmin role.
Parameters
corporationId (path) * - The corporation ID
applicationType (query) - Optional filter by application type (Arranger, Connections)
includeInactive (query) - Whether to include inactive pages
Responses
200 - Returns the list of corporation page definitions
POST /v2/PageBuilder/Pages/Corporation/{corporationId}

Create a corporation page definition

Creates a new page definition owned by the specified corporation. Requires Zeus or AuroraAdmin role.
Parameters
corporationId (path) * - The corporation ID
body (body) * - The page definition data
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/PageBuilder/Config/Export

Export all company pages as a configuration file

Exports all active page definitions and their components for the specified company and application type. The export contains no internal IDs and can be imported into any company.
Parameters
companyId (header) - The company ID from the request header
applicationType (query) - The application type (Arranger, Connections)
Responses
200 - Returns the configuration export
POST /v2/PageBuilder/Config/Import/Validate

Validate a configuration import file

Validates the provided configuration, checking schema version, component types, and identifying slug conflicts that would be overwritten during import.
Parameters
companyId (header) - The company ID from the request header
applicationType (query) - The application type (Arranger, Connections)
body (body) * - The configuration to validate
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the validation result
POST /v2/PageBuilder/Config/Import

Import a configuration

Imports the provided configuration, creating new pages or overwriting existing pages with matching slugs. All pages are created as company-owned pages.
Parameters
companyId (header) - The company ID from the request header
applicationType (query) - The application type (Arranger, Connections)
arrangerGuideId (query) - Optional arranger guide ID to assign imported pages to
connectionsGuideId (query) - Optional connections guide ID to assign imported pages to
body (body) * - The configuration to import
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the list of created pages
POST /v2/PageBuilder/Pages/{pageId}/Components

Add a component to a page

Adds a new component to a page definition.
Parameters
companyId (header) - The company ID from the request header
pageId (path) * - The page definition's global ID
body (body) * - The component data
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
PUT /v2/PageBuilder/Pages/{pageId}/Components/{componentId}

Update a component

Updates an existing component on a page.
Parameters
companyId (header) - The company ID from the request header
pageId (path) * - The page definition's global ID
componentId (path) * - The component ID
body (body) * - The updated component data
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Component updated successfully
DELETE /v2/PageBuilder/Pages/{pageId}/Components/{componentId}

Delete a component

Removes a component from a page.
Parameters
companyId (header) - The company ID from the request header
pageId (path) * - The page definition's global ID
componentId (path) * - The component ID
Responses
200 - OK
PUT /v2/PageBuilder/Pages/{pageId}/Components/Reorder

Reorder components on a page

Updates the display order of components on a page.
Parameters
companyId (header) - The company ID from the request header
pageId (path) * - The page definition's global ID
body (body) * - Dictionary of component ID to new display order
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/PageBuilder/Templates

Get all page templates

Retrieves all page templates visible to the user's company. Includes global templates (available to all) and company-specific templates.
Parameters
companyId (header) - The company ID from the request header
applicationType (query) - Optional filter by application type
Responses
200 - Returns the list of page templates
POST /v2/PageBuilder/Templates

Create a new page template

Creates a new page template owned by the specified company.
Parameters
companyId (header) - The company ID from the request header
body (body) * - The template data
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/PageBuilder/Templates/{globalId}

Get a specific page template

Retrieves a single page template by its global ID.
Parameters
globalId (path) * - The template's unique identifier
Responses
200 - Returns the page template
DELETE /v2/PageBuilder/Templates/{globalId}

Delete a page template

Deletes a page template. Built-in templates cannot be deleted.
Parameters
companyId (header) - The company ID from the request header
globalId (path) * - The template's unique identifier
Responses
200 - OK
POST /v2/PageBuilder/Pages/{pageId}/CreateTemplate

Create a template from an existing page

Creates a new template by capturing the current state of a page definition.
Parameters
companyId (header) - The company ID from the request header
pageId (path) * - The page definition to create template from
templateName (query) - The name for the new template
Responses
200 - OK
POST /v2/PageBuilder/Templates/{templateId}/Apply

Apply a template to create a new page

Creates a new page definition from a template.
Parameters
companyId (header) - The company ID from the request header
templateId (path) * - The template's global ID
pageName (query) - The name for the new page
pageSlug (query) - The slug for the new page
Responses
200 - OK
GET /v2/PageBuilder/Pages/{pageId}/Versions

Get page version history

Retrieves the version history for a page definition.
Parameters
pageId (path) * - The page definition's global ID
limit (query) - Maximum number of versions to return (default: 50)
Responses
200 - Returns the version history
DELETE /v2/PageBuilder/Pages/{pageId}/Versions/Unpublished

Remove all unpublished versions for a page

Parameters
companyId (header) - The company ID from the request header
pageId (path) * - The page definition's global ID
Responses
200 - Returns the number of versions removed
POST /v2/PageBuilder/Pages/{pageId}/Rollback/{versionNumber}

Rollback to a previous version

Restores a page definition to a previous version. Creates a new version snapshot before rollback.
Parameters
companyId (header) - The company ID from the request header
pageId (path) * - The page definition's global ID
versionNumber (path) * - The version number to rollback to
Responses
200 - Page rolled back successfully
GET /v2/PageBuilder/Pages/{pageId}/Versions/{versionNumber}

Get a specific version's data as a page definition

Returns a version's component data as a PageDefinitionDto for comparison purposes. Does not modify any data.
Parameters
companyId (header) - The company ID from the request header
pageId (path) * - The page definition's global ID
versionNumber (path) * - The version number to retrieve
Responses
200 - Returns the version as a page definition
POST /v2/PageBuilder/Pages/{pageId}/Publish

Publish a page definition

Creates a version snapshot and marks the page as published.
Parameters
companyId (header) - The company ID from the request header
pageId (path) * - The page definition's global ID
body (body) - Optional publish note
Request Body Schema:
{
  "oneOf": [
    {
      "nullable": true
    },
    {
      "type": "object"
    }
  ]
}
Responses
200 - Page published successfully
POST /v2/PageBuilder/Pages/{pageId}/Unpublish

Unpublish a page definition

Reverts a page to draft status, clearing the published version.
Parameters
companyId (header) - The company ID from the request header
pageId (path) * - The page definition's global ID
body (body) - Optional unpublish note
Request Body Schema:
{
  "oneOf": [
    {
      "nullable": true
    },
    {
      "type": "object"
    }
  ]
}
Responses
200 - Page unpublished successfully
GET /v2/PageBuilder/Pages/{pageId}/PublishHistory

Get publish history for a page

Returns the publish/unpublish history for a page definition.
Parameters
pageId (path) * - The page definition's global ID
limit (query) - Maximum number of records to return (default: 50)
Responses
200 - Returns the publish history
POST /v2/PageBuilder/Cache/Invalidate

Invalidate page cache

Invalidates cached page data. Zeus users only.
Parameters
pageId (query) - Optional page ID to invalidate (null to invalidate all)
Responses
200 - OK
GET /v2/PageBuilder/Pages/{pageId}/Preview

Get a preview of a page definition

Generates an HTML preview of a page definition that can be rendered in an iframe. Shows component layout with configuration details.
Parameters
pageId (path) * - The page definition's global ID
device (query) - Optional device type for responsive preview (mobile, tablet, desktop)
Responses
200 - Returns HTML preview content
POST /v2/PageBuilder/Pages/Preview

Generate a preview from a page definition DTO

Generates an HTML preview from a page definition DTO without saving. Useful for previewing unsaved changes in the page builder editor.
Parameters
device (query) - Optional device type for responsive preview (mobile, tablet, desktop)
templateType (query) - Layout template type (Classic, Minimal, Sidebar, BottomNav)
contentWidth (query) - Content width (boxed, wide, full)
showContainer (query) - Whether to show content in a container
body (body) * - The page definition with components to preview
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns HTML preview content
GET /v2/Permissions

Get Permissions

Retrieves a list of permissions, sets `IsInternalOnly` for application permissions based on certain criteria, and returns the permissions sorted by group, type, and display name. When editionId is provided, permissions that have edition assignments but NOT for the given editionId are excluded. Permissions with no edition assignments are always included (fail-open).
Parameters
editionId (query) - Optional edition ID to filter permissions by. Permissions with no edition assignments pass through (fail-open).
Responses
200 - Returns a list of permissions, filtered and sorted by specific criteria.
GET /v2/User/{advisorUserId}/Roles

Get User Roles

Retrieves the roles assigned to the user. The roles include permissions and are ordered by name.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user whose roles are to be retrieved.
Responses
200 - A list of roles assigned to the user.
GET /v2/User/{advisorUserId}/SecurityRoles

Get User Security Roles

Retrieves the security roles assigned to the user for each funeral home. Security roles are specific to the user�s permissions within the funeral home.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user whose security roles are to be retrieved.
Responses
200 - A list of security roles associated with the user.
POST /v2/User/{advisorUserId}/SecurityRole/{securityRoleId}/FuneralHome/{funeralHomeId}

Assign Security Role to User

Assigns a security role to a user for a specific funeral home. This method ensures the user has the appropriate permissions and that the role assignment is valid.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user to whom the security role is to be assigned.
securityRoleId (path) * - The ID of the security role to assign.
funeralHomeId (path) * - The ID of the funeral home where the role is to be assigned.
Responses
200 - The security role was successfully assigned to the user.
DELETE /v2/User/{advisorUserId}/SecurityRole/{securityRoleId}/FuneralHome/{funeralHomeId}

Delete Funeral Home Security Role

Deletes a specific security role assigned to a user for a particular funeral home. The method first checks if the user exists and has the required permissions. If the role is found, it is removed from the database.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user whose funeral home security role is to be deleted.
securityRoleId (path) * - The ID of the security role to be removed.
funeralHomeId (path) * - The ID of the funeral home where the role is to be removed.
Responses
200 - The funeral home security role was successfully deleted.
GET /v2/User/{advisorUserId}/Permissions

Get Permissions

Retrieves all permissions assigned to a user, including those tied to their roles and security roles. Checks user permissions and company associations before fetching data.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user whose permissions are to be retrieved.
Responses
200 - A list of permissions assigned to the user.
POST /v2/User/{advisorUserId}/Permission/{permissionId}

Post Permission

Adds a new permission to a user's list of permissions. Validates user permissions and ensures that the specified permission is manageable before adding it.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user to whom the permission is to be added.
permissionId (path) * - The ID of the permission to add.
Responses
200 - OK
DELETE /v2/User/{advisorUserId}/Permission/{permissionId}

Delete Permission

Deletes a specific permission from a user's list of permissions. The method checks if the permission exists and the user has the necessary permissions to perform the deletion.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user whose permission is to be deleted.
permissionId (path) * - The ID of the permission to remove.
Responses
200 - OK
GET /v2/User/{advisorUserId}/Permissions/Effective

Get Effective Permissions

Retrieves a list of effective permissions for a user, considering their roles and security roles. This method provides the permissions currently applied to the user, factoring in role-based and security role-based permissions.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user whose effective permissions are to be retrieved.
Responses
200 - A list of effective permissions for the user.
GET /v2/Placeholders

Returns all placeholders visible to the requesting scope.

Parameters
scope (query) - Optional scope filter. Accepts a single value (`Workflow`, `Arranger`, `Connections`, `Email`, `Sms`, `All`) or omitted for all.
Responses
200 - OK
400 - Bad Request
POST /v2/Public/contact

Submits a contact form request from the public website.

Parameters
body (body) * - The contact form submission data.
Request Body Schema:
{
  "type": "object"
}
Responses
201 - Created
400 - Bad Request
GET /v2/Public/contact/submissions

Gets all contact submissions.

Parameters
unprocessedOnly (query)
Responses
200 - OK
401 - Unauthorized
403 - Forbidden
POST /v2/Public/contact/submissions/{id}/process

Marks a contact submission as processed.

Parameters
id (path) * - The submission ID.
processedBy (query) - The user who processed the submission.
notes (query) - Optional notes about the processing.
Responses
204 - No Content
401 - Unauthorized
403 - Forbidden
404 - Not Found
GET /v2/public/qr/{token}/validate

Validates a QR token and returns case context (funeral home name, deceased name).

Parameters
token (path) *
Responses
200 - OK
404 - Not Found
GET /v2/public/qr/{token}/person-types

Returns person types (relationships) available for the case's company.

Parameters
token (path) *
Responses
200 - OK
404 - Not Found
POST /v2/public/qr/{token}/person

Adds a person to the case associated with the QR token.

Parameters
token (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
201 - Created
400 - Bad Request
404 - Not Found
POST /v2/Report/TrackReport

Track Report

Tracks the report based on the provided report data, updating the last viewed time.
Parameters
companyId (header) - The ID of the company.
body (body) * - The report data to track.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Indicates that the report tracking was successful.
POST /v2/Report/TrackReport/{callId}

Track Report with Call ID

Tracks the report based on the provided report data and optional call ID, updating the last viewed time.
Parameters
companyId (header) - The ID of the company.
callId (path) * - The ID of the call (optional).
body (body) * - The report data to track.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Indicates that the report tracking was successful.
GET /v2/Report/Packages

Get Report Packages

Retrieves a list of report packages for the specified company.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
Responses
200 - Returns a list of report packages.
POST /v2/Report/Packages

Post Report Package

Creates a new report package based on the provided report package data.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
body (body) * - The report package data to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Indicates that the report package was successfully created.
PATCH /v2/Report/Packages/{reportPackageId}

Patch Report Package

Updates the specified report package based on the provided patch document. For `HttpPatch` methods, include a sample patch document in the remarks.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
reportPackageId (path) * - The ID of the report package to update.
body (body) * - The patch document containing the updates.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/Report/Packages/{reportPackageId}

Delete Report Package

Deletes the specified report package and its associated reports.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
reportPackageId (path) * - The ID of the report package to delete.
Responses
200 - OK
GET /v2/Resource/Type/{resourceTypeId}

Get Resources By Type

Retrieves a list of resources for the specified type within the given company.
Parameters
companyId (header) - The ID of the company.
resourceTypeId (path) * - The ID of the resource type.
Responses
200 - The list of resources was retrieved successfully.
GET /v2/Resource/Users

Get Person Users

Retrieves a list of users who are advisors for the specified company.
Parameters
companyId (header) - The ID of the company.
Responses
200 - The list of person users was retrieved successfully.
GET /v2/Resource/People

Get Person Resources

Retrieves a list of resources classified as person resources for the specified company.
Parameters
companyId (header) - The ID of the company.
Responses
200 - The list of person resources was retrieved successfully.
GET /v2/Resource/Locations

Get Locations

Retrieves a list of location resources for the specified company.
Parameters
companyId (header) - The ID of the company.
Responses
200 - The list of locations was retrieved successfully.
GET /v2/Resource/{resourceId}/Locations

Get Resource Locations

Retrieves a list of location resources associated with a specific resource for the given company.
Parameters
companyId (header) - The ID of the company.
resourceId (path) * - The ID of the resource.
Responses
200 - The list of locations for the specified resource was retrieved successfully.
PUT /v2/Resource/{resourceId}/Locations

Update Resource Locations

Updates the locations associated with the specified resource. Requires permission to manage resources.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
resourceId (path) * - The ID of the resource to update.
body (body) * - The list of location resources to associate with the resource.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Resource

Create Resource

Creates a new resource in the specified company. Requires permission to manage resources.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
body (body) * - The resource data to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/Resource/{resourceId}

Delete Resource

Marks the specified resource as inactive in the given company. Requires permission to manage resources.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
resourceId (path) * - The ID of the resource to delete.
Responses
200 - The resource was deleted successfully.
PUT /v2/Resource/{resourceId}

Update Resource

Updates the details of the specified resource. Requires permission to manage resources.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
resourceId (path) * - The ID of the resource to update.
body (body) * - The updated resource data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Search/Companies

Search Companies

Searches for companies based on the query. The results are filtered based on the user's role. Zeus and AuroraAdmin roles have access to all initialized companies. CorporateManager role has access to companies within the user's corporation.
Parameters
query (query) - The search query to filter company names.
Responses
200 - The list of companies matching the query was retrieved successfully.
GET /v2/Search/FuneralHomes

Search Funeral Homes

Searches for funeral homes based on the query. If `searchAllCompanies` is true, it searches across all companies in the user's corporation. The results are filtered based on the user's role. Zeus and AuroraAdmin roles can search all companies, while CorporateManager role searches within their corporation.
Parameters
companyId (header) - The ID of the company to search within.
query (query) - The search query to filter funeral home names or Matthews account numbers.
searchAllCompanies (query) - Whether to search across all companies within the user's corporation (optional).
Responses
200 - The list of funeral homes matching the query was retrieved successfully.
GET /v2/SecurityRoles

Get Security Roles

Retrieves security roles for the specified company. Roles are filtered to exclude the role with ID 6.
Parameters
companyId (header) - The ID of the company to filter security roles.
Responses
200 - The list of security roles for the specified company was retrieved successfully.
GET /v2/SecurityRole/{securityRoleId}

Get Security Role

Retrieves a specific security role by its ID for the specified company. Returns an error if the role is not found.
Parameters
companyId (header) - The ID of the company to filter security roles.
securityRoleId (path) * - The ID of the security role to retrieve.
Responses
200 - The security role with the specified ID was retrieved successfully.
GET /v2/SecurityRole/{securityRoleId}/Permissions

Get Permissions for Security Role

Retrieves a list of permissions associated with the specified security role for the given company.
Parameters
companyId (header) - The ID of the company to filter permissions.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
securityRoleId (path) * - The ID of the security role to retrieve permissions for.
Responses
200 - The list of permissions for the specified security role was retrieved successfully.
POST /v2/SecurityRole/{securityRoleId}/Permission/{permissionId}

Add Permission to Security Role

Adds a permission to a specified security role within the given company. Requires proper permissions to manage roles and permissions.
Parameters
companyId (header) - The ID of the company to associate with the permission.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
securityRoleId (path) * - The ID of the security role to add the permission to.
permissionId (path) * - The ID of the permission to add.
Responses
200 - OK
DELETE /v2/SecurityRole/{securityRoleId}/Permission/{permissionId}

Remove Permission from Security Role

Removes a permission from a specified security role within the given company. Requires proper permissions to manage roles and permissions.
Parameters
companyId (header) - The ID of the company to associate with the permission removal.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
securityRoleId (path) * - The ID of the security role to remove the permission from.
permissionId (path) * - The ID of the permission to remove.
Responses
200 - OK
POST /v2/SecurityRole

Create Security Role

Creates a new security role within the specified company. Requires permission to manage security roles.
Parameters
companyId (header) - The ID of the company to associate with the new security role.
body (body) * - The details of the security role to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/SummaryActions/{companyId}

Gets all action configurations for a company.

Parameters
companyId (path) *
Responses
200 - OK
PUT /v2/SummaryActions/{companyId}

Updates an action configuration.

Parameters
companyId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
DELETE /v2/SummaryActions/{companyId}

Resets all actions to defaults for a company.

Parameters
companyId (path) *
Responses
200 - OK
GET /v2/SummaryActions/{companyId}/enabled

Gets only enabled actions for a company.

Parameters
companyId (path) *
Responses
200 - OK
POST /v2/SummaryActions/{companyId}/reorder

Reorders actions for a company.

Parameters
companyId (path) *
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Sync/Configurations

Get Configurations

Retrieves the list of sync configurations. The user must have the appropriate permissions to view this information.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
Responses
200 - The list of sync configurations was retrieved successfully.
GET /v2/Sync/History

Get Execution History

Retrieves the execution history of sync operations for a specific company. User information is included in the results where available.
Parameters
companyId (header) - The ID of the company to filter the execution history by.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
Responses
200 - The list of sync execution history was retrieved successfully.
POST /v2/Sync/ProductDisclaimers

Update Product Disclaimers

Updates product disclaimers based on the provided source and target IDs. Changes are made to the target disclaimers and updates are returned.
Parameters
companyId (header) - The ID of the company for the update.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
body (body) * - The product disclaimer data to update.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The list of updated product disclaimers.
POST /v2/Sync/DisclosureEffectiveDate

Update Effective Date

Updates the disclosure effective date for multiple target locations based on the source location. Changes are committed within a transaction.
Parameters
companyId (header) - The ID of the company for the update.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
body (body) * - The data containing the source and target IDs for the effective date update.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The list of updated effective dates.
POST /v2/Sync/Vendors

Update Vendors

Updates or inserts vendor information across target companies based on the provided source vendor data. Changes are committed within a transaction.
Parameters
companyId (header) - The ID of the company for the update.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
body (body) * - The vendor data to update.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The list of updated vendors.
POST /v2/Sync/ProductVisibility

Update Product Visibility

Updates visibility settings for products in target locations based on source location data. Changes are committed within a transaction.
Parameters
companyId (header) - The ID of the company for the update.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
body (body) * - The data containing source and target IDs and item codes for visibility update.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The list of updated product visibility records.
POST /v2/Sync/ProductPricing

Update Product Pricing

Updates product pricing across target locations based on source location data. Changes are committed within a transaction.
Parameters
companyId (header) - The ID of the company for the update.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
body (body) * - The pricing data to update.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The list of updated product pricing records.
POST /v2/Sync/ProductWholesale

Update Product Wholesale

Updates wholesale pricing for products across target locations based on source location data. Changes are committed within a transaction.
Parameters
companyId (header) - The ID of the company for the update.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
body (body) * - The wholesale pricing data to update.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The list of updated wholesale pricing records.
POST /v2/Sync/TaxRates

Update Tax Rates

Updates tax rates for the specified company and target funeral homes. If a tax rate already exists, it will be updated if `OverrideIfExists` is true, otherwise, it will be ignored. The method performs database operations within a transaction, ensuring consistency in updates.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
body (body) * - The data for updating tax rates.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The list of updated tax rates was retrieved successfully.
POST /v2/Sync/Showrooms

Update Showrooms

Updates showrooms for the specified company and target funeral homes. If a showroom already exists, it will be updated if `OverrideIfExists` is true, otherwise, it will be ignored. The method performs database operations within a transaction, ensuring consistency in updates.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
body (body) * - The data for updating showrooms.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The list of updated showrooms was retrieved successfully.
POST /v2/Sync/Packages

Update Packages

Updates packages for the specified company and target funeral homes. If a package already exists, it will be updated if `OverrideIfExists` is true, otherwise, it will be ignored. The method performs database operations within a transaction, ensuring consistency in updates.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
body (body) * - The data for updating packages.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The list of updated packages was retrieved successfully.
POST /v2/Sync/FieldSelection

Update Field Selection

This method updates field selection data for multiple target companies based on the source company’s flow data. It handles insertion or updating of records and logs each update action. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company performing the update.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checking.
body (body) * - Data containing information about field selection.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - List of updates made during the field selection update.
POST /v2/Sync/Permissions

Update Permissions

This method synchronizes permissions from a source company to multiple target companies. It overrides existing permissions and logs each update action. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company performing the update.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checking.
body (body) * - Data containing source and target company IDs for permission sync.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - List of updates made during the permissions update.
POST /v2/Sync/CatalogCallTypeCodes

Update Catalog Call Type Codes

This method updates call type codes for item types in multiple target companies based on source company data. It handles addition and modification of codes and logs each update action. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company performing the update.
body (body) * - Data containing source and target IDs for catalog call type code synchronization.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - List of updates made during the catalog call type code update.
POST /v2/Sync/Lookup

Update Lookups

This method updates lookup values for multiple target companies based on source company data. It handles creation of new lookup records and logs each update action. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company performing the update.
body (body) * - Data containing source and target IDs for lookup synchronization.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - List of updates made during the lookup update.
POST /v2/Sync/CustomFields

Update Vendors

Updates or inserts vendor information across target companies based on the provided source vendor data. Changes are committed within a transaction.
Parameters
companyId (header) - The ID of the company for the update.
selectedFhIdForPermissionsCheck (header) - Optional ID used for permission checks.
body (body) * - The vendor data to update.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The list of updated vendors.
POST /v2/Sync/Validate/TaxRates

Validate Tax Rates

This method validates if item types related to tax rates in the source company exist in the target companies. It returns validation results with any discrepancies found. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company performing the validation.
body (body) * - Data containing tax rate IDs and target company IDs for validation.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Validation result indicating if the tax rates are valid.
POST /v2/Sync/Validate/Showrooms

Validate Showrooms

This method validates if showrooms and associated items in the source company exist and are correctly configured in the target companies. It returns validation results with any discrepancies found, including missing item codes. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company performing the validation.
body (body) * - Data containing showroom IDs and target company IDs for validation.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Validation result indicating if the showrooms and items are valid.
POST /v2/Sync/Validate/Packages

Validate Packages

This method validates if packages and associated items in the source company exist and are correctly configured in the target companies. It checks for missing item codes and item types, depending on the provided options. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company performing the validation.
body (body) * - Data containing package IDs and target company IDs for validation.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Validation result indicating if the packages are valid.
POST /v2/Sync/Validate/CatalogCallTypeCodes

Validate Catalog Call Type Codes

This method validates if catalog items and call types in the source company exist in the target companies. It checks for the presence of the catalog and call types, reporting any discrepancies. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company performing the validation.
body (body) * - Data containing call type IDs and target company IDs for validation.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Validation result indicating if the catalog call type codes are valid.
GET /v2/Task/{taskId}

Get Task

This method retrieves a specific task based on the provided task ID and company ID. It performs permission checks to ensure the requesting user has the necessary rights to view the task. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company requesting the task information.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
taskId (path) * - The ID of the task to retrieve.
Responses
200 - Returns the details of the requested task.
PUT /v2/Task/{taskId}

Update Task

This method updates an existing task based on the provided details and performs validation to ensure the specified call and task are valid. It handles task assignment changes and may send a task assignment email if required. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company updating the task.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
taskId (path) * - The ID of the task to update.
body (body) * - The updated task details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the updated task details.
GET /v2/Task/PersonResources

Get Person Resources

This method retrieves a list of active resources that are categorized as person resources for a given company. It includes details about each resource's associated person and updates the person profile information based on user profiles. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company requesting the resource information.
Responses
200 - Returns a list of active person resources for the specified company.
POST /v2/Task

Create Task

This method creates a new task based on the provided details and assigns it to the specified resource if applicable. It performs permission checks to ensure the requesting user has the necessary rights to create tasks. If assigned, a task assignment email may be sent to the resource. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company creating the task.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
body (body) * - The details of the task to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the details of the newly created task.
PUT /v2/Task/{taskId}/Completed/{isCompleted}

Complete Task

This method updates the completion status of a task based on the provided flag. It updates the completion date and person responsible, and clears non-applicable date fields if marking the task as complete or incomplete. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company updating the task completion status.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
taskId (path) * - The ID of the task to mark as complete or incomplete.
isCompleted (path) * - Flag indicating whether to mark the task as completed or not.
Responses
200 - OK
PUT /v2/Task/ToggleComplete

Toggle Task Complete

This method toggles the completion status of a task based on the provided details. It sets the completion date and person responsible based on the completion status and updates the task record accordingly. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company updating the task completion status.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
body (body) * - The details of the task to toggle the completion status.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/Task/AutomatedTasks

Get Automated Tasks

This method retrieves a list of active automated tasks for a given company, subject to the required permissions. The automated tasks are projected to the `TaskGroupDto` format for the response. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company requesting the automated tasks.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
Responses
200 - Returns a list of active automated tasks for the specified company.
GET /v2/Task/AutomatedTask/{taskGroupId}

Get Automated Task

This method retrieves details of a specific automated task, including its tasks and related events. It requires permission to view workflow and returns an error if the automated task is not found. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company requesting the automated task details.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
taskGroupId (path) * - The ID of the automated task to retrieve.
Responses
200 - Returns the details of the specified automated task.
PUT /v2/Task/AutomatedTask/{taskGroupId}

Update Automated Task

This method updates an existing automated task based on the provided details, including task names and call types. It removes outdated task events and adds new ones as necessary, and performs permission checks to ensure the requesting user has the right to manage workflow. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company updating the automated task.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
taskGroupId (path) * - The ID of the automated task to update.
body (body) * - The updated automated task details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns if the update is successful.
DELETE /v2/Task/AutomatedTask/{taskGroupId}

Delete Automated Task

This method marks an automated task as inactive instead of physically deleting it from the database. It performs permission checks to ensure the requesting user has the necessary rights to manage workflow. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company deleting the automated task.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
taskGroupId (path) * - The ID of the automated task to delete.
Responses
200 - Returns if the deletion is successful.
POST /v2/Task/AutomatedTask

Create Automated Task

This method creates a new automated task with the provided details and assigns task events as specified. It performs permission checks to ensure the requesting user has the necessary rights to manage workflow. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company creating the automated task.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
body (body) * - The details of the automated task to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the details of the newly created automated task.
GET /v2/Task/Call/{callId}

Get Call Tasks

This method retrieves a list of tasks associated with a specific call ID and company ID. It performs permission checks to ensure the requesting user has the necessary rights to view the tasks. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company requesting the task information.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
callId (path) * - The ID of the call whose tasks are to be retrieved.
Responses
200 - Returns a list of tasks associated with the specified call.
GET /v2/TestAccounts/corporation/{corporationId}

Get All Test Accounts for Corporation

Retrieves all lower-environment test accounts for all companies within a corporation. This provides a consolidated view of test accounts across the entire corporate structure. **Usage Notes:** - Intended for corporate-level administration in lower environments. - Results include test account details with company name for identification. - Aggregates results from all companies in the corporation. **Tags:**Test Accounts, Corporate, Administration
Parameters
corporationId (path) * - The unique identifier of the corporation.
Responses
200 - Successfully returns the list of test accounts.
GET /v2/TestAccounts

Get All Test Accounts

Retrieves all lower-environment test accounts configured for the specified company. This allows administrators to manage non-production user accounts used for testing or training purposes within a given organization. **Usage Notes:** - Intended for administrative use in lower environments. - Results include test account details such as email and creation metadata. - Each record is retrieved from the`TestAccount.usp_ListUsers`stored procedure. - This endpoint helps identify available test users for QA validation. **Tags:**Test Accounts, User Management, Administration
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to filter test accounts that belong to this specific company.
Responses
200 - Successfully returns the list of test accounts.
POST /v2/TestAccounts

Create Test Account

Creates a new lower-environment test account for the specified company. This operation allows administrators to generate sandbox user profiles used for internal testing or demonstration purposes. **Usage Notes:** - Accounts are created using the`TestAccount.usp_CreateUser`stored procedure. - Passwords are stored as hashes and should not be transmitted in plaintext. - Existing test accounts cannot be duplicated using the same email address. - Used primarily for QA and training user provisioning. **Tags:**Test Accounts, User Creation, Administration
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to associate the new test account with a specific organization.
body (body) * - The data required to create the test account, including email and password hash.
Request Body Schema:
{
  "type": "object"
}
Responses
201 - Successfully creates a new test account and returns its unique ID.
400 - Returned if the test account already exists or creation fails due to invalid input.
PUT /v2/TestAccounts/password

Update Test Account Password

Updates the password for an existing test account using the provided email address. The password is securely stored in hashed form. **Usage Notes:** - Executes`TestAccount.usp_UpdatePassword`to persist the change. - Passwords must be pre-hashed before submission. - Commonly used when resetting or rotating credentials for test users. - Available only in non-production environments. **Tags:**Test Accounts, Password Management, Security
Parameters
companyId (header) - The unique identifier of the company, provided in the request header. Used to identify the target organization for the password update.
body (body) * - The object containing the test account email and new password hash.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the test account password.
400 - Returned if the user is not found or the update fails.
DELETE /v2/TestAccounts/{email}

Delete Test Account

Permanently removes a test account from the system by its email address. **Usage Notes:** - Executes`TestAccount.usp_DeleteUser`to remove the user from the database. - Cannot be undone; ensure the account is safe to remove. - Commonly used for cleanup after testing cycles. - Audit logs capture all delete operations for accountability. **Tags:**Test Accounts, Deletion, Administration
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
email (path) * - The email address of the test account to delete.
Responses
200 - Successfully deletes the specified test account.
400 - Returned if the account does not exist or deletion fails.
GET /v2/TestAccounts/{testAccountId}/roles

Get Assigned Roles

Retrieves all roles currently assigned to the specified test account within a company. **Usage Notes:** - Executes`TestAccount.usp_ListRolesByUser`to retrieve role data. - Includes both company and funeral home-level roles. - Used to review test user role configurations. - Results are read-only and ordered by context. **Tags:**Test Accounts, Roles, Permissions
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
testAccountId (path) * - The unique ID of the test account.
Responses
200 - Successfully returns assigned roles.
POST /v2/TestAccounts/roles

Add Role Assignment

Assigns a new role to the specified test account within the given funeral home or company context. **Usage Notes:** - Uses`TestAccount.usp_AddRole`stored procedure to persist the assignment. - Allows multiple funeral home contexts per test user. - Audit records are generated for all role additions. - Applicable only in non-production environments. **Tags:**Test Accounts, Roles, Permissions
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
body (body) * - The details of the role assignment, including TestAccountId, RoleId, and FuneralHomeId.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully adds the role to the test account.
400 - Returned if the role assignment already exists or cannot be added.
DELETE /v2/TestAccounts/{testAccountId}/roles/{fhId}/{roleId}

Remove Role Assignment

Removes a previously assigned role from a test account for a specific funeral home or company context. **Usage Notes:** - Uses`TestAccount.usp_RemoveRole`to revoke access. - Removes both role and funeral home linkage if applicable. - Commonly used for test cleanup or environment reset operations. - Audit logs record all role removal actions. **Tags:**Test Accounts, Roles, Permissions
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
testAccountId (path) * - The ID of the test account from which the role should be removed.
fhId (path) * - The funeral home ID where the role is assigned.
roleId (path) * - The role ID to remove.
Responses
200 - Successfully removes the role from the test account.
400 - Returned if the role is not found or cannot be removed.
GET /v2/TestAccounts/exists/{email}

Check If User Exists

Checks whether a test account exists for the specified email address within a company. **Usage Notes:** - Queries the AdvisorUsers table to check for an existing username match. - Useful for validation before creating new test accounts. - Returns`false`if no matching user is found. - Lightweight endpoint for existence checks only. **Tags:**Test Accounts, Validation, Administration
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
email (path) * - The email address to verify.
Responses
200 - Successfully returns whether the user exists.
GET /v2/TestAccounts/email-exists/{email}

Check If Test Account Email Exists

Checks whether a test account with the specified email address exists across all companies. **Usage Notes:** - Queries all test accounts across all companies. - Useful for validation before creating new test accounts to prevent duplicates. - Returns`false`if no matching test account is found. **Tags:**Test Accounts, Validation, Administration
Parameters
companyId (header) - The unique identifier of the company, provided in the request header.
email (path) * - The email address to verify.
Responses
200 - Successfully returns whether the test account email exists.
POST /v2/Tukios/{callId}/Sync

Sync Obituary to Tukios

Parameters
companyId (header) - The ID of the company making the request.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permissions check.
callId (path) * - The unique identifier for the call.
Responses
200 - Returns the sync status after creating or updating the obituary.
POST /v2/Tukios/{callId}/Publish

Publish or Unpublish Obituary on Tukios

Parameters
companyId (header) - The ID of the company making the request.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permissions check.
callId (path) * - The unique identifier for the call.
publish (query) - True to publish, false to unpublish.
Responses
200 - Returns the sync status after publishing or unpublishing.
GET /v2/Tukios/{callId}/Candidates

List candidate family members for the case who can be invited to Tukios.

Sources from`PersonPersonType`filtered to`IsRelationship`entries with usable email addresses, deduped by person, with each candidate marked as already-invited when they appear on the case's active Tukios sync record.
Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
callId (path) *
Responses
200 - OK
POST /v2/Tukios/{callId}/SyncFamily

Sync Family Members to Tukios

Parameters
companyId (header) - The ID of the company making the request.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permissions check.
callId (path) * - The unique identifier for the call.
body (body) * - The family invite request details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successful sync of family members.
GET /v2/Tukios/{callId}/SyncablePhotos

Get syncable photos for the case (used to populate the Sync Photos picker dialog).

Parameters
companyId (header) - The ID of the company making the request.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permissions check.
callId (path) * - The unique identifier for the call.
Responses
200 - Returns the list of attachments eligible for Tukios sync.
POST /v2/Tukios/{callId}/SyncPhotos

Sync Photos to Tukios

Parameters
companyId (header) - The ID of the company making the request.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permissions check.
callId (path) * - The unique identifier for the call.
body (body) - Optional body. When List<long>? TukiosSyncPhotosRequestDto.AttachmentIds is provided, only those attachments are synced; otherwise every eligible attachment is synced.
Request Body Schema:
{
  "oneOf": [
    {
      "nullable": true
    },
    {
      "type": "object"
    }
  ]
}
Responses
200 - Successful sync of photos.
GET /v2/Tukios/{callId}/Donations

Get Cached Donations

Parameters
companyId (header) - The ID of the company making the request.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permissions check.
callId (path) * - The unique identifier for the call.
Responses
200 - Returns the cached donation list.
POST /v2/Tukios/{callId}/Donations/Refresh

Refresh Donations from Tukios

Parameters
companyId (header) - The ID of the company making the request.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permissions check.
callId (path) * - The unique identifier for the call.
Responses
200 - Returns the refreshed donation list.
GET /v2/Tukios/{callId}/Status

Get Sync Status

Parameters
companyId (header) - The ID of the company making the request.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permissions check.
callId (path) * - The unique identifier for the call.
Responses
200 - Returns the current sync status.
GET /v2/Tukios/{callId}/History

Get Sync History

Parameters
companyId (header) - The ID of the company making the request.
selectedFhIdForPermissionsCheck (header) - Optional funeral home ID for permissions check.
callId (path) * - The unique identifier for the call.
Responses
200 - Returns the sync history log entries.
POST /v2/Tukios/Config/Test

Test Tukios Connection. The Tukios API key travels in the request body so it isn't captured in URL-keyed log pipelines (reverse-proxy access logs, App Insights URL trace, browser history, shared URLs).

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Tukios/Config/Branches

Fetch Tukios Branches for a given organization. Body-only credential transport so the API key doesn't show up in URLs.

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Tukios/Config/CoverPhotos

Fetch Tukios Cover Photos. Body-only credential transport.

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
POST /v2/Tukios/Config/Emblems

Fetch Tukios Emblems. Body-only credential transport.

Parameters
companyId (header)
selectedFhIdForPermissionsCheck (header)
body (body) *
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/User/Me

Get Current User Info

Returns lightweight, user-scoped flags loaded once during Blazor app bootstrap so feature gates (cart, order history, distributor-only views) can read them synchronously from UserState. Does not include permissions or roles — those flow through claims and PermissionService.
Responses
200 - User-scoped flags for the signed-in caller (e.g. IsDistributorUser).
GET /v2/Users/All

Get All Users

This method retrieves a list of all users. The result may include security roles based on the `includeSecurityRoles` parameter. If the requesting user has special roles like Zeus or AuroraAdmin, they will see all users; otherwise, the users are filtered by company. Sample patch document for HttpPatch methods is not applicable here.
Parameters
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
includeSecurityRoles (query) - Indicates whether to include security roles in the response.
Responses
200 - Returns a list of users with optional security roles included, based on the permissions of the requesting user.
GET /v2/Users/Corporation

Get Users for Corporation

This method retrieves a list of users associated with the corporation based on the permissions of the requesting user. The result may include security roles depending on the `includeSecurityRoles` parameter. Sample patch document for HttpPatch methods is not applicable here.
Parameters
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
includeSecurityRoles (query) - Indicates whether to include security roles in the response.
Responses
200 - Returns a list of users for the corporation, with optional security roles included.
GET /v2/Users

Get Users

This method retrieves a list of users for a specified company. The result may include security roles based on the `includeSecurityRoles` parameter. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company to retrieve users from.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
includeSecurityRoles (query) - Indicates whether to include security roles in the response.
Responses
200 - Returns a list of users for the specified company, with optional security roles included.
POST /v2/User/LastLoginDate

Post Last Login Date

This method updates the last login date for the currently authenticated user. Sample patch document for HttpPatch methods is not applicable here.
Responses
200 - OK
GET /v2/User/{advisorUserId}

Get User

This method retrieves detailed information about a specific user, including associated advisor user data and optional corporate status. It performs permission checks to ensure the requesting user has the right to view the requested user details. Sample patch document for HttpPatch methods is not applicable here.
Parameters
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
advisorUserId (path) * - The ID of the user to retrieve.
Responses
200 - Returns detailed information about the specified user.
PUT /v2/User/{advisorUserId}

Update User

Updates the details of a user including username, email, and roles. If the username or email is being changed, it checks for uniqueness. If the password is provided, it validates and updates the password for the user. This method also handles changes to user roles and company assignments.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user to update.
body (body) * - The updated user details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The user was successfully updated.
GET /v2/User/{advisorUserId}/HasSecurityRoles

Check if User Has Security Roles

This method checks if a user has any security roles assigned. Used to validate that new users have required security roles.
Parameters
advisorUserId (path) * - The ID of the user to check.
Responses
200 - Returns true if the user has at least one security role assigned, false otherwise.
POST /v2/User

Post User

This method creates a new user with the provided details and handles associated records in multiple databases. It performs comprehensive validation, including checking for existing usernames and emails, and rolls back any changes if an error occurs. Sample patch document for HttpPatch methods is not applicable here.
Parameters
companyId (header) - The ID of the company where the user will be created.
selectedFhIdForPermissionsCheck (header) - The ID of the selected FH for permission checks, if applicable.
body (body) * - The details of the user to create.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the details of the newly created user.
PUT /v2/User/UAM/{advisorUserId}

Update User

Updates the details of a user including username, email, and roles. If the username or email is being changed, it checks for uniqueness. If the password is provided, it validates and updates the password for the user. This method also handles changes to user roles and company assignments.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user to update.
body (body) * - The updated user details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The user was successfully updated.
PUT /v2/User/{advisorUserId}/toggle-status

Toggle User Status

Enables or disables a user account by toggling both the Advisor Master record and the linked client person entry. Requires ManageUsers unless the caller is modifying their own account. **Usage Notes:** - If the target user equals the caller, the request is allowed without extra permissions. - Updates the linked`Person`record’s`Active`flag to stay in sync with the disabled state. - Persists changes in the client, master, and global databases. **Tags:**User Management, Administration
Parameters
selectedFhIdForPermissionsCheck (header) - Optional funeral home identifier used when evaluating `ManageUsers` permissions.
advisorUserId (path) * - Identifier of the advisor user to toggle.
body (body) * - DTO describing the desired disabled state.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully toggles the user’s status across all relevant databases.
PUT /v2/User/{advisorUserId}/update-role

Update User Role

Internal endpoint that updates an advisor user’s role identifier after enforcing appropriate permissions. **Usage Notes:** - Restricted via`[CorporateMethod]`to corporate managers and system administrators. - Requires`ManageUsers`unless the caller is updating themselves. - Corporate managers cannot assign administrative roles (Zeus, AuroraAdmin, etc.). - Corporate managers can only manage users in companies they have access to. **Tags:**User Management, Administration
Parameters
selectedFhIdForPermissionsCheck (header) - Optional funeral home identifier used when performing permission checks.
advisorUserId (path) * - Identifier of the user whose role should be updated.
body (body) * - DTO containing the new advisor user role ID.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the user’s role.
GET /v2/User/{advisorUserId}/FuneralHomes

Get User Funeral Homes

Retrieves a list of funeral homes associated with the user. This includes roles the user has within each funeral home.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user for whom to retrieve funeral homes.
Responses
200 - A list of funeral homes associated with the user.
GET /v2/User/{advisorUserId}/PersonTypes

Get Person Types

Retrieves a list of person types for a user. This method checks if the user exists and has the necessary permissions before fetching the data.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user whose person types are to be retrieved.
Responses
200 - A list of person types associated with the user.
POST /v2/User/PersonTypes/Batch

Get Person Types for multiple users in a single request.

Parameters
companyId (header) - The company ID from the request header.
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
body (body) * - The IDs of the users whose person types are to be retrieved.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - A dictionary mapping each user ID to their list of person type IDs.
POST /v2/User/{advisorUserId}/PersonType/{personTypeId}

Post Person Type

Adds a person type to a user's list of person types. Ensures that the user exists and has the required permissions before performing the update.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user to whom the person type is to be added.
personTypeId (path) * - The ID of the person type to add.
Responses
200 - The person type was successfully added to the user.
DELETE /v2/User/{advisorUserId}/PersonType/{personTypeId}

Delete Person Type

Removes a specific person type from a user's list of person types. The method verifies user existence and permissions before executing the deletion.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user whose person type is to be removed.
personTypeId (path) * - The ID of the person type to delete.
Responses
200 - The person type was successfully deleted from the user.
GET /v2/User/{advisorUserId}/Image

Get Image

Retrieves the profile image for a user. Checks if the user exists and has the necessary permissions before fetching the image. Returns a 404 if no image is found.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user whose image is to be retrieved.
Responses
200 - The user's profile image.
POST /v2/User/{advisorUserId}/Image

Post Image

Updates the profile image for a user. Validates the file size and type before updating the user's profile image in the database.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user for whom the image is to be updated.
body (body) * - The image file to upload.
Request Body Schema:
{
  "file": {}
}
Responses
200 - The user's profile image was successfully updated.
DELETE /v2/User/{advisorUserId}/Image

Delete Image

Deletes the profile image for a user. Ensures that the user exists and has the necessary permissions before performing the deletion.
Parameters
selectedFhIdForPermissionsCheck (header) - Optional header parameter for permission check.
advisorUserId (path) * - The ID of the user whose profile image is to be deleted.
Responses
200 - The user's profile image was successfully deleted.
GET /v2/User/NotificationPreferences

Get Notification Preferences for Current User

Retrieves the current user's notification preferences for web/browser notifications. If no preferences exist, returns default preferences (General and Marketing enabled).
Responses
200 - Returns the user's notification preferences.
PUT /v2/User/NotificationPreferences

Update Notification Preferences for Current User

Updates the current user's notification preferences for web/browser notifications. Creates new preference records if they don't exist, or updates existing ones.
Parameters
body (body) * - The updated notification preferences.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - OK
GET /v2/UserSession/Mine

Returns the current caller's active sessions.

Responses
200 - OK
GET /v2/UserSession

Zeus-only: returns every active session in the system.

Responses
200 - OK
DELETE /v2/UserSession/{sessionId}

Soft-kill a session. The caller may always kill their own sessions; killing someone else's session requires the Zeus role.

Parameters
sessionId (path) *
Responses
200 - OK
GET /v2/Advisor/Vital/CustomFields

Custom Fields

Returns list of Custom Fields matching Company Id specified in request.
Parameters
companyId (header) - Company Id
Responses
200 - List of Custom Fields
POST /v2/Advisor/Vital/CustomField

Create a Custom Field

Creates a Custom Field for Company Id and Funeral Home Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
body (body) * - Custom Field payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
PUT /v2/Advisor/Vital/CustomField/{customFieldId}

Update Case Custom Field

Updates a Custom Field matching Company Id and Custom Field Id in request.
Parameters
companyId (header) - Company id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
customFieldId (path) * - Custom Field Id
body (body) * - Custom Field payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
DELETE /v2/Advisor/Vital/CustomField/{customFieldId}

Delete a Custom Field

Deletes a Custom Field matching Company Id and Custom Field Id specified in request.
Parameters
companyId (header) - Company id
selectedFhIdForPermissionsCheck (header) - Funeral Home Id (for Permissions)
customFieldId (path) * - Custom Field Id
Responses
200 -
GET /v2/Advisor/Vital/FieldFlows

Vital Field Flows

Returns list of Vital Field Flows matching Company Id in request
Parameters
companyId (header) - Company id
Responses
200 - List of Vital Field Flows
GET /v2/Advisor/Vital/FieldFlows/ValidateFilter

Validates whether the given page/section filter exists in all active vital field flows for the company. Returns a list of flow display names that are missing the specified page and/or section.

Parameters
companyId (header) - The ID of the company.
pageName (query) - The page name to check for.
sectionName (query) - The section name to check for within the page.
Responses
200 - List of flow display names that are missing the specified filter.
GET /v2/Advisor/Vital/MasterFieldFlows

Master Field Flows

Returns list of Master Field Flows.
Responses
200 - List of Master Field Flows
GET /v2/Advisor/Vital/FieldFlow/{vitalFieldFlowId}

Get Vital Field Flow

Fetches the vital field flow based on the specified ID within the given company. The `NeedType` is manually mapped from a different database (AdvisorMaster) because it cannot be automatically mapped by AutoMapper.
Parameters
companyId (header) - The ID of the company.
vitalFieldFlowId (path) * - The ID of the vital field flow to retrieve.
Responses
200 - Returns the vital field flow details.
PUT /v2/Advisor/Vital/FieldFlow/{vitalFieldFlowId}

Update a Vital Field Flow

Updates a Vital Field Flow for Company Id, Funeral Home and Vital Field Flow Id/ payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home If (for Permissions)
vitalFieldFlowId (path) * - Vital Field Flow Id
body (body) * - Vital Field payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
DELETE /v2/Advisor/Vital/FieldFlow/{vitalFieldFlowId}

Delete a Vital Field Flow

Delete a Vital Field Flow for Company Id, Funeral Home and Vital Field Flow Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home If (for Permissions)
vitalFieldFlowId (path) * - Vital Field Flow Id
Responses
200 -
GET /v2/Advisor/Vital/MasterFieldFlow/{masterVitalFieldFlowId}

Get Master Vital Flow

Fetches the master vital field flow based on the specified ID from the AdvisorMaster database.
Parameters
masterVitalFieldFlowId (path) * - The ID of the master vital field flow to retrieve.
Responses
200 - Returns the master vital field flow details.
PUT /v2/Advisor/Vital/MasterFieldFlow/{masterVitalFieldFlowId}

Update a Master Field Flow

Update a Master Field Flow matching Master Field Flow Id/ payload specified in request.
Parameters
masterVitalFieldFlowId (path) * - Master Field Flow Id
body (body) * - Master Field Flow payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
DELETE /v2/Advisor/Vital/MasterFieldFlow/{masterVitalFieldFlowId}

Delete a Master Field Flow

Delete a Master Field Flow matching Master Field Flow Id specified in request.
Parameters
masterVitalFieldFlowId (path) * - Master Field Flow Id
Responses
200 -
GET /v2/Advisor/Vital/MasterFieldFlowByNeedTypeId/{needTypeId}

Get Master Field Flow by Need Type

Returns Master Field Flow matching Need Type Id specified in request.
Parameters
needTypeId (path) * - Need Type Id
Responses
200 - Master Field Flow
POST /v2/Advisor/Vital/FieldFlow

Create a Vital Field Flow

Creates a Vital Field Flow for Company Id, Funeral Home and Vital Field Flow payload specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home If (for Permissions)
body (body) * - Vital Field payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Vital Field Flow
POST /v2/Advisor/Vital/MasterFieldFlow

Create a Master Field Flow

Create a Master Field Flow for Master Field Flow payload specified in request.
Parameters
body (body) * - Master Field Flow payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Master Field Flow
GET /v2/Advisor/Vital/Stationery

Stationary Fields

Returns a List of Stationary Fields matching Company Id and Call Id specified in request.
Parameters
companyId (header) - Company Id
callId (query) - Call Id
Responses
200 - List of Stationary Fields
GET /v2/Advisor/Vital/Call/{callId}/GetLocationFromResidenceAddress

Call Residence Location Id

Returns Residence Location Id (or null) matching Company Id and Call Id specified in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - Residence Address Location Id
GET /v2/Advisor/Vital/Call/{callId}/GetResidenceAddress

Get Residence Address

Retrieves the residence address of the deceased or purchaser associated with the specified call. Includes details such as the county. If no address is found, returns null.
Parameters
companyId (header) - The company identifier from the request header.
callId (path) * - The unique identifier for the call.
Responses
200 - The residence address associated with the call, if available.
GET /v2/Advisor/Vital/Call/{callId}

Case Vitals

Returns Vitals associated a Case for Company Id specified in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - New Call Id
PATCH /v2/Advisor/Vital/Call/{callId}

Patch Vitals

Patches Vitals matching Company Id and Call Id using Vitals patch payload specified in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call id
suppressNotification (query) - When true, skips the SignalR notification to the current user. Use only for auto-save operations where the edit originates from the same browser session (e.g., biography page).
body (body) * - Vitals patch payload
Request Body Schema:
{
  "type": "object"
}
Responses
200 -
GET /v2/Advisor/Vital/Call/{callId}/Pages

Vital Pages

Returns list of Vital Pages matching Company Id and Call Id specified in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - List of Vital Pages
GET /v2/Advisor/Vital/Call/{callId}/PageNames

Vital Page Names

Returns list of Vital Page Names matching Company Id and Call Id specified in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - List of Vital Page Names
GET /v2/Advisor/Vital/Call/{callId}/Page/{pageName}

Vital Page by Page Name

Returns Vital Page matching Company Id, Call Id and Page Name specified in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
pageName (path) * - Page Name
Responses
200 - Vital Page
GET /v2/Advisor/Vital/Call/{callId}/PostRequirements

Post Requirements

Returns List of Post Requirements matching Company Id and Call Id specified in request.
Parameters
companyId (header) - Company Id
callId (path) * - Call Id
Responses
200 - List of Post Requirements
GET /v2/Advisor/Vital/LegacyCustomFieldNames

Get Legacy Custom Field Names

Retrieves custom field names for the specified company. If no custom field names are found, a new record is created and returned.
Parameters
companyId (header) - The company identifier from the request header.
Responses
200 - Returns the legacy custom field names for the specified company. If none are found, creates a new record and returns it.
PUT /v2/Advisor/Vital/LegacyCustomFieldNames

Update Legacy Custom Field Names

Updates the legacy custom field names for the specified company. If no record exists, returns 404.
Parameters
companyId (header) - The company identifier from the request header.
body (body) * - The updated legacy custom field names.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the updated legacy custom field names.
GET /v2/Advisor/Vital/DescribeVitals

Describe Vital DTO Fields

Generates metadata and sample patch operations for every property on , including display labels, group names, descriptions, and inferred data types. **Usage Notes:** - Introspects`VitalDto`with reflection and custom attributes. - Sample patch includes up to five representative field edits. - Helpful for API clients seeking dynamic form generation or documentation. **Tags:**Vitals, Metadata, Documentation
Parameters
companyId (header) - Company identifier used to enforce access before generating the schema description.
Responses
200 - Successfully returns the descriptive schema information.
GET /v2/Advisor/Vital/NewCallFlows

Get New Call Flows

Retrieves all new call flow configurations for the specified company, including need type names. **Usage Notes:** - Need type names are populated manually because they originate from Advisor Master. - Results are sorted alphabetically by need type for UI convenience. **Tags:**Vitals, FieldFlows
Parameters
companyId (header) - Company identifier.
Responses
200 - Successfully returns the call flow definitions.
GET /v2/Advisor/Vital/NewCallFlow/{newCallFlowId}

Get New Call Flow

Retrieves a single new call flow definition by its identifier, including the readable need type. **Tags:**Vitals, FieldFlows
Parameters
companyId (header) - Company identifier.
newCallFlowId (path) * - The call flow identifier to fetch.
Responses
200 - Successfully returns the call flow.
PUT /v2/Advisor/Vital/NewCallFlow/{newCallFlowId}

Update New Call Flow

Updates an existing new call flow definition for the company using the supplied DTO. **Tags:**Vitals, FieldFlows
Parameters
companyId (header) - Company identifier.
selectedFhIdForPermissionsCheck (header) - Optional funeral home scope for permission enforcement.
newCallFlowId (path) * - Identifier of the call flow to update.
body (body) * - Updated field flow data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the call flow.
DELETE /v2/Advisor/Vital/NewCallFlow/{newCallFlowId}

Delete a New Call Flow

Delete a New Call Flow for Company Id and New Call Flow Id specified in request.
Parameters
companyId (header) - Company Id
selectedFhIdForPermissionsCheck (header) - Funeral Home If (for Permissions)
newCallFlowId (path) * - New Call Flow Id
Responses
200 -
POST /v2/Advisor/Vital/NewCallFlow

Create New Call Flow

Creates a new call flow configuration for the specified company and need type after ensuring no duplicate exists. **Usage Notes:** - Ensures the DTO’s Company ID matches the request header. - Prevents duplicate need-type flows for a company. **Tags:**Vitals, FieldFlows
Parameters
companyId (header) - Company identifier.
selectedFhIdForPermissionsCheck (header) - Optional funeral home scope for permission enforcement.
body (body) * - Payload describing the new call flow.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Call flow created and returned.
GET /v2/Webhooks

Get Webhook Subscriptions

Retrieves all webhook subscriptions configured for the specified company. Each subscription defines an endpoint that receives event notifications when specific actions occur in the system. **Usage Notes:** - Returns all webhook subscriptions regardless of active status. - Each subscription includes endpoint URL, event types, and authentication settings. - Used to manage and monitor webhook integrations in the system. - Supports filtering by company to ensure proper data isolation. **Tags:**Webhooks, Integration, Events
Parameters
companyId (header) - The unique identifier of the company whose webhook subscriptions are being retrieved.
selectedFhIdForPermissionsCheck (header) - The funeral home ID used to validate that the user has permission to view webhook configurations.
Responses
200 - Successfully returns the list of webhook subscriptions for the specified company.
POST /v2/Webhooks

Create Webhook Subscription

Creates a new webhook subscription for the specified company. The subscription will receive event notifications at the configured endpoint URL when subscribed events occur. **Usage Notes:** - Webhook name and endpoint URL are required fields. - The endpoint URL must be a valid HTTPS URL for security. - Subscription is created with the current user as the creator. - Used to integrate external systems with Solution Center events. **Tags:**Webhooks, Integration, Configuration
Parameters
companyId (header) - The unique identifier of the company for which the webhook subscription is being created.
selectedFhIdForPermissionsCheck (header) - The funeral home ID used to validate that the user has permission to manage webhooks.
body (body) * - The WebhookSubscription object containing the subscription configuration, including name, endpoint URL, and event subscriptions.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully creates and returns the new webhook subscription.
GET /v2/Webhooks/{webhookSubscriptionId}

Get Webhook Subscription

Retrieves detailed information about a specific webhook subscription by its unique identifier. Includes configuration details such as endpoint URL, subscribed events, and security settings. **Usage Notes:** - Returns full subscription details including event subscriptions and authentication configuration. - Used for viewing and editing webhook subscription settings. - Subscription ID must be a valid GUID format. - Supports audit and troubleshooting of webhook configurations. **Tags:**Webhooks, Integration, Configuration
Parameters
selectedFhIdForPermissionsCheck (header) - The funeral home ID used to validate that the user has permission to view webhook configurations.
webhookSubscriptionId (path) * - The unique identifier (GUID) of the webhook subscription to retrieve.
Responses
200 - Successfully returns the webhook subscription details.
PUT /v2/Webhooks/{webhookSubscriptionId}

Update Webhook Subscription

Updates an existing webhook subscription with new configuration settings. Allows modification of endpoint URL, subscribed events, and other subscription properties. **Usage Notes:** - The subscription ID in the URL must match the ID in the request body. - Tracks the user who performed the update in the modification metadata. - Changes take effect immediately for future webhook deliveries. - Used to adjust webhook configurations without recreating subscriptions. **Tags:**Webhooks, Integration, Configuration
Parameters
companyId (header) - Company ID
selectedFhIdForPermissionsCheck (header) - The funeral home ID used to validate that the user has permission to manage webhooks.
webhookSubscriptionId (path) * - The unique identifier (GUID) of the webhook subscription to update.
body (body) * - The updated WebhookSubscription object with modified configuration settings.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates and returns the webhook subscription.
DELETE /v2/Webhooks/{webhookSubscriptionId}

Delete Webhook Subscription

Permanently deletes a webhook subscription from the system. The subscription will no longer receive event notifications. **Usage Notes:** - Deletion is permanent and cannot be undone. - All associated delivery history may be retained for audit purposes. - Subscription will stop receiving events immediately upon deletion. - Used to remove outdated or unused webhook integrations. **Tags:**Webhooks, Integration, Configuration
Parameters
companyId (header) - Company ID
selectedFhIdForPermissionsCheck (header) - The funeral home ID used to validate that the user has permission to manage webhooks.
webhookSubscriptionId (path) * - The unique identifier (GUID) of the webhook subscription to delete.
Responses
200 - Successfully deletes the webhook subscription and returns a confirmation message.
POST /v2/Webhooks/{webhookSubscriptionId}/Test

Send Test Webhook

Sends a test webhook event to the subscription's endpoint URL to verify the configuration is working correctly. The test event includes sample data and allows verification of endpoint accessibility and authentication. **Usage Notes:** - Sends a test event named "Webhook.Test" with sample payload data. - Logs the test delivery for verification and troubleshooting. - Used to validate webhook endpoint configuration before going live. - Test payloads are delivered asynchronously by the webhook delivery service. **Tags:**Webhooks, Testing, Integration
Parameters
selectedFhIdForPermissionsCheck (header) - The funeral home ID used to validate that the user has permission to manage webhooks.
webhookSubscriptionId (path) * - The unique identifier (GUID) of the webhook subscription to test.
Responses
200 - Successfully queues the test webhook for delivery and returns a confirmation message.
GET /v2/Webhooks/Events

Get Webhook Event Definitions

Retrieves all available webhook event definitions in the system. Event definitions describe the types of events that webhooks can subscribe to, including payload structure and metadata. **Usage Notes:** - Returns event definitions with names, descriptions, and payload examples. - Used to discover available events when configuring webhook subscriptions. - Supports filtering by active and implementation status for relevant events. - Event definitions include sample payloads for integration development. **Tags:**Webhooks, Events, Integration
Parameters
selectedFhIdForPermissionsCheck (header) - The funeral home ID used to validate that the user has permission to view webhook configurations.
onlyActive (query) - Optional filter to return only active event definitions. Defaults to `true`.
onlyImplemented (query) - Optional filter to return only implemented event definitions. If `null`, returns all events regardless of implementation status.
Responses
200 - Successfully returns the list of webhook event definitions.
PUT /v2/Webhooks/EventDefinitions/{id}

Update Webhook Event Definition

Updates an existing webhook event definition with new configuration or metadata. Allows modification of event properties such as active status, description, and implementation details. **Usage Notes:** - Requires webhook management permissions to modify event definitions. - Changes affect all subscriptions using this event type. - Tracks the user who performed the update for audit purposes. - Used to maintain and configure available webhook events in the system. **Tags:**Webhooks, Events, Configuration
Parameters
id (path) * - The unique identifier of the webhook event definition to update.
body (body) * - The updated WebhookEventDefinition object with modified configuration.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully updates the event definition and returns the updated object.
POST /v2/Webhooks/Test/{subscriptionId}

Send Test Webhook Event

Sends a test webhook event to a specific subscription's endpoint to verify connectivity and configuration. Returns detailed delivery results including HTTP status codes and response information. **Usage Notes:** - Sends a "Webhook.Test" event with sample payload data. - Returns detailed delivery information including status codes and timing. - Used to verify webhook endpoint is reachable and configured correctly. - Test delivery happens synchronously for immediate feedback. **Tags:**Webhooks, Testing, Integration
Parameters
subscriptionId (path) * - The unique identifier (GUID) of the webhook subscription to test.
Responses
200 - Successfully sends the test webhook and returns delivery results.
POST /v2/Webhooks/TestCustom

Send Custom Test Webhook

Sends a custom test webhook to a specified URL with a selected event type and payload. Allows testing webhook delivery to any endpoint without creating a subscription. **Usage Notes:** - Allows testing webhooks without creating a formal subscription. - Uses the event definition's payload example for the test. - Supports custom target URLs for development and testing environments. - Returns detailed delivery information for troubleshooting. **Tags:**Webhooks, Testing, Integration
Parameters
body (body) * - The TestWebhookRequestDto containing the target URL, event name, and optional secret for testing.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Successfully sends the custom test webhook and returns delivery results.
GET /v2/Webhooks/Subscriptions/{subscriptionId}/History

Get Webhook Delivery History

Retrieves the delivery history for a specific webhook subscription, including success/failure status, timestamps, retry attempts, and response details for each webhook delivery. **Usage Notes:** - Returns detailed delivery logs including timestamps, status codes, and error messages. - Used for monitoring webhook delivery success rates and troubleshooting failures. - Includes retry attempt information for failed deliveries. - Supports audit and compliance tracking of webhook event notifications. **Tags:**Webhooks, Audit, Monitoring
Parameters
companyId (header) - The unique identifier of the company that owns the webhook subscription.
subscriptionId (path) * - The unique identifier (GUID) of the webhook subscription whose delivery history is being retrieved.
Responses
200 - Successfully returns the webhook delivery history.
GET /v2/Whiteboard

Get Whiteboard

Retrieves whiteboard data including calls, events, and tasks within a specified date range. Each call includes associated events and tasks, and profile pictures are included if available.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional header for permissions check.
startDate (query) - The start date for filtering data.
endDate (query) - The end date for filtering data.
Responses
200 - Returns a list of whiteboard data.
GET /v2/Whiteboard/Resources

Get Resource Whiteboard

Retrieves resource whiteboard data including resources associated with events and tasks within a specified date range. Each resource includes associated events and tasks.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - Optional header for permissions check.
startDate (query) - The start date for filtering data.
endDate (query) - The end date for filtering data.
Responses
200 - Returns a list of resource whiteboard data.
GET /v2/Workflow/definitions

Retrieves all workflow definitions for the specified company.

This endpoint returns a list of workflow definitions associated with the given company. Each definition includes its metadata and current active status. Only users with the permission may access this endpoint. **Usage Notes:** - Requires a valid company context (`companyId` header). - Returns inactive definitions as well; consumers can filter client-side if needed.
Parameters
companyId (header) - The ID of the company to retrieve workflow definitions for. Supplied via request header.
Responses
200 - Returns a list of workflow definitions for the specified company.
GET /v2/Workflow/definition/{id}

Retrieves a single workflow definition by its unique identifier.

This endpoint returns details for a specific workflow definition, including its metadata, type, and version. The definition must belong to the specified company. **Usage Notes:** - The definition is searched within the given company context. - Returns `404 Not Found` if the workflow definition is missing or belongs to another company.
Parameters
id (path) * - The unique identifier of the workflow definition.
companyId (header) - The ID of the company to which the definition belongs.
Responses
200 - Returns the workflow definition if found.
PUT /v2/Workflow/definition/{id}

Updates an existing workflow definition.

Allows authorized users to update metadata and properties of an existing workflow definition belonging to the specified company. **Usage Notes:** - Updates `LastModified` automatically to `UtcNow`. - If the record is not found, returns `404 Not Found`.
Parameters
id (path) * - The unique identifier of the workflow definition to update.
companyId (header) - The ID of the company owning the workflow definition.
body (body) * - The WorkflowDefinitionUpdateDto containing updated data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content if the update was successful.
DELETE /v2/Workflow/definition/{id}

Deletes a workflow definition and all related entities.

This endpoint permanently deletes a workflow definition along with all its steps, actions, triggers, transitions, required fields, and role assignments. **Usage Notes:** - This operation permanently removes the workflow and all related data. - Workflows with active instances cannot be deleted.
Parameters
id (path) * - The unique identifier of the workflow definition to delete.
companyId (header) - The ID of the company owning the workflow definition.
Responses
200 - No content if the definition was deleted successfully.
POST /v2/Workflow/definition

Creates a new workflow definition for the specified company.

This endpoint allows authorized users to create a new workflow definition. The newly created definition will be assigned a new GUID and activated by default. **Usage Notes:** - Automatically assigns a new `WorkflowDefinitionId`. - Sets `Active = true` and `DateCreated = UtcNow`. - Returns the created definition via `CreatedAtAction`.
Parameters
companyId (header) - The ID of the company creating the workflow definition.
body (body) * - The WorkflowDefinitionCreateDto object containing the definition details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - A WorkflowDefinitionReadDto representing the created workflow definition.
GET /v2/Workflow/definition/{id}/delete-check

Checks if a workflow definition can be deleted and returns instance counts.

Parameters
id (path) * - The unique identifier of the workflow definition.
companyId (header) - The ID of the company owning the workflow definition.
Responses
200 - Returns the deletion check result.
GET /v2/Workflow/definition/{definitionId}/steps

Retrieves all workflow steps belonging to a specific workflow definition.

Returns a list of workflow steps for a given workflow definition. Each step includes its display order, actions, and triggers if applicable. Requires the permission. **Usage Notes:** - Steps are ordered by `DisplayOrder`. - Returns `404` if the workflow definition cannot be found under the provided `companyId`.
Parameters
definitionId (path) * - The unique identifier of the workflow definition.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns a list of workflow steps for the specified definition.
GET /v2/Workflow/step/{id}

Retrieves a single workflow step by its ID.

Fetches detailed information about a single workflow step, including its parent definition reference. Requires the permission. **Usage Notes:** - Includes the related workflow definition for validation. - Returns `404` if not found or mismatched company context.
Parameters
id (path) * - The unique identifier of the workflow step.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns the workflow step if found.
PUT /v2/Workflow/step/{id}

Updates an existing workflow step.

Allows authorized users to modify an existing workflow step, including its name, display order, and description. The step must belong to a workflow definition under the specified company. **Usage Notes:** - Updates `LastModified` automatically to `UtcNow`. - Returns `404` if the specified step cannot be found in the provided company context.
Parameters
id (path) * - The unique identifier of the workflow step to update.
companyId (header) - The company ID supplied in the request header.
body (body) * - The WorkflowStepUpdateDto containing updated step information.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content if the update was successful.
DELETE /v2/Workflow/step/{id}

Deletes a workflow step permanently.

Removes a workflow step from its definition. This operation permanently deletes the record and all associated triggers and actions linked to the step. **Usage Notes:** - This is a hard delete operation. - Related triggers and actions should be cascaded by the database or EF configuration. - Steps with active workflow instances cannot be deleted until those instances are moved or completed.
Parameters
id (path) * - The unique identifier of the workflow step to delete.
companyId (header) - The company ID supplied in the request header.
Responses
200 - No content if the deletion was successful.
POST /v2/Workflow/definition/{definitionId}/step

Creates a new workflow step under a specific workflow definition.

Allows an authorized user to add a new step to an existing workflow definition. The step is created as active and automatically assigned a display order if applicable. **Usage Notes:** - Sets `Active = true` and `DateCreated = UtcNow`. - Automatically assigns a new `WorkflowStepId`. - Returns the created step via `CreatedAtAction`.
Parameters
definitionId (path) * - The unique identifier of the workflow definition to which the step will belong.
companyId (header) - The company ID supplied in the request header.
body (body) * - The WorkflowStepCreateDto containing step details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - A WorkflowStepReadDto object representing the newly created step.
GET /v2/Workflow/step/{stepId}/roles

Retrieves all roles assigned to a specific workflow step.

Parameters
stepId (path) * - The unique identifier of the workflow step.
companyId (header) - The company identifier from the request header.
Responses
200 - A list of roles assigned to the step.
POST /v2/Workflow/step/{stepId}/role

Assigns a role to a workflow step.

Parameters
stepId (path) * - The unique identifier of the workflow step.
companyId (header) - The company identifier from the request header.
body (body) * - The role assignment data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The created role assignment.
DELETE /v2/Workflow/role/{roleId}

Removes a role assignment from a workflow step.

Parameters
roleId (path) * - The unique identifier of the role assignment to remove.
companyId (header) - The company identifier from the request header.
Responses
200 - No content on success.
GET /v2/Workflow/step/{stepId}/requiredFields

Retrieves all required field configurations for a workflow step.

Parameters
stepId (path) * - The unique identifier of the workflow step.
companyId (header) - The company identifier from the request header.
Responses
200 - A list of required field configurations for the step.
POST /v2/Workflow/step/{stepId}/requiredField

Adds a required field configuration to a workflow step.

Parameters
stepId (path) * - The unique identifier of the workflow step.
companyId (header) - The company identifier from the request header.
body (body) * - The required field configuration data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - The created required field configuration.
PUT /v2/Workflow/requiredField/{fieldId}

Updates a required field configuration.

Parameters
fieldId (path) * - The unique identifier of the required field configuration.
companyId (header) - The company identifier from the request header.
body (body) * - The updated required field configuration data.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content on success.
DELETE /v2/Workflow/requiredField/{fieldId}

Removes a required field configuration from a workflow step.

Parameters
fieldId (path) * - The unique identifier of the required field configuration to remove.
companyId (header) - The company identifier from the request header.
Responses
200 - No content on success.
GET /v2/Workflow/AttachableEntities

Retrieves a list of attachable entities from the client database.

This endpoint scans the current client database model to identify all attachable entities (tables) that can be associated with workflows or metadata. Returns schema and table names for each entity discovered. **Usage Notes:** - This endpoint is marked with`InternalMethodAttribute`, indicating it is restricted to internal system usage. - Entities are filtered to include only public, non-abstract CLR types.
Parameters
companyId (header) - The company ID provided via request header, used to open the client database context.
Responses
200 - Returns a list of attachable entities for the specified company.
GET /v2/Workflow/EntityMetadata

Retrieves all entity metadata definitions from AdvisorMaster.

Returns a collection of entity metadata records that define how entities are displayed and managed within the workflow system. This endpoint is internal and requires elevated privileges. **Usage Notes:** - Use this endpoint for administrative dashboards or entity manager pages. - Includes schema name, display name, and UI visibility flag.
Responses
200 - Returns all available entity metadata records.
POST /v2/Workflow/EntityMetadata

Creates a new entity metadata record.

Allows internal systems or administrative users to define metadata for a new entity, including schema, description, and UI visibility. **Usage Notes:** - The new record is added to `AdvisorMaster.dbo.EntityMetadata`. - Returns via `CreatedAtAction` referencing`Int32)`.
Parameters
body (body) * - The EntityMetadataCreateDto containing metadata details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - A EntityMetadataReadDto object representing the newly created entity metadata.
GET /v2/Workflow/EntityMetadata/{id}

Retrieves a single entity metadata record by its identifier.

Returns details for a specific entity metadata entry, including schema, name, description, and whether it is shown in the UI. **Usage Notes:** - Commonly used by the Entity Manager component to display and edit metadata.
Parameters
id (path) * - The unique identifier of the entity metadata record.
Responses
200 - Returns the entity metadata record if found.
PUT /v2/Workflow/EntityMetadata/{id}

Updates an existing entity metadata record.

Allows modification of an entity metadata�s description and UI visibility settings. The record is identified by its unique ID. **Usage Notes:** - Only `Description` and `ShowInUI` fields are updatable. - Does not modify schema or entity name to preserve data integrity.
Parameters
id (path) * - The ID of the entity metadata record to update.
body (body) * - The EntityMetadataUpdateDto containing updated values.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content if the update was successful.
DELETE /v2/Workflow/EntityMetadata/{id}

Deletes an existing entity metadata record.

Permanently removes a metadata record from the AdvisorMaster database. Intended for internal administrative use only. **Usage Notes:** - This operation is permanent; use with caution. - Typically invoked from internal management tools.
Parameters
id (path) * - The ID of the entity metadata record to delete.
Responses
200 - No content if the record was deleted successfully.
GET /v2/Workflow/step/{stepId}/triggers

Retrieves all workflow triggers belonging to a specific workflow step.

Returns a list of workflow triggers for the given step within a workflow definition. Each trigger defines a condition or event that can initiate a workflow transition or action. Requires the permission. **Usage Notes:** - Includes a validation step ensuring the step belongs to the provided company. - Returns all active and inactive triggers for the step.
Parameters
stepId (path) * - The unique identifier of the workflow step.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns a list of triggers for the specified step.
GET /v2/Workflow/definition/{WorkflowDefinitionId}/triggers

Retrieves all workflow triggers defined within a specific workflow definition.

Returns a list of all triggers associated with any steps under the specified workflow definition. This is a convenience endpoint for administrators needing to review all trigger configurations at the workflow definition level. **Usage Notes:** - Useful for bulk analysis of triggers across all steps within a workflow. - Returns an empty list if no triggers exist.
Parameters
workflowDefinitionId (path) * - The unique identifier of the workflow definition.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns a list of triggers defined for the workflow definition.
GET /v2/Workflow/trigger/{id}

Retrieves details for a specific workflow trigger.

Returns the properties and configuration of a single workflow trigger, including its associated step and workflow definition. Requires the permission. **Usage Notes:** - Includes linked step and definition to validate company ownership.
Parameters
id (path) * - The unique identifier of the workflow trigger.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns the workflow trigger if found.
PUT /v2/Workflow/trigger/{id}

Updates an existing workflow trigger.

Modifies the configuration of a workflow trigger, such as its condition, type, or related metadata. Requires the permission. **Usage Notes:** - Updates `LastModified` automatically to `UtcNow`. - Returns `404` if the trigger cannot be located under the specified company context.
Parameters
id (path) * - The unique identifier of the workflow trigger to update.
companyId (header) - The company ID supplied in the request header.
body (body) * - The WorkflowTriggerUpdateDto containing updated trigger details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content if the update was successful.
DELETE /v2/Workflow/trigger/{id}

Deletes a workflow trigger.

Parameters
id (path) * - The unique identifier of the workflow trigger to delete.
companyId (header) - The company ID supplied in the request header.
Responses
200 - No content if the deletion was successful.
POST /v2/Workflow/step/{stepId}/trigger

Creates a new workflow trigger for a specific step.

Adds a new trigger to a workflow step. Triggers are used to define the events or conditions that start transitions or actions within a workflow. **Usage Notes:** - Assigns a new `WorkflowTriggerId`. - Sets `Active = true` and `DateCreated = UtcNow`. - Returns via `CreatedAtAction` referencing`Int32)`.
Parameters
stepId (path) * - The unique identifier of the workflow step.
companyId (header) - The company ID supplied in the request header.
body (body) * - The WorkflowTriggerCreateDto containing trigger details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - A WorkflowTriggerReadDto representing the created workflow trigger.
GET /v2/Workflow/step/{stepId}/transitions

Retrieves all workflow transitions originating from a specific step.

Returns a list of transitions that start from the specified workflow step. Each transition defines how a workflow moves from one step to another when triggered. **Usage Notes:** - Validates that the step belongs to the current company context. - Returns all transitions, ordered by their creation sequence.
Parameters
stepId (path) * - The unique identifier of the source workflow step.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns a list of transitions for the specified step.
GET /v2/Workflow/transition/{id}

Retrieves details for a specific workflow transition.

Returns metadata for a workflow transition, including source and destination steps. Requires permission. **Usage Notes:** - Includes the linked step and workflow definition for ownership validation. - Useful for reviewing or editing transition properties in UI editors.
Parameters
id (path) * - The unique identifier of the workflow transition.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns the workflow transition if found.
PUT /v2/Workflow/transition/{id}

Updates an existing workflow transition.

Allows modification of a workflow transition, such as its destination step or label. Requires permission. **Usage Notes:** - Updates the transition�s `LastModified` timestamp to `UtcNow`. - Returns `404` if ownership validation fails.
Parameters
id (path) * - The unique identifier of the workflow transition to update.
companyId (header) - The company ID supplied in the request header.
body (body) * - The WorkflowTransitionUpdateDto containing updated details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content if the update was successful.
POST /v2/Workflow/step/{stepId}/transition

Creates a new workflow transition from a specific step.

Defines a transition linking one step to another within a workflow. Transitions are activated by triggers or user actions defined elsewhere in the workflow. **Usage Notes:** - Automatically assigns `WorkflowTransitionId` and sets `Active = true`. - Sets `DateCreated` to `UtcNow`. - Returns via `CreatedAtAction` referencing`Int32)`.
Parameters
stepId (path) * - The unique identifier of the source step.
companyId (header) - The company ID supplied in the request header.
body (body) * - The WorkflowTransitionCreateDto containing transition details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - A WorkflowTransitionReadDto representing the created transition.
DELETE /v2/Workflow/transition/{id}

Parameters
id (path) *
companyId (header)
Responses
200 - OK
POST /v2/Workflow/transition/{transitionId}/execute

Executes a workflow transition for a specific case.

Manually triggers a transition to move a case from its current step to the next step. The transition condition will be evaluated, and the transition will only execute if the condition is met.
Parameters
transitionId (path) * - The unique identifier of the transition to execute.
companyId (header) - The company ID supplied in the request header.
body (body) * - Request containing the case ID and user ID.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content if successful.
GET /v2/Workflow/definition/{id}/validate

Parameters
id (path) *
companyId (header)
Responses
200 - OK
POST /v2/Workflow/case/{caseId}/start

Start a new workflow instance for a case.

Creates a WorkflowInstance, sets the case to the first step, and queues entry actions. The case must not already have an active workflow.
Parameters
caseId (path) * - The case ID to attach the workflow to.
companyId (header) - The company ID from the request header.
body (body) * - Request containing the workflow definition ID to start.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Returns the created workflow instance.
POST /v2/Workflow/case/{caseId}/move

Move a case to the next workflow step via a transition.

Validates the transition, executes exit/entry actions, and updates the case step. The transition condition must be satisfied.
Parameters
caseId (path) * - The case ID to move.
companyId (header) - The company ID from the request header.
body (body) * - Request containing the transition ID to follow.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - Transition successful.
GET /v2/Workflow/case/{caseId}/current

Get the current workflow status for a case.

Returns rich status information including current step, available transitions, and workflow progress.
Parameters
caseId (path) * - The case ID.
companyId (header) - The company ID from the request header.
Responses
200 - Returns the workflow status.
GET /v2/Workflow/case/{caseId}/all

Get all workflow instances for a case (active, completed, and cancelled).

Returns all workflow instances associated with a case, including their status and progress. Useful for cases that may have multiple workflows or to view cancelled/completed workflow history.
Parameters
caseId (path) * - The case ID.
companyId (header) - The company ID from the request header.
Responses
200 - Returns the list of workflow instances.
GET /v2/Workflow/case/{caseId}/history

Get the workflow history/audit trail for a case.

Returns all workflow log entries showing step transitions, actions executed, and status changes.
Parameters
caseId (path) * - The case ID.
companyId (header) - The company ID from the request header.
Responses
200 - Returns the workflow history.
GET /v2/Workflow/instance/{instanceId}/history

Get workflow history/audit trail for a specific workflow instance.

Returns all log entries (transitions, actions, status changes) for the specified workflow instance.
Parameters
instanceId (path) * - The workflow instance ID.
companyId (header) - The company ID from the request header.
Responses
200 - Returns the workflow history.
POST /v2/Workflow/log/{logId}/retry

Force retry a failed or pending workflow action.

Resets the action status to Pending so the background worker will retry execution. Optionally resets the retry count to allow more attempts.
Parameters
logId (path) * - The workflow log ID to retry.
companyId (header) - The company ID from the request header.
resetRetryCount (query) - If true, resets the retry count to 0.
Responses
200 - Action queued for retry.
POST /v2/Workflow/case/{caseId}/cancel

Cancel an active workflow for a case.

Sets the workflow status to Cancelled, clears the case step, and logs the cancellation reason.
Parameters
caseId (path) * - The case ID.
companyId (header) - The company ID from the request header.
body (body) * - Request containing the cancellation reason.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content on success.
POST /v2/Workflow/case/{caseId}/restart

Restart an active workflow for a case.

Resets the workflow instance back to the first step while maintaining the same instance. This is useful when you need to restart a workflow from the beginning.
Parameters
caseId (path) * - The case ID.
companyId (header) - The company ID from the request header.
body (body) * - Request containing the user ID performing the restart.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content on success.
POST /v2/Workflow/instance/{workflowInstanceId}/pause

Pause an active workflow instance.

Pauses an active workflow instance, preventing any further actions from executing until the workflow is resumed. Useful for temporarily halting workflow processing.
Parameters
workflowInstanceId (path) * - The workflow instance ID to pause.
companyId (header) - The company ID from the request header.
body (body) * - Request containing the user ID performing the pause.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content on success.
POST /v2/Workflow/instance/{workflowInstanceId}/resume

Resume a paused or cancelled workflow instance.

Reactivates a paused or cancelled workflow instance, allowing it to continue from where it was stopped.
Parameters
workflowInstanceId (path) * - The workflow instance ID to resume.
companyId (header) - The company ID from the request header.
body (body) * - Request containing the user ID performing the resume.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content on success.
POST /v2/Workflow/instance/{workflowInstanceId}/move-to-step/{stepId}

Move a workflow instance to a specific step (manual override).

Allows administrators to manually override the current step of a workflow instance. This is useful for correcting workflow state or skipping problematic steps. The step must belong to the same workflow definition.
Parameters
workflowInstanceId (path) * - The workflow instance ID.
stepId (path) * - The target step ID to move to.
companyId (header) - The company ID from the request header.
body (body) * - Request containing the user ID and optional reason.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content on success.
GET /v2/Workflow/actiontypes

Retrieves all available workflow action types.

Returns a list of action type definitions that can be assigned to workflow steps. These represent reusable behaviors or operations (e.g., send email, assign user, update status). **Usage Notes:** - Does not require a company context since action types are global. - Used for populating dropdowns or selectors in workflow builders.
Responses
200 - Returns all action types.
GET /v2/Workflow/step/{stepId}/actions

Retrieves all workflow actions for a given step.

Returns a list of actions associated with the specified workflow step. Each action defines a specific behavior that occurs during workflow execution. Requires permission. **Usage Notes:** - Includes ownership validation for the step and company. - Returns active and inactive actions.
Parameters
stepId (path) * - The unique identifier of the workflow step.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns actions for the specified step.
GET /v2/Workflow/definition/{WorkflowDefinitionId}/actions

Retrieves all workflow actions belonging to a specific workflow definition.

Returns a list of actions across all steps within a given workflow definition. Useful for workflow-wide configuration or debugging. **Usage Notes:** - Performs ownership validation for all steps under the definition. - Returns empty list if no actions exist.
Parameters
workflowDefinitionId (path) * - The unique identifier of the workflow definition.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns a list of actions under the definition.
GET /v2/Workflow/action/{id}

Retrieves details for a specific workflow action.

Returns the configuration and metadata of a single workflow action, including its parent step and workflow definition. Requires permission. **Usage Notes:** - Validates ownership by checking linked step and definition. - Useful for detailed action inspection or editing.
Parameters
id (path) * - The unique identifier of the workflow action.
companyId (header) - The company ID supplied in the request header.
Responses
200 - Returns the action if found.
PUT /v2/Workflow/action/{id}

Updates an existing workflow action.

Modifies the configuration or metadata of a workflow action. Requires permission. **Usage Notes:** - Updates `LastModified` to `UtcNow`. - Returns `404` if not found or mismatched ownership context.
Parameters
id (path) * - The unique identifier of the workflow action.
companyId (header) - The company ID supplied in the request header.
body (body) * - The WorkflowActionUpdateDto containing updated action details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - No content if the update was successful.
DELETE /v2/Workflow/action/{id}

Deletes a specific workflow action.

Parameters
id (path) * - The unique identifier of the action to delete.
companyId (header) - The company identifier from the request header.
Responses
200 - No content on success.
POST /v2/Workflow/step/{stepId}/action

Creates a new workflow action under a specific step.

Adds a new action to a workflow step. Actions define the operations performed when a workflow reaches or passes through a given step. **Usage Notes:** - Automatically assigns `WorkflowActionId`. - Sets `Active = true` and `DateCreated = UtcNow`. - Returns via `CreatedAtAction` referencing`Int32)`.
Parameters
stepId (path) * - The unique identifier of the workflow step.
companyId (header) - The company ID supplied in the request header.
body (body) * - The WorkflowActionCreateDto containing action details.
Request Body Schema:
{
  "type": "object"
}
Responses
200 - A WorkflowActionReadDto representing the created workflow action.
GET /v2/Workflow/trigger/types

Retrieves all available workflow trigger types.

Returns a list of trigger type definitions, describing how triggers can initiate workflow actions (e.g., �On Case Posted�, �On Status Change�). Requires permission. **Usage Notes:** - Active trigger types appear before inactive ones. - Used for trigger configuration when defining workflow behavior. - Each record includes a display name, description, and internal identifier.
Responses
200 - Returns a list of trigger types ordered by active status and name.
GET /v2/Workflow/templates

Retrieves all workflow templates.

This endpoint returns a list of all available workflow templates that users can select when creating new workflows. Templates provide pre-configured workflow structures.
Responses
200 - Returns a list of workflow templates.
GET /v2/Workflow/template/{id}

Retrieves a single workflow template by its unique identifier.

This endpoint returns details for a specific workflow template, including its template data (JSON structure of the workflow).
Parameters
id (path) * - The unique identifier of the workflow template.
Responses
200 - Returns the workflow template if found.
GET /v2/Workflow/instances

Get all workflow instances for a company with optional filters.

Returns a list of workflow instances for the company, with optional filtering by status or workflow definition. Includes enriched information such as case number, current step, and available transitions.
Parameters
companyId (header) - The company ID from the request header.
status (query) - Optional status filter (Active, Completed, Cancelled).
workflowDefinitionId (query) - Optional workflow definition ID filter.
Responses
200 - Returns the list of workflow instances.
GET /v2/Workflow/instance/{instanceId}

Get a specific workflow instance by ID.

Returns detailed information about a specific workflow instance including current step, available transitions, and case information.
Parameters
instanceId (path) * - The workflow instance ID.
companyId (header) - The company ID from the request header.
Responses
200 - Returns the workflow instance.
🔧 Try It Out
Token is stored in browser localStorage
Token is stored in browser localStorage

Select an endpoint to try it out

Code