Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Documentação

Documento que descreve comportamento específico da API SnapProperty, para integração com a Imobiliar.

Documentação Imobiliar

http://imobiliar.inf.br:4002/webservice/

Table of Contents

Documentação

Documento que descreve comportamento específico da API SnapProperty, para integração com a Imobiliar.


Documentação Imobiliar

http://imobiliar.inf.br:4002/webservice/Imobiliar




Índice


Métodos de negócio

Métodos de Recebimento

        Métodos que tem como objetivo receber requisições da Imobiliar.

        

ContratoRest.Cancelar()

Descrição: Método responsável por cancelar um contrato de administração ou locação (snap_brok__Contrato__c).

Neste método será possível o cancelamento de um contrato , antes que tenha sido assinado. 

Tipo de parâmetro: Contrato.

Método Rest: Post

Tipo: Síncrono

Registros por requisição: 1


AssinaturaURLDescrição
Id externohttps://<instância do cliente>/services/apexrest/snap_brok/contrato/v1/cancelar
  • Id externo do contrato no sistema que está cancelando na base do SnapProperty.
  • Informado o Id interno Salesforce do contrato no Salesforce, que pode ter sido obtido em uma busca ou inserção.

                <instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 


Exemplo: Método
Post



Exemplo: Requisição Header
Content-Typeapplication/json
AuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5But


Exemplo: Requisição body JSONObservações

{

  "contrato":  {

   "snap_brok__Id_externo__c":"42244000EISSOAI",

   "snap_brok__Motivo_do_cancelamento_op__c": "Outros",

   "snap_brok__Motivo_cancelamento__c": ""

 }


}

  • Opões de "snap_brok__Motivo_do_cancelamento_op__c":
    • Optou por outro imóvel
    • Alteração de contratantes
    • Alteração de garantia
    • Alteração de condições contratuais
    • Cadastro duplicado
    • Outros
  • "snap_brok__Motivo_cancelamento__c" é: observação, de texto livre.


Exemplo: Resposta - Sucesso

Observações

{
"Mensagem": "Sucesso",
"Erro": false,
"Contrato": {
"attributes": {
"type": "snap_brok__Contrato__c",
"url": "/services/data/v41.0/sobjects/snap_brok__Contrato__c/a3w0b000003DSNFAA4"
},
"snap_brok__Ativo__c": false,
"snap_brok__Motivo_do_cancelamento_op__c": "Outros",
"snap_brok__Faturar__c": false,
"snap_brok__Data_encerramento__c": "2019-02-27",
"snap_brok__Situacao__c": "Cancelado",
"snap_brok__Motivo_cancelamento__c": "",
"snap_brok__Cancelado__c": true,
"Id": "a3w0b000003DSNFAA4",
"snap_brok__Data_cancelamento__c": "2019-02-27"
}
}

  • Retorna campos preenchidos do contrato


Exemplo: Resposta - Falha

Observações

Contrato não localizado.



Processamento SnapProperty

                1. SnapProperty realiza busca em contratos(snap_brok__Contrato__c) com base

                    no Id ou Id externo informado.

                2. Caso não encontrado contrato, retorna mensagem de erro informando que "Contrato não foi localizado".

                3. SnapProperty verifica se contrato já consta como cancelado: snap_brok__Cancelado__c igual a true.

4. SnapProperty verifica se contrato já consta como assinado: snap_brok__Assinado__c igual a true.

5. Se contrato já estiver cancelado ou assinado retornara erro, não atualizara o contrato.

6. Se não houver impedimento para o cancelamento o SnapProperty atualiza contrato: 

     6.1 Situação (Situacao__c) do contrato para "Cancelado".

     6.2 Cancelado (Cancelado__c) para verdadeiro(true).

     6.3 Data do cancelamento (Data_cancelamento__c) para data atual (Today).

     6.4 Demais informações como recebido no request.  

7. SnapProperty verifica tipo de registro do contrato:

     7.1 Se contrato é de Locação:

            7.1.1 Cancela-la a locação com as mesmas atualizações  de cancelamento do contrato.

            7.1.2 . Cancela-la a proposta com as mesmas atualizações  de cancelamento do contrato.

    7.2 Se contrato é de Administração: 

             7.2.1 Cancela-la a captação com as mesmas atualizações de cancelamento do contrato.


ContratoRest.distratarContratoAdministracao()

Descrição: Método responsável por distrato de um contrato de administração (snap_brok__Contrato__c).

Neste método será possível encerrar um contrato de administração, sem possuir ainda um contrato de Locação criado. 

Deve ser utilizado, por exemplo, quando o cliente quer encerrar o contrato com a administradora, por ter desistido de locar o imóvel.

Método Rest: Post

Tipo de parâmetro: Contrato.

Tipo: Síncrono

Registros por requisição: 1


AssinaturaURLDescrição
Id externohttps://<instância do cliente>/services/apexrest/snap_brok/contrato/v1/distratarContratoAdministracao
  • Informado o Id externo do contrato de administração no sistema que está distratando o contrato na base do SnapProperty.
  • Informado o Id Salesforce do contrato de administração, que pode ter sido obtido em uma busca ou inserção.

<instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 


Exemplo: Método

Post



Exemplo: Requisição Header
Content-Typeapplication/json
AuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5But


Exemplo: Requisição body JSONObservações

{

  "contrato":  {

   "snap_brok__Id_externo__c":"2236262"

  }

}



Exemplo: Resposta - Sucesso

Observações

{
"Mensagem": "Sucesso",
"Erro": false,
"Contrato": {
"attributes": {
"type": "snap_brok__Contrato__c",
"url": "/services/data/v41.0/sobjects/snap_brok__Contrato__c/a0l0B00001L3thaQAB"
},
"snap_brok__Id_externo__c": "TesteDevAdm",
"snap_brok__Ativo__c": false,
"snap_brok__Faturar__c": false,
"snap_brok__Data_encerramento__c": "2019-02-27",
"snap_brok__Situacao__c": "Distratado",
"Id": "a0l0B00001L3thaQAB"
}
}



Exemplo: Resposta - Falha

Observações

Contrato não encontrado.



Processamento SnapProperty

                1. SnapProperty realiza busca em contratos(snap_brok__Contrato__c) com base

                    no Id ou Id externo informado.

                 2. Caso não encontrado contrato, retorna mensagem de erro informando que contrato não foi localizado.

                 3. Se não houver impedimento para o distrato o SnapProperty atualiza contrato: 

                      3.1 "Situação" (snap_brok__Situacao__c) do contrato para "Distratado".

                 4. Pesquisar todos Imóveis do contrato:

                      4.1 Altera a "Situação" (snap_brok__Situacao__c) do imóvel para  "Indisponível". 

                      4.2 Altera o campo "Disponível para locação"(snap_brok__Disponivel_locacao__c) para falso(false).


                      

ContratoRest.desocuparImovel()

Descrição: Método responsável por desocupação de um imóvel pelo locatário (snap_brok__Contrato__c).

Neste método será possível desocupar um imóvel, que ocasionará no distrato do contrato de locação

e disponibilizar um imóvel para uma nova locação.

Método Rest: Post

Tipo de parâmetro: Contrato.

Tipo: Síncrono

Registros por requisição: 1

AssinaturaURLDescrição
Id externohttps://<instância do cliente>/services/apexrest/snap_brok/contrato/v1/desocuparImovel
  • Informado o Id externo do contrato de locação, no sistema que está realizando a desocupação.
  • Informado o Id Salesforce do contrato de locação, que pode ter sido obtido em uma busca ou inserção.

<instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 


Exemplo: Método

Post



Exemplo: Requisição Header
Content-Typeapplication/json
AuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5But


Exemplo: Requisição body JSONObservações

{

  "contrato": 

 {

   "ID":"01I0B000000p5w5",

   "snap_brok__Valor_aluguel_corrigido__c":"350.15"

 }


}

  • Valores monetários devem seguir a seguinte formatação: todo o número junto e o "."(ponto) para separar os centavos. Exemplo: 1200.40(Mil e duzentos reais e quarenta centavos).


Exemplo: Resposta - Sucesso

Obervações

{
"Mensagem": "Sucesso",
"Erro": false,
"Contrato": {
"attributes": {
"type": "snap_brok__Contrato__c",
"url": "/services/data/v41.0/sobjects/snap_brok__Contrato__c/a0l0B00001JoA23QAF"
},
"snap_brok__Id_externo__c": "TesteDevLoc",
"snap_brok__Valor_aluguel_corrigido__c": 350.15,
"snap_brok__Ativo__c": false,
"snap_brok__Faturar__c": false,
"snap_brok__Data_encerramento__c": "2019-02-27",
"snap_brok__Situacao__c": "Encerrado",
"Id": "a0l0B00001JoA23QAF"
}
}



Exemplo: Resposta - Falha

Observações

O Contrato deve ser de Locação.


Processamento SnapProperty

                1. SnapProperty realiza busca em contratos(snap_brok__Contrato__c) com base

                    no Id ou Id externo informado.

 2. Caso não encontrado contrato, retorna mensagem de erro informando que contrato não foi localizado.

                3. Se não houver impedimento para a desocupação SnapProperty atualiza contrato de locação:

       3.1 "Situação"(snap_brok__Situacao__c) para "Encerrado".

       3.2 "Ativo" (snap_brok__Ativo__c) igual a falso(false).

       3.3 "Faturar" (snap_brok__Faturar__c) igual a falso(false).

       3.4 Atualiza "Valor do aluguel corrigido" (snap_brok__Valor_aluguel_corrigido__c) para o valor recebido no request.  

       4.3 "Data de encerramento" igual a data do sistema(Today).

  4. Pesquisar todos Imóveis do contrato:

                      4.1 Altera a "Situação" (snap_brok__Situacao__c) do imóvel para  "Disponivel". 

                      4.2 Altera "Disponível para locação" para verdadeiro (true).               



ContratoRest.desocuparImovelComDistratoAdm()

Descrição: Método responsável por desocupação de um imóvel e término do contrato de administração(snap_brok__Contrato__c).

Neste método será possível desocupar um imóvel, que ocasionará no distrato do contrato de locação

e cancelará também o contrato de administração.

Método Rest: Post

Tipo de parâmetro: Contrato.

Tipo: Síncrono

Registros por requisição: 1

AssinaturaURLDescrição
Id externohttps://<instância do cliente>/services/apexrest/snap_brok/contrato/v1/desocuparImovelComDistratoAdm
  • Informado o Id externo do contrato de locação no sistema que está realizando a desocupação.
  • Informado o Id Salesforce do contrato, de locação, que pode ter sido obtido em uma busca ou inserção.

<instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 


Exemplo: Método

Post


Exemplo: URL

https://snap-property.salesforce.com/services/apexrest/snap_brok/contrato/v1/desocuparImovelComDistratoAdm


Exemplo: Requisição Header
Content-Typeapplication/json
AuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5But


Exemplo: Requisição body JSONObservações

{

  "contrato": {

   "snap_brok__Id_externo__c":"2236262",

   "snap_brok__Valor_aluguel_corrigido__c":"2500.32"

 }

}

  • Valores monetários devem seguir a seguinte formatação: todo o número junto e o "."(ponto) para separar os centavos. Exemplo: 1200.40(Mil e duzentos reais e quarenta centavos).


Exemplo: Resposta - Sucesso

Obervações

{
"Mensagem": "Sucesso",
"Erro": false,
"Contrato": {
"attributes": {
"type": "snap_brok__Contrato__c",
"url": "/services/data/v41.0/sobjects/snap_brok__Contrato__c/a0l0B00001JoA23QAF"
},
"snap_brok__Id_externo__c": "TesteDevLoc",
"snap_brok__Ativo__c": false,
"snap_brok__Faturar__c": false,
"snap_brok__Data_encerramento__c": "2019-03-27",
"snap_brok__Situacao__c": "Encerrado",
"Id": "a0l0B00001JoA23QAF"
}
}



Exemplo: Resposta - Falha

Observações

Contrato não localizado.


Processamento SnapProperty

                1. SnapProperty realiza busca em contratos(snap_brok__Contrato__c) com base

                    no Id ou Id externo informado.

 2. Caso não encontrado contrato, retorna mensagem de erro informando que contrato não foi localizado.

         3. Se não houver impedimento para a desocupação do imóvel e distrato do contrato de administração

              o SnapProperty atualiza contrato de locação:

       3.1 "Situação"(snap_brok__Situacao__c) para "Encerrado".

       3.2 "Ativo" (snap_brok__Ativo__c) igual a falso(false).

       3.3 "Faturar" (snap_brok__Faturar__c) igual a falso(false).

       3.4 "Data de encerramento" igual a data do sistema(Today).

  4. Pesquisar todos Imóveis do contrato:

                      4.1 Altera a "Situação" (snap_brok__Situacao__c) do imóvel para  "Indisponivel". 

                      4.2 Altera "Disponível para locação" para falso(false).

                  5. Pesquisa os contratos de administração dos Imóveis do contrato:

                      5.1 Altera Situação(snap_brok__Situacao__c) igual "Distratado".

                                                      

5.1 Altera Situação(snap_brok__Situacao__c) igual "Distratado".

               

     

         

                            Referências de implementaçãoDescrição

  

ImovelRest.atualizarValoresImovel()

Descrição: Método responsável por atualizar valores de IPTU e Condomínio recebidos do Imobiliar.

Método Rest: Post

Tipo de parâmetro: Imóveis.

Tipo: Síncrono

Registros por requisição: 200



AssinaturaURLDescrição
Id externohttps://
developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_rest_code_sample_restrequest.htmCriação de classe customizadas básicas para requisições Rest
<instância do cliente>/services/apexrest/v1/sobjects/snap_brok__imovel__c/atualizarValoresImovel
  • Informando o ID externo do imóvel e os valores serão possíveis atualizar esses valores no imóveis.

<instância do cliente> : nome de instância da org salesforce que o cliente utiliza. 


Exemplo: Método

Post


Exemplo: URL

https://

developer

snap-property.salesforce.com/services/

docs/atlas.en-us.apexcode.meta/apexcode/apex_class_System_Json.htm#apex_System_Json_methodsMétodos para manipulação JSON no Apex
     


Exemplo: Requisição Header
Content-Typeapplication/json
AuthorizationOAuth 00Do0000000Kygx!ARUAQNIkRvLZ.uTwqA._wGu.5But




Exemplo: Requisição body JSONObservações

{

  "contrato": {

         

  

ImovelRest.atualizarImoveis/Valores()

Descrição: Método responsável por atualizar valores de IPTU e Condomínio recebidos do Imobiliar.

Método Rest: Post

Tipo de parâmetro: Imóveis.

Tipo: Síncrono

Registros por requisição: 200

AssinaturaURLDescriçãoId externohttps://<instância do cliente>/services/apexrest/snap_brok/contrato/v1/desocuparImovelComDistratoAdm
  • Informado o Id externo do contrato de locação no sistema que está realizando a desocupação.
  • Informado o Id Salesforce do contrato, de locação, que pode ter sido obtido em uma busca ou inserção

      "snap_brok__ID_externo__c":"CR00000",

                 "snap_brok__Valor_IPTU__c":"150.50",

                 "snap_brok__Valor_Condominio__c":"530.00"

        }

      }

    • Valores monetários devem seguir a seguinte formatação: todo o número junto e o "."(ponto) para separar os centavos. Exemplo: 1200.40(Mil e duzentos reais e quarenta centavos).




                                   

    Métodos de Envio

    Métodos que tem como objetivo enviar requisições para a Imobiliar.

    EnviarContratoAdministracao()

    Descrição: Método responsável por enviar, após o término da captação,

    o contrato de Administração criado para a Imobiliar.

    O contrato de Administração deve ser enviado após ser atualizado para "Arquivado", pois sinaliza que está em vigor.

    Método Rest: Post

    Tipo: Síncrono

    Registros por requisição:

    Lucidchart
    pageCount1
    autoUpdatefalse
    alignleft
    typerich
    autoSize1
    macroIdf68845ba-dcc5-4f1f-86d3-6eb08dba4b75
    instanceIdb4006761-2d8a-3786-8298-207d44fcadc5
    pages
    width700
    documentId62fbe97e-b7b2-4ea3-ad93-c62a1e02d69f
    documentToken62fbe97e-b7b2-4ea3-ad93-c62a1e02d69f|103326617|665288747|VLDNlCpkGng3VTjxjFXjk4+5HiQClu2OTGV+IP9y1Rw=
    updated1552398641540
    height500


    Processamento SnapProperty

                    1. A trigger (after update) de Contrato seleciona o contrato que foi atualizado para "Arquivado".

                    2. Trigger invoca método API_Imobiliar_Envio.enviarConta() informando o contrato selecionado.

                    3. O método enviarContas() deve realizar os seguintes processamentos:

                         3.1 Realiza busca nos Participantes do contrato para obter todos os Participantes daquele contrato.

                         3.2 Realiza busca nos Depositários do contrato para obter todos os Depositários daquele contrato.

                         3.3 Remove possíveis duplicatas de contas entre depositários e participantes.

                         3.4 Com os dados das contas selecionados, realiza composição de payload JSON, para requisição a Imobiliar.


        Mapeamento de campos: Inserção de Conta/Pessoa

    SnapPropertyImobiliarObservações
    NameNome

    Se tipo de registro diferente de "Cliente pessoa física".

    FirstName + MiddleName + LastNameNome

    Se tipo de registro "Cliente pessoa física".


    TipoPessoa

    Se tipo de registro igual "Cliente pessoa física" enviar "F".

    Se tipo de registro diferente de "Cliente pessoa física" enviar "J".

    snap_finan__Estado_civil__pcEstadoCivil
    snap_finan__Genero__pcSexo

    Se "Masculino" enviar "M".

    Se "Feminino" enviar "F".

    Se "Outros" não enviar.

    snap_finan__Cpf_2__pcCpfCnpj

    Se tipo de registro igual "Cliente pessoa física".

    snap_finan__CNPJ__cCpfCnpj

    Se tipo de registro diferente "Cliente pessoa física".

    snap_finan__Numero_documento__pcRG

    Se tipo "snap_finan__Tipo_documento__c" igual "RG".

    snap_finan__Orgao_emissor__cOrgaoExpedidor
    snap_finan__Nome_pai__pcNomePai
    snap_finan__Nome_mae__pcNomeMae
    snap_finan__Numero_documento__pcPassaporte

    Se tipo "snap_finan__Tipo_documento__c" igual "Passaporte".

    snap_finan__Numero_documento__pcPIS

    Se tipo "snap_finan__Tipo_documento__c" igual "PIS".

    snap_finan__Nacionalidade__pcNacionalidade
    snap_finan__Naturalidade__pcNaturalidade
    PersonMobilePhoneCelular
    IdCodSistAnterior

    Enviar o Id salesforce da conta que foi inserida.

    EmailEmail

    Contato (?)



    Ativo

    Enviar "S".


    TipoEnderCobr

    Enviar "O"


    TipoEnderCorresp

    Se tipo de registro igual "Cliente pessoa física" enviar "R".

    Se tipo de registro diferente de "Cliente pessoa física" enviar "C"

    PersonOtherPostalCode,

    snap_finan__Logradouro_cobranca__c

    Enderecos.TipoEnder

    PersonOtherPostalCode,

    snap_finan__Cep_cobranca__c

    Enderecos.CEP

    Enderecos.TipoLograd

    Enviar vazio

    snap_finan__numero__cEnderecos.Numero

    snap_finan__Complemento_residencial__pc, 

    snap_finan__Complemento__c

    Enderecos.Complemento

    snap_finan__Bairro_residencial__pc,

    snap_finan__Bairro_cobranca__c

    Enderecos.Bairro

    PersonOtherCity,

    snap_finan__Cidade_cobranca__c

    Enderecos.Cidade
    PersonOtherStateEnderecos.UF
    PhoneEnderecos.Telefone1
    snap_finan__Telefone_cobranca__cEnderecos.Telefone2