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:
- Criar pessoa
- 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