Projetos
Maracanaú
Especificações para API de Integração

Especificações para a API de Integração

A API de recepção dos dados do Geo360 deverá possuir endpoints de POST e PUT para cada entidade exportada pelo Geo360.

Os endpoints de POST se destinam a criação de entidades, enquanto os endpoints de PUT se destinam a atualização de entidades. Neste documento, serão especificados os endpoints, os payloads enviados e o conteúdo esperado em resposta a cada um deles.

O Geo360 possui as seguintes entidades:

  • bairro
  • distrito
  • edificacao
  • imobiliario
  • imobiliario_edificacao: vincula imobiliários às suas edificações
  • imobiliario_pessoa: vincula imobiliários às suas pessoas
  • logradouro
  • lote
  • loteamento
  • pessoa
  • quadra
  • setor
  • testada_lote

A Intersol deverá analisar o conteúdo de cada entidade e criar a lógica de atualização de sua base considerando os campos e entidades que existem em ambas.

IMPORTANTE : Os payloads nos exemplos são meramente exemplificativos da estrutura que será recebida, não representando casos reais e consistentes de dados. A obtenção de dados reais deve ser realizada mediante requisições GET à API do Geo360 como no exemplo abaixo:

curl --location 'https://cadastro.apps.etopocart.com/maracanau/lote/80124' \
--header 'Authorization: Bearer f8009830-c0b9-48bb-9ed5-7efccb7e4954'

Endpoints

POST e PUT /bairro

Receberá um corpo no seguinte formato:

{
  "id": 44,
  "codigo": null,
  "nome": "COQUEIRAL",
  "dt_criacao": "2024-04-26T17:10:12.578737"
}

O retorno deverá ser o codigo do bairro atualizado no sistema da Intersol. Por exemplo:

{
  "codigo": 123
}

POST e PUT /distrito

Receberá um corpo no seguinte formato:

{
  "id": 75,
  "distrito": "10",
  "dt_criacao": "2024-04-23T16:33:05.676213"
}

Não é necessário retorno para este endpoint.

POST e PUT /edificacao

Receberá um corpo no seguinte formato:

{
  "id": 2019,
  "dt_criacao": "2024-05-09T08:40:20.744846",
  "pavimentos": 1,
  "situacaofisica": 5,
  "beiral": true,
  "beiral_tam": 0.3,
  "area": 313.68,
  "ordem": 1,
  "tipo_edif_mapeamento": 1,
  "id_lote": 89805,
  "lote": {
	  "id": 80124,
	  "inscricao_cartografica": "12120490217",
	  "id_bairro": 54,
	  "id_quadra": 2291,
	  "id_face_quadra": null,
	  "tipo_imposto": null,
	  "nr_lote": "217",
	  "dt_criacao": "2024-04-12T12:11:55.843",
	  "area_construida_privativa": null,
	  "situacao_foto": null,
	  "ct_observacao": null,
	  "ct_pos_geo": false,
	  "ct_usuario": null,
	  "ct_data_alteracao": null,
	  "id_area_cadastro": 119,
	  "id_distrito": 87,
	  "id_setor": 8,
	  "area_terreno_geometrica": null,
	  "lote_comum": false,
	  "id_condominio": null,
	  "area_construida_comum": null,
	  "calculo_fracao": null,
	  "area_terreno_equivalente": null,
	  "area_terreno_manual": null,
	  "area_terreno_comum": null,
	  "area_terreno_privativa": null,
	  "area_terreno_legado": null,
	  "topografia": null,
	  "pedologia": 1,
	  "situacao_lote": null,
	  "ocupacao": null,
	  "status_campo": null,
	  "nr_lote_topocart": null,
	  "status_geocodificacao": 2,
	  "status_recadastramento": 1,
	  "patrimonio": null,
	  "benfeitoria": null,
	  "passeio": null,
	  "qtd_unidades": null,
	  "ct_devolutiva": null,
	  "jardim": null,
	  "quadra": null,
	  "piscina": null,
	  "utilizacao": null,
	  "ct_area": null,
	  "ct_observacao_area": null
	},
  "id_origem": 31441,
  "ct_edificacao_comum": false,
  "manter_id_lote": false,
  "tipo_edificacao": null
}

Não é necessário retorno para este endpoint.

POST e PUT /imobiliario

Receberá um corpo no seguinte formato:

{
  "id": 62961,
  "numero_cadastro": 1467,
  "inscricao_cartografica": "08080340165001",
  "nr_unidade": null,
  "id_lote": 61262,
  "lote": {
	  "id": 80124,
	  "inscricao_cartografica": "12120490217",
	  "id_bairro": 54,
	  "id_quadra": 2291,
	  "id_face_quadra": null,
	  "tipo_imposto": null,
	  "nr_lote": "217",
	  "dt_criacao": "2024-04-12T12:11:55.843",
	  "area_construida_privativa": null,
	  "situacao_foto": null,
	  "ct_observacao": null,
	  "ct_pos_geo": false,
	  "ct_usuario": null,
	  "ct_data_alteracao": null,
	  "id_area_cadastro": 119,
	  "id_distrito": 87,
	  "id_setor": 8,
	  "area_terreno_geometrica": null,
	  "lote_comum": false,
	  "id_condominio": null,
	  "area_construida_comum": null,
	  "calculo_fracao": null,
	  "area_terreno_equivalente": null,
	  "area_terreno_manual": null,
	  "area_terreno_comum": null,
	  "area_terreno_privativa": null,
	  "area_terreno_legado": null,
	  "topografia": null,
	  "pedologia": 1,
	  "situacao_lote": null,
	  "ocupacao": null,
	  "status_campo": null,
	  "nr_lote_topocart": null,
	  "status_geocodificacao": 2,
	  "status_recadastramento": 1,
	  "patrimonio": null,
	  "benfeitoria": null,
	  "passeio": null,
	  "qtd_unidades": null,
	  "ct_devolutiva": null,
	  "jardim": null,
	  "quadra": null,
	  "piscina": null,
	  "utilizacao": null,
	  "ct_area": null,
	  "ct_observacao_area": null
	},
  "status": 1,
  "id_logradouro": 19443,
  "logradouro": {
	  "id": 25808,
	  "codigo": null,
	  "nome": null,
	  "cep": null,
	  "dt_criacao": "2024-04-18T14:39:12.69726",
	  "id_bairro": "74",
	  "ct_inicio_trecho": false,
	  "ct_observacao": null,
	  "nr_trecho": null,
	  "tipo_logradouro": null,
	  "pavimentacao": null,
	  "iluminacao_publica": 1,
	  "rede_eletrica": 1,
	  "rede_agua": null,
	  "rede_esgoto": null,
	  "guia": null,
	  "coleta_lixo": 2,
	  "galeria_pluvial": null,
	  "arborizacao": null,
	  "valor_m2_antigo": null,
	  "nome_conferencia": "RUA SEM DENOMINACAO",
	  "ct_conferido": null,
	  "nr_lei_aprovada": null,
	  "limpeza_urbana": null,
	  "transporte_publico": 2,
	  "rede_videomonitoramento": null,
	  "sarjeta": null
	},
  "nr_porta": null,
  "complemento": null,
  "ct_tipo_geo": "DSQL - Auto",
  "ct_data_geo": "2024-05-21T07:47:51.474533",
  "ct_operador_geo": "gabriel_placedino",
  "ct_justificativa": null,
  "ct_cancelamento": false,
  "dt_criacao": "2024-05-21T07:47:51.474533",
  "area_construida_legado": 100,
  "id_area_cadastro": null,
  "area_terreno_fracao": null,
  "area_construida_calculada": null,
  "area_construida_comum": null,
  "area_construida_equivalente": null,
  "area_construida_privativa": null,
  "area_construida_manual": null,
  "estrutura": null,
  "cobertura": null,
  "revestimento_externo": null,
  "tipo_edificacao": null,
  "status_proprietario": null,
  "inscricao_legado": "08080340165001",
  "nr_lote_anterior": null,
  "ct_usuario_caract": null,
  "ct_data_alteracao": null,
  "inscricao_anterior": null,
  "posicao_fiscal": null,
  "esquadrias_externas": null,
  "padrao_construtivo": null,
  "uso": null,
  "posicionamento": null,
  "situacao_edificacao": null,
  "nr_porta_anterior_legado": null,
  "data_construcao": null,
  "ct_nexiste_legado": null,
  "idade_aparente": null,
  "situacao_patrimonial": null,
  "tipo_entrega": null
}

O retorno deverá ser o codigo do imobiliario atualizado no sistema da Intersol.

{
  "numero_cadastro": 123
}

POST e PUT /imobiliario_edificacao

Receberá um corpo no seguinte formato:

{
  "id": 1,
  "id_imobiliario": 3108,
  "imobiliario": {
	  "id": 62961,
	  "numero_cadastro": 1467,
	  "inscricao_cartografica": "08080340165001",
	  "nr_unidade": null,
	  "id_lote": 61262,
	  "status": 1,
	  "id_logradouro": 19443,
	  "nr_porta": null,
	  "complemento": null,
	  "ct_tipo_geo": "DSQL - Auto",
	  "ct_data_geo": "2024-05-21T07:47:51.474533",
	  "ct_operador_geo": "gabriel_placedino",
	  "ct_justificativa": null,
	  "ct_cancelamento": false,
	  "dt_criacao": "2024-05-21T07:47:51.474533",
	  "area_construida_legado": 100,
	  "id_area_cadastro": null,
	  "area_terreno_fracao": null,
	  "area_construida_calculada": null,
	  "area_construida_comum": null,
	  "area_construida_equivalente": null,
	  "area_construida_privativa": null,
	  "area_construida_manual": null,
	  "estrutura": null,
	  "cobertura": null,
	  "revestimento_externo": null,
	  "tipo_edificacao": null,
	  "status_proprietario": null,
	  "inscricao_legado": "08080340165001",
	  "nr_lote_anterior": null,
	  "ct_usuario_caract": null,
	  "ct_data_alteracao": null,
	  "inscricao_anterior": null,
	  "posicao_fiscal": null,
	  "esquadrias_externas": null,
	  "padrao_construtivo": null,
	  "uso": null,
	  "posicionamento": null,
	  "situacao_edificacao": null,
	  "nr_porta_anterior_legado": null,
	  "data_construcao": null,
	  "ct_nexiste_legado": null,
	  "idade_aparente": null,
	  "situacao_patrimonial": null,
	  "tipo_entrega": null
	},
  "id_edificacao": 3611,
  "edificacao": {
	  "id": 2019,
	  "dt_criacao": "2024-05-09T08:40:20.744846",
	  "pavimentos": 1,
	  "situacaofisica": 5,
	  "beiral": true,
	  "beiral_tam": 0.3,
	  "area": 313.68,
	  "ordem": 1,
	  "tipo_edif_mapeamento": 1,
	  "id_lote": 89805,
	  "id_origem": 31441,
	  "ct_edificacao_comum": false,
	  "manter_id_lote": false,
	  "tipo_edificacao": null
	},
  "dt_criacao": "2024-05-09T15:27:16.658364",
  "parcela": null
}

Não é necessário retorno para este endpoint.

POST e PUT /imobiliario_pessoa

Receberá um corpo no seguinte formato:

{
  "id": 936,
  "id_pessoa": 66542,
  "pessoa": {
	  "id": 1,
	  "codigo": "0",
	  "nome": "",
	  "cpf_cnpj": null,
	  "dt_criacao": "2024-04-02T05:47:31.482748",
	  "tipo_pessoa": null,
	  "cpf_cnpj_valido": null,
	  "nome_campo": null,
	  "cpf_cnpj_campo": null,
	  "ct_alteracao_topo": false,
	  "tipo_logradouro": null,
	  "nome_logradouro": null,
	  "num_logradouro": null,
	  "sexo": null,
	  "data_nascimento": null,
	  "email": null,
	  "telefone": null,
	  "ce_nome_fantasia": null,
	  "ce_cnae_principal": null,
	  "ce_cnae_secundario": null,
	  "ce_data_abertura": null,
	  "ce_situacao_cadastral": null,
	  "ce_cod_atividade": null,
	  "ce_tipo_atividade": null,
	  "ce_isento_iss": null,
	  "ce_inscricao": null,
	  "ct_mobiliario": null,
	  "complemento": null,
	  "bairro": null,
	  "cidade": null,
	  "uf": null,
	  "cep": null
	},
  "id_imobiliario": 11074,
  "imobiliario": {
	  "id": 62961,
	  "numero_cadastro": 1467,
	  "inscricao_cartografica": "08080340165001",
	  "nr_unidade": null,
	  "id_lote": 61262,
	  "status": 1,
	  "id_logradouro": 19443,
	  "nr_porta": null,
	  "complemento": null,
	  "ct_tipo_geo": "DSQL - Auto",
	  "ct_data_geo": "2024-05-21T07:47:51.474533",
	  "ct_operador_geo": "gabriel_placedino",
	  "ct_justificativa": null,
	  "ct_cancelamento": false,
	  "dt_criacao": "2024-05-21T07:47:51.474533",
	  "area_construida_legado": 100,
	  "id_area_cadastro": null,
	  "area_terreno_fracao": null,
	  "area_construida_calculada": null,
	  "area_construida_comum": null,
	  "area_construida_equivalente": null,
	  "area_construida_privativa": null,
	  "area_construida_manual": null,
	  "estrutura": null,
	  "cobertura": null,
	  "revestimento_externo": null,
	  "tipo_edificacao": null,
	  "status_proprietario": null,
	  "inscricao_legado": "08080340165001",
	  "nr_lote_anterior": null,
	  "ct_usuario_caract": null,
	  "ct_data_alteracao": null,
	  "inscricao_anterior": null,
	  "posicao_fiscal": null,
	  "esquadrias_externas": null,
	  "padrao_construtivo": null,
	  "uso": null,
	  "posicionamento": null,
	  "situacao_edificacao": null,
	  "nr_porta_anterior_legado": null,
	  "data_construcao": null,
	  "ct_nexiste_legado": null,
	  "idade_aparente": null,
	  "situacao_patrimonial": null,
	  "tipo_entrega": null
	},
  "tipo": 7,
  "dt_criacao": "2024-05-13T15:46:05.783081"
}

Não é necessário retorno para este endpoint.

POST e PUT /logradouro

Receberá um corpo no seguinte formato:

{
  "id": 25808,
  "codigo": null,
  "nome": null,
  "cep": null,
  "dt_criacao": "2024-04-18T14:39:12.69726",
  "id_bairro": "74",
  "bairro": {
	  "id": 44,
	  "codigo": null,
	  "nome": "COQUEIRAL",
	  "dt_criacao": "2024-04-26T17:10:12.578737"
	},
  "ct_inicio_trecho": false,
  "ct_observacao": null,
  "nr_trecho": null,
  "tipo_logradouro": null,
  "pavimentacao": null,
  "iluminacao_publica": 1,
  "rede_eletrica": 1,
  "rede_agua": null,
  "rede_esgoto": null,
  "guia": null,
  "coleta_lixo": 2,
  "galeria_pluvial": null,
  "arborizacao": null,
  "valor_m2_antigo": null,
  "nome_conferencia": "RUA SEM DENOMINACAO",
  "ct_conferido": null,
  "nr_lei_aprovada": null,
  "limpeza_urbana": null,
  "transporte_publico": 2,
  "rede_videomonitoramento": null,
  "sarjeta": null
}

O retorno deverá ser o codigo do logradouro atualizado no sistema da Intersol.

{
  "codigo": 123
}

POST e PUT /lote

Receberá um corpo no seguinte formato:

{
  "id": 80124,
  "inscricao_cartografica": "12120490217",
  "id_bairro": 54,
  "bairro": {
	  "id": 44,
	  "codigo": null,
	  "nome": "COQUEIRAL",
	  "dt_criacao": "2024-04-26T17:10:12.578737"
	},
  "id_quadra": 2291,
  "quadra": {
	  "id": 3062,
	  "quadra": "474",
	  "id_bairro": 87,
	  "dt_criacao": "2024-04-29T08:44:42.696432"
	},
  "id_face_quadra": null,
  "tipo_imposto": null,
  "nr_lote": "217",
  "dt_criacao": "2024-04-12T12:11:55.843",
  "area_construida_privativa": null,
  "situacao_foto": null,
  "ct_observacao": null,
  "ct_pos_geo": false,
  "ct_usuario": null,
  "ct_data_alteracao": null,
  "id_area_cadastro": 119,
  "id_distrito": 87,
  "distrito": {
	  "id": 75,
	  "distrito": "10",
	  "dt_criacao": "2024-04-23T16:33:05.676213"
	},
  "id_setor": 8,
  "setor": {
	  "id": 32,
	  "setor": "27",
	  "dt_criacao": null,
	  "nome": "Horto"
	},
  "area_terreno_geometrica": null,
  "lote_comum": false,
  "id_condominio": null,
  "area_construida_comum": null,
  "calculo_fracao": null,
  "area_terreno_equivalente": null,
  "area_terreno_manual": null,
  "area_terreno_comum": null,
  "area_terreno_privativa": null,
  "area_terreno_legado": null,
  "topografia": null,
  "pedologia": 1,
  "situacao_lote": null,
  "ocupacao": null,
  "status_campo": null,
  "nr_lote_topocart": null,
  "status_geocodificacao": 2,
  "status_recadastramento": 1,
  "patrimonio": null,
  "benfeitoria": null,
  "passeio": null,
  "qtd_unidades": null,
  "ct_devolutiva": null,
  "jardim": null,
  "quadra": null,
  "piscina": null,
  "utilizacao": null,
  "ct_area": null,
  "ct_observacao_area": null
}

Não é necessário retorno para este endpoint.

POST e PUT /loteamento

Receberá um corpo no seguinte formato:

{
  "id": 1,
  "nome": "Esplanada do Mondubim",
  "qtd_lotes": null,
  "qtd_quadras": null,
  "area_loteada": null,
  "area_institucional": null,
  "area_arruamento": null,
  "area_verde": null,
  "area_remanescente": null,
  "data_implantacao": null,
  "data_habite_se_lot": null,
  "padrao_construtivo_cond_lot": null,
  "tipo_loteamento": null
}

Não é necessário retorno para este endpoint.

POST e PUT /pessoa

Receberá um corpo no seguinte formato:

{
  "id": 1,
  "codigo": "0",
  "nome": "",
  "cpf_cnpj": null,
  "dt_criacao": "2024-04-02T05:47:31.482748",
  "tipo_pessoa": null,
  "cpf_cnpj_valido": null,
  "nome_campo": null,
  "cpf_cnpj_campo": null,
  "ct_alteracao_topo": false,
  "tipo_logradouro": null,
  "nome_logradouro": null,
  "num_logradouro": null,
  "sexo": null,
  "data_nascimento": null,
  "email": null,
  "telefone": null,
  "ce_nome_fantasia": null,
  "ce_cnae_principal": null,
  "ce_cnae_secundario": null,
  "ce_data_abertura": null,
  "ce_situacao_cadastral": null,
  "ce_cod_atividade": null,
  "ce_tipo_atividade": null,
  "ce_isento_iss": null,
  "ce_inscricao": null,
  "ct_mobiliario": null,
  "complemento": null,
  "bairro": null,
  "cidade": null,
  "uf": null,
  "cep": null
}

O retorno deverá ser o codigo da pessoa atualizado no sistema da Intersol.

{
  "codigo": 123
}

POST e PUT /quadra

Receberá um corpo no seguinte formato:

{
  "id": 3062,
  "quadra": "474",
  "id_bairro": 87,
  "bairro": {
	  "id": 44,
	  "codigo": null,
	  "nome": "COQUEIRAL",
	  "dt_criacao": "2024-04-26T17:10:12.578737"
	},
  "dt_criacao": "2024-04-29T08:44:42.696432"
}

Não é necessário retorno para este endpoint.

POST e PUT /setor

Receberá um corpo no seguinte formato:

{
  "id": 32,
  "setor": "27",
  "dt_criacao": null,
  "nome": "Horto"
}

Não é necessário retorno para este endpoint.

POST e PUT /testada_lote

Receberá um corpo no seguinte formato:

{
  "id": 32,
  "principal": true,
  "id_lote": 123,
  "lote": {
	  "id": 80124,
	  "inscricao_cartografica": "12120490217",
	  "id_bairro": 54,
	  "id_quadra": 2291,
	  "id_face_quadra": null,
	  "tipo_imposto": null,
	  "nr_lote": "217",
	  "dt_criacao": "2024-04-12T12:11:55.843",
	  "area_construida_privativa": null,
	  "situacao_foto": null,
	  "ct_observacao": null,
	  "ct_pos_geo": false,
	  "ct_usuario": null,
	  "ct_data_alteracao": null,
	  "id_area_cadastro": 119,
	  "id_distrito": 87,
	  "id_setor": 8
	  "area_terreno_geometrica": null,
	  "lote_comum": false,
	  "id_condominio": null,
	  "area_construida_comum": null,
	  "calculo_fracao": null,
	  "area_terreno_equivalente": null,
	  "area_terreno_manual": null,
	  "area_terreno_comum": null,
	  "area_terreno_privativa": null,
	  "area_terreno_legado": null,
	  "topografia": null,
	  "pedologia": 1,
	  "situacao_lote": null,
	  "ocupacao": null,
	  "status_campo": null,
	  "nr_lote_topocart": null,
	  "status_geocodificacao": 2,
	  "status_recadastramento": 1,
	  "patrimonio": null,
	  "benfeitoria": null,
	  "passeio": null,
	  "qtd_unidades": null,
	  "ct_devolutiva": null,
	  "jardim": null,
	  "quadra": null,
	  "piscina": null,
	  "utilizacao": null,
	  "ct_area": null,
	  "ct_observacao_area": null
	},
  "id_quadra": 123,
  "quadra": {
	  "id": 3062,
	  "quadra": "474",
	  "id_bairro": 87,
	  "dt_criacao": "2024-04-29T08:44:42.696432"
	},
  "dt_criacao": "2024-04-29T08:44:42.696432",
  "id_bairro": 123,
  "bairro": {
	  "id": 44,
	  "codigo": null,
	  "nome": "COQUEIRAL",
	  "dt_criacao": "2024-04-26T17:10:12.578737"
	},
  "id_logradouro": 123,
  "logradouro": {
	  "id": 25808,
	  "codigo": null,
	  "nome": null,
	  "cep": null,
	  "dt_criacao": "2024-04-18T14:39:12.69726",
	  "id_bairro": "74",
	  "ct_inicio_trecho": false,
	  "ct_observacao": null,
	  "nr_trecho": null,
	  "tipo_logradouro": null,
	  "pavimentacao": null,
	  "iluminacao_publica": 1,
	  "rede_eletrica": 1,
	  "rede_agua": null,
	  "rede_esgoto": null,
	  "guia": null,
	  "coleta_lixo": 2,
	  "galeria_pluvial": null,
	  "arborizacao": null,
	  "valor_m2_antigo": null,
	  "nome_conferencia": "RUA SEM DENOMINACAO",
	  "ct_conferido": null,
	  "nr_lei_aprovada": null,
	  "limpeza_urbana": null,
	  "transporte_publico": 2,
	  "rede_videomonitoramento": null,
	  "sarjeta": null
	},
  "inicio_numeracao": false,
  "numeracao_testada": 12
}

Não é necessário retorno para este endpoint.

Casos de Integração

Em determinados momentos o usuário poderá realizar mais de uma ação vinculada, por exemplo, a criação de uma pessoa e sua vinculação ao imobiliário, deverá executar as seguintes ações junto ao sistema:

  1. Criar pessoa
  2. Criar imobiliario_pessoa

Nestes casos, o sistema enviará um payload composto, contendo as entidades pessoa e imobiliario_pessoa (ver payload no caso de POST e PUT /pessoa) O sistema da Intersol deverá recriar a mesma estrutura em seu ambiente, replicando as ações realizadas no Geo360.

Versionamento

2024/05/21 - Versão inicial