{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/loggi/main/json-schema/loggi-v1-package-update-request-schema.json",
  "title": "v1PackageUpdateRequest",
  "description": "Objeto que configura o formato da requisição de atualização de um pacote. Contém as informações a serem atualizadas.",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/loggi-package-openapi.yml#/components/schemas/v1PackageUpdateRequest",
  "type": "object",
  "properties": {
    "package": {
      "type": "object",
      "properties": {
        "updateMask": {
          "type": "string",
          "description": "Identifica o campo do pacote que será atualizado. Os campos shipTo e returnTo não podem ser atualizados na mesma requisição."
        },
        "shipTo": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Nome da pessoa destinatária associada ao pacote."
            },
            "email": {
              "type": "string",
              "description": "Email da pessoa destinatária associada ao pacote."
            },
            "phoneNumber": {
              "type": "string",
              "description": "Número de telefone da pessoa destinatária associada ao pacote."
            },
            "federalTaxId": {
              "type": "string",
              "description": "Número de identificação fiscal da pessoa destinatária associada ao pacote. Poder ser o número do CPF ou CNPJ."
            },
            "address": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "correios": {
                      "type": "object",
                      "properties": {
                        "logradouro": {
                          "type": "string",
                          "description": "Nome do endereço associado a pessoa destinatária do pacote."
                        },
                        "numero": {
                          "type": "string",
                          "description": "Número que identifica o local onde o pacote será entregue para a pessoa destinatária associada ao pacote."
                        },
                        "complemento": {
                          "type": "string",
                          "description": "Informações complementares associadas ao endereço da pessoa destinatária do pacote."
                        },
                        "bairro": {
                          "type": "string",
                          "description": "Bairro do endereço associado a pessoa destinatária do pacote."
                        },
                        "cep": {
                          "type": "string",
                          "description": "Código postal do endereço associado a pessoa destinatária do pacote."
                        },
                        "cidade": {
                          "type": "string",
                          "description": "Cidade do endereço associado a pessoa destinatária do pacote."
                        },
                        "uf": {
                          "type": "string",
                          "description": "Unidade federativa do endereço associado a pessoa destinatária do pacote."
                        }
                      }
                    }
                  },
                  "description": "Objeto que contém informações detalhadas do endereço compatível com o formato da API dos Correios."
                },
                {
                  "type": "object",
                  "properties": {
                    "lines": {
                      "type": "object",
                      "properties": {
                        "addressLine1": {
                          "type": "string",
                          "description": "Representação mais simples do endereço associado a pessoa destinatária do pacote. Comumente associado ao formato inserido pelo usuário."
                        },
                        "addressLine2": {
                          "type": "string",
                          "description": "Informações complementares associadas ao endereço da pessoa destinatária do pacote."
                        },
                        "postalCode": {
                          "type": "string",
                          "description": "Código postal do endereço associado a pessoa destinatária do pacote. No Brasil, usa-se o CEP."
                        },
                        "city": {
                          "type": "string",
                          "description": "Cidade do endereço associado a pessoa destinatária do pacote."
                        },
                        "state": {
                          "type": "string",
                          "description": "Unidade federativa do endereço associado a pessoa destinatária do pacote."
                        },
                        "country": {
                          "type": "string",
                          "description": "País do endereço associado a pessoa destinatária do pacote."
                        }
                      }
                    }
                  },
                  "description": "Objeto que representa um endereço com padrão internacional."
                }
              ],
              "description": "Objeto que representa um endereço nacional em formato dos Correios ou um endereço internacional. Ambas as representações são mutuamente exclusivas, sendo assim, só é possível utilizar uma delas por request."
            }
          },
          "description": "Objeto que configura o formato da requisição de atualização do destinatário. Contém as informações da pessoa destinatária e do endereço de entrega."
        },
        "returnTo": {
          "type": "object",
          "properties": {
            "address": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "correios": {
                      "type": "object",
                      "properties": {
                        "logradouro": {
                          "type": "string",
                          "description": "Nome do endereço de devolução associado ao pacote."
                        },
                        "numero": {
                          "type": "string",
                          "description": "Número que identifica o local onde o pacote será devolvido."
                        },
                        "complemento": {
                          "type": "string",
                          "description": "Informações complementares associadas ao endereço de devolução do pacote."
                        },
                        "bairro": {
                          "type": "string",
                          "description": "Bairro do endereço de devolução associado ao pacote."
                        },
                        "cep": {
                          "type": "string",
                          "description": "Código postal do endereço de devolução associado ao pacote."
                        },
                        "cidade": {
                          "type": "string",
                          "description": "Cidade do endereço de devolução associado ao pacote. O endereço não poderá ser alterado para outro município."
                        },
                        "uf": {
                          "type": "string",
                          "description": "Unidade federativa do endereço de devolução associado ao pacote."
                        }
                      }
                    }
                  },
                  "description": "Objeto que contém informações detalhadas do endereço compatível com o formato da API dos Correios."
                },
                {
                  "type": "object",
                  "properties": {
                    "lines": {
                      "type": "object",
                      "properties": {
                        "addressLine1": {
                          "type": "string",
                          "description": "Representação mais simples do endereço de devolução associado ao pacote. Comumente associado ao formato inserido pelo usuário."
                        },
                        "addressLine2": {
                          "type": "string",
                          "description": "Informações complementares associadas ao endereço de devolução do pacote."
                        },
                        "postalCode": {
                          "type": "string",
                          "description": "Código postal do endereço de devolução associado ao pacote. No Brasil, usa-se o CEP."
                        },
                        "city": {
                          "type": "string",
                          "description": "Cidade do endereço de devolução associado ao pacote. O endereço não poderá ser alterado para outro município."
                        },
                        "state": {
                          "type": "string",
                          "description": "Unidade federativa do endereço de devolução associado ao pacote."
                        },
                        "country": {
                          "type": "string",
                          "description": "País do endereço de devolução associado ao pacote."
                        }
                      }
                    }
                  },
                  "description": "Objeto que representa um endereço com padrão internacional."
                }
              ],
              "description": "Objeto que representa um endereço nacional em formato dos Correios ou um endereço internacional. Ambas as representações são mutuamente exclusivas, sendo assim, só é possível utilizar uma delas por request."
            }
          },
          "description": "Objeto que configura o formato da requisição de atualização do endereço de devolução. Disponível apenas para pacotes que já estão em processo de devolução. Apenas o campo address pode ser atualizado. Para pacotes com devolução consolidada, a atualização do endereço de devolução não terá efeito."
        }
      }
    }
  }
}