Solution Center 2.0 API

Comprehensive REST API Documentation - Auto-Generated from Code Comments

817
Total Endpoints
69
API Groups
v2
API Version

Getting Started

Authentication

All API endpoints require authentication using a Bearer token obtained from the MATTSEC identity service.

Step 1: Obtain an Access Token

Make a POST request to the MATTSEC token endpoint:

POST {{MATTSEC_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 {{MATTSEC_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: Dec 12, 2025 11:45:09 UTC Refresh

GET /v2/Workflow/case-steps/has-active

Checks if the company has any active workflow definitions.

**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.

**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/Advisor/RecentCases

Get Recent Cases

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.
400 - Returned if the companyId is invalid or the user lacks access to the company.
403 - Returned if the user does not have permission to view cases for this company.
GET /v2/Advisor/CasesByDate

Get Cases by Date Range

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.
400 - Returned if the companyId is invalid or date parameters are malformed.
403 - Returned if the user does not have permission to view cases for this company.
GET /v2/Advisor/Call/{callId}

Get Call Details

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.
400 - Returned if no call with the specified callId exists for the company.
403 - Returned if the user does not have permission to view cases for this company.
POST /v2/Advisor/Call/Create

Create New Call (Case)

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 SCV2.Common.Dtos.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:
{
  "needTypeId": 10,
  "locationId": 10,
  "firstName": "string",
  "lastName": "string",
  "emailAddress": "user@example.com",
  "phoneNumber": "string",
  "placeOfDeathLocationId": 10,
  "shipTrackRemoval": false,
  "dateCreated": "2025-12-12T11:45:09.278Z",
  "lastModified": "2025-12-12T11:45:09.278Z",
  "modifiedBy": 10
}
Responses
200 - Successfully created the new case and returns the call ID and default contract ID.
400 - Returned if the provided data is invalid, required fields are missing, or validation fails.
403 - Returned if the user does not have permission to create cases for this company.
POST /v2/Advisor/Call/ConvertPreneed/{preneedCallId}

Convert Pre-Need Call to At-Need Call

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.
Responses
200 - Successfully converted the pre-need case and returns the new at-need call ID.
400 - Returned if the pre-need call ID is invalid, the funeral home is not found, or company settings are invalid.
403 - Returned if the user does not have permission to convert cases for this company.
GET /v2/Advisor/Call/CheckCaseNumber

Check Case Number Availability

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.
400 - Returned if the case number parameter is null, empty, or contains only whitespace.
403 - Returned if the user does not have permission to access case data for this company.
POST /v2/Advisor/Call/{callId}/Transfer

Transfer Case to Different Location

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 SCV2.Common.Dtos.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:
{
  "targetFhId": 10,
  "keep": []
}
Responses
200 - Successfully transferred the case and returns the call ID.
400 - Returned if the call ID is invalid, the target location is not found, or the target funeral home is invalid.
403 - Returned if the user does not have permission to transfer cases for this company.
GET /v2/Advisor/Call/{callId}/Overview

Get Case Overview

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.
400 - Returned if the callId is invalid or the case is not found.
403 - Returned if the user does not have permission to view case data for this company.
GET /v2/Advisor/Call/{callId}/History

Get Case Posting History

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.
400 - Returned if the call ID is invalid.
403 - Returned if the user does not have permission to view case history for this company.
GET /v2/Advisor/Call/{callId}/ConversionHistory

Get Pre-Need Conversion History

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.
400 - Returned if the call ID is invalid.
403 - Returned if the user does not have permission to view case data for this company.
PUT /v2/Advisor/Call/{callId}/MarkInactive

Mark Case as Inactive

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 - OK
204 - Successfully marked the case as inactive.
400 - Returned if the call is not found.
403 - Returned if the user does not have permission to modify cases for this company.
PUT /v2/Advisor/Call/{callId}/MarkActive

Mark Case as Active

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 - OK
204 - Successfully marked the case as active and cleared lost call notes.
400 - Returned if the call is not found.
403 - Returned if the user does not have permission to modify cases for this company.
PUT /v2/Advisor/Call/{callId}/MarkLost

Mark Case as Lost

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 SCV2.Common.Dtos.LostReasonDto containing the reason the case was lost.
Request Body Schema:
{
  "lostCallReason": "string"
}
Responses
200 - OK
204 - Successfully marked the case as lost and created a reason note.
400 - Returned if the call or lost status lookup is not found.
403 - Returned if the user does not have permission to modify cases for this company.
GET /v2/Advisor/Call/{callId}/NoCost/{contractId}

Get Contract Items Missing Cost

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. 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.
Responses
200 - Successfully returns the list of items missing cost information.
400 - Returned if the companyId, callId, or contractId is invalid.
403 - Returned if the user does not have permission to view contract details for this company.
GET /v2/Advisor/Call/{callId}/SaleDate

Get Contract Sale Date

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.
400 - Returned if the companyId or callId is invalid.
403 - Returned if the user does not have permission to view contract information for this company.
PUT /v2/Advisor/Call/{callId}/SaleDate

Update Contract Sale Date

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 SCV2.Common.Dtos.SaleDateDto object containing the new sale date value. Must include a valid date in the SaleDate property.
Request Body Schema:
{
  "saleDate": "2025-12-12T11:45:09.278Z"
}
Responses
200 - OK
204 - Successfully updated the sale date on the default contract.
400 - Returned if the companyId or callId is invalid, or if no default contract exists for this case.
403 - Returned if the user does not have permission to modify contract information for this company.
404 - Returned if no default contract is found for the specified case.
POST /v2/Advisor/Call/{callId}/PostCall

Mark Case as Posted to Accounting

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.
400 - Returned if the companyId or callId is invalid.
403 - Returned if the user does not have the AllowCallPosting permission for this funeral home, or if the user does not have access to this company.
404 - Returned if the case is not found for the specified company.
POST /v2/Advisor/Call/{callId}/UnPostCall/{wasAdminUnposting}

Mark Case as Unposted (Reverse Posting)

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.
400 - Returned if the companyId or callId is invalid.
403 - Returned if the user does not have the AllowCallPosting permission for this funeral home, or if the user does not have access to this company.
404 - Returned if the case is not found for the specified company.
GET /v2/Advisor/Call/AreRunningAddendumsEnabledForCompany

Check if Running Addendums Enabled for 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.
400 - Returned if the companyId is invalid.
403 - Returned if the user does not have access to this company.
GET /v2/Advisor/Call/{callId}/Disposition

Get Case Disposition

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.
400 - Returned if the companyId or callId is invalid.
403 - Returned if the user does not have permission to view case information for this company.
404 - Returned if the case is not found for the specified company.
PUT /v2/Advisor/Call/{callId}/Disposition

Update Case Disposition

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 SCV2.Common.Dtos.CallDispositionDto object containing the new disposition category ID. Must include a valid DispositionCategoryId value.
Request Body Schema:
{
  "dispositionCategoryId": 10
}
Responses
200 - OK
204 - Successfully updated the disposition for the specified case.
400 - Returned if the companyId or callId is invalid, or if the disposition category ID is not valid.
403 - Returned if the user does not have permission to modify case information for this company.
404 - Returned if the case is not found for the specified company.
PUT /v2/Advisor/Call/{callId}/FinancialDisclaimer

Update Financial Disclaimer

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 SCV2.Common.Dtos.FinancialDisclaimerDto object containing the new financial disclaimer text. Must contain a non-empty FinancialDisclaimer property for the update to occur.
Request Body Schema:
{
  "financialDisclaimer": "string"
}
Responses
200 - OK
204 - Successfully updated the financial disclaimer for the specified case.
400 - Returned if the companyId or callId is invalid.
403 - Returned if the user does not have permission to modify case information for this company.
404 - Returned if the case is not found for the specified company.
GET /v2/Advisor/Call/{callId}/Export

Export Case Data as XML

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.
400 - Returned if the export fails or if the callId is invalid.
403 - Returned if the user does not have permission to export case data for this company.
GET /v2/Advisor/Call/{callId}/Export/Fields

Get Export Field Values for Case

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.
400 - Returned if the export fails or case is not found.
403 - Returned if the user does not have permission to export case data for this company.
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:
{
  "firstName": "string",
  "lastName": "string",
  "city": "string",
  "stateId": 10,
  "ssn": "string",
  "dateOfDeath": "2025-12-12",
  "locationId": 10,
  "caseTypeId": 10,
  "statusId": 10,
  "sourceSystem": 10,
  "needType": 10,
  "posted": "string",
  "caseNumber": "string",
  "nokFirstName": "string",
  "nokLastName": "string",
  "searchBy": "string",
  "fromDate": "2025-12-12",
  "toDate": "2025-12-12"
}
Responses
200 - List of Advanced Case Search Results
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:
{
  "needTypeId": 10,
  "contractDetails": [],
  "vitalInformation": "string",
  "people": []
}
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

Usage Notes: Targets the deprecated `Queues` table used by older workflows. Requires both company access and queued case management permission. Throws SCV2.Common.Exceptions.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 (System.Int32) to remove.
Responses
200 - Successfully deletes the legacy queued case record.
400 - Returned when the specified queue record does not exist.
403 - Returned when the caller lacks `CreateQueuedCase` permissions.
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:
{
  "callId": 10,
  "funeralDirectorPersonId": 10
}
Responses
200 -
GET /v2/Advisor/Call/{callId}/FinancialDisclaimer

Get Financial Disclaimer for 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.
400 - Returned if the companyId or callId is invalid.
403 - Returned if the user does not have permission to view case information for this company.
404 - Returned if the case is not found for the specified company.
GET /v2/Advisor/Call/{callId}/WarningMessage

Get Call Warning Message

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.
400 - Returned if the callId or companyId is invalid.
403 - Returned if the user does not have permission to view case data for this company.
PUT /v2/Advisor/Call/{callId}/WarningMessage

Update Call Warning Message

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 SCV2.Common.Dtos.CallWarningMessageDto object containing the updated warning message text. Can be set to null or empty to clear the warning message.
Request Body Schema:
{
  "value": "string"
}
Responses
200 - Successfully updated the warning message for the specified call.
400 - Returned if the callId is invalid or the call is not found.
403 - Returned if the user does not have permission to update case data for this company.
DELETE /v2/Advisor/Call/{callId}/WarningMessage

Delete Call Warning Message

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.
400 - Returned if the callId is invalid or the call is not found.
403 - Returned if the user does not have permission to update case data for this company.
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:
{
  "pageName": "string",
  "dateAccessed": "2025-12-12",
  "duration": 10
}
Responses
200 -
GET /v2/Advisor/Call/{callId}/Payments

Get Case Payments

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.
400 - Returned if the companyId or callId is invalid.
403 - Returned if the user does not have permission to view payment information for this company.
POST /v2/Advisor/Call/{callId}/Payments

Add Payment (Record Received Payment)

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 SCV2.Common.Dtos.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:
{
  "paymentId": 10,
  "callId": 10,
  "contractId": 10,
  "paymentTypeId": 10,
  "personId": 10,
  "thirdPartyOrganizationId": 10,
  "paymentDate": "2025-12-12",
  "checkNumber": "string",
  "amount": 10,
  "active": false,
  "isTsys": false,
  "dateImported": "2025-12-12T11:45:09.279Z",
  "notes": "string",
  "contractPaymentSourceId": 10
}
Responses
200 - Successfully recorded the payment. Returns the created payment with generated ID.
400 - Returned if the companyId or callId is invalid, or if the case is not found.
403 - Returned if the user does not have permission to create payments for this company.
404 - Returned if the case is not found for the specified company.
GET /v2/Advisor/Call/{callId}/AnticipatedPayments

Get Anticipated Payments for Case

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.
400 - Returned if the companyId or callId is invalid.
403 - Returned if the user does not have permission to view payment information for this company.
POST /v2/Advisor/Call/{callId}/AnticipatedPayments

Create Anticipated Payment

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 SCV2.Common.Dtos.ContractPaymentSourceDto object containing the anticipated payment details. Must include amount, contract ID, and optionally payer information (PersonId or ThirdPartyOrganizationId).
Request Body Schema:
{
  "contractPaymentSourceId": 10,
  "contractId": 10,
  "personId": 10,
  "thirdPartyOrganizationId": 10,
  "amount": 10,
  "coId": 10,
  "dateCreated": "2025-12-12T11:45:09.279Z",
  "lastModified": "2025-12-12T11:45:09.279Z",
  "modifiedBy": 10,
  "notes": "string",
  "payerName": "string",
  "modifiedByName": "string"
}
Responses
200 - Successfully created the anticipated payment. Returns the created payment with generated ID.
400 - Returned if the companyId or callId is invalid, or if the case is not found.
403 - Returned if the user does not have permission to create payments for this company.
404 - Returned if the case is not found for the specified company.
DELETE /v2/Advisor/Call/{callId}/AnticipatedPayments/{paymentId}

Delete Anticipated Payment

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.
400 - Returned if the companyId, callId, or paymentId is invalid, or if the anticipated payment is not found.
403 - Returned if the user does not have permission to delete payments for this company.
404 - Returned if the case or anticipated payment is not found for the specified company.
DELETE /v2/Advisor/Call/{callId}/Payments/{paymentId}

Delete Payment (Soft Delete with Reason)

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.
400 - Returned if the companyId, callId, or paymentId is invalid, if the payment is not found, or if the delete reason is empty or whitespace.
403 - Returned if the user does not have permission to delete payments for this company.
404 - Returned if the case or payment is not found for the specified company.
GET /v2/Advisor/Payments/Invoice

Get Invoice Payments from Trade Firms

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.
403 - Returned if the user does not have ManageInvoicePayments permission for this funeral home.
POST /v2/Advisor/Payments/Invoice

Add Invoice Payment from Trade Firm

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 SCV2.Common.Dtos.NewInvoicePaymentDto object containing the invoice payment details. Must include TradeFirmLocationId, PaymentTypeId, Amount, PaymentDate, and optionally CheckNumber.
Request Body Schema:
{
  "tradeFirmLocationId": 10,
  "paymentTypeId": 10,
  "amount": 10,
  "paymentDate": "2025-12-12T11:45:09.279Z",
  "checkNumber": "string"
}
Responses
200 - Successfully created the invoice payment. Returns the created record.
403 - Returned if the user does not have ManageInvoicePayments permission for this funeral home.
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.
400 - If the invoice payment ID is invalid.
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": "array",
  "items": {
    "$ref": "#/components/schemas/InvoicePaymentPaymentDto"
  }
}
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:
{
  "callId": 10
}
Responses
200 -
GET /v2/Advisor/Call/{callId}/UnusedAllowances

Get All Unused Package Allowances

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.
403 - Returned if the user does not have permission to view allowances for this company.
GET /v2/Advisor/Call/{callId}/UnusedAllowances/{contractId}

Get Unused Allowances for Specific 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.
403 - Returned if the user does not have permission to view allowances for this company.
GET /v2/Advisor/Call/Attachment/{companyId}/{callKey}/{storageKey}

Download Call Attachment File

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 SCV2.Common.Enums.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.
404 - Returned if the attachment file is not found in storage.
GET /v2/Advisor/Call/{callId}/Attachments

Get Call Attachments

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.
400 - Returned if the callId or companyId is invalid.
403 - Returned if the user does not have permission to view attachments for this company.
POST /v2/Advisor/Call/{callId}/Attachment

Upload Call Attachments

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.
body (body)
Request Body Schema:
{
  "files": []
}
Responses
200 - Successfully uploaded all files and returns the list of created attachment records.
400 - Returned if no files were provided, too many files were provided (exceeds max upload count), a zero-length file was received, or the call ID is invalid.
403 - Returned if the user does not have permission to manage attachments for this funeral home or company.
DELETE /v2/Advisor/Call/{callId}/Attachment/{callAttachmentId}

Delete Call Attachment

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.
400 - Returned if the attachment is already deleted or does not belong to the specified call.
403 - Returned if the user does not have ManageCallAttachments permission for this funeral home.
404 - Returned if the attachment is not found.
PUT /v2/Advisor/Call/{callId}/Attachment/{callAttachmentId}/ProfilePicture

Set Call Attachment as Profile Picture

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.
400 - Returned if the attachment is deleted or does not belong to the specified call.
403 - Returned if the user does not have ManageCallAttachments permission for this funeral home.
404 - Returned if the attachment is not found.
DELETE /v2/Advisor/Call/{callId}/Attachment/{callAttachmentId}/ProfilePicture

Unset Call Attachment as Profile Picture

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.
400 - Returned if the attachment is deleted or does not belong to the specified call.
403 - Returned if the user does not have ManageCallAttachments permission for this funeral home.
404 - Returned if the attachment is not found.
GET /v2/Advisor/CaseManagementConfigs

Get Case Management Configurations

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.
403 - Returned if the user lacks permission to access the company.
GET /v2/Advisor/CaseManagementConfig/{caseManagementConfigId}

Get a Specific Case Management Configuration

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.
400 - Returned if the configuration is not found.
403 - Returned if the user does not have access to the company.
PUT /v2/Advisor/CaseManagementConfig/{caseManagementConfigId}

Update a Case Management Configuration

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:
{
  "needTypeId": 10,
  "callTypeId": 10,
  "coId": 10,
  "locationId": 10,
  "active": false,
  "menuItems": []
}
Responses
200 - Configuration successfully updated.
400 - Returned if the configuration does not exist.
403 - Returned if the user lacks the necessary permissions.
DELETE /v2/Advisor/CaseManagementConfig/{caseManagementConfigId}

Delete a Case Management Configuration

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.
400 - Returned if the configuration could not be found.
403 - Returned if the user lacks the necessary permissions.
POST /v2/Advisor/CaseManagementConfig

Create a Case Management Configuration

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:
{
  "needTypeId": 10,
  "callTypeId": 10,
  "coId": 10,
  "locationId": 10,
  "active": false,
  "menuItems": []
}
Responses
200 - Configuration successfully created.
400 - Returned if a duplicate configuration already exists.
403 - Returned if the user lacks the necessary permissions.
GET /v2/Advisor/CaseManagementConfig/Call/{callId}

Get Case Management Configuration by Call

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.
400 - Returned if the call or configuration could not be found.
GET /v2/Advisor/Call/{callId}/ContractTotal

Get Contract Grand Total

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.
403 - Returned if the user does not have permission to view contract data for this company.
GET /v2/Advisor/Call/{callId}/ContractSummary

Get Contract Financial Summary

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.
400 - Returned if no contract details are found for the specified call.
403 - Returned if the user does not have permission to view contract data for this company.
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

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.
403 - Returned if the user does not have permission to view contracts for this company.
POST /v2/Advisor/Call/{callId}/CreateNewContractAddendum

Create Contract Addendum

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.
400 - Returned if the case is not posted, if the company has running addendums enabled and an addendum already exists, or if the companyId or callId is invalid.
403 - Returned if the user does not have the CreateAddendum permission for this funeral home, or if the user does not have access to this company.
404 - Returned if the case is not found for the specified company.
POST /v2/Advisor/Call/{callId}/LockContractAddendum/{contractId}

Lock Contract Addendum

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.
400 - Returned if the addendum has no items (cannot lock an empty addendum), or if the companyId, callId, or contractId is invalid.
403 - Returned if the user does not have the LockAddendum permission for this funeral home, or if the user does not have access to this company.
404 - Returned if the case or addendum is not found for the specified company.
POST /v2/Advisor/Call/{callId}/UnLockContractAddendum/{contractId}

Unlock Contract Addendum

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.
400 - Returned if another unlocked addendum already exists for this case (must lock or delete the unlocked addendum first), or if the companyId, callId, or contractId is invalid.
403 - Returned if the user does not have the LockAddendum permission for this funeral home, or if the user does not have access to this company.
404 - Returned if the case or addendum is not found for the specified company.
POST /v2/Advisor/Call/{callId}/DeleteContractAddendum/{contractId}

Delete Contract Addendum

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.
400 - Returned if the addendum is locked (must unlock before deleting), if any items have been exported, or if the companyId, callId, or contractId is invalid.
403 - Returned if the user does not have the DeleteAddendum permission for this funeral home, or if the user does not have access to this company.
404 - Returned if the case or contract addendum is not found for the specified company.
GET /v2/Advisor/Call/{callId}/Contract/Details

Get All Contract Details for Case

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.
400 - Returned if the companyId or callId is invalid.
403 - Returned if the user does not have permission to view contract information for this company.
GET /v2/Advisor/Call/{callId}/GetLatestContractId

Get Latest Contract ID for Case

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.
400 - Returned if the companyId or callId is invalid, or if no contracts exist for this case.
403 - Returned if the user does not have permission to view contract information for this company.
404 - Returned if no contract is found for the specified case.
GET /v2/Advisor/Call/{callId}/Contract/{contractId}/Details

Get Contract Details for Specific Contract

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.
400 - Returned if the companyId, callId, or contractId is invalid.
403 - Returned if the user does not have permission to view contract information for this company.
GET /v2/Advisor/Call/{callId}/DeletedContractDetails

Get Deleted Contract Details (Audit History)

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.
400 - Returned if the companyId or callId is invalid.
403 - Returned if the user does not have permission to view contract audit information for this company.
POST /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail

Add Item to Contract

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 SCV2.Common.Dtos.UpdateContractDetailDto object containing the item details. Must include LocationItemId, price, quantity, and optionally package information.
Request Body Schema:
{
  "packageLocationId": 10,
  "locationItemId": 10,
  "quantity": 10,
  "price": 10,
  "cost": 10,
  "productNotes": "string",
  "itemCode": "string",
  "engravingInformation": "string",
  "parentContractDetailId": 10
}
Responses
200 - Successfully added the item to the contract. Returns the created contract detail.
400 - Returned if the companyId, callId, or contractId is invalid, or if the item data is invalid.
403 - Returned if the user does not have permission to modify contracts for this company.
404 - Returned if the contract detail is not found after creation (should not occur in normal operation).
POST /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/{contractDetailId}/Engraving

Add Engraving to Contract Item

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 SCV2.Common.Dtos.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:
{
  "engravingInformationId": 10,
  "sourceSystem": "string",
  "advisorCallId": 10,
  "advisorCoId": 10,
  "orderItemId": 10,
  "contractDetailId": 10,
  "engravingLocation": "string",
  "proofRequested": false,
  "acknowledgement": false,
  "materialNumber": "string",
  "font": "string",
  "line1": "string",
  "line2": "string",
  "line3": "string",
  "line4": "string",
  "line1Bigger": false,
  "line2Bigger": false,
  "line3Bigger": false,
  "line4Bigger": false,
  "notes": "string",
  "dateCreated": "2025-12-12T11:45:09.279Z",
  "clipArtFile": "string",
  "clipArtLocation": "string",
  "proofEmailAddress": "string",
  "engravingPackage": "string",
  "buyItNowUserId": 10,
  "engravingInformationContractDetailId": 10
}
Responses
200 - Successfully added engraving information. Returns the created engraving record.
400 - Returned if the EngravingPackage format is invalid (must contain underscore), if the engraving package item is not found, or if the case is invalid.
403 - Returned if the user does not have permission to modify contracts for this company.
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:
{
  "engravingInformationId": 10,
  "sourceSystem": "string",
  "advisorCallId": 10,
  "advisorCoId": 10,
  "orderItemId": 10,
  "contractDetailId": 10,
  "engravingLocation": "string",
  "proofRequested": false,
  "acknowledgement": false,
  "materialNumber": "string",
  "font": "string",
  "line1": "string",
  "line2": "string",
  "line3": "string",
  "line4": "string",
  "line1Bigger": false,
  "line2Bigger": false,
  "line3Bigger": false,
  "line4Bigger": false,
  "notes": "string",
  "dateCreated": "2025-12-12T11:45:09.279Z",
  "clipArtFile": "string",
  "clipArtLocation": "string",
  "proofEmailAddress": "string",
  "engravingPackage": "string",
  "buyItNowUserId": 10,
  "engravingInformationContractDetailId": 10
}
Responses
200 - The updated engraving information.
400 - Bad request if the provided data is invalid.
404 - Not found if the engraving information or associated entities do not exist.
POST /v2/Advisor/Call/{callId}/Contract/{contractId}/Deduction

Add Deduction to Contract

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 SCV2.Common.Dtos.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:
{
  "deductionId": 10,
  "amount": 10,
  "otherName": "string",
  "associatedContractDetailId": 10
}
Responses
200 - Successfully added the deduction to the contract.
400 - Returned if the amount is zero or negative, if the case/contract is not found, if the contract is posted (non-addendum), or if the addendum is locked. Also returned if creating custom deduction without OtherName.
403 - Returned if the user does not have permission to modify contracts for this company.
POST /v2/Advisor/Call/{callId}/Contract/{contractId}/Adjustment

Add Adjustment to Contract

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 SCV2.Common.Dtos.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:
{
  "adjustmentTypeId": 10,
  "amount": 10,
  "description": "string",
  "associatedContractDetailId": 10,
  "mathType": "Microsoft.OpenApi.Any.OpenApiString"
}
Responses
200 - Successfully added the adjustment to the contract.
400 - Returned if the amount is zero, if the case/contract is not found, if the contract is posted (non-addendum), or if the addendum is locked.
403 - Returned if the user does not have permission to modify contracts for this company.
PUT /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/{contractDetailId}

Update Contract Detail Item

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 SCV2.Common.Dtos.UpdateContractDetailDto object containing the updated values. Can include changes to price, quantity, notes, package associations, and other properties.
Request Body Schema:
{
  "packageLocationId": 10,
  "locationItemId": 10,
  "quantity": 10,
  "price": 10,
  "cost": 10,
  "productNotes": "string",
  "itemCode": "string",
  "engravingInformation": "string",
  "parentContractDetailId": 10
}
Responses
200 - Successfully updated the contract detail. Returns the updated item with recalculated values.
400 - Returned if the companyId, callId, contractId, or contractDetailId is invalid.
403 - Returned if the user does not have permission to modify contracts for this company.
404 - Returned if the contract detail is not found after update.
DELETE /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/{contractDetailId}

Delete Contract Detail Item

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.
400 - Returned if the case, contract, or contract detail is not found, if the contract is posted (non-addendum), or if the addendum is locked.
403 - Returned if the user does not have permission to modify contracts for this company.
PUT /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/{contractDetailId}/UpdateCost

Update Contract Detail Cost (Wholesale Price)

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 SCV2.Common.Dtos.UpdateCostDto object containing the new cost value. Must include a valid Cost property.
Request Body Schema:
{
  "cost": 10
}
Responses
200 - Successfully updated the cost for the contract detail.
400 - Returned if the case or contract detail is not found, if the contract is posted (non-addendum), or if the addendum is locked.
403 - Returned if the user does not have permission to modify contracts for this company.
PUT /v2/Advisor/Call/{callId}/Contract/Detail/{contractDetailId}/Notes

Update Contract Detail Notes

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 SCV2.Common.Dtos.UpdateContractDetailDto object containing the new notes value. Only the ProductNotes property is used from this DTO.
Request Body Schema:
{
  "packageLocationId": 10,
  "locationItemId": 10,
  "quantity": 10,
  "price": 10,
  "cost": 10,
  "productNotes": "string",
  "itemCode": "string",
  "engravingInformation": "string",
  "parentContractDetailId": 10
}
Responses
200 - OK
204 - Successfully updated the contract detail notes.
400 - Returned if the contractDetailId is invalid or contract detail is not found.
403 - Returned if the user does not have permission to modify contracts for this company.
POST /v2/Advisor/Call/{callId}/Contract/{contractId}/Detail/AdHoc

Add Custom Ad-Hoc Item to Contract

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 SCV2.Common.Dtos.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:
{
  "itemTypeId": 10,
  "itemCode": "string",
  "itemName": "string",
  "quantity": 10,
  "price": 10,
  "cost": 10,
  "taxable": false
}
Responses
200 - Successfully created the ad-hoc item and added it to the contract. Returns the contract detail.
400 - Returned if Quantity is zero or negative, ItemName is empty, ItemTypeId is invalid, or if the case is not found.
403 - Returned if the user does not have permission to modify contracts for this company.
DELETE /v2/Advisor/Call/{callId}/Contract/{contractId}/Package/{packageLocationId}

Delete Package from Contract

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.
400 - Returned if the case, contract, or package location is not found, if the contract is posted (non-addendum), or if the addendum is locked.
403 - Returned if the user does not have permission to modify contracts for this company.
PUT /v2/Advisor/Call/{callId}/Detail/{contractDetailId}/UpdateEngravingInformationContractDetailId/{engravingInformationContractDetailId}

Update Engraving Information Contract Detail ID

**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 SCV2.Data.AdvisorOrders.Models.EngravingInformation.EngravingInformationContractDetailId.
Responses
200 - OK
204 - The engraving information contract detail ID was updated successfully.
403 - If the caller lacks permission to access the specified company.
404 - If the engraving information record cannot be found for the specified call and contract detail.
DELETE /v2/Advisor/Engraving/{engravingInformationId}

Delete Engraving Information

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 SCV2.Common.Exceptions.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).
400 - Returned when the engraving information record does not exist.
403 - Returned when the caller is not authorized for the company.
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/Call/{callId}/DeathCertificateNote

Get Death Certificate Note

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.
400 - Returned if the callId or companyId is invalid.
403 - Returned if the user does not have permission to view case data for this company.
PUT /v2/Advisor/Call/{callId}/DeathCertificateNote

Update Death Certificate Note

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 SCV2.Common.Dtos.CallDeathCertificateNoteDto object containing the updated death certificate note text.
Request Body Schema:
{
  "value": "string"
}
Responses
200 - Successfully updated the death certificate note.
400 - Returned if the callId is invalid or the call is not found.
403 - Returned if the user does not have permission to update case data for this company.
DELETE /v2/Advisor/Call/{callId}/DeathCertificateNote

Delete Death Certificate Note

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.
400 - Returned if the callId is invalid or the call is not found.
403 - Returned if the user does not have permission to update case data for this company.
GET /v2/Advisor/Call/{callId}/Disclosures

Get Case Contract Disclosures

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.
403 - Returned if the user does not have permission to view disclosures for this company.
POST /v2/Advisor/Call/{callId}/Disclosure

Toggle Case Contract Disclosure

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 SCV2.Common.Dtos.CallContractDisclosureDto containing the disclosure details. If CallContractDisclosureId is 0, adds a new disclosure; otherwise removes the existing one.
Request Body Schema:
{
  "callContractDisclosureId": 10,
  "contractDisclosureId": 10,
  "callId": 10,
  "dateCreated": "2025-12-12T11:45:09.279Z",
  "lastModified": "2025-12-12T11:45:09.279Z",
  "modifiedBy": 10
}
Responses
200 - Successfully added or removed the disclosure.
403 - Returned if the user does not have permission to manage disclosures for this company.
GET /v2/Advisor/Call/{callId}/CallEvents

Get Call Events (Gatherings)

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.
400 - Returned if the callId is invalid or the call is not found.
403 - Returned if the user does not have permission to view case data for this company.
GET /v2/Advisor/Call/{callId}/Events

Get Case Events (Gatherings)

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.
400 - Returned if the callId is invalid.
403 - Returned if the user does not have permission to view events for this company.
GET /v2/Advisor/Call/{callId}/Event/{eventId}

Get Specific Event Details

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.
400 - Returned if the event is not found for the specified call and event IDs.
403 - Returned if the user does not have permission to view events for this company.
PUT /v2/Advisor/Call/{callId}/Event/{eventId}

Update Event (Gathering)

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 SCV2.Common.Dtos.UpdateEventDto object containing the updated event information.
Request Body Schema:
{
  "locationId": 10,
  "eventSubTypeId": 10,
  "date": "2025-12-12",
  "time": "string",
  "endTime": "string",
  "familyTime": "string",
  "program": "string",
  "music": "string",
  "notes": "string",
  "private": false
}
Responses
200 - Successfully updated the event.
400 - Returned if the event is not found, the event sub type is invalid, or the event doesn't belong to the specified call.
403 - Returned if the user does not have permission to update events for this company.
DELETE /v2/Advisor/Call/{callId}/Event/{eventId}

Delete Event (Gathering)

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.
400 - Returned if the event is not found or doesn't belong to the specified call.
403 - Returned if the user does not have permission to delete events for this company.
GET /v2/Advisor/EventTypes/{callId}

Get Available Event Types for Location

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.
400 - Returned if the callId is invalid or the call is not found.
403 - Returned if the user does not have permission to view event types for this company.
POST /v2/Advisor/Call/{callId}/Event

Create Event (Gathering)

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 SCV2.Common.Dtos.CreateEventDto object containing event details including type, date, time, location, and notes.
Request Body Schema:
{
  "eventTypeId": 10,
  "date": "2025-12-12",
  "time": "string",
  "endTime": "string"
}
Responses
200 - Successfully created the event and returns the complete event details.
400 - Returned if the event type is not found, the contract is not found, or validation fails (e.g., attempting to add a second "Arrangement Conference" event).
403 - Returned if the user does not have permission to create events for this company.
GET /v2/Advisor/Call/{callId}/Event/{eventId}/Resources

Get Event Resources

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.
403 - Returned if the user does not have permission to view resources for this company.
GET /v2/Advisor/Location/{locationId}/Events/{eventId}/AvailableResources

Get Available Location Resources for Event Time

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.
403 - Returned if the user does not have permission to view resources for this company.
POST /v2/Advisor/Call/{callId}/Event/{eventId}/Resource/{resourceId}

Assign Resource to Event

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.
400 - Returned if the resource or event is not found, or the resource is inactive.
403 - Returned if the user does not have permission to manage event resources for this company.
DELETE /v2/Advisor/Call/{callId}/Event/{eventId}/Resource/{resourceId}

Remove Resource from Event

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.
400 - Returned if the event is not found or the event does not have the specified resource assigned.
403 - Returned if the user does not have permission to manage event resources for this company.
GET /v2/Advisor/Call/{callId}/Event/{eventId}/Participants

Get Event Participants

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.
400 - Returned if the call is not found.
403 - Returned if the user does not have permission to view participants for this company.
POST /v2/Advisor/Call/{callId}/Event/{eventId}/Participant/{personId}/Role/{personTypeId}

Add Participant to Event

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.
400 - Returned if the event is not found, the person already exists in this role for the event, or the person type is not a valid participant role.
403 - Returned if the user does not have permission to manage event participants for this company.
DELETE /v2/Advisor/Call/{callId}/Event/{eventId}/Participant/{personId}/Role/{personTypeId}

Remove Participant from Event

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.
400 - Returned if the person type is not a participant role or the person doesn't have the specified role for this event.
403 - Returned if the user does not have permission to manage event participants for this company.
GET /v2/Advisor/Call/{callId}/GatheringSettings

Get Gathering Settings

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.
400 - Returned if the callId or companyId is invalid.
403 - Returned if the user does not have permission to view case data for this company.
POST /v2/Advisor/Call/{callId}/GatheringSettings

Update Gathering Settings

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 SCV2.Common.Dtos.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:
{
  "mainService": 10,
  "visitation1": 10,
  "visitation2": 10
}
Responses
200 - Successfully updated the gathering settings and returns the confirmed configuration.
400 - Returned if the callId is invalid or if any specified event IDs do not exist.
403 - Returned if the user does not have permission to update case data for this company.
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:
{
  "callId": 10,
  "personId": 10
}
Responses
200 - OK
201 - Returns the created case miscellaneous sale.
400 - Returns an error if the case sale creation fails.
GET /v2/Advisor/Call/{callId}/Notes

Get Call Notes

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.
400 - Returned if the callId or companyId is invalid.
403 - Returned if the user does not have permission to view notes for this company.
POST /v2/Advisor/Call/{callId}/Note

Create Call Note

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:
{
  "noteValue": "string",
  "showInDigitalWhiteboard": false
}
Responses
200 - Successfully created the note and returns the complete note object.
400 - Returned if the callId is invalid or the note type cannot be found for the company.
403 - Returned if the user does not have permission to create notes for this company.
PUT /v2/Advisor/Call/{callId}/Note/{noteId}

Update Call Note

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:
{
  "noteValue": "string",
  "showInDigitalWhiteboard": false
}
Responses
200 - Successfully updated the note with the provided information.
400 - Returned if the note is not found, is not a call note type, or is not active.
403 - Returned if the user does not have permission to update notes for this company.
DELETE /v2/Advisor/Call/{callId}/Note/{noteId}

Delete Call Note

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.
400 - Returned if the note is not found or is not a call note type.
403 - Returned if the user does not have permission to delete notes for this company.
GET /v2/Advisor/Call/{callId}/EmbalmingNotes

Get Call Embalming Notes

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.
400 - Returned if the callId is invalid or the call is not found.
403 - Returned if the user does not have permission to view case data for this company.
GET /v2/Advisor/Call/{callId}/ProductNotes

Get Call Product Notes

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.
400 - Returned if the callId is invalid or the call is not found.
403 - Returned if the user does not have permission to view case data for this company.
GET /v2/Advisor/Call/{callId}/NotesPrintoutOverview

Get Notes Printout Overview

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.
400 - Returned if the callId is invalid or the case/company is not found.
403 - Returned if the user does not have permission to view case data for this company.
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:
{
  "obituaryTemplateId": 10,
  "obituaryText": "string",
  "familyApproval": false
}
Responses
200 - Successful update of the obituary.
400 - Returns error if the call is not found.
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.
400 - Returns error if the call is not found.
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.
400 - Returns errors if there are configuration or data issues.
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.
400 - Returns errors if there are configuration or data issues.
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.
400 - Returns error if the obituary template does not exist.
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.
400 - Returns errors if the template or obituary info is not found.
POST /v2/Obituary/Generate

Generate Obituary from Prompt

Generates an obituary based on the provided prompt and optionally the original obituary text and model. Returns the generated text in a DTO.
Parameters
body (body) - The request containing prompt details and other parameters.
Request Body Schema:
{
  "prompt": "string",
  "originalObituaryText": "string",
  "model": "string"
}
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.
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

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 SCV2.Common.Dtos.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:
{
  "isOrganization": false,
  "firstName": "string",
  "lastName": "string",
  "maidenName": "string",
  "emailAddress": "user@example.com",
  "phoneNumber": "string",
  "personTypeId": 10,
  "doNotContact": false,
  "noEmailGiven": false,
  "predeceased": false,
  "includeInObituary": false,
  "title": "string",
  "suffix": "string",
  "addressLine1": "string",
  "addressLine2": "string",
  "city": "string",
  "county": "string",
  "stateId": 10,
  "postalCode": "string",
  "countryId": 10,
  "mailingPreference": false,
  "dateCreated": "2025-12-12T11:45:09.279Z",
  "lastModified": "2025-12-12T11:45:09.279Z",
  "modifiedBy": 10,
  "automaticRoles": []
}
Responses
200 - Successfully created the person and associated them with the case.
400 - Returned if the provided data is invalid or required fields are missing.
403 - Returned if the user does not have permission to create persons for this company.
DELETE /v2/Advisor/Call/{callId}/Person/{personId}

Remove Person from Case

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.
400 - Returned if the person ID does not exist for the specified company.
403 - Returned if the user does not have permission to delete persons for this company.
GET /v2/Advisor/Call/{callId}/Person/{personId}

Get Person Details for Editing

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.
400 - Returned if the person ID does not exist for the specified company.
403 - Returned if the user does not have permission to view person data for this company.
PATCH /v2/Advisor/Call/{callId}/Person/{personId}

Update Person Information (Partial)

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": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Successfully applied the patch operations to the person record.
400 - Returned if the patch document is invalid, model validation fails, or the person is not found.
403 - Returned if the user does not have permission to update person data for this company.
GET /v2/Advisor/Call/{callId}/GetPersonByFullName/{customerName}

Get Person ID by Full Name

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.
400 - Returned if no person is found with the specified name in the company database.
403 - Returned if the user does not have permission to access person data for this company.
PATCH /v2/Advisor/Call/{callId}/Person/{personId}/Address

Update Person Address (Partial)

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": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Successfully applied the patch operations to the person's address.
400 - Returned if the patch document is invalid, model validation fails, or the person is not found.
403 - Returned if the user does not have permission to update person data for this company.
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.
404 - Returned if no QuickBooks payment was found with the specified paymentId.
GET /v2/Advisor/Call/{callId}/Selection/Services

Get Available Service Selections for Case

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.
400 - Returned if the companyId or callId is invalid, or if the case is not found.
403 - Returned if the user does not have permission to view service selections for this company.
GET /v2/Advisor/Call/{callId}/Selection/Services/{contractId}

Get Available Service Selections for Specific Contract

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.
400 - Returned if the companyId, callId, or contractId is invalid, or if the case is not found.
403 - Returned if the user does not have permission to view service selections for this company.
GET /v2/Advisor/Call/{callId}/AvailableDeductions

Get Available Deductions for Case

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.
400 - Returned if the companyId or callId is invalid, or if the case is not found.
403 - Returned if the user does not have permission to view deductions for this company.
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/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:
{
  "name": "string",
  "dataType": "Microsoft.OpenApi.Any.OpenApiString",
  "description": "string",
  "options": "string",
  "active": false
}
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:
{
  "name": "string",
  "dataType": "Microsoft.OpenApi.Any.OpenApiString",
  "description": "string",
  "options": "string",
  "active": false
}
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/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.
400 - If the vital field flow is not found.
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:
{
  "active": false,
  "pageData": []
}
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.
400 - If the master vital field flow is not found.
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:
{
  "active": false,
  "pageData": []
}
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:
{
  "needTypeId": 10,
  "callTypeId": 10,
  "coId": 10,
  "locationId": 10,
  "pageData": []
}
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:
{
  "needTypeId": 10,
  "pageData": []
}
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
body (body) - Vitals patch payload
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
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:
{
  "customFieldNameId": 10,
  "field1Name": "string",
  "field2Name": "string",
  "field3Name": "string",
  "field4Name": "string",
  "field5Name": "string"
}
Responses
200 - Returns the updated legacy custom field names.
404 - If no record exists for the specified company.
GET /v2/Advisor/Vital/DescribeVitals

Describe Vital DTO Fields

Usage Notes: Introspects SCV2.Common.Dtos.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.
403 - Returned when the caller cannot access the company.
GET /v2/Advisor/Vital/NewCallFlows

Get New Call Flows

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.
403 - Returned when the caller lacks access to the company.
GET /v2/Advisor/Vital/NewCallFlow/{newCallFlowId}

Get New Call Flow

Tags: Vitals, FieldFlows
Parameters
companyId (header) - Company identifier.
newCallFlowId (path) * - The call flow identifier to fetch.
Responses
200 - Successfully returns the call flow.
400 - Returned when the call flow cannot be found.
403 - Returned when the caller lacks access to the company.
PUT /v2/Advisor/Vital/NewCallFlow/{newCallFlowId}

Update New Call Flow

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:
{
  "active": false,
  "pageData": []
}
Responses
200 - Successfully updates the call flow.
400 - Returned when the call flow cannot be found.
403 - Returned when the caller lacks permission to manage vital flows.
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

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:
{
  "needTypeId": 10,
  "coId": 10,
  "pageData": []
}
Responses
200 - Call flow created and returned.
400 - Returned when validation fails or a flow already exists.
403 - Returned when the caller lacks `ManageVitalFieldFlows` permission.
GET /v2/Advisor/FormFieldMaps

Get Form Field Mappings for PDF Form Population

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.
403 - Returned if the user does not have permission to access form field mappings.
POST /v2/Advisor/ThirdPartyOrganization

Create Third-Party Organization

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 SCV2.Common.Dtos.ThirdPartyOrganizationDto object containing the organization details. Must include organization name and optionally contact information, address, and type.
Request Body Schema:
{
  "thirdPartyOrganizationId": 10,
  "name": "string",
  "organizationTypeId": 10,
  "phone": "string",
  "fax": "string",
  "website": "string",
  "email": "user@example.com",
  "notes": "string",
  "active": false,
  "version": "string",
  "organizationType": "string"
}
Responses
200 - Successfully created the third-party organization. Returns the created entity.
400 - Returned if the organization data is invalid.
403 - Returned if the user does not have permission to create third-party organizations for this company.
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:
{
  "trackingLocationLookupId": 10,
  "callId": 10,
  "metaData": {}
}
Responses
200 -
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:
{
  "miscellaneousReceiptId": 10,
  "locationId": 10,
  "generalLedgerId": 10,
  "cashAccountId": 10,
  "paymentMethodId": 10,
  "description": "string",
  "amount": 10,
  "depositDate": "2025-12-12",
  "coId": 10,
  "createdBy": 10,
  "dateCreated": "2025-12-12T11:45:09.280Z",
  "modifiedBy": 10,
  "lastModified": "2025-12-12T11:45:09.280Z",
  "version": "string",
  "oldSystemId": "string",
  "managementSystemId": "string",
  "dateExported": "2025-12-12T11:45:09.280Z",
  "exportedBy": 10,
  "active": false,
  "exportedByName": "string",
  "modifiedByName": "string",
  "createdByName": "string",
  "generalLedgerName": "string",
  "cashAccountName": "string",
  "locationName": "string",
  "cashAccountRequired": false,
  "receiptNumber": "string"
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - No content, indicating the patch was successful.
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.
400 - Item type not found.
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:
{
  "itemTypeId": 10,
  "masterItemTypeId": 10,
  "name": "string",
  "sortOrder": 10,
  "isProduct": false,
  "isProfessionalService": false,
  "isLegacyItem": false,
  "isResource": false,
  "isAuroraCatalog": false,
  "margin": 10,
  "marginTypeId": 10,
  "glcode": "string",
  "dispositionCategoryId": "Microsoft.OpenApi.Any.OpenApiString",
  "coId": 10,
  "imageMediaGuid": "6dc7d02c-12cf-4ad0-97b2-ff0c4372548f",
  "active": false,
  "nonEnglishText": "string",
  "dateCreated": "2025-12-12T11:45:09.281Z",
  "lastModified": "2025-12-12T11:45:09.281Z",
  "modifiedBy": 10,
  "isTaxable": false,
  "catalogLayout": "Microsoft.OpenApi.Any.OpenApiString",
  "hideInArranger": false,
  "emailContact": "string",
  "lineItemSortOrder": "string",
  "adHocDefaultTaxable": false,
  "allowAdHoc": false,
  "isTileView": false,
  "productCategory": "Microsoft.OpenApi.Any.OpenApiString",
  "belowPhotoParagraphText": "string",
  "heroImageId": "5d68a177-8ad5-416a-94cd-0f9c98834936"
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
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:
{
  "itemTypeId": 10,
  "masterItemTypeId": 10,
  "name": "string",
  "sortOrder": 10,
  "isProduct": false,
  "isProfessionalService": false,
  "isLegacyItem": false,
  "isResource": false,
  "isAuroraCatalog": false,
  "margin": 10,
  "marginTypeId": 10,
  "glcode": "string",
  "dispositionCategoryId": "Microsoft.OpenApi.Any.OpenApiString",
  "coId": 10,
  "imageMediaGuid": "b9b1abee-bcf5-43ba-878c-b879d70539c7",
  "active": false,
  "nonEnglishText": "string",
  "dateCreated": "2025-12-12T11:45:09.281Z",
  "lastModified": "2025-12-12T11:45:09.281Z",
  "modifiedBy": 10,
  "isTaxable": false,
  "catalogLayout": "Microsoft.OpenApi.Any.OpenApiString",
  "hideInArranger": false,
  "emailContact": "string",
  "lineItemSortOrder": "string",
  "adHocDefaultTaxable": false,
  "allowAdHoc": false,
  "isTileView": false,
  "productCategory": "Microsoft.OpenApi.Any.OpenApiString",
  "belowPhotoParagraphText": "string",
  "heroImageId": "7bb5ba69-ab62-46e5-9743-131269cd805c"
}
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": "array",
  "items": {
    "type": "string"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/UpdateItemTypeItemAttributeDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/AttributeValueDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/UpdateItemTypeLocationCodeDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/UpdateItemTypeCallTypeCodeDto"
  }
}
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:
{
  "name": "string",
  "attributeDataTypeId": "Microsoft.OpenApi.Any.OpenApiString"
}
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)
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": "array",
  "items": {
    "$ref": "#/components/schemas/UpdateItemTypeAvailabilityDto"
  }
}
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:
{
  "showroomId": 10,
  "sortOrder": 10,
  "showroomName": "string",
  "active": false,
  "isHidden": false,
  "itemCount": 10
}
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:
{
  "showroom": "string",
  "locations": [],
  "items": []
}
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

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:
{
  "value": 10
}
Responses
200 - Successfully updates the showroom sort order.
400 - Returned when the showroom ID is invalid.
403 - Returned when the caller lacks permission to manage showrooms.
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:
{
  "itemID": 10,
  "masterItemID": 10,
  "itemCode": "string",
  "itemName": "string",
  "itemTypeID": 10,
  "itemTypeName": "string",
  "vendor": "string",
  "status": "string",
  "exteriorMaterial": "string",
  "cost": 10,
  "price": 10,
  "isProduct": false,
  "isProfessionalService": false,
  "isLegacyItem": false,
  "allowVariablePrice": false,
  "isSingleSelectItem": false,
  "imageMediaGuid": "bcae0f05-817b-4a0a-bd3e-02f2993ff1e2",
  "alternateImageGuid": "dc6d3987-8aee-429b-8bd1-95fe43cd29c1",
  "features": "string",
  "itemClassifier": "string",
  "dispositionCategoryID": 10,
  "dispositionOverrideCategoryID": 10,
  "itemSubTypeID": 10,
  "manufacturerID": 10,
  "displayOrder": 10,
  "itemTypeSortOrder": 10
}
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) - List of Location Ids
itemTypeId (query) - Item Type Id
itemCode (query) - Item Code
showroomId (query) - Showroom Id
status (query) - List of Statuses
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) - List of Location Ids
itemTypeId (query) - Item Type Id
itemCode (query) - Item Code
showroomId (query) - Showroom Id
status (query) - List of Statuses
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) - A list of location identifiers to filter by.
itemTypeId (query) - A list of item type identifiers to filter by.
showroomId (query) - A list of showroom identifiers to filter by.
exteriorMaterialTypeId (query) - A list of exterior material type identifiers to filter by.
productCategoryId (query) - A list of product category identifiers to filter by.
manufacturerId (query) - A list of manufacturer identifiers to filter by.
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.
400 - Returns an error message if the item is not 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:
{
  "itemId": 10,
  "masterItemId": 10,
  "itemCode": "string",
  "itemName": "string",
  "shortDesc": "string",
  "features": "string",
  "cost": 10,
  "price": 10,
  "itemTypeId": 10,
  "itemType": "string",
  "itemSubTypeId": 10,
  "manufacturerId": 10,
  "dispositionCategoryId": 10,
  "dispositionCategory": "Microsoft.OpenApi.Any.OpenApiString",
  "dispositionOverrideCategoryId": "Microsoft.OpenApi.Any.OpenApiString",
  "itemClassifier": "string",
  "isSingleSelectItem": false,
  "allowVariablePrice": false,
  "exteriorMaterial": "string",
  "interiorMaterial": "string",
  "tradePricingTiers": [],
  "dateDiscontinued": "2025-12-12",
  "active": false,
  "canEngrave": false,
  "acceptsPanels": false,
  "acceptsCorners": false,
  "cornerGroup": "string",
  "panelItemCode": "string",
  "cornerItemCode": "string",
  "engravingInformation": "string",
  "outOfStock": false,
  "imageMediaGuid": "17641c4f-9547-4dd2-92be-314f0f10768d",
  "alternateImageGuid": "47fdbe50-04c8-41fe-844a-f885947d5f84",
  "imageUrls": {
    "Base": "string",
    "Medium": "string",
    "Thumbnail": "string",
    "Small": "string",
    "Large": "string",
    "Tablet": "string"
  },
  "alternateImageUrls": {
    "Base": "string",
    "Medium": "string",
    "Thumbnail": "string",
    "Small": "string",
    "Large": "string",
    "Tablet": "string"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchCreateItemDto"
  }
}
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:
{
  "itemId": 10,
  "masterItemId": 10,
  "itemCode": "string",
  "itemName": "string",
  "shortDesc": "string",
  "features": "string",
  "cost": 10,
  "price": 10,
  "itemTypeId": 10,
  "itemType": "string",
  "itemSubTypeId": 10,
  "manufacturerId": 10,
  "dispositionCategoryId": 10,
  "dispositionCategory": "Microsoft.OpenApi.Any.OpenApiString",
  "dispositionOverrideCategoryId": "Microsoft.OpenApi.Any.OpenApiString",
  "itemClassifier": "string",
  "isSingleSelectItem": false,
  "allowVariablePrice": false,
  "exteriorMaterial": "string",
  "interiorMaterial": "string",
  "tradePricingTiers": [],
  "dateDiscontinued": "2025-12-12",
  "active": false,
  "canEngrave": false,
  "acceptsPanels": false,
  "acceptsCorners": false,
  "cornerGroup": "string",
  "panelItemCode": "string",
  "cornerItemCode": "string",
  "engravingInformation": "string",
  "outOfStock": false,
  "imageMediaGuid": "33e084fc-cd59-4e35-b122-0836266849ad",
  "alternateImageGuid": "894448bd-d4bf-4450-94db-d462c797e51c",
  "imageUrls": {
    "Base": "string",
    "Medium": "string",
    "Thumbnail": "string",
    "Small": "string",
    "Large": "string",
    "Tablet": "string"
  },
  "alternateImageUrls": {
    "Base": "string",
    "Medium": "string",
    "Thumbnail": "string",
    "Small": "string",
    "Large": "string",
    "Tablet": "string"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/UpdateItemItemAttributeDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/UpdateLocationItemCallTypeCodeDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchUpdatePriceDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchUpdateCostDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchCreateLocationItemPriceDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchDeleteLocationItemPriceDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchUpdateLocationItemPriceDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchCreateLocationItemCostDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchDeleteLocationItemCostDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchUpdateLocationItemCostDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchCreateLocationItemVisibilityDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchCreateLocationItemVisibilityScheduledDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchUpdateLocationItemVisibilityScheduledDto"
  }
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/BatchDeleteLocationItemVisibilityScheduledDto"
  }
}
Responses
200 -
GET /v2/Catalog/Package

Package Overviews

Returns list of Package Overviews.
Parameters
companyId (header) - Company Id
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:
{
  "packageName": "string",
  "description": "string",
  "sortOrder": 10
}
Responses
200 - The ID of the newly created package.
400 - Bad request if the provided data is invalid.
403 - Forbidden if the user does not have permission to manage packages.
404 - Not found if the company or related entities do not exist.
POST /v2/Catalog/Package/Reorder

Reorder Packages

Tags: Catalog, Packages
Parameters
companyId (header) - Company identifier.
body (body) - Collection of package IDs with their new sort orders.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PackageSortUpdateDto"
  }
}
Responses
200 - Successfully saves the new order.
403 - Returned when the caller lacks access to the company.
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.
404 - Returns a `NotFound` response if the package is not 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:
{
  "package": "string",
  "effectiveDate": "2025-12-12T11:45:09.281Z"
}
Responses
200 -
DELETE /v2/Catalog/Package/{packageId}/ScheduledChanges

Delete Scheduled Package Changes

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 - OK
204 - Scheduled changes deleted.
403 - Returned when the caller lacks permission to manage packages.
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.
404 - Returns a `NotFound` response if the company is not 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:
{
  "embedKey": "2aeaffc1-8271-42fd-9353-2efbbb077f9a",
  "coId": 10,
  "expirationDate": "2025-12-12T11:45:09.281Z",
  "fhId": 10,
  "showPrices": false,
  "showrooms": "string",
  "title": "string",
  "catalogs": "string",
  "familyLink": false,
  "horizontalNavigation": false,
  "dateCreated": "2025-12-12T11:45:09.281Z",
  "lastModified": "2025-12-12T11:45:09.281Z",
  "modifiedBy": 10,
  "selectedCatalogs": [],
  "selectedShowrooms": []
}
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:
{
  "embedKey": "206fb944-d217-4ab0-b5e5-13897c54be32",
  "coId": 10,
  "expirationDate": "2025-12-12T11:45:09.282Z",
  "fhId": 10,
  "showPrices": false,
  "showrooms": "string",
  "title": "string",
  "catalogs": "string",
  "familyLink": false,
  "horizontalNavigation": false,
  "dateCreated": "2025-12-12T11:45:09.282Z",
  "lastModified": "2025-12-12T11:45:09.282Z",
  "modifiedBy": 10,
  "selectedCatalogs": [],
  "selectedShowrooms": []
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
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

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

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.
403 - Returned when the caller lacks company access.
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

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

Tags: Catalog, Engraving
Parameters
fileName (path) * - Name of the font file to download.
Responses
200 - Font file returned successfully.
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": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 -
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:
{
  "locationId": 10,
  "buyerFirstName": "string",
  "buyerLastName": "string"
}
Responses
200 - OK
201 - Returns the created miscellaneous sale.
400 - Returns an error if the sale creation fails.
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.
404 - Returns an error if the sale is not found.
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
204 - Indicates that the sale was successfully canceled.
404 - Returns an error if the sale is not found.
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
204 - Indicates that the sale was successfully marked as active.
404 - Returns an error if the sale is not found.
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
204 - Indicates that the sale was successfully marked as posted.
404 - Returns an error if the sale is not found.
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
204 - Indicates that the sale was successfully marked as unposted.
404 - Returns an error if the sale is not found.
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.
404 - Returns an error if the miscellaneous sale is not found.
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.
404 - Returns an error if the miscellaneous sale is not found.
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.
404 - Returns an error if the miscellaneous sale is not found.
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.
404 - Returns an error if the miscellaneous sale is not found.
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:
{
  "paymentId": 10,
  "miscellaneousSaleId": 10,
  "paymentTypeId": 10,
  "paymentDate": "2025-12-12",
  "checkNumber": "string",
  "amount": 10,
  "active": false,
  "isTsys": false,
  "notes": "string"
}
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:
{
  "dateTime": "2025-12-12T11:45:09.282Z"
}
Responses
200 - OK
204 - Indicates that the contract date was successfully updated.
404 - Returns an error if the miscellaneous sale is not found.
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:
{
  "packageLocationId": 10,
  "locationItemId": 10,
  "quantity": 10,
  "price": 10,
  "cost": 10,
  "productNotes": "string",
  "itemCode": "string",
  "engravingInformation": "string",
  "parentContractDetailId": 10
}
Responses
200 - OK
204 - Indicates that the contract detail notes were successfully updated.
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:
{
  "packageLocationId": 10,
  "locationItemId": 10,
  "quantity": 10,
  "price": 10,
  "cost": 10,
  "productNotes": "string",
  "itemCode": "string",
  "engravingInformation": "string",
  "parentContractDetailId": 10
}
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:
{
  "packageLocationId": 10,
  "locationItemId": 10,
  "quantity": 10,
  "price": 10,
  "cost": 10,
  "productNotes": "string",
  "itemCode": "string",
  "engravingInformation": "string",
  "parentContractDetailId": 10
}
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:
{
  "itemTypeId": 10,
  "itemCode": "string",
  "itemName": "string",
  "quantity": 10,
  "price": 10,
  "cost": 10,
  "taxable": false
}
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.
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.
404 - Returns if the task with the specified ID is not found.
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:
{
  "callId": 10,
  "title": "string",
  "detail": "string",
  "activityDate": "2025-12-12",
  "notApplicable": false,
  "naReason": "string",
  "assignedToResourceId": 10
}
Responses
200 - Returns the updated task details.
400 - Returns if the provided data is invalid, the task is not found, or permissions are insufficient.
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:
{
  "callId": 10,
  "title": "string",
  "detail": "string",
  "activityDate": "2025-12-12",
  "assignedToResourceId": 10
}
Responses
200 - Returns the details of the newly created task.
400 - Returns if the provided data is invalid or permissions are insufficient.
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
204 - No content is returned if the operation is successful.
404 - Returns if the task with the specified ID is not found.
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:
{
  "taskId": 10,
  "isComplete": false
}
Responses
200 - OK
204 - No content is returned if the operation is successful.
404 - Returns if the task with the specified ID is not found.
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.
403 - Returns if the requesting user lacks the necessary permissions to view workflow.
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.
400 - Returns if the automated task with the specified ID is not found.
403 - Returns if the requesting user lacks the necessary permissions to view workflow.
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:
{
  "name": "string",
  "description": "string",
  "tasks": [],
  "callTypeIds": [],
  "taskEventId": 10
}
Responses
200 - Returns if the update is successful.
400 - Returns if the automated task is not found or the provided data is invalid.
403 - Returns if the requesting user lacks the necessary permissions to manage workflow.
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.
400 - Returns if the automated task is not found.
403 - Returns if the requesting user lacks the necessary permissions to manage workflow.
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:
{
  "name": "string",
  "description": "string",
  "tasks": [],
  "callTypeIds": [],
  "taskEventId": 10
}
Responses
200 - Returns the details of the newly created automated task.
400 - Returns if the provided data is invalid or permissions are insufficient.
403 - Returns if the requesting user lacks the necessary permissions to manage workflow.
POST /v2/Auth/MATTSEC

Authenticate via MATTSEC

Tags: Authentication, Authorization, MATTSEC 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 MATTSEC database.
Request Body Schema:
{
  "username": "string",
  "password": "string"
}
Responses
200 - Returns a valid SCV2.Common.Dtos.MattsecAuthorizationResponse object indicating whether authentication was successful.
400 - Returned if the request payload is invalid or missing required fields.
POST /v2/Workflow/transition/{transitionId}/execute

Executes a workflow transition for a specific case.

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:
{
  "callId": 10,
  "userId": 10
}
Responses
200 - OK
204 - Transition executed successfully.
400 - Transition condition not met or case not at correct step.
404 - Transition not found.
POST /v2/Workflow/case/{caseId}/start

Start a new workflow instance for a case.

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:
{
  "workflowDefinitionId": "4e5a5394-9c57-4153-9561-9afdaabbd45e",
  "startedByUserId": 10
}
Responses
200 - Returns the created workflow instance.
400 - If the case already has an active workflow or workflow definition is invalid.
403 - If the caller lacks permission to manage workflows.
POST /v2/Workflow/case/{caseId}/move

Move a case to the next workflow step via a transition.

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:
{
  "transitionId": "129973fa-c2b0-4ac6-84d1-d8e2cfaab93e",
  "userId": 10
}
Responses
200 - Transition successful.
400 - If the transition is invalid or condition not met.
403 - If the caller lacks permission to manage workflows.
GET /v2/Workflow/case/{caseId}/current

Get the current workflow status for a case.

Parameters
caseId (path) * - The case ID.
companyId (header) - The company ID from the request header.
Responses
200 - Returns the workflow status.
403 - If the caller lacks permission to view workflows.
404 - If the case is not in an active workflow.
GET /v2/Workflow/case/{caseId}/history

Get the workflow history/audit trail for a case.

Parameters
caseId (path) * - The case ID.
companyId (header) - The company ID from the request header.
Responses
200 - Returns the workflow history.
403 - If the caller lacks permission to view workflows.
POST /v2/Workflow/case/{caseId}/cancel

Cancel an active workflow for a case.

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:
{
  "reason": "string",
  "userId": 10
}
Responses
200 - OK
204 - Workflow cancelled successfully.
403 - If the caller lacks permission to manage workflows.
POST /v2/Workflow/case/{caseId}/restart

Restart an active workflow for a case.

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:
{
  "userId": 10
}
Responses
200 - OK
204 - Workflow restarted successfully.
400 - If no active workflow exists for the case.
403 - If the caller lacks permission to manage workflows.
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.
404 - Not found if the settings for the specified funeral home key do not exist.
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:
{
  "funeralHomeKey": "f6e17f81-38d3-47d1-86d7-96f1c8d851a4",
  "newLeadEmail": "string",
  "finishedUrl": "string",
  "gplFile": "string",
  "cplFile": "string",
  "preneedEmailTemplate": "string",
  "atNeedEmailTemplate": "string"
}
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.
400 - Returns a bad request if no page flow connections with the specified ID exist.
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:
{
  "connectionType": "string",
  "coId": 10,
  "locationId": 10,
  "active": false,
  "flowData": []
}
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:
{
  "connectionType": "string",
  "coId": 10,
  "locationId": 10,
  "active": false,
  "flowData": []
}
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)
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)
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/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.
404 - Not found if the funeral home with the specified key does not exist.
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:
{
  "appStateId": 10,
  "funeralHomeKey": "700b3d44-387d-4a7f-a153-b7ced5a0cc60",
  "callId": 10,
  "preneed": false,
  "token": "string",
  "accessCode": "string",
  "appStateData": "string",
  "dateCreated": "2025-12-12T11:45:09.282Z",
  "lastUpdated": "2025-12-12T11:45:09.282Z",
  "status": "string",
  "converted": false,
  "convertedBy": 10,
  "convertedDate": "2025-12-12T11:45:09.282Z",
  "archived": false,
  "archivedBy": 10,
  "archivedDate": "2025-12-12T11:45:09.282Z",
  "vitalsVerifiedBy": 10,
  "vitalsVerifiedDate": "2025-12-12T11:45:09.282Z",
  "contractVerifiedBy": 10,
  "contractVerifiedDate": "2025-12-12T11:45:09.282Z",
  "caseData": "string",
  "connectionType": "string"
}
Responses
200 - Page Flow Connections
GET /v2/Connections/Case/{token}/Finished

Mark Case As Finished

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:
{
  "funeralHomeKey": "096cf119-9c53-41ca-9e14-a77d75d1a32b",
  "preneed": false,
  "caseData": "string"
}
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)
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.
400 - Returns a bad request if the vital page with the specified name is not 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

**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.
404 - If the case token is invalid or the funeral home cannot be found.
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}/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/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:
{
  "reportId": 10,
  "reportGroupId": 10,
  "reportTypeId": 10,
  "reportName": "string",
  "descr": "string",
  "sortOrder": 10,
  "reportFile": "string",
  "reportLink": "string",
  "mediaServerMediaId": "fcdf383c-8e77-47bc-bddd-7d5c3e730d7e",
  "coId": 10,
  "stateSpecific": false,
  "stateId": 10,
  "deathCertificate": false,
  "masterReportId": 10,
  "active": false,
  "showInArranger": false,
  "isContract": false,
  "showInMa": false,
  "showInDocuSign": false,
  "reportGroup": "string",
  "reportType": "string",
  "previewImage": "string",
  "formData": "string",
  "isChecked": false,
  "lastViewed": "2025-12-12T11:45:09.283Z",
  "lastViewedBy": 10,
  "lastViewedByName": "string"
}
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.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
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.
Parameters
companyId (header) - The ID of the company.
selectedFhIdForPermissionsCheck (header) - The selected ID for permissions check.
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

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.
403 - Returned when the caller lacks access to the company.
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": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Indicates that the report was successfully updated.
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.
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:
{
  "reportPackageId": 10,
  "reportGroupId": 10,
  "reportPackageName": "string",
  "showInArranger": false,
  "coId": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10,
  "reportReportPackages": []
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Indicates that the report package was successfully updated.
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
204 - Indicates that the report package was successfully deleted.
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:
{
  "reportId": 10
}
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:
{
  "reportId": 10,
  "reportGroupId": 10,
  "reportTypeId": 10,
  "reportName": "string",
  "descr": "string",
  "sortOrder": 10,
  "reportFile": "string",
  "reportLink": "string",
  "mediaServerMediaId": "95e9aac5-c71e-463c-892f-f0979a0edec8",
  "coId": 10,
  "stateSpecific": false,
  "stateId": 10,
  "deathCertificate": false,
  "masterReportId": 10,
  "active": false,
  "showInArranger": false,
  "isContract": false,
  "showInMa": false,
  "showInDocuSign": false,
  "reportGroup": "string",
  "reportType": "string",
  "previewImage": "string",
  "formData": "string",
  "isChecked": false,
  "lastViewed": "2025-12-12T11:45:09.283Z",
  "lastViewedBy": 10,
  "lastViewedByName": "string"
}
Responses
200 - Indicates that the report tracking was successful.
POST /v2/Import/CheckDuplicates

Check Service Name Duplicates

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": "array",
  "items": {
    "$ref": "#/components/schemas/ParsedServiceDto"
  }
}
Responses
200 - Successfully returns the list of conflicts (empty when none are found).
POST /v2/Import/ImportServices

Import Services

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:
{
  "services": [],
  "funeralHomeIds": []
}
Responses
200 - Successfully imports all eligible services.
400 - Returned when validation fails (e.g., missing names/types or no valid locations selected).
403 - Returned when the caller lacks `ManageItems` permission.
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

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/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) - An optional array of organization types to filter the results.
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) - An optional array of location types to filter the results.
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) - An optional array of location types to filter the results.
RequirePermission (query) - Optional boolean that allows the method to be queried with or without permissions
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/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:
{
  "adjustmentTypeId": 10,
  "coId": 10,
  "adjustmentName": "string",
  "glcode": "string",
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10,
  "masterId": 10,
  "itemCode": "string",
  "visibleInDropdown": false,
  "isDefaultNegative": false,
  "adjustmentTypeCallTypeCodes": []
}
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:
{
  "lookupId": 10,
  "lookupTypeId": 10,
  "lookupCode": "string",
  "lookupValue": "string",
  "sortOrder": 10,
  "appSpecific": false,
  "coId": 10,
  "masterId": 10,
  "masterSource": "string",
  "active": false,
  "shipTrackCode": "string",
  "trackingLocationUpdateFields": []
}
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:
{
  "lookupId": 10,
  "lookupTypeId": 10,
  "lookupCode": "string",
  "lookupValue": "string",
  "sortOrder": 10,
  "appSpecific": false,
  "coId": 10,
  "masterId": 10,
  "masterSource": "string",
  "active": false,
  "shipTrackCode": "string",
  "trackingLocationUpdateFields": []
}
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:
{
  "adjustmentTypeId": 10,
  "coId": 10,
  "adjustmentName": "string",
  "glcode": "string",
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10,
  "masterId": 10,
  "itemCode": "string",
  "visibleInDropdown": false,
  "isDefaultNegative": false,
  "adjustmentTypeCallTypeCodes": []
}
Responses
200 - Returns an Ok result if the adjustment type is successfully updated.
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:
{
  "lookupId": 10,
  "lookupTypeId": 10,
  "lookupCode": "string",
  "lookupValue": "string",
  "sortOrder": 10,
  "appSpecific": false,
  "coId": 10,
  "masterId": 10,
  "masterSource": "string",
  "active": false
}
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:
{
  "lookupId": 10,
  "lookupTypeId": 10,
  "lookupCode": "string",
  "lookupValue": "string",
  "sortOrder": 10,
  "appSpecific": false,
  "coId": 10,
  "masterId": 10,
  "masterSource": "string",
  "active": false
}
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:
{
  "dispositionTypeId": 10,
  "dispositionValue": "string",
  "dispositionCategoryId": 10,
  "sortOrder": 10,
  "burial": false,
  "cremation": false,
  "coId": 10,
  "masterId": 10,
  "active": false,
  "nonEnglishText": "string",
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10
}
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:
{
  "dispositionTypeId": 10,
  "dispositionValue": "string",
  "dispositionCategoryId": 10,
  "sortOrder": 10,
  "burial": false,
  "cremation": false,
  "coId": 10,
  "masterId": 10,
  "active": false,
  "nonEnglishText": "string",
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10
}
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) - An array of location types to filter the locations (optional).
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:
{
  "locationId": 10,
  "name": "string",
  "phone": "string",
  "email": "string",
  "locationTypeId": 10,
  "locationTypeOtherSpecify": "string",
  "licenseNumber": "string",
  "locationType": "string",
  "mobilePhone": "string",
  "contactPersonId": 10,
  "active": false,
  "fax": "string",
  "inCityLimits": false,
  "notes": "string",
  "physicalAddress": "string",
  "mailingAddress": "string",
  "shippingAddress": "string",
  "billingAddress": "string",
  "pricingTierId": 10
}
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:
{
  "locationId": 10,
  "name": "string",
  "phone": "string",
  "email": "string",
  "locationTypeId": 10,
  "locationTypeOtherSpecify": "string",
  "licenseNumber": "string",
  "locationType": "string",
  "mobilePhone": "string",
  "contactPersonId": 10,
  "active": false,
  "fax": "string",
  "inCityLimits": false,
  "notes": "string",
  "physicalAddress": "string",
  "mailingAddress": "string",
  "shippingAddress": "string",
  "billingAddress": "string",
  "pricingTierId": 10
}
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:
{
  "newspaperId": 10,
  "coId": 10,
  "chargeType": "string",
  "newspaperName": "string",
  "emailAddress": "string",
  "inchWidth": 10,
  "cost": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10
}
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:
{
  "newspaperId": 10,
  "coId": 10,
  "chargeType": "string",
  "newspaperName": "string",
  "emailAddress": "string",
  "inchWidth": 10,
  "cost": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10
}
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:
{
  "serviceTypeId": 10,
  "name": "string",
  "coId": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10
}
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:
{
  "serviceTypeId": 10,
  "name": "string",
  "coId": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10
}
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:
{
  "saleSourceId": 10,
  "saleSourceName": "string",
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10,
  "active": false,
  "coId": 10
}
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:
{
  "saleSourceId": 10,
  "saleSourceName": "string",
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10,
  "active": false,
  "coId": 10
}
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:
{
  "sourceSystemId": 10,
  "name": "string",
  "coId": 10,
  "masterId": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10
}
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:
{
  "sourceSystemId": 10,
  "name": "string",
  "coId": 10,
  "masterId": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10
}
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:
{
  "thirdPartyOrganizationId": 10,
  "name": "string",
  "organizationTypeId": 10,
  "phone": "string",
  "fax": "string",
  "website": "string",
  "email": "user@example.com",
  "notes": "string",
  "active": false,
  "version": "string",
  "organizationType": "string"
}
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:
{
  "thirdPartyOrganizationId": 10,
  "name": "string",
  "organizationTypeId": 10,
  "phone": "string",
  "fax": "string",
  "website": "string",
  "email": "user@example.com",
  "notes": "string",
  "active": false,
  "version": "string",
  "organizationType": "string"
}
Responses
200 - Organization updated successfully.
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:
{
  "resourceTypeId": 10,
  "masterResourceTypeId": 10,
  "resourceTypeName": "string",
  "coId": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10,
  "isFamilyCareAdvisor": false,
  "isPreNeedAdvisor": false,
  "isPersonResource": false,
  "showInArrangement": false
}
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:
{
  "resourceTypeId": 10,
  "masterResourceTypeId": 10,
  "resourceTypeName": "string",
  "coId": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10,
  "isFamilyCareAdvisor": false,
  "isPreNeedAdvisor": false,
  "isPersonResource": false,
  "showInArrangement": false
}
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:
{
  "verseId": 10,
  "verseName": "string",
  "verseTitle": "string",
  "verse": "string",
  "masterId": 10,
  "coId": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.283Z",
  "lastModified": "2025-12-12T11:45:09.283Z",
  "modifiedBy": 10
}
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:
{
  "verseId": 10,
  "verseName": "string",
  "verseTitle": "string",
  "verse": "string",
  "masterId": 10,
  "coId": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.284Z",
  "lastModified": "2025-12-12T11:45:09.284Z",
  "modifiedBy": 10
}
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.
400 - Bad request if the person ID or company ID is invalid.
403 - Forbidden if the user does not have permission to access the person's details.
404 - Not found if the person or company does not exist.
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:
{
  "personId": 10,
  "title": "string",
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "suffix": "string",
  "nickName": "string",
  "maidenName": "string",
  "ssn": "string",
  "homePhone": "string",
  "workPhone": "string",
  "mobilePhone": "string",
  "email": "user@example.com",
  "doNotEmail": false,
  "doNotMail": false,
  "noEmailGiven": false,
  "deceased": false,
  "personStatusId": 10,
  "dateOfBirth": "2025-12-12",
  "employer": "string",
  "active": false,
  "managementSystemId": "string",
  "spouseName": "string",
  "notes": "string",
  "fax": "string",
  "homePhoneExt": "string",
  "workPhoneExt": "string",
  "mobilePhoneExt": "string",
  "birthCity": "string",
  "birthStateId": 10,
  "showOnArrangement": false,
  "birthCountryId": 10,
  "includeInObituary": false,
  "doNotContact": false,
  "isOrganization": false,
  "address": "string",
  "personTypeIds": []
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Indicates successful patch.
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:
{
  "personId": 10,
  "title": "string",
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "suffix": "string",
  "nickName": "string",
  "maidenName": "string",
  "ssn": "string",
  "homePhone": "string",
  "workPhone": "string",
  "mobilePhone": "string",
  "email": "user@example.com",
  "doNotEmail": false,
  "doNotMail": false,
  "noEmailGiven": false,
  "deceased": false,
  "personStatusId": 10,
  "dateOfBirth": "2025-12-12",
  "employer": "string",
  "active": false,
  "managementSystemId": "string",
  "spouseName": "string",
  "notes": "string",
  "fax": "string",
  "homePhoneExt": "string",
  "workPhoneExt": "string",
  "mobilePhoneExt": "string",
  "birthCity": "string",
  "birthStateId": 10,
  "showOnArrangement": false,
  "birthCountryId": 10,
  "includeInObituary": false,
  "doNotContact": false,
  "isOrganization": false,
  "address": "string",
  "personTypeIds": []
}
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": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Indicates successful patch.
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.
400 - If the manufacturer is not found.
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:
{
  "mainContactPersonId": 10,
  "name": "string",
  "phone": "string",
  "fax": "string",
  "website": "string",
  "email": "string",
  "orderEmail": "string",
  "orderUrl": "string",
  "accountNumber": "string",
  "notes": "string",
  "active": false,
  "glcode": "string"
}
Responses
200 - If the manufacturer is successfully updated.
400 - If the manufacturer is not found.
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:
{
  "mainContactPersonId": 10,
  "name": "string",
  "phone": "string",
  "fax": "string",
  "website": "string",
  "email": "string",
  "orderEmail": "string",
  "orderUrl": "string",
  "accountNumber": "string",
  "notes": "string",
  "active": false,
  "glcode": "string"
}
Responses
200 - Returns the newly created manufacturer.
400 - If there is an error creating the 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.
404 - If the address is not found.
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:
{
  "addressId": 10,
  "address1": "string",
  "city": "string",
  "aptLine": "string",
  "stateId": 10,
  "state": "string",
  "countyId": 10,
  "county": "string",
  "townshipId": 10,
  "township": "string",
  "countryId": 10,
  "country": "string",
  "zip": "string"
}
Responses
200 - If the address is successfully updated.
400 - If the manufacturer or address is not found.
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.
400 - If the manufacturer or address is not found.
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.
400 - Bad request if the page flow is not found.
403 - Forbidden if the user does not have permission to access 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:
{
  "needTypeId": 10,
  "basedOnPageFlowId": 10,
  "callTypeId": 10,
  "coId": 10,
  "locationId": 10,
  "active": false,
  "flowData": []
}
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:
{
  "needTypeId": 10,
  "basedOnPageFlowId": 10,
  "callTypeId": 10,
  "coId": 10,
  "locationId": 10,
  "active": false,
  "flowData": []
}
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)
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)
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.
400 - Bad request if the page flow is not found.
403 - Forbidden if the user does not have permission to access 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:
{
  "needTypeId": 10,
  "basedOnPageFlowId": 10,
  "callTypeId": 10,
  "coId": 10,
  "locationId": 10,
  "active": false,
  "flowData": []
}
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:
{
  "needTypeId": 10,
  "basedOnPageFlowId": 10,
  "callTypeId": 10,
  "coId": 10,
  "locationId": 10,
  "active": false,
  "flowData": []
}
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)
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)
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/Advisor/PersonRequirement

Get Person Data Requirements Configuration

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.
403 - Returned if the user does not have permission to view settings for this company.
POST /v2/Advisor/PersonRequirement

Save Person Data Requirements Configuration

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 SCV2.Common.Dtos.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": "array",
  "items": {
    "$ref": "#/components/schemas/PersonRequirementDto"
  }
}
Responses
200 - Successfully saved the person requirements configuration.
403 - Returned if the user does not have permission to modify settings for this company.
GET /v2/Advisor/PersonRequirement/AvailableFields

Get Available Fields for Person Requirements

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.
403 - Returned if the user does not have permission to access settings for this company.
GET /v2/Export

Get Previous Exports

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.
403 - Returned if the user does not have permission to view export information.
POST /v2/Export

Perform Export

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 SCV2.Common.Dtos.ExportViewModelDto containing export parameters such as date range, export type, and output preferences.
Request Body Schema:
{
  "selectedFuneralHomes": [],
  "exportTypeId": 10,
  "markExported": false,
  "startDate": "2025-12-12",
  "endDate": "2025-12-12",
  "selectedExport": "string"
}
Responses
200 - Successfully returns an Excel file containing exported data.
400 - Returned if the export type or parameters are invalid.
403 - Returned if the user does not have permission to perform exports.
GET /v2/Export/{callId}/CallHistory

Get Call Export Data

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.
204 - Returned if no export data exists for the given call.
403 - Returned if the user does not have permission to view export data.
POST /v2/Export/ResetCaseItem

Reset Export Line

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:
{
  "callId": 10,
  "contractDetailId": 10,
  "paymentId": 10,
  "name": "string",
  "type": "string",
  "dateExported": "2025-12-12",
  "exportedBy": "string"
}
Responses
200 - Returned when the export line is successfully reset.
400 - Returned if the record does not belong to the specified company or call.
403 - Returned if the user does not have permission to reset exports.
POST /v2/Export/Reset

Reset Exports

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 SCV2.Common.Dtos.ExportReset object containing export type, export date, and the list of funeral home IDs to reset.
Request Body Schema:
{
  "exportDate": "2025-12-12",
  "exportType": "Microsoft.OpenApi.Any.OpenApiString",
  "funeralHomeIds": []
}
Responses
200 - OK
204 - Indicates that export data was successfully reset. No content is returned.
403 - Returned if the user does not have permission to perform export resets.
GET /v2/Export/ExportTypes

Get Export Types

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

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.
403 - Returned if the user does not have access to the specified company.
PUT /v2/Export/UpdateGeneralLedgerAccount

Update General Ledger Account

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 SCV2.Common.Dtos.UpdateGlDto containing details about the update type, target key ID, and new GL code.
Request Body Schema:
{
  "updateType": "string",
  "keyId": 10,
  "glCode": "string",
  "isCodeInvalid": false
}
Responses
200 - OK
204 - Successfully updates the GL code and returns no content.
400 - Returned if the provided ID is invalid or the update type is not recognized.
403 - Returned if the user lacks permission to modify the selected entity type.
POST /v2/Export/UpdateCallTable

Update Call Table

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 SCV2.Common.Dtos.ExportItemDto containing the call ID and relevant export details.
Request Body Schema:
{
  "type": "string",
  "caseNumber": "string",
  "decedentName": "string",
  "locationName": "string",
  "itemName": "string",
  "totalAmount": 10,
  "isSelected": false,
  "releventDate": "2025-12-12T11:45:09.284Z",
  "isValid": false,
  "validationMessages": [],
  "existingCustomer": "string",
  "existingCustomerId": "string",
  "contractItems": [],
  "taxMapping": "string",
  "callID": 10
}
Responses
200 - Successfully marks the call as exported.
404 - Returned if the specified call ID does not exist in the database.
POST /v2/Export/UpdatePaymentTable

Update Payment Table

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 SCV2.Common.Dtos.ExportPaymentDto containing the payment ID and related export data.
Request Body Schema:
{
  "caseNumber": "string",
  "decedentName": "string",
  "locationName": "string",
  "relevantDate": "2025-12-12T11:45:09.284Z",
  "isValid": false,
  "isSelected": false,
  "validationMessages": [],
  "existingCustomerId": "string",
  "existingCustomer": "string",
  "amount": 10,
  "paymentTypeId": 10,
  "paymentType": "Microsoft.OpenApi.Any.OpenApiString",
  "paymentId": 10,
  "checkNumber": "string",
  "amountFormatted": "string"
}
Responses
200 - Successfully marks the payment as exported.
404 - Returned if the payment is not found in the database.
POST /v2/Export/UpdateQuickbooksExportAuditTable

Update QuickBooks Export Audit

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 SCV2.Common.Dtos.QbExportAuditDto containing export metadata, including QuickBooks object ID, export type, and success status.
Request Body Schema:
{
  "exportType": "Microsoft.OpenApi.Any.OpenApiString",
  "callId": 10,
  "paymentId": 10,
  "contractId": 10,
  "isSuccessful": false,
  "errorMessage": "string",
  "quickbooksObjectID": 10
}
Responses
200 - Successfully creates a new QuickBooks export audit entry.
400 - Returned if the provided export data is invalid or inconsistent with related entities.
PUT /v2/Export/AddQuickbooksTaxCodeMapping

Add QuickBooks Tax Code Mapping

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 SCV2.Common.Dtos.QuickbooksTaxCodeMappingDto containing the tax rate ID and QuickBooks tax code.
Request Body Schema:
{
  "taxRateID": 10,
  "quickbooksTaxCode": 10
}
Responses
200 - Successfully updates the tax rate record with the provided QuickBooks tax code.
400 - Returned if the specified tax rate ID does not exist.
GET /v2/Export/GetExistingInvoiceExports

Get Existing Invoice Exports

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.
403 - Returned if the user does not have permission to access the specified company.
GET /v2/Export/SearchPayments

Search Payments for Export

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) - A list of location IDs used to limit the search scope.
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.
403 - Returned if the user does not have access to the specified company.
GET /v2/Export/SearchAddendums

Search Addendums for Export

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) - A list of location IDs to filter addendum contracts by location.
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.
403 - Returned if the user lacks permission to access company or location data.
GET /v2/Export/GetDataForPayPalInvoice/{callId}

Get Data for PayPal Invoice

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.
404 - Returned if the specified call cannot be found or contains no valid contract data.
GET /v2/Export/SearchExports

Search Contracts for Export

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) - The list of location IDs included in the search filter.
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.
403 - Returned if the user lacks permission to access the specified company or data type.
GET /v2/Company

Get Company

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.
403 - Returned if the user does not have permission to access the specified company.
PATCH /v2/Company

Patch Company

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 Microsoft.AspNetCore.JsonPatch.JsonPatchDocument`1 containing field-level modifications.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Successfully updates the specified company.
400 - Returned if the patch document is invalid or fails validation checks.
422 - Returned if the user lacks permissions for the specified company.
GET /v2/Companies

Get All Companies

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/Company/{companyId}/SecurityRoles

Get Company Security Roles

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.
403 - Returned if the user lacks permission to access company role data.
GET /v2/Company/SecurityRoles

Get Security 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.
403 - Returned if the user does not have permission to view role data.
GET /v2/Company/{companyId}/FuneralHomes

Get Company Funeral Homes

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.
403 - Returned if the user does not have permission to access the company or its data.
GET /v2/Company/FuneralHomes

Get Funeral Homes

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.
403 - Returned if the user lacks permission to access the specified company.
GET /v2/Company/FuneralHomeKey

Get Funeral Home Key

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

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.
403 - Returned if the user lacks permission to view any associated funeral homes.
GET /v2/Company/MyCompaniesWithFuneralHomes

Get User Companies and Funeral Homes

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

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 SCV2.Common.Exceptions.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.
400 - Returned if the funeral home ID is invalid or not found under the user’s companies.
403 - Returned if the user lacks access to the specified funeral home or company.
PATCH /v2/Company/FuneralHome/{funeralHomeId}

Patch Funeral Home

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 Microsoft.AspNetCore.JsonPatch.JsonPatchDocument`1 describing the field updates to apply.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Indicates the funeral home was successfully updated.
400 - Returned if the funeral home ID is invalid or the patch fails validation.
403 - Returned if the user lacks permission to modify the specified funeral home.
GET /v2/Company/Tags

Get Company Tags

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.
400 - Returned if the user’s company or corporation could not be identified.
403 - Returned if the user lacks permission to access tag information.
PATCH /v2/Company/Tags

Patch Company Tags

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 Microsoft.AspNetCore.JsonPatch.JsonPatchDocument`1 containing the tag modifications to apply.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - Successfully applies the specified tag modifications to the company.
400 - Returned if the company does not exist or the patch document is invalid.
422 - Returned if the user does not have permission to modify the company.
GET /v2/Company/FuneralHome/Tags

Get Funeral Home Tags

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.
403 - Returned if the user does not have permission to view funeral home tags.
PATCH /v2/Company/{companyId}/Tags

Patch Company Tags

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 Microsoft.AspNetCore.JsonPatch.JsonPatchDocument`1 containing the list of operations to apply.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - Successfully applies the specified patch operations to the company’s tags.
400 - Returned if the patch document is invalid or references non-existent tags.
403 - Returned if the user does not have permission to modify tags for the specified company.
PATCH /v2/Company/FuneralHome/{funeralHomeId}/Tags

Patch Funeral Home Tags

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 Microsoft.AspNetCore.JsonPatch.JsonPatchDocument`1 describing the tag modifications.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - Successfully updates the funeral home’s tag associations.
400 - Returned if the funeral home is not found or access is denied.
PATCH /v2/Company/{companyId}

Patch Specified Company

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 Microsoft.AspNetCore.JsonPatch.JsonPatchDocument`1 containing company property modifications.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Successfully applies the patch and updates the company record.
400 - Returned if the patch document is invalid or targets non-existent fields.
403 - Returned if the user does not have permission to modify the specified company.
GET /v2/Company/Media

Get Company Media

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.
Responses
200 - Successfully returns a list of company media items.
403 - Returned if the user does not have permission to view the company’s media.
POST /v2/Company/Media

Upload Company Media

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)
Request Body Schema:
{
  "files": []
}
Responses
200 - Successfully uploads and returns metadata for all files.
400 - Returned if files are missing, invalid, or exceed the allowed upload limits.
403 - Returned if the user does not have permission to manage company media.
GET /v2/Company/Media/{companyMediumId}

Get Company Medium

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 (System.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.
404 - Returned if the specified media file cannot be found.
DELETE /v2/Company/Media/{companyMediumId}

Delete Company Medium

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 (System.Guid) of the media file to delete.
Responses
200 - Successfully marks the media file as inactive.
400 - Returned if the file is already inactive, not found, or does not belong to the specified company.
403 - Returned if the user lacks permission to manage company media.
POST /v2/Company/FuneralHome/{funeralHomeId}/Address/{addressType}

Add Funeral Home Address

Usage Notes: Automatically creates a new address record if `AddressId` is 0. Synchronizes address data between Advisor Master and the client database. Ensures consistent linkage via `FuneralHomeAddress` and `LocationAddress` tables. Tags: Funeral Homes, Addresses, Management
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:
{
  "addressId": 10,
  "address1": "string",
  "city": "string",
  "aptLine": "string",
  "stateId": 10,
  "state": "string",
  "countyId": 10,
  "county": "string",
  "townshipId": 10,
  "township": "string",
  "countryId": 10,
  "country": "string",
  "zip": "string"
}
Responses
200 - Successfully adds or updates the funeral home address.
400 - Returned if the address data is invalid or the funeral home cannot be found.
PATCH /v2/Company/FuneralHome/{funeralHomeId}/Address/{addressType}

Patch Funeral Home Address

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 Microsoft.AspNetCore.JsonPatch.JsonPatchDocument`1 containing the field-level changes to apply.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Successfully updates or creates the funeral home address.
400 - Returned if validation fails or the target address cannot be found.
GET /v2/Company/TaxRates

Get Tax Rates

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

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.
404 - Returned if the tax rate cannot be found for the specified company.
POST /v2/Company/TaxRate

Create Tax Rate

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 SCV2.Common.Dtos.TaxRateUploadDto object containing tax rate configuration data.
Request Body Schema:
{
  "taxRateId": 10,
  "name": "string",
  "masterFhid": 10,
  "taxRateTypeId": 10,
  "itemTypeId": 10,
  "coId": 10,
  "active": false,
  "modifiedBy": 10,
  "effectiveFrom": "2025-12-12T11:45:09.284Z",
  "effectiveTo": "2025-12-12T11:45:09.284Z",
  "locationTaxRates": [],
  "taxRateDetails": []
}
Responses
200 - Successfully creates a new tax rate and related records.
400 - Returned if the provided tax rate data is invalid or incomplete.
PUT /v2/Company/TaxRate

Update Tax Rate

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 SCV2.Common.Dtos.TaxRateUploadDto containing the updated tax rate details.
Request Body Schema:
{
  "taxRateId": 10,
  "name": "string",
  "masterFhid": 10,
  "taxRateTypeId": 10,
  "itemTypeId": 10,
  "coId": 10,
  "active": false,
  "modifiedBy": 10,
  "effectiveFrom": "2025-12-12T11:45:09.284Z",
  "effectiveTo": "2025-12-12T11:45:09.284Z",
  "locationTaxRates": [],
  "taxRateDetails": []
}
Responses
200 - Successfully updates the existing tax rate record.
400 - Returned if the tax rate ID is invalid or the update data is malformed.
GET /v2/Company/Locations

List Company Locations

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.
403 - Returned if the caller does not have permission to view the requested company or funeral home locations.
POST /v2/Company/Location

Create Location

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:
{
  "name": "string",
  "phone": "string",
  "email": "string",
  "locationTypeId": 10
}
Responses
200 - Successfully creates the location and returns the hydrated DTO.
400 - Returned when validation fails while saving the new location.
403 - Returned if the caller lacks `ManageLocations` permission for the scoped funeral home.
PUT /v2/Company/Location/{locationId}

Update Location

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:
{
  "name": "string",
  "phone": "string",
  "email": "string",
  "locationTypeId": 10
}
Responses
200 - Successfully updates the location.
400 - Returned when the requested location cannot be found for the company.
403 - Returned when the caller lacks rights to manage locations.
GET /v2/Company/Location/{locationId}/Resources

Get Location Resources

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.
403 - Returned when the caller lacks permission to view the company's resources.
POST /v2/Company/Locations/Resources

Get Resources For Multiple Locations

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": "array",
  "items": {
    "type": "integer",
    "format": "int64"
  }
}
Responses
200 - Successfully returns the aggregated resources.
403 - Returned if the caller cannot access the specified company.
GET /v2/Company/EventTypes

Get Event Types

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.
403 - Returned when the caller cannot access the specified company.
POST /v2/Company/EventTypes

Create Event Type

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:
{
  "eventTypeId": 10,
  "eventTypeName": "string",
  "glcode": "string",
  "showInNavigation": false,
  "requiredToPost": false,
  "showInConnections": false,
  "dispositionSpecific": false,
  "masterId": 10,
  "eventClassificationId": 10,
  "itemId": 10,
  "imageMediaGuid": "61ea91d4-5da0-44a0-ac63-af185ab57372",
  "coId": 10,
  "active": false,
  "nonEnglishText": "string",
  "dispositionCategoryId": 10,
  "calendarColor": "string",
  "hasSubType": false,
  "dispositionCategory": "string",
  "eventClassification": "string",
  "eventTypeEventSections": [],
  "locationEventTypes": [],
  "miscPageData": "string"
}
Responses
200 - Successfully creates the event type.
400 - Returned when the payload is invalid or required resources are missing.
403 - Returned when the caller cannot manage the company's gathering types.
GET /v2/Company/GetEventTypeImage

Get Event Type Image

Usage Notes: Endpoint is anonymous to support family websites and other public views. Delegates image retrieval and resizing to `IMediaService`. Throws SCV2.Common.Exceptions.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.
404 - Returned when the event type has no associated image.
POST /v2/Company/EventType/{eventTypeId}/Image

Upload Event Type Image

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)
Request Body Schema:
{
  "file": "string"
}
Responses
200 - Successfully uploads the image and associates it with the event type.
400 - Returned when the provided file is not a supported image.
403 - Returned when the caller lacks `ManageGatheringTypes` permission.
DELETE /v2/Company/EventType/{eventTypeId}/Image

Remove Event Type Image

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.
403 - Returned when the caller does not have `ManageGatheringTypes` permission.
GET /v2/Company/EventSubTypes

Get Event Subtypes

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.
403 - Returned when the caller is not authorized for the company.
POST /v2/Company/EventSubTypes

Create Event Subtype

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:
{
  "eventSubTypeId": 10,
  "eventSubTypeName": "string",
  "eventTypeId": 10,
  "coId": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.285Z",
  "lastModified": "2025-12-12T11:45:09.285Z",
  "modifiedBy": 10
}
Responses
200 - Successfully creates the event subtype.
403 - Returned if the caller is not authorized to manage the company's gathering settings.
PUT /v2/Company/EventTypes/{eventTypeId}

Update Event Type

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:
{
  "eventTypeId": 10,
  "eventTypeName": "string",
  "glcode": "string",
  "showInNavigation": false,
  "requiredToPost": false,
  "showInConnections": false,
  "dispositionSpecific": false,
  "masterId": 10,
  "eventClassificationId": 10,
  "itemId": 10,
  "imageMediaGuid": "08389bda-0779-473e-a325-d5eab5362b48",
  "coId": 10,
  "active": false,
  "nonEnglishText": "string",
  "dispositionCategoryId": 10,
  "calendarColor": "string",
  "hasSubType": false,
  "dispositionCategory": "string",
  "eventClassification": "string",
  "eventTypeEventSections": [],
  "locationEventTypes": [],
  "miscPageData": "string"
}
Responses
200 - Successfully updates and returns the event type.
400 - Returned when the event type cannot be found.
403 - Returned when the caller cannot manage the company's gathering types.
PUT /v2/Company/EventSubTypes/{eventSubTypeId}

Update Event Subtype

Usage Notes: Throws SCV2.Common.Exceptions.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:
{
  "eventSubTypeId": 10,
  "eventSubTypeName": "string",
  "eventTypeId": 10,
  "coId": 10,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.285Z",
  "lastModified": "2025-12-12T11:45:09.285Z",
  "modifiedBy": 10
}
Responses
200 - Successfully updates the subtype.
400 - Returned when the subtype ID is invalid.
GET /v2/Company/EventClassifications

Get Event Classifications

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.
403 - Returned when the caller cannot access the company.
GET /v2/Company/EventSections

Get Event Sections

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.
403 - Returned when the caller is unauthorized for the company.
GET /v2/Company/FuneralHome/{funeralHomeId}/DisclosureTypes

Get Funeral Home Disclosure Types

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.
403 - Returned when the caller lacks permission to manage disclosures for the funeral home.
GET /v2/Company/FuneralHome/{funeralHomeId}/Disclosures

Get Funeral Home Disclosures

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.
403 - Returned when the caller cannot manage disclosures for the funeral home.
PATCH /v2/Company/FuneralHome/{funeralHomeId}/Disclosure/{disclosureTypeId}

Patch Funeral Home Disclosure

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 SCV2.Common.Dtos.DisclosureDto.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Successfully applies the patch.
400 - Returned when the funeral home or disclosure cannot be resolved or validation fails.
403 - Returned when the caller lacks disclosure management permissions.
GET /v2/Company/ContractDisclosures

Get Contract Disclosures

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.
403 - Returned when the caller lacks company access.
POST /v2/Company/ContractDisclosures

Create Contract Disclosure

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:
{
  "contractDisclosureId": 10,
  "disclosureText": "string",
  "active": false,
  "coId": 10,
  "dateCreated": "2025-12-12T11:45:09.285Z",
  "lastModified": "2025-12-12T11:45:09.285Z",
  "modifiedBy": 10,
  "classifier": "string"
}
Responses
200 - Successfully inserts the disclosure.
403 - Returned when the caller lacks `ManageDisclosures` permission for the scoped context.
PATCH /v2/Company/ContractDisclosures/{contractDisclosureId}

Patch Contract Disclosure

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 SCV2.Common.Dtos.ContractDisclosureDto values.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - Successfully applies the patch and persists the disclosure.
400 - Returned when model validation fails after applying the patch.
422 - Returned when the caller attempts to edit a disclosure they are not permitted to access.
POST /v2/Company/Event/Search

Search Events

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:
{
  "fhIds": [],
  "funeralDirectorPersonIds": [],
  "callTypeIds": [],
  "eventTypeIds": [],
  "resourceIds": [],
  "startDate": "2025-12-12",
  "endDate": "2025-12-12",
  "limit": 10
}
Responses
200 - Successfully executes the search and returns results.
403 - Returned when the caller cannot access the specified company.
GET /v2/Company/GeneralLedger

Get General Ledger Accounts

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.
403 - Returned when the caller cannot access the company's financial settings.
POST /v2/Company/GeneralLedger

Create General Ledger Account

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:
{
  "generalLedgerId": 10,
  "name": "string",
  "code": "string",
  "coId": 10,
  "createdBy": 10,
  "dateCreated": "2025-12-12T11:45:09.285Z",
  "modifiedBy": 10,
  "lastModified": "2025-12-12T11:45:09.285Z",
  "active": false,
  "generalLedgerLocations": []
}
Responses
200 - Successfully creates the account and returns its ID.
403 - Returned when the caller lacks the finance permission for the scoped funeral home.
GET /v2/Company/CashAccount

Get Cash Accounts

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.
403 - Returned if the caller cannot access the company's finance data.
POST /v2/Company/CashAccount

Create Cash Account

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:
{
  "cashAccountId": 10,
  "name": "string",
  "code": "string",
  "coId": 10,
  "createdBy": 10,
  "dateCreated": "2025-12-12T11:45:09.285Z",
  "modifiedBy": 10,
  "lastModified": "2025-12-12T11:45:09.285Z",
  "active": false,
  "cashAccountLocations": []
}
Responses
200 - Successfully creates the cash account.
403 - Returned when the caller lacks `ManageCashAccounts` permission.
PUT /v2/Company/GeneralLedger/{generalLedgerId}

Update General Ledger Account

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:
{
  "generalLedgerId": 10,
  "name": "string",
  "code": "string",
  "coId": 10,
  "createdBy": 10,
  "dateCreated": "2025-12-12T11:45:09.285Z",
  "modifiedBy": 10,
  "lastModified": "2025-12-12T11:45:09.285Z",
  "active": false,
  "generalLedgerLocations": []
}
Responses
200 - Successfully updates the account.
400 - Returned when the account cannot be found for the company.
403 - Returned when the caller lacks `ManageGeneralLedgerAccounts` permission.
PUT /v2/Company/CashAccount/{cashAccountId}

Update Cash Account

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:
{
  "cashAccountId": 10,
  "name": "string",
  "code": "string",
  "coId": 10,
  "createdBy": 10,
  "dateCreated": "2025-12-12T11:45:09.285Z",
  "modifiedBy": 10,
  "lastModified": "2025-12-12T11:45:09.285Z",
  "active": false,
  "cashAccountLocations": []
}
Responses
200 - Successfully updates the cash account.
400 - Returned when the cash account cannot be found.
403 - Returned when the caller lacks `ManageCashAccounts` permission.
GET /v2/Company/IntermentOption

Get Interment Options

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.
403 - Returned when the caller is unauthorized for the company.
POST /v2/Company/IntermentOption

Create Interment Option

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:
{
  "intermentOptionId": 10,
  "name": "string",
  "appDataTypeId": 10,
  "availableValues": "string",
  "coId": 10,
  "dateCreated": "2025-12-12T11:45:09.285Z",
  "lastModified": "2025-12-12T11:45:09.285Z",
  "modifiedBy": 10,
  "active": false
}
Responses
200 - Successfully creates the interment option.
403 - Returned when the caller cannot manage interment options for the company.
PATCH /v2/Company/IntermentOption/{intermentOptionId}

Patch 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 SCV2.Common.Dtos.IntermentOptionDto.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - OK
204 - Successfully applies the patch.
400 - Returned when validation fails or the record is missing.
403 - Returned when the caller lacks permission for the company.
GET /v2/Company/CaseNumberSettings

Get Company Case Number Settings

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.
403 - Returned when the caller lacks access to the company.
PATCH /v2/Company/CaseNumberSettings

Patch Company Case Number Settings

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 SCV2.Common.Dtos.CompanyCaseNumberSettingsDto.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - Successfully updates the settings.
400 - Returned when the company cannot be found.
403 - Returned when the caller lacks the required permission.
GET /v2/Company/FuneralHome/{funeralHomeId}/CaseNumberSettings

Get Funeral Home Case Number Settings

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.
403 - Returned when the caller cannot access the company.
PATCH /v2/Company/FuneralHome/{funeralHomeId}/CaseNumberSettings

Patch Funeral Home Case Number Settings

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 SCV2.Common.Dtos.FuneralHomeCaseNumberSettingsDto.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Operation"
  }
}
Responses
200 - Successfully updates the funeral home settings.
400 - Returned when the funeral home cannot be found or does not belong to the company.
403 - Returned when the caller lacks the necessary permission.
GET /v2/Company/PreferenceSettings

Get Preference Settings Metadata

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.
403 - Returned when the caller is unauthorized for the company.
PUT /v2/Company/PreferenceSettings

Update Preference Settings

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 SCV2.Common.Dtos.DbAppSettingDto values to upsert.
Request Body Schema:
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/DbAppSettingDto"
  }
}
Responses
200 - Successfully saves the preference values.
403 - Returned when the caller is unauthorized.
GET /v2/Company/{companyId}/Preferences

Get Company Preferences Key-Value

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.
403 - Returned when the caller cannot access the company.
GET /v2/Company/MemoriesQuestions

Get Memories Questions

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.
403 - Returned when the caller lacks access to the company.
POST /v2/Company/MemoriesQuestion

Create Memories Question

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:
{
  "question": "string",
  "preNeedQuestion": "string",
  "atNeed": false,
  "preNeed": false,
  "active": false
}
Responses
200 - Question created successfully.
403 - Returned when the caller lacks `ManageMemoriesQuestions`.
PUT /v2/Company/MemoriesQuestion/{memoriesQuestionId}

Update Memories Question

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:
{
  "question": "string",
  "preNeedQuestion": "string",
  "atNeed": false,
  "preNeed": false,
  "active": false
}
Responses
200 - Update succeeded.
400 - Returned when the question cannot be found.
403 - Returned when the caller lacks permissions.
GET /v2/Company/Location/{locationId}/MemoriesQuestions

Get Location Memories Questions

Tags: Memories, Locations, Settings
Parameters
companyId (header) - Company identifier.
locationId (path) * - Location identifier.
Responses
200 - Successfully returns the questions.
403 - Returned when the caller lacks access to the location.
PUT /v2/Company/Location/{locationId}/MemoriesQuestion/{memoriesQuestionId}

Upsert Location 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:
{
  "sortOrder": 10,
  "displayQuestion": false,
  "displayOnFw": false
}
Responses
200 - Successfully saves the configuration.
403 - Returned when permissions are missing.
DELETE /v2/Company/Location/{locationId}/MemoriesQuestion/{memoriesQuestionId}

Delete Location Memories Question

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.
400 - Returned when the mapping cannot be found.
403 - Returned when permissions are insufficient.
POST /v2/Company/Location/{locationId}/MemoriesQuestions/Sync/{destFhId}

Sync Location Memories Questions

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.
403 - Returned when the caller lacks permissions for either company.
GET /v2/Company/ObituaryTemplates

Get Obituary Templates

Tags: Obituaries, Templates, Settings
Parameters
companyId (header) - Company identifier header value.
Responses
200 - Successfully returns templates.
403 - Returned when the caller cannot access the company.
POST /v2/Company/ObituaryTemplate

Create Obituary Template

Tags: Obituaries, Templates, Create
Parameters
companyId (header) - Company identifier.
body (body) - Template content to persist.
Request Body Schema:
{
  "obituaryTemplateId": 10,
  "obituaryTemplateName": "string",
  "obituaryText": "string"
}
Responses
200 - Template created successfully.
403 - Returned when the caller lacks company access.
PUT /v2/Company/ObituaryTemplates/{obituaryTemplateId}

Update Obituary Template

Tags: Obituaries, Templates, Update
Parameters
companyId (header) - Company identifier.
obituaryTemplateId (path) * - Template identifier.
body (body) - Updated template values.
Request Body Schema:
{
  "obituaryTemplateId": 10,
  "obituaryTemplateName": "string",
  "obituaryText": "string"
}
Responses
200 - Template updated successfully.
400 - Returned when the template is inactive or not found.
403 - Returned when the caller lacks access.
DELETE /v2/Company/ObituaryTemplates/{ObituaryTemplateId}

Delete Obituary Template

Tags: Obituaries, Templates, Delete
Parameters
companyId (header) - Company identifier.
obituaryTemplateId (path) * - Template identifier.
Responses
200 - Template deactivated or already absent.
403 - Returned when the caller lacks access.
GET /v2/Company/ObituaryFields

Get Obituary Fields Metadata

Tags: Obituaries, Metadata
Parameters
companyId (header) - Company identifier.
Responses
200 - Successfully returns field metadata.
403 - Returned when access to the company is denied.
GET /v2/Company/CaseViewData

Get Case View Data

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.
403 - Returned when the caller lacks access to the company.
POST /v2/Company/LinkQuickbooks

Link QuickBooks

Tags: QuickBooks, Integrations
Parameters
companyId (header) - Company identifier.
body (body) - QuickBooks token payload.
Request Body Schema:
{
  "quickbooksToken": "string",
  "quickbooksCompanyId": "string",
  "quickbooksPreferredPersonType": 10
}
Responses
200 - Linking succeeded.
403 - Returned when the caller lacks `ManageGlCodes` permission.
POST /v2/Company/DisconnectQuickbooks

Disconnect QuickBooks

Tags: QuickBooks, Integrations
Parameters
companyId (header) - Company identifier.
Responses
200 - Disconnect succeeded.
POST /v2/Company/PostQuickbooksPreferredPersonType

Update QuickBooks Preferred Person Type

Tags: QuickBooks, Integrations
Parameters
companyId (header) - Company identifier.
body (body) - Payload containing the preferred person type.
Request Body Schema:
{
  "quickbooksToken": "string",
  "quickbooksCompanyId": "string",
  "quickbooksPreferredPersonType": 10
}
Responses
200 - Update succeeded.
POST /v2/Company/LinkPayPal

Link PayPal

Tags: PayPal, Integrations
Parameters
companyId (header) - Company identifier.
body (body) - Payload containing tokens and term settings.
Request Body Schema:
{
  "payPalToken": "string",
  "payPalCompanyId": "string",
  "payPalTokenExpiresIn": 10,
  "payPalTermLimit": "string",
  "payPalAllowPartialPayment": false
}
Responses
200 - Linking succeeded.
POST /v2/Company/DisconnectPayPal

Disconnect PayPal

Tags: PayPal, Integrations
Parameters
companyId (header) - Company identifier.
Responses
200 - Disconnect succeeded.
POST /v2/Company/UpdatePaypalTermLimit

Update PayPal Term Limit

Tags: PayPal, Integrations
Parameters
companyId (header) - Company identifier.
body (body) - Term limit payload.
Request Body Schema:
{
  "payPalTermLimit": "string"
}
Responses
200 - Term limit updated.
POST /v2/Company/LinkCallToPayPalInvoice

Link Call To PayPal Invoice

Tags: PayPal, Integrations
Parameters
companyId (header) - Company identifier.
body (body) - Linking DTO containing call and invoice IDs.
Request Body Schema:
{
  "callID": 10,
  "contractID": 10,
  "payPalInvoiceID": "string"
}
Responses
200 - Link created.
POST /v2/Company/UpdatePaypalPartialPaymentAllowance

Update PayPal Partial Payment Allowance

Tags: PayPal, Integrations
Parameters
companyId (header) - Company identifier.
body (body) - Payload indicating the allowance flag.
Request Body Schema:
{
  "allowPartialPayment": false
}
Responses
200 - Setting updated.
POST /v2/Company/LinkPaymentToPayPalPayment

Link Payment To PayPal Payment

Tags: PayPal, Integrations
Parameters
companyId (header) - Company identifier.
body (body) - Payload containing the IDs to link.
Request Body Schema:
{
  "paymentID": 10,
  "payPalPaymentID": "string"
}
Responses
200 - Link created successfully.
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.
400 - Person not found.
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:
{
  "personId": 10,
  "advisorUserId": 10,
  "firstName": "string",
  "lastName": "string",
  "homePhone": "string",
  "workPhone": "string",
  "mobilePhone": "string",
  "email": "string",
  "canEmail": false,
  "canText": false,
  "dateCreated": "2025-12-12T11:45:09.285Z",
  "personKey": "8e3132eb-6440-4215-8705-46f4c51e75ee"
}
Responses
200 - Update successful.
400 - Person not found or invalid input.
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.
400 - Person not found or invalid input.
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:
{
  "personId": 10,
  "advisorUserId": 10,
  "firstName": "string",
  "lastName": "string",
  "homePhone": "string",
  "workPhone": "string",
  "mobilePhone": "string",
  "email": "string",
  "canEmail": false,
  "canText": false,
  "dateCreated": "2025-12-12T11:45:09.285Z",
  "personKey": "c2684fdb-b174-47d9-9b1b-2b2c29bf6e61"
}
Responses
200 - Returns the created person details.
400 - Invalid input or company permissions issue.
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:
{
  "licenseId": 10,
  "licenseTypeId": 10,
  "personId": 10,
  "stateId": 10,
  "licenseValue": "string",
  "dateExpires": "2025-12-12",
  "active": false
}
Responses
200 - Returns the created license details.
400 - Invalid input or permissions issue.
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:
{
  "licenseId": 10,
  "licenseTypeId": 10,
  "personId": 10,
  "stateId": 10,
  "licenseValue": "string",
  "dateExpires": "2025-12-12",
  "active": false
}
Responses
200 - Update successful.
400 - License not found or invalid input.
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.
400 - License not found or invalid input.
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.
400 - Bad request, invalid company ID.
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.
400 - Bad request, security role not found.
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.
400 - Bad request, invalid company ID or security role ID.
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
204 - The permission was added to the security role successfully.
400 - Bad request, invalid company ID, security role ID, or permission ID.
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
204 - The permission was removed from the security role successfully.
400 - Bad request, invalid company ID, security role ID, or permission ID.
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:
{
  "securityRoleId": 10,
  "companyId": 10,
  "name": "string"
}
Responses
200 - OK
204 - The security role was created successfully.
400 - Bad request, invalid company ID or role details.
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.
400 - Bad request, invalid parameters.
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.
400 - Bad request, invalid parameters.
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.
400 - Bad request, invalid parameters.
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.
400 - Bad request, invalid parameters.
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.
400 - Bad request, invalid parameters.
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": "array",
  "items": {
    "$ref": "#/components/schemas/LocationResourceEditDto"
  }
}
Responses
200 - OK
204 - The resource locations were updated successfully.
400 - Bad request, invalid parameters.
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:
{
  "resourceId": 10,
  "resourceName": "string",
  "details": "string",
  "resourceTypeId": 10,
  "personId": 10,
  "dailyScheduleLimit": 10,
  "coId": 10,
  "active": false
}
Responses
200 - OK
201 - The resource was created successfully.
400 - Bad request, invalid data.
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.
400 - Bad request, invalid resource ID.
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:
{
  "resourceId": 10,
  "resourceName": "string",
  "details": "string",
  "resourceTypeId": 10,
  "personId": 10,
  "dailyScheduleLimit": 10,
  "coId": 10,
  "active": false
}
Responses
200 - OK
204 - The resource was updated successfully.
400 - Bad request, invalid data.
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:
{
  "sourceId": 10,
  "targetIds": [],
  "masterIds": []
}
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:
{
  "sourceId": 10,
  "targetIds": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "vendorIds": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "itemCodes": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "itemCodes": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "itemCodes": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "overrideIfExists": false,
  "taxRateIds": []
}
Responses
200 - The list of updated tax rates was retrieved successfully.
400 - Bad request, invalid parameters.
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:
{
  "sourceId": 10,
  "targetIds": [],
  "overrideIfExists": false,
  "showroomIds": []
}
Responses
200 - The list of updated showrooms was retrieved successfully.
400 - Bad request, invalid parameters.
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:
{
  "sourceId": 10,
  "targetIds": [],
  "overrideIfExists": false,
  "addMissingItemTypes": false,
  "addMissingItems": false,
  "packageIds": []
}
Responses
200 - The list of updated packages was retrieved successfully.
400 - Bad request, invalid parameters.
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:
{
  "sourceId": 10,
  "targetIds": [],
  "overrideIfExists": false,
  "flowIds": []
}
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:
{
  "sourceId": 10,
  "targetIds": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "itemTypeId": 10,
  "callTypeIds": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "lookupTypeId": 10,
  "lookupIds": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "customFieldIds": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "overrideIfExists": false,
  "taxRateIds": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "overrideIfExists": false,
  "showroomIds": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "overrideIfExists": false,
  "addMissingItemTypes": false,
  "addMissingItems": false,
  "packageIds": []
}
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:
{
  "sourceId": 10,
  "targetIds": [],
  "itemTypeId": 10,
  "callTypeIds": []
}
Responses
200 - Validation result indicating if the catalog call type codes are valid.
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.
403 - Returns if the requesting user lacks the necessary permissions to view users.
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.
403 - Returns if the requesting user lacks the necessary permissions to view users.
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.
403 - Returns if the requesting user lacks the necessary permissions to view users or manage the specified company.
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
204 - Indicates the last login date has been successfully updated.
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.
400 - Returns if the user or advisor user is not found.
403 - Returns if the requesting user lacks the necessary permissions to view user details.
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:
{
  "userName": "string",
  "email": "string",
  "phone": "string",
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "homeFhId": 10,
  "lockoutEnabled": false,
  "lockoutEnd": "2025-12-12T11:45:09.286Z",
  "disabled": false,
  "overrideMfa": false,
  "password": "string",
  "repCode": "string",
  "companyId": 10,
  "defaultCompanyId": 10,
  "isCorporateUser": false,
  "isCorporateSection": false,
  "advisorUserRoleId": 10,
  "canSMS": false,
  "canEmail": false,
  "startupApplicationId": 10
}
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:
{
  "userName": "string",
  "email": "string",
  "phone": "string",
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "homeFhId": 10,
  "lockoutEnabled": false,
  "lockoutEnd": "2025-12-12T11:45:09.286Z",
  "disabled": false,
  "overrideMfa": false,
  "password": "string",
  "repCode": "string",
  "companyId": 10,
  "defaultCompanyId": 10,
  "isCorporateUser": false,
  "isCorporateSection": false,
  "advisorUserRoleId": 10,
  "canSMS": false,
  "canEmail": false,
  "startupApplicationId": 10
}
Responses
200 - Returns the details of the newly created user.
400 - Returns if the provided data is invalid or if the username or email already exists.
403 - Returns if the requesting user lacks the necessary permissions to manage users or the specified company.
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:
{
  "userName": "string",
  "email": "string",
  "phone": "string",
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "homeFhId": 10,
  "lockoutEnabled": false,
  "lockoutEnd": "2025-12-12T11:45:09.286Z",
  "disabled": false,
  "overrideMfa": false,
  "password": "string",
  "repCode": "string",
  "companyId": 10,
  "defaultCompanyId": 10,
  "isCorporateUser": false,
  "isCorporateSection": false,
  "advisorUserRoleId": 10,
  "canSMS": false,
  "canEmail": false,
  "startupApplicationId": 10
}
Responses
200 - The user was successfully updated.
PUT /v2/User/{advisorUserId}/toggle-status

Toggle User Status

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:
{
  "disabled": false
}
Responses
200 - Successfully toggles the user’s status across all relevant databases.
400 - Returned when the advisor user cannot be found.
403 - Returned when the caller lacks permission to manage the target user.
PUT /v2/User/{advisorUserId}/update-role

Update User Role

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:
{
  "advisorUserRoleId": 10
}
Responses
200 - Successfully updates the user’s role.
400 - Returned when the advisor user cannot be found.
403 - Returned when the caller lacks permission to manage the target user.
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/{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.
404 - The user's image was not found.
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)
Request Body Schema:
{
  "file": "string"
}
Responses
200 - The user's profile image was successfully updated.
400 - The provided file is invalid or exceeds size limits.
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.
400 - The user profile was not found.
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:
{
  "preferences": []
}
Responses
200 - OK
204 - The preferences were successfully updated.
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.
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
204 - The permission was successfully added to the user.
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
204 - The permission was successfully deleted from the user.
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/Webhooks

Get Webhook Subscriptions

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.
403 - Returned if the user does not have permission to view webhooks for the specified company.
POST /v2/Webhooks

Create Webhook Subscription

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 SCV2.Data.AdvisorMaster.Models.WebhookSubscription object containing the subscription configuration, including name, endpoint URL, and event subscriptions.
Request Body Schema:
{
  "webhookSubscriptionId": "c39d6ee7-01ee-4785-bf11-21ffc20c44c7",
  "companyId": 10,
  "name": "string",
  "endpointUrl": "string",
  "secret": "string",
  "subscribedEvents": "string",
  "isActive": false,
  "createdBy": 10,
  "dateCreated": "2025-12-12T11:45:09.286Z",
  "modifiedBy": 10,
  "lastModified": "2025-12-12T11:45:09.286Z",
  "webhookDeliveryLogs": []
}
Responses
200 - Successfully creates and returns the new webhook subscription.
400 - Returned if the webhook name or endpoint URL is missing or invalid.
403 - Returned if the user does not have permission to manage webhooks for the specified company.
GET /v2/Webhooks/{webhookSubscriptionId}

Get Webhook Subscription

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.
403 - Returned if the user does not have permission to view webhook subscriptions.
404 - Returned if the subscription with the specified ID does not exist.
PUT /v2/Webhooks/{webhookSubscriptionId}

Update Webhook Subscription

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 SCV2.Data.AdvisorMaster.Models.WebhookSubscription object with modified configuration settings.
Request Body Schema:
{
  "webhookSubscriptionId": "d80e8d3b-28e3-4faa-a55f-f6e3906d1695",
  "companyId": 10,
  "name": "string",
  "endpointUrl": "string",
  "secret": "string",
  "subscribedEvents": "string",
  "isActive": false,
  "createdBy": 10,
  "dateCreated": "2025-12-12T11:45:09.286Z",
  "modifiedBy": 10,
  "lastModified": "2025-12-12T11:45:09.286Z",
  "webhookDeliveryLogs": []
}
Responses
200 - Successfully updates and returns the webhook subscription.
400 - Returned if there is an ID mismatch between the URL parameter and the request payload.
403 - Returned if the user does not have permission to manage webhooks.
404 - Returned if the subscription with the specified ID does not exist.
DELETE /v2/Webhooks/{webhookSubscriptionId}

Delete Webhook Subscription

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.
403 - Returned if the user does not have permission to manage webhooks.
404 - Returned if the subscription with the specified ID does not exist.
POST /v2/Webhooks/{webhookSubscriptionId}/Test

Send Test Webhook

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.
403 - Returned if the user does not have permission to manage webhooks.
404 - Returned if the subscription with the specified ID does not exist.
GET /v2/Webhooks/Events

Get Webhook Event Definitions

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.
403 - Returned if the user does not have permission to view webhook configurations.
PUT /v2/Webhooks/EventDefinitions/{id}

Update Webhook Event Definition

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 SCV2.Data.AdvisorMaster.Models.WebhookEventDefinition object with modified configuration.
Request Body Schema:
{
  "webhookEventDefinitionId": 10,
  "eventName": "string",
  "category": "string",
  "description": "string",
  "implemented": false,
  "active": false,
  "dateCreated": "2025-12-12T11:45:09.286Z",
  "lastModified": "2025-12-12T11:45:09.286Z",
  "createdBy": 10,
  "modifiedBy": 10,
  "friendlyName": "string",
  "payloadExample": "string"
}
Responses
200 - Successfully updates the event definition and returns the updated object.
403 - Returned if the user does not have permission to manage webhook configurations.
404 - Returned if the event definition with the specified ID is not found.
POST /v2/Webhooks/Test/{subscriptionId}

Send Test Webhook Event

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.
404 - Returned if the subscription with the specified ID does not exist.
POST /v2/Webhooks/TestCustom

Send Custom Test Webhook

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 SCV2.Common.Dtos.TestWebhookRequestDto containing the target URL, event name, and optional secret for testing.
Request Body Schema:
{
  "eventName": "string",
  "targetUrl": "string",
  "secret": "string"
}
Responses
200 - Successfully sends the custom test webhook and returns delivery results.
400 - Returned if the event name is unknown or no payload example is available.
GET /v2/Webhooks/Subscriptions/{subscriptionId}/History

Get Webhook Delivery History

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.
403 - Returned if the user does not have permission to access the specified company's data.
404 - Returned if the subscription does not exist or has no delivery history.
GET /v2/Workflow/actiontypes

Retrieves all available workflow action types.

**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.

**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.
403 - If the caller lacks permission to view workflows.
404 - If the step is not found for the specified company.
GET /v2/Workflow/definition/{WorkflowDefinitionId}/actions

Retrieves all workflow actions belonging to a specific workflow definition.

**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.
403 - If the caller lacks permission to view workflows.
404 - If the workflow definition or steps cannot be found for the company.
GET /v2/Workflow/action/{id}

Retrieves details for a specific workflow action.

**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.
403 - If the caller lacks permission to view workflows.
404 - If the action is not found or belongs to a different company.
PUT /v2/Workflow/action/{id}

Updates an existing workflow action.

**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 SCV2.Common.Dtos.WorkflowActionUpdateDto containing updated action details.
Request Body Schema:
{
  "executionTiming": "string",
  "actionData": "string",
  "runAs": "string",
  "active": false,
  "name": "string",
  "description": "string"
}
Responses
200 - OK
204 - Indicates successful update.
403 - If the caller lacks permission to manage workflows.
404 - If the workflow action does not exist or belongs to another company.
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 - OK
204 - Action successfully deleted.
403 - If the caller lacks permission to manage workflows.
404 - Action not found or does not belong to the company.
POST /v2/Workflow/step/{stepId}/action

Creates a new workflow action under a specific step.

**Usage Notes:** - Automatically assigns `WorkflowActionId`. - Sets `Active = true` and `DateCreated = UtcNow`. - Returns via `CreatedAtAction` referencing M:SCV2.Api.Controllers.WorkflowController.GetAction(System.Guid,System.Int32).
Parameters
stepId (path) * - The unique identifier of the workflow step.
companyId (header) - The company ID supplied in the request header.
body (body) - The SCV2.Common.Dtos.WorkflowActionCreateDto containing action details.
Request Body Schema:
{
  "workflowStepId": "ea24063c-6043-4e8e-9489-821a726f9dae",
  "workflowTransitionId": "1a5eebad-847d-4c5b-9467-a1c7755684b8",
  "workflowActionTypeId": 10,
  "executionTiming": "string",
  "actionData": "string",
  "runAs": "string",
  "name": "string",
  "description": "string"
}
Responses
200 - OK
201 - Returns the created workflow action.
403 - If the caller lacks permission to manage workflows.
404 - If the workflow step is not found for the specified company.
PUT /v2/CaseStep/{callId}

Updates a case to a specific workflow step.

**Usage Notes:** - Validates that the workflow step exists and is active before assignment. - Updates the Call.CaseStepId field in the client database. - Requires SCV2.Common.Permissions.Permissions.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 - OK
204 - Indicates the case step was updated successfully.
403 - If the caller lacks permission to manage workflows.
404 - If the case or workflow step is not found.
GET /v2/CaseStep/{callId}

Retrieves the current case step details for a case.

**Usage Notes:** - Returns null (204 No Content) if the case is not assigned to a workflow. - Requires SCV2.Common.Permissions.Permissions.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.
204 - If the case is not currently in a workflow.
403 - If the caller lacks permission to view workflows.
DELETE /v2/CaseStep/{callId}

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

**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 SCV2.Common.Permissions.Permissions.ManageWorkflow permission.
Parameters
callId (path) * - The ID of the case.
companyId (header) - The company ID supplied in the request header.
Responses
200 - OK
204 - Indicates the case step was cleared successfully.
403 - If the caller lacks permission to manage workflows.
GET /v2/CaseStep/step/{workflowStepId}

Retrieves all cases currently at a specific workflow step.

**Usage Notes:** - Returns an empty list if no cases are at the specified step. - Requires SCV2.Common.Permissions.Permissions.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).
403 - If the caller lacks permission to view workflows.
GET /v2/Workflow/definitions

Retrieves all workflow definitions for the specified company.

**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.
403 - If the caller lacks permission to view workflows.
GET /v2/Workflow/definition/{id}

Retrieves a single workflow definition by its unique identifier.

**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.
403 - If the caller lacks permission to view workflows.
404 - If the definition does not exist or does not belong to the specified company.
PUT /v2/Workflow/definition/{id}

Updates an existing workflow definition.

**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 SCV2.Common.Dtos.WorkflowDefinitionUpdateDto containing updated data.
Request Body Schema:
{
  "name": "string",
  "version": 10,
  "active": false
}
Responses
200 - OK
204 - Indicates the workflow definition was updated successfully.
403 - If the caller lacks permission to manage workflows.
404 - If the definition does not exist for the specified company.
DELETE /v2/Workflow/definition/{id}

Deletes a workflow definition and all related entities.

**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 - OK
204 - Indicates the workflow definition was successfully deleted.
400 - If the workflow has active instances and cannot be deleted.
403 - If the caller lacks permission to manage workflows.
404 - If the workflow definition does not exist.
POST /v2/Workflow/definition

Creates a new workflow definition for the specified company.

**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 SCV2.Common.Dtos.WorkflowDefinitionCreateDto object containing the definition details.
Request Body Schema:
{
  "coID": 10,
  "name": "string",
  "version": 10
}
Responses
200 - OK
201 - Returns the newly created workflow definition.
403 - If the caller lacks permission to manage workflows.
GET /v2/Workflow/AttachableEntities

Retrieves a list of attachable entities from the client database.

**Usage Notes:** - This endpoint is marked with SCV2.Api.Filters.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.
403 - If the caller lacks required internal or administrative privileges.
GET /v2/Workflow/EntityMetadata

Retrieves all entity metadata definitions from AdvisorMaster.

**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.
403 - If the caller lacks required internal permissions.
POST /v2/Workflow/EntityMetadata

Creates a new entity metadata record.

**Usage Notes:** - The new record is added to `AdvisorMaster.dbo.EntityMetadata`. - Returns via `CreatedAtAction` referencing M:SCV2.Api.Controllers.WorkflowController.GetEntityMetadataById(System.Int32).
Parameters
body (body) - The SCV2.Common.Dtos.EntityMetadataCreateDto containing metadata details.
Request Body Schema:
{
  "schema": "string",
  "name": "string",
  "description": "string",
  "showInUI": false
}
Responses
200 - OK
201 - Returns the created metadata record.
403 - If the caller lacks internal system permissions.
GET /v2/Workflow/EntityMetadata/{id}

Retrieves a single entity metadata record by its identifier.

**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.
403 - If the caller lacks internal access rights.
404 - If the record does not exist.
PUT /v2/Workflow/EntityMetadata/{id}

Updates an existing entity metadata record.

**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 SCV2.Common.Dtos.EntityMetadataUpdateDto containing updated values.
Request Body Schema:
{
  "description": "string",
  "showInUI": false
}
Responses
200 - OK
204 - Indicates the metadata record was updated successfully.
403 - If the caller lacks internal access rights.
404 - If the specified record is not found.
DELETE /v2/Workflow/EntityMetadata/{id}

Deletes an existing entity metadata record.

**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 - OK
204 - Indicates successful deletion.
403 - If the caller lacks internal access rights.
404 - If the metadata record could not be found.
GET /v2/Workflow/instances

Get all workflow instances for a company with optional filters.

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.
403 - If the caller lacks permission to view workflows.
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 - OK
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:
{
  "workflowStepId": "8e9f5d80-72ff-42ed-84c2-3efaea331472",
  "fieldName": "string",
  "isRequired": false,
  "validationRule": "string",
  "displayOrder": 10
}
Responses
200 - OK
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:
{
  "fieldName": "string",
  "isRequired": false,
  "validationRule": "string",
  "displayOrder": 10,
  "active": false
}
Responses
200 - OK
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 - OK
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 - OK
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:
{
  "workflowStepId": "22553f3a-7638-4591-b843-a1a3817d4dad",
  "roleName": "string"
}
Responses
200 - OK
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 - OK
GET /v2/Workflow/definition/{definitionId}/steps

Retrieves all workflow steps belonging to a specific workflow definition.

**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.
403 - If the caller lacks permission to view workflows.
404 - If the workflow definition does not exist for the given company.
GET /v2/Workflow/step/{id}

Retrieves a single workflow step by its ID.

**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.
403 - If the caller lacks permission to view workflows.
404 - If the workflow step is not found or does not belong to the specified company.
PUT /v2/Workflow/step/{id}

Updates an existing workflow step.

**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 SCV2.Common.Dtos.WorkflowStepUpdateDto containing updated step information.
Request Body Schema:
{
  "name": "string",
  "description": "string",
  "displayOrder": 10,
  "isTerminal": false,
  "active": false
}
Responses
200 - OK
204 - Indicates the workflow step was updated successfully.
403 - If the caller lacks permission to manage workflows.
404 - If the step does not exist or belongs to a different company.
DELETE /v2/Workflow/step/{id}

Deletes a workflow step permanently.

**Usage Notes:** - This is a hard delete operation. - Related triggers and actions should be cascaded by the database or EF configuration.
Parameters
id (path) * - The unique identifier of the workflow step to delete.
companyId (header) - The company ID supplied in the request header.
Responses
200 - OK
204 - Indicates the workflow step was deleted successfully.
403 - If the caller lacks permission to manage workflows.
404 - If the workflow step was not found or belongs to another company.
POST /v2/Workflow/definition/{definitionId}/step

Creates a new workflow step under a specific workflow definition.

**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 SCV2.Common.Dtos.WorkflowStepCreateDto containing step details.
Request Body Schema:
{
  "workflowDefinitionId": "bd148289-359e-4fa2-b267-e09bf665dff0",
  "name": "string",
  "description": "string",
  "displayOrder": 10,
  "isTerminal": false,
  "active": false
}
Responses
200 - OK
201 - Returns the created workflow step.
403 - If the caller lacks permission to manage workflows.
404 - If the workflow definition does not exist for the specified company.
GET /v2/Workflow/templates

Retrieves all workflow templates.

Responses
200 - Returns a list of workflow templates.
403 - If the caller lacks permission to view workflows.
GET /v2/Workflow/template/{id}

Retrieves a single workflow template by its unique identifier.

Parameters
id (path) * - The unique identifier of the workflow template.
Responses
200 - Returns the workflow template if found.
403 - If the caller lacks permission to view workflows.
404 - If the template does not exist.
GET /v2/Workflow/step/{stepId}/transitions

Retrieves all workflow transitions originating from a specific step.

**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.
403 - If the caller lacks permission to view workflows.
404 - If the step does not exist for the specified company.
GET /v2/Workflow/transition/{id}

Retrieves details for a specific workflow transition.

**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.
403 - If the caller lacks permission to view workflows.
404 - If the transition does not exist or belongs to another company.
PUT /v2/Workflow/transition/{id}

Updates an existing workflow transition.

**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 SCV2.Common.Dtos.WorkflowTransitionUpdateDto containing updated details.
Request Body Schema:
{
  "condition": "string",
  "triggerType": "string",
  "active": false
}
Responses
200 - OK
204 - Indicates successful update.
403 - If the caller lacks permission to manage workflows.
404 - If the transition is not found or does not belong to the specified company.
POST /v2/Workflow/step/{stepId}/transition

Creates a new workflow transition from a specific step.

**Usage Notes:** - Automatically assigns `WorkflowTransitionId` and sets `Active = true`. - Sets `DateCreated` to `UtcNow`. - Returns via `CreatedAtAction` referencing M:SCV2.Api.Controllers.WorkflowController.GetTransition(System.Guid,System.Int32).
Parameters
stepId (path) * - The unique identifier of the source step.
companyId (header) - The company ID supplied in the request header.
body (body) - The SCV2.Common.Dtos.WorkflowTransitionCreateDto containing transition details.
Request Body Schema:
{
  "fromStepId": "cf3fa36e-4b57-45b3-bf21-2b39b72745ee",
  "toStepId": "a3d4aac8-15e0-42b1-833d-15c06c8409b2",
  "condition": "string",
  "triggerType": "string",
  "active": false
}
Responses
200 - OK
201 - Returns the created workflow transition.
403 - If the caller lacks permission to manage workflows.
404 - If the parent step does not exist for the specified company.
DELETE /v2/Workflow/transition/{id}

Parameters
id (path) *
companyId (header)
Responses
200 - OK
GET /v2/Workflow/definition/{id}/validate

Parameters
id (path) *
companyId (header)
Responses
200 - OK
GET /v2/Workflow/step/{stepId}/triggers

Retrieves all workflow triggers belonging to a specific workflow step.

**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.
403 - If the caller lacks permission to view workflows.
404 - If the workflow step is not found for the specified company.
GET /v2/Workflow/definition/{WorkflowDefinitionId}/triggers

Retrieves all workflow triggers defined within a specific workflow definition.

**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.
403 - If the caller lacks permission to view workflows.
404 - If no steps exist for the workflow definition under the given company.
GET /v2/Workflow/trigger/{id}

Retrieves details for a specific workflow trigger.

**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.
403 - If the caller lacks permission to view workflows.
404 - If the trigger does not exist or belongs to another company.
PUT /v2/Workflow/trigger/{id}

Updates an existing workflow trigger.

**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 SCV2.Common.Dtos.WorkflowTriggerUpdateDto containing updated trigger details.
Request Body Schema:
{
  "workflowTriggerTypeId": "1fe1ed8d-fed3-48f7-8a67-18649e0ad0d0",
  "triggerData": "string",
  "active": false,
  "name": "string",
  "description": "string"
}
Responses
200 - OK
204 - Indicates the workflow trigger was updated successfully.
403 - If the caller lacks permission to manage workflows.
404 - If the trigger does not exist or belongs to another company.
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 - OK
204 - Trigger successfully deleted.
403 - If the caller lacks permission to manage workflows.
404 - Trigger not found or does not belong to the company.
POST /v2/Workflow/step/{stepId}/trigger

Creates a new workflow trigger for a specific step.

**Usage Notes:** - Assigns a new `WorkflowTriggerId`. - Sets `Active = true` and `DateCreated = UtcNow`. - Returns via `CreatedAtAction` referencing M:SCV2.Api.Controllers.WorkflowController.GetTrigger(System.Guid,System.Int32).
Parameters
stepId (path) * - The unique identifier of the workflow step.
companyId (header) - The company ID supplied in the request header.
body (body) - The SCV2.Common.Dtos.WorkflowTriggerCreateDto containing trigger details.
Request Body Schema:
{
  "workflowStepId": "0cf514f3-194b-47c4-8024-3b97cbd601f4",
  "workflowTriggerTypeId": "33d2de6e-75c9-4d23-bd3d-060c38919187",
  "triggerData": "string",
  "name": "string",
  "description": "string"
}
Responses
200 - OK
201 - Returns the created workflow trigger.
403 - If the caller lacks permission to manage workflows.
404 - If the parent workflow step is not found for the specified company.
GET /v2/Workflow/trigger/types

Retrieves all available workflow trigger types.

**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.
403 - If the caller lacks permission to view workflows.
GET /v2/Cart

Get Cart Items

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.
Responses
200 - Successfully returns the list of items in the user's cart.
403 - Returned if the user does not have permission to access the specified company.
POST /v2/Cart

Add To Cart

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 SCV2.Common.Dtos.AddToCartItemDto containing product details, quantity, and related order info.
Request Body Schema:
{
  "itemCode": "string",
  "fhId": 10,
  "shipToFhId": 10,
  "billToFhId": 10,
  "quantity": 10,
  "parentOrderItemId": 10,
  "engravingInformation": "string",
  "source": "string"
}
Responses
200 - Successfully adds the item to the cart.
400 - Returned if the product item code cannot be matched to an existing record.
403 - Returned if the user does not have access to the specified company.
PUT /v2/Cart

Update Order Details

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) - The SCV2.Common.Dtos.OrderItemUpdateDto containing updated order details.
Request Body Schema:
{
  "orderItemId": 10,
  "orderId": 10,
  "masterFhid": 10,
  "contractDetailId": 10,
  "callId": 10,
  "itemCode": "string",
  "quantity": 10,
  "po": "string",
  "deceasedName": "string",
  "dateNeededBy": "2025-12-12T11:45:09.286Z",
  "notes": "string",
  "productNotes": "string",
  "shippingNotes": "string",
  "insuranceCompany": "string",
  "insurancePolicy": "string",
  "billToFhid": 10,
  "shipToFhid": 10,
  "markedOrdered": false,
  "isCloseout": false,
  "closeoutPrice": 10,
  "cost": 10,
  "masterItemId": 10,
  "isConsignment": false,
  "sapPayload": "string",
  "sapResponse": "string",
  "sapOrderNumber": "string",
  "sapDeliveryNumber": "string",
  "userId": 10,
  "dateReceived": "2025-12-12T11:45:09.286Z",
  "dateReturned": "2025-12-12T11:45:09.286Z",
  "dateCreated": "2025-12-12T11:45:09.286Z",
  "dateMarkedOrdered": "2025-12-12T11:45:09.286Z",
  "markedOrderedBy": 10,
  "shippingType": "string",
  "itemMediumIds": [],
  "itemName": "string",
  "shortDesc": "string",
  "itemTypeName": "string",
  "engravingInformation": "string"
}
Responses
200 - OK
204 - Successfully updates order and contract details.
400 - Returned if the specified item or its contract detail cannot be found.
403 - Returned if the user lacks permission to modify the company�s orders.
GET /v2/Cart/Count

Get Cart Count

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.
Responses
200 - Successfully returns the current item count for the user�s cart.
403 - Returned if the user does not have permission to access the specified company.
DELETE /v2/Cart/{orderItemId}

Delete Cart Item

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
204 - Successfully removes the item from the cart.
400 - Returned if the item is not found or is linked to an existing contract and cannot be removed.
403 - Returned if the user lacks permission to modify items for the specified company.
PUT /v2/Cart/MarkOrdered

Mark Item Ordered

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 SCV2.Common.Dtos.OrderItemUpdateDto containing the order item ID to mark as ordered.
Request Body Schema:
{
  "orderItemId": 10,
  "orderId": 10,
  "masterFhid": 10,
  "contractDetailId": 10,
  "callId": 10,
  "itemCode": "string",
  "quantity": 10,
  "po": "string",
  "deceasedName": "string",
  "dateNeededBy": "2025-12-12T11:45:09.286Z",
  "notes": "string",
  "productNotes": "string",
  "shippingNotes": "string",
  "insuranceCompany": "string",
  "insurancePolicy": "string",
  "billToFhid": 10,
  "shipToFhid": 10,
  "markedOrdered": false,
  "isCloseout": false,
  "closeoutPrice": 10,
  "cost": 10,
  "masterItemId": 10,
  "isConsignment": false,
  "sapPayload": "string",
  "sapResponse": "string",
  "sapOrderNumber": "string",
  "sapDeliveryNumber": "string",
  "userId": 10,
  "dateReceived": "2025-12-12T11:45:09.286Z",
  "dateReturned": "2025-12-12T11:45:09.286Z",
  "dateCreated": "2025-12-12T11:45:09.286Z",
  "dateMarkedOrdered": "2025-12-12T11:45:09.286Z",
  "markedOrderedBy": 10,
  "shippingType": "string",
  "itemMediumIds": [],
  "itemName": "string",
  "shortDesc": "string",
  "itemTypeName": "string",
  "engravingInformation": "string"
}
Responses
200 - OK
204 - Successfully marks the item as ordered.
400 - Returned if the specified order item is not found.
403 - Returned if the user lacks permission for the specified company.
POST /v2/Cart/MarkNeedsOrdered

Mark Item Needs Ordered

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 SCV2.Common.Dtos.OrderItemUpdateDto representing the order item to reset.
Request Body Schema:
{
  "orderItemId": 10,
  "orderId": 10,
  "masterFhid": 10,
  "contractDetailId": 10,
  "callId": 10,
  "itemCode": "string",
  "quantity": 10,
  "po": "string",
  "deceasedName": "string",
  "dateNeededBy": "2025-12-12T11:45:09.286Z",
  "notes": "string",
  "productNotes": "string",
  "shippingNotes": "string",
  "insuranceCompany": "string",
  "insurancePolicy": "string",
  "billToFhid": 10,
  "shipToFhid": 10,
  "markedOrdered": false,
  "isCloseout": false,
  "closeoutPrice": 10,
  "cost": 10,
  "masterItemId": 10,
  "isConsignment": false,
  "sapPayload": "string",
  "sapResponse": "string",
  "sapOrderNumber": "string",
  "sapDeliveryNumber": "string",
  "userId": 10,
  "dateReceived": "2025-12-12T11:45:09.286Z",
  "dateReturned": "2025-12-12T11:45:09.286Z",
  "dateCreated": "2025-12-12T11:45:09.286Z",
  "dateMarkedOrdered": "2025-12-12T11:45:09.286Z",
  "markedOrderedBy": 10,
  "shippingType": "string",
  "itemMediumIds": [],
  "itemName": "string",
  "shortDesc": "string",
  "itemTypeName": "string",
  "engravingInformation": "string"
}
Responses
200 - OK
204 - Successfully marks the item as needing to be ordered again.
400 - Returned if the specified order item does not exist.
403 - Returned if the user lacks access to the company or item data.
PUT /v2/Cart/MarkReceived

Mark Item Received

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 SCV2.Common.Dtos.OrderItemUpdateDto containing the order item ID to mark as received.
Request Body Schema:
{
  "orderItemId": 10,
  "orderId": 10,
  "masterFhid": 10,
  "contractDetailId": 10,
  "callId": 10,
  "itemCode": "string",
  "quantity": 10,
  "po": "string",
  "deceasedName": "string",
  "dateNeededBy": "2025-12-12T11:45:09.286Z",
  "notes": "string",
  "productNotes": "string",
  "shippingNotes": "string",
  "insuranceCompany": "string",
  "insurancePolicy": "string",
  "billToFhid": 10,
  "shipToFhid": 10,
  "markedOrdered": false,
  "isCloseout": false,
  "closeoutPrice": 10,
  "cost": 10,
  "masterItemId": 10,
  "isConsignment": false,
  "sapPayload": "string",
  "sapResponse": "string",
  "sapOrderNumber": "string",
  "sapDeliveryNumber": "string",
  "userId": 10,
  "dateReceived": "2025-12-12T11:45:09.286Z",
  "dateReturned": "2025-12-12T11:45:09.286Z",
  "dateCreated": "2025-12-12T11:45:09.286Z",
  "dateMarkedOrdered": "2025-12-12T11:45:09.286Z",
  "markedOrderedBy": 10,
  "shippingType": "string",
  "itemMediumIds": [],
  "itemName": "string",
  "shortDesc": "string",
  "itemTypeName": "string",
  "engravingInformation": "string"
}
Responses
200 - OK
204 - Successfully marks the specified item as received.
400 - Returned if the specified order item is not found.
403 - Returned if the user lacks permission for the specified company.
POST /v2/Cart/SubmitOrder/{orderSource}

Submit Order

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": "array",
  "items": {
    "type": "integer",
    "format": "int64"
  }
}
Responses
200 - Successfully submits the order and returns confirmation details.
400 - Returned if submission fails or invalid item IDs are provided.
403 - Returned if the user does not have permission to submit orders for the specified company.
POST /v2/Cart/BuyItNow

Buy It Now

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 SCV2.Common.Dtos.BuyItNowDto containing all order details, including product, quantity, and optional engraving information.
Request Body Schema:
{
  "itemCode": "string",
  "itemName": "string",
  "isPoRequired": false,
  "isDeceasedNameRequired": false,
  "isShippingTypeRequired": false,
  "quantity": 10,
  "po": "string",
  "deceasedName": "string",
  "dateNeededBy": "2025-12-12T11:45:09.287Z",
  "productNotes": "string",
  "shippingNotes": "string",
  "insuranceCompany": "string",
  "insurancePolicy": "string",
  "billToFhid": 10,
  "fhId": 10,
  "shipToFhid": 10,
  "shippingType": "string",
  "engravingInformation": "string",
  "acceptsPanels": false,
  "panelItemCode": "string",
  "itemType": "string",
  "acceptsCorners": false,
  "engraveable": false,
  "cornerGroup": "string",
  "cornerItemCode": "string",
  "source": "string"
}
Responses
200 - Successfully processes the Buy It Now order and returns confirmation details.
400 - Returned if required product information or item codes are invalid.
403 - Returned if the user does not have permission for the specified company.
POST /v2/Cart/AddToCartNow

Add To Cart Now

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 SCV2.Common.Dtos.AddToCartNowDto containing order details such as item codes, funeral home IDs, quantities, and engraving information.
Request Body Schema:
{
  "itemCode": "string",
  "itemName": "string",
  "quantity": 10,
  "po": "string",
  "deceasedName": "string",
  "dateNeededBy": "2025-12-12T11:45:09.287Z",
  "productNotes": "string",
  "shippingNotes": "string",
  "insuranceCompany": "string",
  "insurancePolicy": "string",
  "billToFhid": 10,
  "fhId": 10,
  "shipToFhid": 10,
  "shippingType": "string",
  "engravingInformation": "string",
  "acceptsPanels": false,
  "panelItemCode": "string",
  "itemType": "string",
  "acceptsCorners": false,
  "engraveable": false,
  "cornerGroup": "string",
  "cornerItemCode": "string",
  "source": "string"
}
Responses
200 - Successfully adds the specified items to the cart and creates associated order records.
400 - Returned if the provided item codes cannot be matched to valid products.
403 - Returned if the user does not have permission to access the specified company.
GET /v2/Cart/History

Get Order History

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.
400 - Returned if the date range is invalid or parameters are missing.
403 - Returned if the user does not have permission to access the specified company.
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/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.
400 - Bad request, user not found or invalid user role.
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.
400 - Bad request, invalid user role or corporation assignment.
GET /v2/TestAccounts

Get All Test Accounts

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.
400 - Returned if the companyId is invalid or missing.
403 - Returned if the user does not have permission to manage users for this company.
POST /v2/TestAccounts

Create Test Account

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:
{
  "coId": 10,
  "email": "string",
  "passwordHash": "string",
  "modifiedBy": "string"
}
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.
403 - Returned if the user does not have permission to manage test accounts.
PUT /v2/TestAccounts/password

Update Test Account Password

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:
{
  "coId": 10,
  "email": "string",
  "newPasswordHash": "string",
  "modifiedBy": "string"
}
Responses
200 - Successfully updates the test account password.
400 - Returned if the user is not found or the update fails.
403 - Returned if the user does not have permission to manage users.
DELETE /v2/TestAccounts/{email}

Delete Test Account

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.
403 - Returned if the user lacks permission to manage test accounts.
GET /v2/TestAccounts/{testAccountId}/roles

Get Assigned Roles

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.
400 - Returned if the test account ID is invalid or the account is not found.
403 - Returned if the user does not have permission to view role assignments.
POST /v2/TestAccounts/roles

Add Role Assignment

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:
{
  "coId": 10,
  "testAccountId": 10,
  "fhId": 10,
  "roleId": 10,
  "modifiedBy": "string"
}
Responses
200 - Successfully adds the role to the test account.
400 - Returned if the role assignment already exists or cannot be added.
403 - Returned if the user does not have permission to manage role assignments.
DELETE /v2/TestAccounts/{testAccountId}/roles/{fhId}/{roleId}

Remove Role Assignment

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.
403 - Returned if the user does not have permission to modify role assignments.
GET /v2/TestAccounts/exists/{email}

Check If User Exists

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.
403 - Returned if the user does not have permission to manage users.
GET /v2/Apps

Get Accessible Applications

Usage Notes: Applications are filtered by both company edition and assigned roles. Internal-use-only applications are hidden from non-administrative users. If mobileOnly is 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.
400 - Returned if the companyId is invalid or missing.
403 - Returned if the user lacks sufficient permissions to view any applications.
POST /v2/NewCall/Designer

Create New Call Designer

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:
{
  "needTypeId": 10,
  "coId": 10,
  "pageData": []
}
Responses
200 - Call designer created and returned.
400 - Returned when validation fails or a designer already exists.
403 - Returned when the caller lacks `ManageVitalFieldFlows` permission.
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/Designer/{newCallDesignerId}

Get New Call Designer

Tags: NewCall, Designer
Parameters
companyId (header) - Company identifier.
newCallDesignerId (path) * - The call designer identifier to fetch.
Responses
200 - Successfully returns the call designer.
400 - Returned when the call designer cannot be found.
403 - Returned when the caller lacks access to the company.
PUT /v2/NewCall/Designer/{newCallDesignerId}

Update New Call Designer

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:
{
  "active": false,
  "pageData": []
}
Responses
200 - Designer updated successfully.
400 - Returned when the call designer cannot be found.
403 - Returned when the caller lacks permission to manage vital flows.
GET /v2/NewCall/DesignerByNeedType/{needTypeId}

Get New Call Designer by Need Type

Tags: NewCall, Designer
Parameters
companyId (header) - Company identifier.
needTypeId (path) * - The need type identifier.
Responses
200 - Successfully returns the call designer or null.
403 - Returned when the caller lacks access to the company.
GET /v2/NewCall/Designers

Get New Call Designers

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.
403 - Returned when the caller lacks access to the company.
🔧 Try It Out
Token is stored in browser localStorage
Token is stored in browser localStorage

Select an endpoint to try it out

Code