Du är här:
InsCommissionService:calculate
Använd denna tjänst för att beräkna provisionen för en producent.
Metod: calculate
Beskrivning
Denna tjänst använder detaljer om producenten, försäkringsprodukten och den provisionerbara händelsen för att beräkna en provision för en producent.
Så här fungerar det
För att beräkna en provision gör denna tjänst följande:
-
Accepterar indata från
productionCode,producerId,productId,commissionableEvent,contextocheffectiveDateför att hitta rättCommissionScheduleatt använda för beräkningen. -
Beräknar provisionen baserat på Provisionsschema.
-
Utvärderar provisionen för att avgöra om det är en chargeback (ett returnerat provisionsbelopp).
-
Om det provisionerbara beloppet är negativt behandlar tjänsten provisionen som en chargeback.
-
Om provisionen inte är en chargeback jämför tjänsten det beräknade provisionsbeloppet med lägsta och högsta provisionsbelopp. Om det beräknade beloppet är för lågt eller för högt returnerar tjänsten det lägsta eller högsta beloppet istället för det beräknade beloppet.
-
-
Returnerar kommissionsbeloppet, ID för kommissionsschemat som används för att beräkna det och de lägsta och högsta belopp som gäller för denna kommission.
Indata
Indata |
Beskrivning |
|---|---|
|
Valfritt. Namnet på produktionskoden, inte ID:t, för bearbetningsproducenten. |
|
Valfritt. ID för bearbetningsproducenten. |
|
Obligatoriskt. ID för produkten som provisionen betalas för. |
|
Händelsen eller transaktionen som utlöser en provisionsberäkning (till exempel Offert, Såldpolicy eller Ändrad/Bekräftad). |
|
Valfritt. Provisionsbetalningens giltighetsdatum. Om null använder tjänsten dagens datum. |
|
Obligatoriskt. Fältnamn och värdepar för posten som provision beräknas på. Du måste:
Format utan sökfält:
Format med sökfält:
Du kan specificera upp till två nivåer av fält om du formaterar inmatningen med ett sökfält. |
|
Beloppet som provisionsberäkningen baseras på. |
Indata-JSON
Så här formaterar du JSON för indata.
{
"productionCode": ProductionCode.Name,
"producerId": Producer.Id,
"product2Id": Product2.Id,
"commissionableEvent": event type,
"commissionableAmount": amount of the transaction,
"context": {
"objectId": ID of applicable object used,
"objectAPI.fieldAPI" : value
}
}Detta exempel beräknar en provision för ett godkännande.
{
"productionCode":AX001,
"producerId":ay001jh002,
"product2Id":az011jh022,
"commissionableEvent":"Endorsement",
"commissionableAmount":500,
"context":{
"Quote.vlocity_ins__TotalPremiumforTerm__c":100,
"QuoteLineItem.vlocity_ins__GroupClassId__r.vlocity_ins__ClassCode__c":"Managers",
"QuoteLineItem.vlocity_ins__FeeAmount__c":5,
"objectId":ax003jh001
}
}JSON för utdata
Här är formatet för JSON för utdata.
{
"commissionAmount": amount,
"commissionScheduleId": ID of the commission schedule used,
"minCommissionAmount": CommissionScheduleAssignment.MinCommissionAmount,
"maxCommissionAmount": CommissionScheduleAssignment.MaxCommissionAmount
}Här är exempelutdata som visar det beräknade beloppet (167 kr) inom det intervall som definieras av lägsta och högsta värden (100 kr-500 kr).
{
"commissionAmount":167,
"commissionScheduleId":"ab001od002",
"minCommissionAmount":100,
"maxCommissionAmount":500
}