Páginas filhas
  • SERASA Relato

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Configurando acesso ao SERASA

...

RELATO

 


  • A configuração dos acessos externos SERASA

...

  • RELATO deve inicialmente passar por uma indicação para a JVM do path do arquivo de properties, do certificado e do log4j; veja abaixo o setting para a JVM (‘-D option‘):

...

1
2

...


Bloco de código
languagejava
linenumberstrue
-Dserasa-relato.datadir=/home/jboss/intellector
-Dlog4j.configuration=/home/jboss/intellector
-Daccess.ssl=/home/jboss/intellector/ssl

...


Para o uso direto em testes,

...

deve usaríamos(e.g. /home/jboss/intellector)

...

.


Bloco de código
languagejava
linenumberstrue
java -jar -cp. -Dserasa-relato.datadir=/home/jboss/intellector SerasaRelato.jar
Aviso
Usando a execução acima, não esqueça de colocar no CLASSPATH todas as dependências; e o mesmo para JAVA_OPTS no JBoss.

 


Propriedades para o Acesso Seguro (HTTPS)

‘https.properties‘ –

...

Arquivos de propriedades do certificado e conexão ‘host-to-host‘ com a SERASA.

 


Bloco de código
language
java#
html/xml
linenumberstrue
# Arquivo de properties para o SERASA 
PJ # $Revision: 1.2 $
RELATO
# 
  
# Informações de autenticacao e certificados do serasa 
user.url=
sitenet07
sitenethomologa.serasa.com.br 
user.root=/Homologa/consultahttps
user.jks=lVaxvlqeVH5ugq/rba5vYvSWhu8kYJqO3Q==O63WLqgqpA== 
user.cert=/home/jboss/intellector-files/serasa.jks 
#user.serasa.cert=e:/tools/desv/ws_tec/serasa/resources/serasa.jks
Dica
 

Existe no Site do Intellector, uma funcionalidade para configurar os arquivos de propriedades, lá você poderá gerar a senha criptografada.

  
Aviso

 

...

 

...

Configurando SSL e HTTPS

...

: sem Certificado ’não funciona’ e, entenda bem o conceito, leia sobre isso. Esse certificado é fornecido pela própria entidade, tipo host<->host.

...


Auditoria dos dados de Acesso

Para efeitos de auditoria, esse plugin persiste os dados da string de Envio e Retorno do acesso (dados brutos), sendo possível consultar esses dados via web service de Auditoria e verificar ou fazer uso dessas strings. O conteúdo dessa string bruta é composto pelos campos que compõe o layout de entrada e saída, especificada na documentação do SERASA.

 



Layouts para o Acesso

 


  • Nos Layouts são apresentados dados fixos, que provavelmente não sofrerão alterações; caso haja, a codificação do acesso também deverá ser alterada; basicamente, são dados transacionais.

...

‘layout_p002.xml‘ – Header do Registro

...

P002 – IP20(RELATO)/P8GL.


Bloco de código
languagehtml/xml
linenumberstrue
<?xml version="1.0" encoding="ISO-8859-1"?>

...


<!-- layout_p002.xml - Registro P002 - Outras Opcoes de Consulta Pessoa Juridica -->

...

<serasa-relato>
	<field>
		<id>P002_REGISTRO</id>
		<value>P002</value>
		<size>4</size>
		<type>S</type>
	</field>
	<field>
		<id>P002_COD1</id>
		<value>IP20</value>
		<size>4</size>
		<type>S</type>
	</field>
	<field>
		<id>P002_CHAVE1</id>
		<value>Q</value>
		<size>21</size>
		<type>S</type>	
		<!-- chave de acesso para consultar a 1a opcao se necessario --> 
	</field>
	<field>
		<!-- codigo da 2a opcao para consultar outro produto, feature ou base (ver tabela 30 -->

...

		<id>P002_COD2</id>
		<value>P8GL</value>
		<size>4</size>

...


		<type>S</type>

...


...

	</field>

...


...

	<field>

...


		<!-- chave de acesso para consultar a 

...

2a opcao se necessario -->

...

		<id>P002_CHAVE2</id>
		<value> </value>
		<size>21</size>
		<type>S</type>	
	</field>
	<field>
		<!-- codigo da 

...

3a opcao para consultar outro produto, feature ou base (ver tabela 30 -->

...

		<id>P002_COD3</id>
		<value> </value>
		<size>4</size>
		<type>S</type>
	</field>
	<field>
		<!-- chave de acesso para consultar a 

...

3a opcao se necessario -->

...


		<id>P002_CHAVE3</id>
		<value> </value>
		<size>21</size>
		<type>S</type>	
	</field>
	
	<field>
		<!-- codigo da 

...

4a opcao para consultar outro produto, feature ou base (ver tabela 30 -->

...


		<id>P002_COD4</id>
		<value> </value>
		<size>4</size>
		<type>S</type>
	</field>
	<field>
		<!-- chave de acesso para consultar a 

...

4a opcao se necessario -->

...

		<id>P002_CHAVE4</id>
		<value> </

...

value>
		<size>21</size>

...


		<type>S</type>

...

	
	</field>

...


...

	
	<field>
		<id>P002_FILLER</id>
		<value> </value>
		<size>11</size>
		<type>S</type>	
	</field>
</serasa-relato>

  

  • Arquivo layout_p009.xml - Opções de Monitoramento. 
  • Verificar no layout as opções para montagem do registro.

 

  • Arquivo layout_p006.xml - Opções de consulta do Cadastro Sintético
Bloco de código
languagehtml/xml
<?xml version="1.0" encoding="ISO-8859-1"?> 
<serasapf> 
    <field> 
    <!-- Layout de consulta P006: trata-se de uma sequencia de S/N, para cada registro -->
    <!-- para uma melhor visualizacao e configuracao, verificar o layout de consulta do P006 -->
        <name>P006SNSSS9999SSSSSSSN NNNSN</name> 
        <size>27</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- filler (7): filler de COMPLEMENTO do registro P006 -->
        <name> </name> 
        <size>88</size> 
        <type>S</type> 
    </field> 
</serasapf>

 


  •  
  • Arquivo layoutPJ_b49c.xml - Header

...

  • Transacional para a

...

  • Consulta Pessoa Jurídica

...

  • .


Bloco de código
languagehtml/xml
linenumberstrue
<?xml version="1.0" encoding="ISO-8859-1"?> 
<serasapj> 
    <field> 
        <!-- header Credit Bureau -->
        <name>B49C</name> 
        <size>4</size> 
        <type>S</type> 
    </field> 
    <field> 
        <!-- Filler -->
        <name> </name> 
        <size>6</size> 
        <type>S</type> 
    </field> 
    <field> 
        <!-- NUM_DOC=CPF; está neste XML ilustrando, pois o mesmo é tratado numa -->
        <!-- tag de entrada, serve como referencia pra substituicao do real CPF -->
        <name>cpf</name> 
        <size>15</size> 
        <type>N</type> 
    </field> 
    <field> 
    <!-- Tipo Pessoa F=pessoa fisica; J=pessoa juridica -->
        <name>J</name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
        <!-- Base de consulta -->
        <name>C</name> 
        <size>6</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- Modalidade -->
        <name>FI</name> 
        <size>2</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- valor da consulta -->
        <name>8888888</name> 
        <size>7</size> 
        <type>N</type> 
    </field> 
    <field> 
    <!-- Centro de custo -->
        <name> </name> 
        <size>12</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- Codificado (S/N) -->
        <name>N</name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- quantidade de registros por transmissao de dados -->
        <name>99</name> 
        <size>2</size> 
        <type>N</type> 
    </field> 
    <field> 
    <!-- Deseja dialogo de comunicacao (S/N) -->
        <name>S</name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- Funcao: INI,CON,ENC,ERR,TMD,FIM -->
        <name>INI</name> 
        <size>3</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- Tipo de consulta -->
        <name>A</name> 
        <size>1</size>> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- atualiza dados enviados (S/N) -->
        <name>N</name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- Filler (2) -->
        <name> </name> 
        <size>42</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- quantidade de cheques sequenciais -->
        <name>00</name> 
        <size>2</size> 
        <type>N</type> 
    </field> 
    <field> 
    <!-- endereço + telefone -->
        <name>N</name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- filler (3) -->
        <name> </name> 
        <size>8</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- conta corrente -->
        <name>0000000000</name> 
        <size>10</size> 
        <type>N</type> 
    </field> 
    <field> 
    <!-- digito da conta corrente -->
        <name>0</name> 
        <size>1</size> 
        <type>N</type> 
    </field> 
    <field> 
    <!-- agencia -->
        <name>0000</name> 
        <size>4</size> 
        <type>N</type> 
    </field> 
    <field> 
    <!-- filler (4) -->
        <name> </name> 
        <size>61</size> 
        <type>N</type> 
    </field> 
    <field> 
    <!-- quantidade de compromisso encontrados -->
        <name> </name>  
        <size>2</size> 
        <type>N</type> 
    </field> 
    <field> 
    <!-- tem anotacoes negativas (S/N/B) -->
        <name> </name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- anotacoes de cheques (S/N/B) -->
        <name> </name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- data da consulta -->
        <name> </name> 
        <size>8</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- hora da consulta -->
        <name> </name> 
        <size>6</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- total de registros -->
        <name> </name> 
        <size>4</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- quantidade de registros enviados por transmissao -->
        <name> </name> 
        <size>4</size> 
        <type>N</type> 
    </field> 
    <field> 
    <!-- numero de controle de atualizacao das tabelas -->
        <name> </name> 
        <size>4</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- filler (5) -->
        <name> </name> 
        <size>176</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- acessou recheque online (S/N) -->
        <name>N</name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- tem ocorrencia de Recheque ultimo ano (S/N) -->
        <name>N</name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
    <field> 
    <!-- filler (6) -->
        <name> </name> 
        <size>1</size> 
        <type>S</type> 
    </field> 
</serasapj>

...

  

Propriedades Configuráveis do Acesso
 
  • As propriedades abaixo podem sofrer alterações, e essas podem ser feitas pelo site do Intellector 

...

  • : muita atenção no preenchimento dessas informações, pois elas definem o acesso ao conteúdo (informações) e, não de conexão ao host da SERASA.

 

...

  • ‘Serasa.

...

  • Properties

...

  • .

 


Bloco de código
languagehtml/xml
linenumberstrue
# Arquivo de properties para
o SERASA PJ # $Revision: 1.2 $
 o SERASA RELATO
# 
# type S=string, N=numeric 
# 
# Informaçoes de Login no SERASA 
serasa.login=00186487 
serasa.login_size=8 
serasa.login_type=N 
serasa.password=11003344    
serasa.pass_size=8 
serasa.pass_type=S 
serasa.newpass=  
serasa.npass_size=8 
serasa.npass_type=S
 


Preenchimento da HashMap de

...

Entrada 
  • ‘Método de acesso no XML

Esse será

...

o método usado pelo reflection da politica.

 


Bloco de código
languagehtml/xml
linenumberstrue
<!-- metodo de acesso para ser carregado no acesso       -->
<code name="br.com.tools.acessos.serasa.
SerasaPJ
SerasaRelato"/>

  

  Sufixo
  • ‘Sufixo para as

...

  • variáveisinternas da política; toda vez que você acessar um item de registro, ele só poderá ser acessado acrescentado esse sufixo, e.g., ‘B001_GRAFIAserasapf‘. Isso diferencia os vários

...

  • acessos disponíveis nas políticas. Será usada apenas

...

  • pelo Compilador e pela política, mas deve ser informado numa construção do acesso (veja Intellector

...

 


Bloco de código
languagehtml/xml
linenumberstrue
<!-- esse deverah ser sufixo para ser acrescentado ao nome   -->
<!-- vindo da politica, entao irei buscar na hash da politica    -->
<!-- hash.getKey(cnpj_serasa); um de/para para os elementos  -->
<nome_acesso>serasa_
acesso>serasapj<
relato</nome_acesso>

 Exemplo: 

 

1

Exemplo:


Bloco de código
languagejava
linenumberstrue
serIn.put("

...

B49C_NUM_DOC", "0000000000191")

...

 

Exception: 
;

 Exception:


Bloco de código
languagejava
linenumberstrue
throw new 

 

...

 

 

LayoutException("Erro preenchendo HashMap " + this.toString());

 

Dica

...

 Contador’ – sempre existe um atributo no XML nomeado ’counter’ como indexador dos registros

...

  

 

Dados de Entrada do Acesso
 
  • Para o preenchimento da HashMap de entrada,

...

  • é imprescindível entender layout B49C e, devem conter as seguintes chaves de entrada (UPPERCASE); cada campo contém os seguintes dados, sendo eles validados pelo Compilador:
    1. ‘description

...

    1.  – Propriedade da tag “field”, contem a

...

    1. Descrição do

...

    1. Campo
    2. ‘type

...

    1. –            Propriedade da tag “field”, define o

...

    1. Tipo de

...

    1. Dado Pure Java, como StringIntegerDoubleDate e Boolean.
    2. ‘format

...

    1.  –          Propriedade da tag “field”, contem o

...

    1. Formato do

...

    1. Dado; atualmente, só os dados de

...

    1. Datas tem esse campo preenchido.
    2. ‘field

...

    1. –            Tag relativa ao

...

    1. Nome do

...

    1. Campo, escrito em maiúsculas (não necessariamente), como por ex. ‘TPRESPOSTA

...

 

...

    1. .


Bloco de código
languagehtml/xml
linenumberstrue
<!-- contem os dados necessarios para entrada no serasa PJ       -->
<entrada> 
    <!-- posso testar pelo valor obrigatorio dentro de cada     -->
    <!-- acesso,  ele dever ser "CNPJ"                           -->
    <field description="CNPJ da empresa consultada" type="String" format="">CNPJ</field> 
</entrada>


Resposta da Consulta

Dados de Saída do Acessos
 
  • A HasMap de saída dos acessos, seguem o mesmo princípio da entrada, exceto pelo fato de que os dados de um determinado registros, podem se repetir, nesse caso, há a presença de um ‘contador‘ para um eventual looping de tratamento pelas aplicações clientes. Cada campo contém os seguintes dados, sendo eles validados pelo Compilador:
    1. ‘description‘ –

...

    1. Propriedade da tag “register”, contem a

...

    1. Descrição do

...

    1. Campo
    2. ‘type‘ –

...

    1.           Propriedade da tag “register”, define o

...

    1. Tipo de

...

    1. Dado Pure Java, como StringIntegerDoubleDate e Boolean.
    2. ‘format

...

    1. ‘–         Propriedade da tag “register”, contem o

...

    1. Formato do

...

    1. Dado; atualmente, só os dados de

...

    1. Datas tem esse campo preenchido.
    2. ‘register

...

    1. ‘–       Tag relativa ao

...

    1. Nome do

...

    1. Campo, escrito em maiúsculas (não necessariamente), como por ex. ‘R104_DATAFUNDACAO_

  • Abaixo o XML de saída com o ‘contador‘.

...

  • Exemplo ‘com‘ um contador… observe que ‘counter=R104_NUMRELAT‘ indica quantos registros, se existirem, ‘R104‘ foram retornados pelo SERASA.

...

 


Bloco de código
languagehtml/xml
linenumberstrue
<!-- Obs.: quando counter=alguma_coisa, entao todo o bloco       --> 
<!-- abaixo sofrerah um looping baseado nesse counter            --> 
<saida id="R104" counter="R104_NUMRELAT" >
    <register description="Data da Fundação" type="Date" format="yyyymmdd">R104_DATAFUNDACAO_</register>
    <register description="Data do CNPJ" type="Date" format="yyyymmdd">R104_DATACNPJ_</register>
    <register description="Número de Filiais" type="String" format="">R104_NUMEROFILIAIS_</register>
    <register description="Código SERASA" type="String" format="">R104_CODIGOSERASA_</register>
</saida>
 

  

exemplo 
  • Exemplo ‘sem‘ um contador… neste caso, ‘counter=”"‘ indica que somente um registro, se existir, foi retornado pela SERASA.
 

 

 


Bloco de código
languagehtml/
xml
xml
linenumberstrue
<saida id="R203" counter="" > 
     <register description="Descrição do Período" type="String" format="">R203_DESCREG</register> 
     <register description="Quantidade do período" type="String" format="">R203_QTDPERIODO</register> 
     <register description="Percentual do Período" type="String" format="">R203_PERPERIODO</register> 
</saida>

 

 

 

 

 

Dica
Todos
TODOS os registros seguem a mesma lógica e, o ’XML completo com todos os registros do acesso’, importado pelo Compilador, pode ser baixado aqui.
 


Registros Disponíveis
 
Registros Disponíveis
  • Registro R102 – Relato Endereços
  • Registro R103 – Relato Localização
  • Registro R104 – Relato Atividade
  • Registro R105 – Relato Filiais
  • Registro R107 – Relato Controle Societário (Atualização e Capital Social)
  • R108 – Relato Controle Societário (Detalhes
dos Socios
  • dos Sócios)
  • Registro R109 – Relato Quadro Administrativo (atualização)
  • Registro R110 – Relato Quadro Administrativo (detalhes)
  • Registro R111 – Relato quadro administrativo (Detalhes cont.)
  • Registro R114
– Relato Participações (Detalhes Participantes)
  • – Relato Participações (Detalhes Participantes)
  • Registro R115 – Relato Participações (Detalhes Participantes continuação)
  • Registro R202 – Relato Potencial de Negócios
  • Registro R203 – Relato Histórico de Pagamento
  • Registro R301 – Relato Controle de Consultas Passagem
  • Registro R302 – Relato Últimas Consultas
  • Registro R381 – Grafias
  • Registro R401 – RELATO – RiskScoring (12 meses)
  • Registro R412 – RELATO – Informações do Concentre – Resumo
  • Registro R430 – P8GL– Parecer de Crédito Padrão
    • Variáveis

      VariávelDescriçãoTipoFormato
      R430_SUBTPREG_Subtipo do registroString
      R430_DTCALCLIM_Data cálculo limite créditoDateyyyyMMdd
      R430_HRCALCLIM_Hora cálculo limite créditoInteger
      R430_VLCALCLIM_Valor cálculo limite créditoDouble
      R430_OBSERV_ObservaçãoString



  • 1.
  • Registro R115 – Relato Participações (Detalhes Participantes continuação)

  • Registro R202 – Relato Potencial de Negócios

  • Registro R203 – Relato Histórico de Pagamento

  • Registro R301 – Relato Controle de Consultas Passagem

  • Registro R302 – Relato Últimas Consultas

  • Registro R381 – Grafias

  • Registro R401 – RELATO – RiskScoring (12 meses)

  • Registro R412 – RELATO – Informações do Concentre – Resumo

  • n = ‘R412_NUMOCORR‘ – contator do número de ocorrências do Concentre
 
Dica

...

 A variável abaixo deverá ser preenchida com total valor, somente se a discriminação for ’PROTESTO’; caso contrário,

...

 

virá ’zera

  • 1.R412

...

  • _TOTALVALOR_n

...