{
  "openapi": "3.0.1",
  "info": {
    "title": "API RE - Pagamento",
    "description": "Esta API oferece um recurso para a integração com serviços da Bradesco Seguros RE. Esta API não está exposta na intenet.",
    "contact": {
      "name": "Bradesco Seguros",
      "url": "https://wwws.bradescoseguros.com.br/wps/portal/SHSG/home/home",
      "email": "bradescoseguros@bradescoseguros.com.br"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version": "v2.3.1"
  },
  "servers": [
    {
      "url": "https://parceiros.tu.digiseg.com.br",
      "description": "Desenvolvimento"
    },
    {
      "url": "https://parceiros.th.digiseg.com.br",
      "description": "Homologação"
    },
    {
      "url": "https://parceiros.bradescoseguros.com.br",
      "description": "Produção"
    }
  ],
  "paths": {
    "/re/v1/pagamento/cobrancaCartaoCredito": {
      "post": {
        "tags": [
          "Pagamento via cartão de crédito"
        ],
        "summary": "Realiza o pagamento com cartão de crédito",
        "description": "Realiza o pagamento com cartão de crédito de um seguro a ser efetivado",
        "operationId": "cobrancaCartaoCredito",
        "parameters": [
          {
            "name": "env",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CobrancaCartaoCreditoRequestEntity"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CobrancaCartaoCreditoResponse"
                }
              }
            }
          },
          "400": {
            "description": "Parâmetro(s) de entrada inválido(s)"
          },
          "500": {
            "description": "Erro inesperado."
          },
          "504": {
            "description": "Connection timeout."
          },
          "511": {
            "description": "Token não informado, favor incluir um token válido. \n\nToken inválido ou expirado. \n"
          }
        }
      }
    },
    "/re/v1/pagamento/health-check": {
      "get": {
        "tags": [
          "Health Check"
        ],
        "summary": "Apresenta informações da versao do build e o status dos servicos",
        "description": "Realiza uma checagem de disponibilidade dos servicos de pagamento (UP ou DOWN)",
        "operationId": "getHealthCheck",
        "parameters": [
          {
            "name": "env",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "UP",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthCheck"
                }
              }
            }
          },
          "500": {
            "description": "DOWN \n\nErro ao tentar gerar o token de autorização na API Auth. \n\n"
          },
          "504": {
            "description": "Connection timeout."
          },
          "511": {
            "description": "Token não informado, favor incluir um token válido. \n\nToken inválido ou expirado. \n"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "RequestStatus": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Código da consulta",
            "example": "200"
          },
          "message": {
            "type": "string",
            "description": "Mensagem de status da consulta",
            "example": "Consulta efetivada com sucesso"
          },
          "description": {
            "type": "string",
            "description": "Descrição da mensagem",
            "example": "N/A"
          },
          "requestStatusId": {
            "type": "string",
            "description": "Identificador da requisição - Gerado pela aplicação",
            "example": "c17ea59c-d86b-46b9-b898-56834abaa178"
          }
        },
        "description": "Informações de controle do resultado da requisição"
      },
      "Cartao": {
        "required": [
          "codigoAdministradora",
          "codigoSeguranca",
          "dataValidade",
          "nomeImpresso",
          "numero"
        ],
        "type": "object",
        "properties": {
          "codigoAdministradora": {
            "type": "string",
            "description": "Código da administradora do cartão de crédito",
            "example": "40001"
          },
          "numero": {
            "type": "string",
            "description": "Número do cartão de crédito",
            "example": "5248809018396841"
          },
          "codigoSeguranca": {
            "type": "string",
            "description": "Código de segurança do cartão de crédito",
            "example": "356"
          },
          "nomeImpresso": {
            "type": "string",
            "description": "Nome impresso no cartão de crédito",
            "example": "Joao Teste"
          },
          "dataValidade": {
            "type": "string",
            "description": "Data de validade do cartão de crédito",
            "example": "202308"
          }
        },
        "description": "Informações do Cartão de Crédito",
        "example": 1234123412341234
      },
      "CobrancaCartaoCreditoEntity": {
        "required": [
          "cartao",
          "cartaoCript",
          "centroDeLucro",
          "chaveSessao",
          "codigoBancoCedente",
          "codigoCorretor",
          "codigoInternoCia",
          "codigoRamo",
          "codigoSucursal",
          "dataFimVigencia",
          "dataInicialVigencia",
          "dataVencimentoParcela",
          "endereco",
          "formaCobranca",
          "identificadorApoliceOrigem",
          "identificadorParcelaOrigem",
          "nomeCorretor",
          "numeroApolice",
          "numeroProposta",
          "origemCobranca",
          "pessoa",
          "quantidadeParcelas",
          "valorParcela",
          "valorTotalApolice"
        ],
        "type": "object",
        "properties": {
          "codigoRamo": {
            "type": "string",
            "description": "Código do ramo",
            "example": "928"
          },
          "codigoSucursal": {
            "type": "string",
            "description": "Código da sucursal",
            "example": "1"
          },
          "codigoInternoCia": {
            "type": "string",
            "description": "Código interno da CIA",
            "example": "244"
          },
          "codigoBancoCedente": {
            "type": "string",
            "description": "Código do banco cedente",
            "example": "237"
          },
          "codigoCorretor": {
            "type": "string",
            "description": "Código do corretor",
            "example": "178707"
          },
          "nomeCorretor": {
            "type": "string",
            "description": "Nome do corretor",
            "example": "BRADESCOR COR DE SEGUROS LTDA"
          },
          "origemCobranca": {
            "type": "string",
            "description": "Origem da cobrança",
            "example": "AFN1"
          },
          "formaCobranca": {
            "type": "string",
            "description": "Foram de cobrança",
            "example": "4"
          },
          "quantidadeParcelas": {
            "type": "string",
            "description": "Quantidades de parcelas",
            "example": "10"
          },
          "valorParcela": {
            "type": "string",
            "description": "Valor da parcela",
            "example": "19.9"
          },
          "cartao": {
            "$ref": "#/components/schemas/Cartao"
          },
          "cartaoCript": {
            "type": "string",
            "description": "Número do cartão criptografado",
            "example": "xyz@4ref"
          },
          "chaveSessao": {
            "type": "string",
            "description": "Chave da sessão",
            "example": "xyz"
          },
          "dataVencimentoParcela": {
            "type": "string",
            "description": "Data de vencimento da parcela",
            "example": "20230310"
          },
          "identificadorParcelaOrigem": {
            "type": "string",
            "description": "Identificador da parcela de origem",
            "example": "1"
          },
          "valorTotalApolice": {
            "type": "string",
            "description": "Valor total da apólice",
            "example": "199.0"
          },
          "numeroApolice": {
            "type": "string",
            "description": "Número da apólice",
            "example": "000000012345"
          },
          "numeroProposta": {
            "type": "string",
            "description": "Número da proposta",
            "example": "L00990139"
          },
          "dataInicialVigencia": {
            "type": "string",
            "description": "Data de início da vigência",
            "example": "20200410"
          },
          "dataFimVigencia": {
            "type": "string",
            "description": "Data de fim da vigência",
            "example": "20250410"
          },
          "identificadorApoliceOrigem": {
            "type": "string",
            "description": "Identificador de origem da apólice",
            "example": "928000002125082"
          },
          "pessoa": {
            "$ref": "#/components/schemas/Pessoa"
          },
          "endereco": {
            "$ref": "#/components/schemas/Endereco"
          },
          "centroDeLucro": {
            "type": "string",
            "description": "centroDeLucro",
            "example": "0017-00182"
          }
        },
        "description": "Informações de cobrança para a request do pagamento"
      },
      "CobrancaCartaoCreditoRequestEntity": {
        "type": "object",
        "properties": {
          "incluirCobrancaEcommerceRequest": {
            "$ref": "#/components/schemas/CobrancaCartaoCreditoEntity"
          }
        },
        "description": "Informações para a request do pagamento"
      },
      "Endereco": {
        "required": [
          "bairro",
          "cep",
          "cidade",
          "complemento",
          "logradouro",
          "numero",
          "pais",
          "uf"
        ],
        "type": "object",
        "properties": {
          "logradouro": {
            "type": "string",
            "description": "Logradouro",
            "example": "Rua dos Tecelões"
          },
          "numero": {
            "type": "string",
            "description": "Número",
            "example": "187"
          },
          "complemento": {
            "type": "string",
            "description": "Complemento",
            "example": "AP504"
          },
          "bairro": {
            "type": "string",
            "description": "Bairro",
            "example": "bangu"
          },
          "cidade": {
            "type": "string",
            "description": "Cidade",
            "example": "RIO DE JANEIRO"
          },
          "uf": {
            "type": "string",
            "description": "UF",
            "example": "RJ"
          },
          "cep": {
            "type": "string",
            "description": "CEP",
            "example": "21820130"
          },
          "pais": {
            "type": "string",
            "description": "País",
            "example": "BR"
          }
        },
        "description": "Informações do Endereço"
      },
      "Pessoa": {
        "required": [
          "dataNascimento",
          "estadoCivil",
          "genero",
          "naturezaDocumento",
          "nome",
          "numeroDocumentoIdentificacao"
        ],
        "type": "object",
        "properties": {
          "numeroDocumentoIdentificacao": {
            "type": "string",
            "description": "numeroDocumentoIdentificacao",
            "example": "1"
          },
          "nome": {
            "type": "string",
            "description": "Nome",
            "example": "Joao Teste"
          },
          "genero": {
            "type": "string",
            "description": "Gênero",
            "example": "2"
          },
          "estadoCivil": {
            "type": "string",
            "description": "Estado civil",
            "example": "3"
          },
          "dataNascimento": {
            "type": "string",
            "description": "Data de nascimento",
            "example": "19811012"
          },
          "naturezaDocumento": {
            "type": "string",
            "description": "Natureza do documento",
            "example": "44962433776"
          }
        },
        "description": "Informações da Pessoa"
      },
      "CobrancaCartaoCreditoResponse": {
        "required": [
          "codigoAutorizacao",
          "codigoRetorno",
          "dgRef",
          "dvSequencialProduto",
          "identificadorPagamento",
          "log",
          "numeroAutorizacao",
          "numeroDaParcela",
          "numeroSequencialProduto",
          "ok",
          "requestStatus",
          "status",
          "tid",
          "urlAutenticacao"
        ],
        "type": "object",
        "properties": {
          "requestStatus": {
            "$ref": "#/components/schemas/RequestStatus"
          },
          "identificadorPagamento": {
            "type": "string",
            "description": "Identificador de pagamento",
            "example": "123"
          },
          "codigoRetorno": {
            "type": "string",
            "description": "Código de retorno",
            "example": "123"
          },
          "numeroDaParcela": {
            "type": "string",
            "description": "Número da parcela",
            "example": "123"
          },
          "dgRef": {
            "type": "string",
            "description": "Dígitos de referencia",
            "example": "123"
          },
          "numeroSequencialProduto": {
            "type": "string",
            "description": "Número sequencial do produto",
            "example": "123"
          },
          "dvSequencialProduto": {
            "type": "string",
            "description": "Dígito sequencial do produto",
            "example": "123"
          },
          "urlAutenticacao": {
            "type": "string",
            "description": "URL de autênticação",
            "example": "123"
          },
          "tid": {
            "type": "string",
            "description": "tid",
            "example": "123"
          },
          "numeroAutorizacao": {
            "type": "string",
            "description": "Número de autorização",
            "example": "123"
          },
          "codigoAutorizacao": {
            "type": "string",
            "description": "Código de autorização",
            "example": "123"
          },
          "status": {
            "type": "string",
            "description": "Status",
            "example": "123"
          },
          "ok": {
            "type": "boolean",
            "description": "Status do agendamento",
            "example": true
          },
          "log": {
            "type": "array",
            "description": "Lista de erros",
            "items": {
              "$ref": "#/components/schemas/LogResponse"
            }
          }
        },
        "description": "Informações do response da cobranca de cartao de credito"
      },
      "LogResponse": {
        "type": "object",
        "properties": {
          "codigo": {
            "type": "string",
            "description": "Código do erro",
            "example": "0"
          },
          "descricao": {
            "type": "string",
            "description": "Descrição do erro",
            "example": "descricao"
          },
          "detalhe": {
            "type": "string",
            "description": "Detalhes do erro",
            "example": "detalhe"
          }
        },
        "description": "Informações do response relativos a erros na cobranca de cartao de credito"
      },
      "HealthCheck": {
        "required": [
          "info"
        ],
        "type": "object",
        "properties": {
          "info": {
            "$ref": "#/components/schemas/Info"
          }
        },
        "description": "Informações sobre o Health Check da API"
      },
      "Info": {
        "required": [
          "re_parcerias",
          "version"
        ],
        "type": "object",
        "properties": {
          "re_parcerias": {
            "type": "string",
            "description": "Serviço",
            "example": "Pagamento"
          },
          "version": {
            "type": "string",
            "description": "Versão",
            "example": "2211231400"
          },
          "status": {
            "type": "string",
            "description": "Status",
            "example": "UP"
          }
        },
        "description": "Informações sobre a API"
      }
    }
  }
}