This content applies solely to Connected Underwriting Life, which must be purchased separately from the Appian base platform. This content was written for Appian 23.4 and may not reflect the interfaces or functionality of other Appian versions. |
The Create Case API version 1 provides an endpoint for external systems to create a new case in your Connected Underwriting Life Workbench solution. Clients of the API are able to specify data about a case in the body of their requests. Upon successful validation of their request, the caller receives a successful response containing the case ID of the newly created case. The structure of the Create Case API mimics the structure and process of the manual creation of a case, and the same data points and validations are used in the API and the Create a Case wizard.
The Create Case API has a default endpoint of connected-underwriting-life-case-create. Additionally, you can append the API version to the end of the endpoint. For example, connected-underwriting-life-case-create/v1 indicates a call to the Create Case API version 1. Note that if you do not provide a version path in the endpoint, the CU Life application will use version 1 of the Create Case API by default.
Clients must send a Content-Type header as application/json
. This is standard behavior for Appian API objects.
There are no expected query parameters that should be sent in a request to the Create Case API.
The expected structure of a request body can be seen below:
Variable Name | Datatype | Required |
---|---|---|
productType | code | Required |
isExistingCoverage | boolean | Required |
existingCarrierName | text | Conditional |
proposedEffectiveDate | date | Required |
applicationSignedDate | date | Required |
coverages | list of dictionary | Required |
proposedInsured | dictionary | Required |
beneficiaries | List of dictionary | Required |
agent | dictionary | Required |
payer | dictionary | Required |
owners | List of dictionary | Required |
occupation | dictionary | Optional |
drivingInfo | dictionary | Optional |
risk | dictionary | Optional |
externalPointers | List of dictionary | Optional |
Within each coverage dictionary, the following structure is expected:
Variable Name | Datatype | Required |
---|---|---|
coverageIndicator | code | Required |
coverageType | code | Required |
amount | integer | Conditional |
benefits | List of dictionary | Optional |
benefitType | code | Required |
amount | integer | Optional |
Within each benefit dictionary contained in a coverage dictionary, the following structure is expected:
Variable Name | Datatype | Required |
---|---|---|
benefitType | code | Required |
amount | integer | Optional |
The following structure is expected in the proposedInsured dictionary:
Variable Name | Datatype | Required |
---|---|---|
firstName | text | Required |
lastName | text | Required |
suffix | text | Optional |
maritalStatus | code | Optional |
gender | code | Optional |
dateOfBirth | date | Optional |
countryOfBirth | code | Optional |
citizenship | code | Required |
socialSecurityNumber | text | Conditional |
immigrationNumber | text | Conditional |
addressLine1 | text | Optional |
addressLine2 | text | Optional |
addressCity | text | Optional |
addressState | code | Optional |
addressZip | text | Optional |
yearsAtAddress | integer | Optional |
phoneNumberType | code | Optional |
phoneNumber | text | Optional |
text | Optional |
Within each dictionary in the beneficiaries field, the following structure is expected:
Variable Name | Datatype | Required |
---|---|---|
beneficiaryLevel | code | Required |
allocationPercentage | integer | Required |
entityType | code | Required |
relationshipToInsured | code | Optional |
firstName | text | Conditional |
lastName | text | Conditional |
suffix | text | Optional |
dateOfBirth | date | Optional |
governmentIdType | code | Optional |
governmentId | text | Optional |
organizationType | code | Optional |
organizationName | text | Conditional |
The following structure is expected in the payer dictionary:
Variable Name | Datatype | Required |
---|---|---|
entityType | code | Required |
relationshipToInsured | code | Optional |
firstName | text | Conditional |
lastName | text | Conditional |
suffix | text | Optional |
organizationType | code | Optional |
organizationName | text | Conditional |
Within each dictionary in the owners field, the following structure is expected:
Variable Name | Datatype | Required |
entityType | code | Required |
relationshipToInsured | code | Optional |
firstName | text | Conditional |
lastName | text | Conditional |
suffix | text | Optional |
organizationType | code | Optional |
organizationName | text | Conditional |
The following structure is expected in the occupation dictionary:
Variable Name | Datatype | Required |
---|---|---|
estimatedNetWorth | integer | Optional |
estimatedSalary | integer | Optional |
occupation | text | Optional |
employerName | text | Optional |
businessAddressLine1 | text | Optional |
businessAddressCity | text | Optional |
businessAddressState | code | Optional |
businessAddressZip | text | Optional |
yearsOfEmployment | integer | Optional |
employmentDuties | text | Optional |
The following structure is expected in the drivingInfo dictionary:
Variable Name | Datatype | Required |
---|---|---|
hasDriversLicense | boolean | Optional |
driversLicenseCountry | code | Optional |
driversLicenseState | code | Optional |
driversLicenseId | text | Optional |
driversLicenseExpirationDate | date | Optional |
The following structure is expected in the risk dictionary:
Variable Name | Datatype | Required |
---|---|---|
usesNicotine | boolean | Optional |
usesControlledSubstances | boolean | Optional |
usesAlcohol | boolean | Optional |
weight | decimal | Optional |
height | decimal | Optional |
isTreatmentRecommended | boolean | Optional |
isRecentlyHospitalized | boolean | Optional |
medicalConditions | List of dictionary | Optional |
criminalHistory | List of dictionary | Optional |
plannedHazardousActivities | List of code | Optional |
travelInformation | List of dictionary | Optional |
Within each medicalCondition dictionary, the following structure is expected:
Variable Name | Datatype | Required |
---|---|---|
medicalCondition | code | Required |
applicability | code | Required |
Within each criminalHistory dictionary, the following structure is expected:
Variable Name | Datatype | Required |
---|---|---|
typeOfCharge | code | Required |
convictionDate | date | Required |
crimeDescription | text | Required |
Within each travelInformation dictionary, the following structure is expected:
Variable Name | Datatype | Required |
---|---|---|
typeOfTravel | code | Required |
country | code | Required |
Within each externalPointer dictionary, the following structure is expected:
Variable Name | Datatype | Required |
---|---|---|
typeOfTravel | code | Required |
country | code | Required |
A few of the fields listed above have a code
datatype. This means that requests must have a specific value from a predefined list provided for these fields. In the backend, these fields correspond to a specific reference data list. Failure to provide a valid value for any of these fields will result in a 400 error response.
A list of codes valid for a particular field can be found in the externalCode
column of the corresponding reference data table. As additional pieces of reference data are added, values in this column can be updated so that this API or other APIs can accept the new piece of reference data across the application.
A few possible response codes can be sent back to the caller of the Create Case API:
This response code indicates a successful request and creation of a case in Appian. The provided response body will contain the case ID of the newly-created case.
This response indicates the caller sent a bad request. Cases will not be made from requests that return a 400 error response. The response body will provide additional information on why the request was bad. Possible errorCodes
contained in the response body include:
medicalCondition
codes, failing to have coverage with an indicator of Base, or sending an applicationSignedDate
that is in the future.This response code is an Appian default and indicates a problem authenticating.
This response code is an Appian default and indicates there was a backend expression or process error.
Connected Underwriting Life Create Case API