O processo de cotação acontece em 3 etapas e é definido em dois fluxos:
Figura abaixo exibe o processo realizado com as chamadas das mutações em graphQL
O fluxo de cotação e precificação é o mesmo para ambos os fluxos.
mutation CreateAutoOrder($input: AutoCreateOrderMutationInput) {
createAutoOrder(input: $input) {
id
success
order {
createdAt
id
driver {
bonusesClass
userBonusesClass
}
insuredPerson {
name
document {
number
type
}
}
errors {
messages {
code
description
}
attribute
}
vehicle {
licensePlate
vin
}
}
}
}
Variáveis
{
"input": {
"attributes": {
"driver": {
"youngDriverCoverage": false,
"name": "John Youser",
"gender": "MALE",
"maritalStatus": "MARRIED",
"dateOfBirth": "1980-01-01",
"document": {
"type": "CPF",
"number": "123.456.700-88"
}
},
"insuredPerson": {
"name": "John Youser",
"gender": "MALE",
"maritalStatus": "MARRIED",
"phone": "(11) 99999-9999",
"dateOfBirth": "1980-01-01",
"address": {
"number": "68",
"zipCode": "15755-000",
"street": "rua dos altinos",
"neighborhood": "NA"
},
"salaryRange": "BAND4",
"nationality": "BR",
"document": {
"type": "CPF",
"number": "123.456.700-88"
},
"email": "cenario-parceiro@youse.com.br"
},
"createdFromIp": "192.168.1.1",
"userAgent": "chrome",
"vehicle": {
"adaptedWithGasKit": false,
"year": 2012,
"adaptedForDisabilities": false,
"fuelType": "gasoline",
"address": {
"zipCode": "04552-040"
},
"code": "024103220080",
"usage": "ONLY_PRIVATE",
"bulletProof": false,
"ownershipStatus": "OWNED_BY_PERSON",
"brandNew": false
}
}
}
}
Com o retorno da requisição anterios, utilizamos o ID da cotação gerada orderId
mutation {
createPlansOffer(input: { orderId: "64f0d041183a930009d4b412" }) {
success
order {
id
errors {
attribute
messages {
code
description
}
}
... on AutoOrder {
driver {
bonusesClass
ciNumber
}
vehicle {
licensePlate
make
model
vin
}
}
errors {
attribute
messages {
code
description
}
}
}
plans {
id
planUid
description
linkToBuy
subproduct
name
coverages {
name
}
pricing {
annualAssistancesTotalCost
annualTotalCost
annualTotalPremium
assistancesTotalCost
monthlyAssistancesTotalCost
monthlyTotalCost
totalCost
totalPremium
}
}
}
}
mutation {
issuePolicy(
input: {
attributes: {
orderId: "650db053015bf00009962eeb",
planId: "fbbb218f-0250-4086-ab19-c5b68cc9361e",
paymentCondition: ONCE
}
}
) {
success
policy {
status
errors {
attribute
messages {
code
description
}
}
}
}
}
Nesse processo de efetivação será enviado chamadas que indicam todo o processo de cobrança e necessidade de confirmação que é preciso ser realizado.