{
    "openapi": "3.0.0",
    "info": {
        "title": "Cancelamento de Apolice de Endosso",
        "version": "1.0.0"
    },
    "servers": [
        {
            "url": "https://sauto.dsv.bradescoseguros.com.br:443/V2/WSBL-CotacaoCSP/service/",
            "description": "Desenvolvimento"
        },
        {
            "url": "https://sauto.hml.bradescoseguros.com.br:443/V2/WSBL-CotacaoCSP/service/",
            "description": "Homologação"
        },
        {
            "url": "https://sauto.bradescoseguros.com.br:443/V2/WSBL-CotacaoCSP/service/",
            "description": "Produção"
        }
    ],
    "tags": [
        {
            "name": "Cálculo Endosso",
            "description": "Cancelar apólice"
        }
    ],
    "paths": {
        "/calculo/endosso/cancelar": {
            "post": {
                "tags": [
                    "Cálculo Endosso"
                ],
                "summary": "Cancelamento de apólice",
                "operationId": "cancelar",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/EndossoCancelamentoRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful Operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ResponseCancelamento"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Service Unavailable",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErroListResponse"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Service Unavailable",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErroListResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Service Unavailable",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErroListResponse"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Service Unavailable",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErroListResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Service Unavailable",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErroListResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "JWT"
            }
        },
        "schemas": {
            "ErroResponse": {
                "type": "object",
                "properties": {
                    "cdErro": {
                        "type": "integer",
                        "description": "Código do erro."
                    },
                    "dsErro": {
                        "type": "string",
                        "description": "Descrição do erro."
                    },
                    "cdSQLCode": {
                        "type": "integer",
                        "description": "Código SQL associado ao erro."
                    },
                    "dsPrograma": {
                        "type": "string",
                        "description": "Nome do programa onde o erro ocorreu."
                    }
                }
            },
            "ErroListResponse": {
                "type": "array",
                "items": {
                    "$ref": "#/components/schemas/ErroResponse"
                },
                "description": "Lista de erros ocorridos."
            },
            "AlertaResponse": {
                "type": "object",
                "properties": {
                    "cdAlerta": {
                        "type": "integer",
                        "description": "Código do alerta."
                    },
                    "dsAlerta": {
                        "type": "string",
                        "description": "Descrição do alerta."
                    },
                    "flAcatavel": {
                        "type": "string",
                        "description": "Indica se o alerta é acatável (por exemplo, \"S\" para sim, \"N\" para não)."
                    },
                    "flImpacto": {
                        "type": "string",
                        "description": "Indica o nível de impacto do alerta."
                    }
                }
            },
            "ResponseObject": {
                "type": "object"
            },
            "ResponseCancelamento": {
                "type": "object",
                "properties": {
                    "flagSucesso": {
                        "type": "string",
                        "enum": [
                            "S",
                            "N"
                        ],
                        "description": "Indica se a operação foi bem-sucedida (S) ou não (N)."
                    },
                    "chaveApolice": {
                        "type": "object",
                        "properties": {
                            "sucursal": {
                                "type": "integer",
                                "format": "int32",
                                "description": "Identificador da sucursal."
                            },
                            "apolice": {
                                "type": "integer",
                                "format": "int64",
                                "description": "Número da apólice."
                            },
                            "item": {
                                "type": "integer",
                                "format": "int32",
                                "description": "Identificador do item."
                            }
                        }
                    },
                    "endosso": {
                        "type": "object",
                        "description": "Informações sobre o endosso.",
                        "properties": {
                            "numero": {
                                "type": "integer",
                                "format": "int64",
                                "description": "Número do Estudo."
                            },
                            "item": {
                                "type": "integer",
                                "format": "int32",
                                "description": "Número do item endosso."
                            }
                        }
                    },
                    "segurado": {
                        "type": "object",
                        "description": "Informações sobre o segurado.",
                        "properties": {
                            "nome": {
                                "type": "string",
                                "description": "Nome do segurado."
                            },
                            "numeroCpfCnpj": {
                                "type": "string",
                                "description": "Número do CPF ou CNPJ do segurado."
                            }
                        }
                    },
                    "veiculo": {
                        "type": "object",
                        "description": "Informações sobre o veículo.",
                        "properties": {
                            "anoFabricacao": {
                                "type": "integer",
                                "format": "int32",
                                "description": "Ano de fabricação do veículo."
                            },
                            "anoModelo": {
                                "type": "integer",
                                "format": "int32",
                                "description": "Ano do modelo do veículo."
                            },
                            "codigoCombustivel": {
                                "type": "integer",
                                "format": "int32",
                                "description": "Código do tipo de combustível do veículo."
                            },
                            "chassi": {
                                "type": "string",
                                "description": "Número do chassi do veículo."
                            },
                            "placa": {
                                "type": "string",
                                "description": "Placa do veículo."
                            }
                        }
                    },
                    "corretor": {
                        "type": "object",
                        "description": "Informações sobre o corretor.",
                        "properties": {
                            "codigoCorretor": {
                                "type": "integer",
                                "format": "int32",
                                "description": "Código do corretor."
                            },
                            "codigoSucursal": {
                                "type": "integer",
                                "format": "int32",
                                "description": "Código da sucursal do corretor."
                            },
                            "numeroCpfCnpj": {
                                "type": "integer",
                                "format": "int64",
                                "description": "Número do CPF ou CNPJ do corretor."
                            }
                        }
                    },
                    "resultadoFinal": {
                        "type": "object",
                        "properties": {
                            "valorPremio": {
                                "type": "number",
                                "format": "double",
                                "description": "Valor do prêmio."
                            },
                            "extensaoAuto": {
                                "type": "number",
                                "format": "double",
                                "description": "Valor da extensão de auto."
                            },
                            "extensaoRCF": {
                                "type": "number",
                                "format": "double",
                                "description": "Valor da extensão RCF."
                            },
                            "adicional": {
                                "type": "number",
                                "format": "double",
                                "description": "Valor adicional."
                            },
                            "iof": {
                                "type": "number",
                                "format": "double",
                                "description": "Valor do IOF."
                            },
                            "valorTotal": {
                                "type": "number",
                                "format": "double",
                                "description": "Valor total."
                            },
                            "valorPgtoApolice": {
                                "type": "number",
                                "format": "double",
                                "description": "Valor a ser pago pela apólice."
                            },
                            "valorPagar": {
                                "type": "number",
                                "format": "double",
                                "description": "Valor que o segurado deve pagar (se houver)."
                            },
                            "valorReceber": {
                                "type": "number",
                                "format": "double",
                                "description": "Valor que o segurado deve receber (se houver)."
                            }
                        }
                    },
                    "Alertas": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AlertaResponse"
                        },
                        "description": "Lista de alertas ocorridos."
                    },
                    "MensagemErro": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ErroResponse"
                        },
                        "description": "Lista de erros ocorridos."
                    }
                }
            },
            "RecuperaEndosso": {
                "type": "object",
                "properties": {
                    "numero": {
                        "type": "integer",
                        "example": 3004894000186
                    },
                    "item": {
                        "type": "string",
                        "example": "02519440000185"
                    }
                }
            },
            "Autenticacao": {
                "type": "object",
                "properties": {
                    "provedor": {
                        "type": "integer",
                        "example": 3004894000186
                    },
                    "usuario": {
                        "type": "string",
                        "example": "02519440000185"
                    }
                }
            },
            "ChaveApolice": {
                "type": "object",
                "properties": {
                    "sucursalApolice": {
                        "type": "integer",
                        "example": 251
                    },
                    "numeroApolice": {
                        "type": "integer",
                        "example": 49456
                    },
                    "itemApolice": {
                        "type": "integer",
                        "example": 1
                    }
                }
            },
            "EndossoCancelamento": {
                "type": "object",
                "properties": {
                    "dataCancelamento": {
                        "type": "string",
                        "format": "date",
                        "example": "dd/MM/yyyy"
                    }
                },
                "required": [
                    "dataCancelamento"
                ]
            },
            "EndossoCancelamentoRequest": {
                "type": "object",
                "properties": {
                    "autenticacao": {
                        "$ref": "#/components/schemas/Autenticacao"
                    },
                    "chaveApolice": {
                        "$ref": "#/components/schemas/ChaveApolice"
                    },
                    "endossoCancelamento": {
                        "$ref": "#/components/schemas/EndossoCancelamento"
                    }
                },
                "required": [
                    "autenticacao",
                    "chaveApolice",
                    "endossoCancelamento"
                ]
            },
            "SubstituicaoVeiculoRequest": {
                "type": "object",
                "properties": {
                    "autenticacao": {
                        "$ref": "#/components/schemas/Autenticacao"
                    },
                    "chaveApolice": {
                        "$ref": "#/components/schemas/ChaveApolice"
                    },
                    "endossoCancelamento": {
                        "$ref": "#/components/schemas/EndossoCancelamento"
                    },
                    "recuperaEndosso": {
                        "$ref": "#/components/schemas/RecuperaEndosso"
                    }
                },
                "required": [
                    "autenticacao",
                    "chaveApolice",
                    "endossoCancelamento"
                ]
            },
            "EndossoRequest": {
                "type": "object",
                "properties": {
                    "autenticacao": {
                        "$ref": "#/components/schemas/Autenticacao"
                    },
                    "chaveApolice": {
                        "$ref": "#/components/schemas/ChaveApolice"
                    },
                    "endossoCancelamento": {
                        "$ref": "#/components/schemas/EndossoCancelamento"
                    }
                },
                "required": [
                    "autenticacao",
                    "chaveApolice",
                    "endossoCancelamento"
                ]
            }
        }
    }
}