Como adicionar um endereço a uma entidade
Os endereços não são criados por um endpoint separado. O endereço é registrado junto com a entidade, incluindo os campos de endereço no mesmo payload doPOST api/Entity(veja Como criar um cliente, fornecedor, transportadora ou funcionário).
O endereço é opcional, mas é validado como um bloco de tudo-ou-nada: se você preencher qualquer campo de endereço, o bloco inteiro passa a ser obrigatório.
Campos de endereço
| Campo | Descrição | Obrigatório dentro do bloco? |
|---|---|---|
| street | Logradouro / avenida (até 100 caracteres) | Sim |
| zipCode | CEP (até 9 caracteres) | Sim |
| district | Bairro (até 60 caracteres) | Sim |
| city | Cidade (até 50 caracteres) | Sim |
| initialsState | Sigla do estado (ex.: SP, RJ). Pode ser satisfeito indiretamente via state — veja abaixo. | Sim |
| complement | Complemento do endereço — apartamento, bloco, andar (até 100 caracteres) | Não |
| typeAddressCode | Tipo de endereço: 1 = Residencial, 2 = Comercial, 3 = Faturamento, 4 = Entrega, 5 = Cobrança | Não |
| state | Nome completo do estado / distrito (ex.: São Paulo). Fallback para initialsState — veja abaixo. | Não |
| country | Nome completo do país (ex.: Brasil). Usado apenas para desambiguar state — veja abaixo. | Não |
O bloco de endereço é tudo-ou-nada. Se você preencher qualquer um dos camposstreet,zipCode,district,cityouinitialsState, todos os cinco tornam-se obrigatórios. Se algum faltar, a requisição é rejeitada com:Os campos de endereço '...' são obrigatórios se qualquer outro campo relacionado ao endereço for preenchido.
state, initialsState e country
state, initialsState e countryEstes três campos trabalham em conjunto para definir o estado da entidade. O comportamento deles tem algumas especificidades:
initialsStatetem precedência. Se você enviar a sigla do estado (ex.:SP), ela é usada como está estate/countrysão ignorados na resolução do estado.stateé um fallback. QuandoinitialsStatenão é informado, masstatesim, a API resolve internamente a sigla correspondente a partir do nome do estado/distrito (a comparação por nome é insensível a maiúsculas/acentos, seguindo a collation do banco). Como essa resolução ocorre antes da validação, enviar apenasstatejá é suficiente para satisfazer o campo obrigatórioinitialsState.countrydesambigua. É opcional. Só é usado ao resolverstatepelo nome quando o mesmo nome existe em mais de um país. Não informá-lo continua sendo uma ação válida.
Regras de resolução (quando initialsState está vazio e state é informado)
initialsState está vazio e state é informado)| Situação | Resultado |
|---|---|
| O nome corresponde a exatamente um estado | initialsState é preenchido automaticamente com a sigla resolvida. |
| O nome não é encontrado | Erro: Não foi encontrado um estado/distrito com o nome '...'. (ou ... para o país '...'. quando country foi informado). |
O nome existe em mais de um país e country não foi informado | Erro: O nome de estado/distrito '...' é ambíguo (encontrado em mais de um país). Informe o campo 'country' para desambiguar. |
O nome é ambíguo e country foi informado | A busca é filtrada pelo nome do país, resolvendo a sigla. |
Exemplos
Entidade com endereço completo, usando a sigla do estado diretamente:
[
{
"name": "John Doe",
"tradeName": "John Doe",
"personType": 2,
"entityTypeId": 1,
"relationalEntityCode": "8504",
"situationCode": 1,
"street": "Av. Paulista, 1000",
"district": "Bela Vista",
"city": "São Paulo",
"zipCode": "01310-100",
"initialsState": "SP", // sigla do estado
"typeAddressCode": 4 // 4 = Entrega
}
]O mesmo endereço, mas deixando a API resolver a sigla a partir do nome do estado (state), desambiguado por country:
[
{
"name": "John Doe",
"tradeName": "John Doe",
"personType": 2,
"entityTypeId": 1,
"relationalEntityCode": "8504",
"situationCode": 1,
"street": "Av. Paulista, 1000",
"district": "Bela Vista",
"city": "São Paulo",
"zipCode": "01310-100",
"state": "São Paulo", // resolvido internamente para "SP"
"country": "Brasil", // opcional — apenas desambiguação
"typeAddressCode": 4
}
]Para mais informações sobre as propriedades, consulte a nossa Referência da API aqui.
Updated 5 days ago
Did this page help you?