Policy API

Create a policy

POST /policy

PolicyCreateRequest4

{
  // Required
  "exposures" : [ExposureCreateRequest]
  "fieldGroups" : [FieldGroupCreateRequest]
  "fieldValues" : map<string,[string]>
  "finalize" : boolean
  "paymentScheduleName" : string
  "policyholderLocator" : string
  "premiumReportName" : string
  "productName" : string

  // Optional
  "policyEndTimestamp" : integer
  "policyStartTimestamp" : integer
}

Fetch a policy

GET /policy/{policyLocator}
  • Request:

    Name

    Position

    Type

    Required

    policyLocator

    path

    string

    required

  • Response:Policy2Response

Update a policy application

POST /policy/{policyLocator}/update

Policy2UpdateRequest

{
  // Required
  "addExposures" : [ExposureCreateRequest]
  "addFieldGroups" : [FieldGroupCreateRequest]
  "removeExposures" : [string]
  "removeFieldGroups" : [string]
  "updateExposures" : [ExposureUpdateRequest]
  "updateFieldGroups" : [FieldGroupUpdateRequest]

  // Optional
  "effectiveContractEndTimestamp" : integer
  "effectiveContractStartTimestamp" : integer
  "fieldValues" : map<string,[string]>
  "finalize" : boolean
  "paymentScheduleName" : string
  "policyEndTimestamp" : integer
  "policyStartTimestamp" : integer
}

Policy2Response

{
  // Required
  "characteristics" : [PolicyCharacteristicsResponse]
  "createdTimestamp" : integer
  "displayId" : string
  "documents" : [PolicyDocumentResponse]
  "effectiveContractEndTimestamp" : integer
  "exposures" : [ExposureResponse]
  "fees" : [FeeResponse]
  "grossFees" : number
  "grossFeesCurrency" : string
  "invoices" : [PolicyInvoice2Response]
  "locator" : string
  "modifications" : [PolicyModificationResponse]
  "originalContractEndTimestamp" : integer
  "originalContractStartTimestamp" : integer
  "policyholderLocator" : string
  "productLocator" : string
  "productName" : string
  "updatedTimestamp" : integer

  // Optional
  "cancellation" : CancellationResponse
  "issuedTimestamp" : integer
  "paymentScheduleName" : string
  "premiumReportName" : string
  "quoteSummary" : QuoteSummaryResponse
}

Finalize a policy

POST /policy/{policyLocator}/finalize
  • Request:

    Name

    Position

    Type

    Required

    policyLocator

    path

    string

    required

  • Response:Policy2Response

Issue a policy

POST /policy/{policyLocator}/issue
  • Request:

    Name

    Position

    Type

    Required

    policyLocator

    path

    string

    required

  • Response:Policy2Response

Cancel a policy

POST /policy/{policyLocator}/cancel

PolicyCancellationIssueRequest

{
  // Required
  "coverageEndTimestamp" : integer
}

Fetch a policy’s cancellation value

GET /policy/{policyLocator}/cancellationValue
  • Request:

    Name

    Position

    Type

    Required

    coverageEndTimestamp

    query

    integer

    required

    policyLocator

    path

    string

    required

  • Response:CancellationValueResponse

CancellationValueResponse

{
  // Required
  "balanceAfterCancellation" : number
  "commissions" : [CommissionChangeResponse]
  "exposurePrices" : [ExposurePriceChangeResponse]
  "grossCommissionsChange" : number
  "grossFeesChange" : number
  "grossPremiumChange" : number
  "grossTaxesChange" : number
  "newGrossCommissions" : number
  "newGrossFees" : number
  "newGrossPremium" : number
  "newGrossTaxes" : number
  "newTotal" : number
  "taxGroups" : [TaxChangeResponse]
  "totalChange" : number
  "value" : number
}

Withdraw a policy

POST /policy/{policyLocator}/withdraw
  • Request:

    Name

    Position

    Type

    Required

    policyLocator

    path

    string

    required

  • Response:Policy2Response

Discard a policy

POST /policy/{policyLocator}/discard
  • Request:

    Name

    Position

    Type

    Required

    policyLocator

    path

    string

    required

  • Response:void

Add a document to a policy

POST /policy/{policyLocator}/addDocument
  • Request:

    Name

    Position

    Type

    Required

    displayName

    query

    string

    required

    document

    formdata

    file

    required

    documentType

    query

    string

    required

    policyLocator

    path

    string

    required

  • Response:Policy2Response

Upload a PDF or HTML file and place it onto the list of documents on the specified policy.

Remove a document from a policy

POST /policy/{policyLocator}/removeDocument
  • Remove a user-uploaded document from a policy.

  • The policy must not be already issued.

PolicyDocumentRemoveRequest

{
  // Required
  "documentLocator" : string
}

Fetch a policy’s automated underwriting result

GET /policy/{policyLocator}/automatedUnderwritingResult

AutomatedUnderwritingResultResponse

{
  // Required
  "decision" : string accept | reject | none
  "decisionTimestamp" : integer
  "notes" : [string]
}

Fetch a policy’s invoices

GET /policy/{policyLocator}/checkInvoices

Issue the next invoice for a policy

POST /policy/{policyLocator}/issueNextInvoice
  • Request:

    Name

    Position

    Type

    Required

    policyLocator

    path

    string

    required

  • Response:Policy2Response

  • Not recommended for use on live policies

  • This endpoint issues the next scheduled invoice for the policy (as visible from Check Invoices)

  • The invoice due date will be the same as if the invoice was issued automatically

CheckInvoicesResponse

{
  // Required
  "futureInvoices" : [FutureInvoiceResponse]
  "generatedInvoices" : [GeneratedInvoiceResponse]
}

FutureInvoiceResponse

{
  // Required
  "endTimestamp" : integer
  "financialTransactions" : [FinancialTransactionResponse]
  "issueTimestamp" : integer
  "startTimestamp" : integer
}

GeneratedInvoiceResponse

{
  // Required
  "financialTransactions" : [FinancialTransactionResponse]
  "invoice" : PolicyInvoice2Response
}

FinancialTransactionResponse

{
  // Required
  "amount" : number
  "amountCurrency" : string
  "endTimestamp" : integer
  "policyModificationLocator" : string
  "postedTimestamp" : integer
  "startTimestamp" : integer
  "type" : string premium | tax | fee | commission

  // Optional
  "commissionRecipient" : string
  "feeLocator" : string
  "feeName" : string
  "perilCharacteristicsLocator" : string
  "perilName" : string
  "taxLocator" : string
  "taxName" : string
}

PolicyPriceChangeResponse

{
  // Required
  "commissions" : [CommissionChangeResponse]
  "exposurePrices" : [ExposurePriceChangeResponse]
  "fees" : [FeeChangeResponse]
  "grossCommissionsChange" : number
  "grossFeesChange" : number
  "grossPremiumChange" : number
  "grossTaxesChange" : number
  "newGrossCommissions" : number
  "newGrossFees" : number
  "newGrossPremium" : number
  "newGrossTaxes" : number
  "newTotal" : number
  "taxGroups" : [TaxChangeResponse]
  "totalChange" : number
}

ExposurePriceChangeResponse

{
  // Required
  "commissions" : [CommissionChangeResponse]
  "grossCommissionsChange" : number
  "grossPremiumChange" : number
  "grossTaxesChange" : number
  "name" : string
  "newGrossCommissions" : number
  "newGrossPremium" : number
  "newGrossTaxes" : number
  "perilPrices" : [PerilPriceChangeResponse]
  "taxGroups" : [TaxChangeResponse]

  // Optional
  "locator" : string
}

PerilPriceChangeResponse

{
  // Required
  "commissions" : [CommissionChangeResponse]
  "grossCommissionsChange" : number
  "grossPremiumChange" : number
  "grossTaxesChange" : number
  "name" : string
  "newGrossCommissions" : number
  "newGrossPremium" : number
  "newGrossTaxes" : number
  "taxes" : [TaxChangeResponse]

  // Optional
  "locator" : string
}

TaxChangeResponse

{
  // Required
  "change" : number
  "name" : string
  "newAmount" : number
}

CommissionChangeResponse

{
  // Required
  "amountChange" : number
  "newAmount" : number
  "recipient" : string
}

FeeChangeResponse

{
  // Required
  "amountChange" : number
  "name" : string
  "newAmount" : number

  // Optional
  "locator" : string
}

Fetch a policy’s pricing data

GET /policy/{policyLocator}/price

Price a policy

POST /policy/{policyLocator}/price

GetPolicyPriceResponse

{
  // Required
  "commissions" : [CommissionResponse]
  "exposurePrices" : [GetExposurePriceResponse]
  "fees" : [FeeResponse]
  "grossCommissions" : number
  "grossCommissionsCurrency" : string
  "grossFees" : number
  "grossFeesCurrency" : string
  "grossPremium" : number
  "grossPremiumCurrency" : string
  "grossTaxes" : number
  "grossTaxesCurrency" : string
  "grossTechnicalPremiumCurrency" : string
  "taxGroups" : [TaxGroupResponse]
  "total" : number
  "totalCurrency" : string

  // Optional
  "grossTechnicalPremium" : number
}

GetExposurePriceResponse

{
  // Required
  "commissions" : [CommissionResponse]
  "grossCommissions" : number
  "grossCommissionsCurrency" : string
  "grossPremium" : number
  "grossPremiumCurrency" : string
  "grossTaxes" : number
  "grossTaxesCurrency" : string
  "grossTechnicalPremiumCurrency" : string
  "locator" : string
  "name" : string
  "perilPrices" : [GetPerilPriceResponse]
  "taxGroups" : [TaxGroupResponse]
  "total" : number
  "totalCurrency" : string

  // Optional
  "grossTechnicalPremium" : number
}

GetPerilPriceResponse

{
  // Required
  "commissions" : [CommissionResponse]
  "grossCommissions" : number
  "grossCommissionsCurrency" : string
  "grossTaxes" : number
  "grossTaxesCurrency" : string
  "locator" : string
  "name" : string
  "premium" : number
  "premiumCurrency" : string
  "taxes" : [TaxGroupResponse]
  "technicalPremiumCurrency" : string
  "total" : number
  "totalCurrency" : string

  // Optional
  "technicalPremium" : number
}

CommissionResponse

{
  // Required
  "amount" : number
  "amountCurrency" : string
  "recipient" : string
}

Get grace period, lapse, and reinstatement information

GET /policy/{policyLocator}/graceLapseReinstatements

GraceLapseReinstatementResponse

{
  // Required
  "gracePeriod" : GracePeriodResponse
  "reinstatements" : [ReinstatementResponse]

  // Optional
  "lapse" : LapseResponse
}

PolicyInvoice2Response

{
  // Required
  "createdTimestamp" : integer
  "displayId" : string
  "documents" : [PolicyDocumentResponse]
  "dueTimestamp" : integer
  "endTimestamp" : integer
  "locator" : string
  "payments" : [PaymentResponse2]
  "policyLocator" : string
  "settlementStatus" : string outstanding | settled
  "startTimestamp" : integer
  "totalDue" : number
  "totalDueCurrency" : string
  "updatedTimestamp" : integer

  // Optional
  "policyModificationLocator" : string
  "premiumReportName" : string
  "settlementType" : string paid | writtenOff | zeroDue | invalidated
}

ExposureCreateRequest

{
  // Required
  "exposureName" : string

  // Optional
  "fieldGroups" : [FieldGroupCreateRequest]
  "fieldValues" : map<string,[string]>
  "perils" : [PerilCreateRequest]
}

PolicyCharacteristicsResponse

{
  // Required
  "createdTimestamp" : integer
  "endTimestamp" : integer
  "fieldGroupsByLocator" : map<string,map<string,[string]>>
  "fieldValues" : map<string,[string]>
  "grossPremiumCurrency" : string
  "grossTaxesCurrency" : string
  "locator" : string
  "mediaByLocator" : map<string,Media>
  "policyEndTimestamp" : integer (deprecated)
  "policyholderLocator" : string
  "policyLocator" : string
  "policyStartTimestamp" : integer (deprecated)
  "productLocator" : string
  "startTimestamp" : integer
  "taxGroups" : [TaxGroupResponse]
  "updatedTimestamp" : integer

  // Optional
  "grossPremium" : number
  "grossTaxes" : number
  "issuedTimestamp" : integer
  "replacedTimestamp" : integer
}

TaxGroupResponse

{
  // Required
  "amount" : number
  "amountCurrency" : string
  "name" : string
}

FeeResponse

{
  // Required
  "amount" : number
  "amountCurrency" : string
  "description" : string
  "locator" : string
  "name" : string
}

PolicyDocumentResponse

{
  // Required
  "displayName" : string
  "fileName" : string
  "locator" : string
  "type" : string pdf | html
  "url" : string
  "urlExpirationTimestamp" : integer

  // Optional
  "createdTimestamp" : integer
  "policyModificationLocator" : string
}

PolicyModificationResponse

{
  // Required
  "createdTimestamp" : integer
  "displayId" : string
  "exposureModifications" : [ExposureModificationResponse]
  "fieldGroupsByLocator" : map<string,map<string,[string]>>
  "fieldValues" : map<string,[string]>
  "locator" : string
  "mediaByLocator" : map<string,Media>
  "name" : string
  "newPolicyCharacteristicsLocators" : [string]
  "number" : integer
  "policyholderLocator" : string
  "policyLocator" : string
  "premiumChangeCurrency" : string
  "productLocator" : string
  "updatedTimestamp" : integer

  // Optional
  "automatedUnderwritingResult" : AutomatedUnderwritingResultResponse
  "configVersion" : integer
  "effectiveTimestamp" : integer
  "endorsementLocator" : string
  "issuedTimestamp" : integer
  "newPolicyCharacteristicsLocator" : string
  "premiumChange" : number
  "renewalLocator" : string
}

ExposureResponse

{
  // Required
  "characteristics" : [ExposureCharacteristicsResponse]
  "createdTimestamp" : integer
  "displayId" : string
  "locator" : string
  "name" : string
  "perils" : [PerilResponse]
  "policyholderLocator" : string
  "policyLocator" : string
  "productLocator" : string
  "updatedTimestamp" : integer
}

PolicyPriceResponse

{
  // Required
  "commissions" : [CommissionResponse]
  "exposurePrices" : [GetExposurePriceResponse]
  "fees" : [FeeResponse]
  "grossCommissions" : number
  "grossCommissionsCurrency" : string
  "grossFees" : number
  "grossFeesCurrency" : string
  "grossPremium" : number
  "grossPremiumCurrency" : string
  "grossTaxes" : number
  "grossTaxesCurrency" : string
  "grossTechnicalPremiumCurrency" : string
  "premiumsByExposureLocator" : map<string,number>
  "premiumsByPerilLocator" : map<string,number>
  "taxGroups" : [TaxGroupResponse]
  "totalDue" : number
  "totalDueCurrency" : string

  // Optional
  "grossTechnicalPremium" : number
}

PolicyInvoice2StatusAndTimeResponse

{
  // Required
  "status" : string unfulfilled | paid | writtenOff | zeroDue | invalidated
  "timestamp" : integer
}

PerilCreateRequest

{
  // Required
  "name" : string

  // Optional
  "deductible" : number
  "fieldGroups" : [FieldGroupCreateRequest]
  "fieldValues" : map<string,[string]>
  "indemnityInAggregate" : string
  "indemnityPerEvent" : string
  "indemnityPerItem" : string
  "locator" : string
  "lumpSumPayment" : number
}

ExposureModificationResponse

{
  // Required
  "exposureLocator" : string
  "locator" : string
  "perilModifications" : [PerilModificationResponse]
  "policyholderLocator" : string
  "policyLocator" : string
  "policyModificationLocator" : string
  "productLocator" : string

  // Optional
  "newExposureCharacteristicsLocator" : string
}

ExposureCharacteristicsResponse

{
  // Required
  "createdTimestamp" : integer
  "endTimestamp" : integer
  "exposureLocator" : string
  "fieldGroupsByLocator" : map<string,map<string,[string]>>
  "fieldValues" : map<string,[string]>
  "locator" : string
  "mediaByLocator" : map<string,Media>
  "policyholderLocator" : string
  "policyLocator" : string
  "productLocator" : string
  "startTimestamp" : integer
  "updatedTimestamp" : integer

  // Optional
  "issuedTimestamp" : integer
  "replacedTimestamp" : integer
}

PerilResponse

{
  // Required
  "characteristics" : [PerilCharacteristicsResponse]
  "createdTimestamp" : integer
  "displayId" : string
  "exposureLocator" : string
  "locator" : string
  "name" : string
  "policyholderLocator" : string
  "policyLocator" : string
  "productLocator" : string
  "renewalGroup" : string
  "updatedTimestamp" : integer
}

PerilModificationResponse

{
  // Required
  "exposureModificationLocator" : string
  "locator" : string
  "perilLocator" : string
  "policyholderLocator" : string
  "policyLocator" : string
  "premiumChangeCurrency" : string
  "productLocator" : string

  // Optional
  "newPerilCharacteristicsLocator" : string
  "premiumChange" : number
  "replacedPerilCharacteristicsLocator" : string
}

PerilCharacteristicsResponse

{
  // Required
  "coverageEndTimestamp" : integer
  "coverageStartTimestamp" : integer
  "createdTimestamp" : integer
  "deductibleCurrency" : string
  "exposureCharacteristicsLocator" : string
  "fieldGroupsByLocator" : map<string,map<string,[string]>>
  "fieldValues" : map<string,[string]>
  "indemnityInAggregateCurrency" : string
  "indemnityPerEventCurrency" : string
  "indemnityPerItemCurrency" : string
  "locator" : string
  "lumpSumPaymentCurrency" : string
  "mediaByLocator" : map<string,Media>
  "perilLocator" : string
  "policyCharacteristicsLocator" : string
  "policyholderLocator" : string
  "policyLocator" : string
  "policyModificationLocator" : string
  "premiumCurrency" : string
  "productLocator" : string
  "updatedTimestamp" : integer

  // Optional
  "deductible" : number
  "indemnityInAggregate" : string
  "indemnityPerEvent" : string
  "indemnityPerItem" : string
  "issuedTimestamp" : integer
  "lumpSumPayment" : number
  "monthPremium" : number
  "premium" : number
  "replacedTimestamp" : integer
  "technicalPremium" : number
}

CancellationResponse

{
  // Required
  "effectiveTimestamp" : integer
  "modificationLocator" : string
  "modificationName" : string
}

ExposureUpdateRequest

{
  // Required
  "addFieldGroups" : [FieldGroupCreateRequest]
  "addPerils" : [PerilCreateRequest]
  "exposureLocator" : string
  "removeFieldGroups" : [string]
  "removePerils" : [string]
  "updateFieldGroups" : [FieldGroupUpdateRequest]
  "updatePerils" : [PerilUpdateRequest]

  // Optional
  "fieldValues" : map<string,[string]>
}

FieldGroupCreateRequest

{
  // Required
  "fieldName" : string
  "fieldValues" : map<string,[string]>
}

FieldGroupUpdateRequest

{
  // Required
  "fieldGroupLocator" : string
  "fieldName" : string
  "fieldValues" : map<string,[string]>
}

PerilUpdateRequest

{
  // Required
  "addFieldGroups" : [FieldGroupCreateRequest]
  "fieldValues" : map<string,[string]>
  "perilLocator" : string
  "removeFieldGroups" : [string]
  "updateFieldGroups" : [FieldGroupUpdateRequest]

  // Optional
  "deductible" : number
  "indemnityInAggregate" : string
  "indemnityPerEvent" : string
  "indemnityPerItem" : string
  "lumpSumPayment" : number
  "removeDeductible" : boolean
  "removeIndemnityInAggregate" : boolean
  "removeIndemnityPerEvent" : boolean
  "removeIndemnityPerItem" : boolean
  "removeLumpSumPayment" : boolean
}