> ## Documentation Index
> Fetch the complete documentation index at: https://docs.piposaude.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Ofensas

> Catálogo de offenses (violações de validação) retornadas nas movimentações.

Além dos [erros](/docs/referencia/error-handling/erros) exibidos nas respostas, as chamadas de movimentações também podem emitir erros de validação de dados, que são mais específicos, e aqui chamados de "ofensas" (`offenses`).

Quando ocorre algum desses erros, retornamos os dados recebidos contendo uma lista de `offenses` em cada membro onde foi identificada alguma crítica, como respostas dessas chamadas, permitindo assim identificar quais dados estão potencialmente incorretos e precisam ser ajustados.

As offenses são retornadas em respostas `422 Unprocessable Entity` das rotas de movimentação, por exemplo
`POST /v1/enrollment/inclusion`.

Temos duas categorias dessas validações: **Product Offenses** (validações de dados de benefício) e **Member Offenses** (validações de dados de membro).

## Product Offenses

Essas `offenses` incluem o tipo do benefício e o índice da entrada do benefício que está errado, **zero-based**.

<Tip>
  Se foi encontrado o problema de "nome inválido" no **segundo** benefício de saúde, a ofensa gerada será
  `invalid-health-insurance-1-name`: o índice fica **entre o tipo do produto e o campo**, e a contagem se
  inicia no zero, logo o segundo elemento corresponde ao índice `1`.
</Tip>

<Accordion title="Ver lista de Product Offenses">
  | Offense                                             | Descrição                                                                                                     | Exemplos                                                                                                                  |
  | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
  | `missing-name`                                      | Nome do Produto em branco.                                                                                    | `missing-health-insurance-2-name`, `missing-dental-insurance-4-name`                                                      |
  | `invalid-name`                                      | Nome do Produto inválido.                                                                                     | `invalid-mental-health-1-name`, `invalid-pet-insurance-3-name`                                                            |
  | `missing-requested-start-date`                      | Opção de Início do Produto em branco.                                                                         | `missing-health-insurance-3-requested-start-date`, `missing-dental-insurance-5-requested-start-date`                      |
  | `invalid-requested-start-date`                      | Opção de Início do Produto inválida.                                                                          | `invalid-mental-health-2-requested-start-date`, `invalid-pet-insurance-1-requested-start-date`                            |
  | `missing-requested-end-date`                        | Data pretendida de exclusão em branco.                                                                        | `missing-health-insurance-3-requested-end-date`, `missing-dental-insurance-0-requested-end-date`                          |
  | `invalid-requested-end-date`                        | Data pretendida de exclusão inválida.                                                                         | `invalid-mental-health-4-requested-end-date`, `invalid-pet-insurance-2-requested-end-date`                                |
  | `missing-portability`                               | Opção de Portabilidade do Produto em branco.                                                                  | `missing-health-insurance-5-portability`, `missing-pet-insurance-1-portability`                                           |
  | `invalid-portability`                               | Opção de Portabilidade do Produto inválida.                                                                   | `invalid-dental-insurance-3-portability`, `invalid-mental-health-0-portability`                                           |
  | `invalid-contribution-to-plan`                      | Opção de contribuição no plano inválida.                                                                      | `invalid-health-insurance-4-contribution-to-plan`, `invalid-pet-insurance-2-contribution-to-plan`                         |
  | `invalid-request-extension-plan`                    | Opção de extensão no plano inválida.                                                                          | `invalid-dental-insurance-1-request-extension-plan`, `invalid-mental-health-5-request-extension-plan`                     |
  | `missing-product-id`                                | Nome do Produto inválido - não corresponde a nenhum cadastrado.                                               | `missing-health-insurance-3-product-id`, `missing-pet-insurance-0-product-id`                                             |
  | `product-already-exists`                            | Membro já possui o produto.                                                                                   | `product-dental-insurance-4-already-exists`, `product-mental-health-2-already-exists`                                     |
  | `dependent-product-not-found-in-primary`            | Produto informado para esse dependente não localizado no titular.                                             | `dependent-health-insurance-1-product-not-found-in-primary`, `dependent-pet-insurance-5-product-not-found-in-primary`     |
  | `dependent-product-different-from-primary`          | Produto diferente do escolhido para o titular.                                                                | `dependent-dental-insurance-3-product-different-from-primary`, `dependent-mental-health-0-product-different-from-primary` |
  | `relationship-type-not-valid-for-product`           | Produto informado não aceita esse tipo de dependente.                                                         | `relationship-type-not-valid-for-health-insurance-2-product`, `relationship-type-not-valid-for-pet-insurance-4-product`   |
  | `product-not-found-in-member`                       | Produto informado não encontrado no membro.                                                                   | `product-dental-insurance-1-not-found-in-member`, `product-mental-health-3-not-found-in-member`                           |
  | `missing-{product-type}-{index}-product-identifier` | Nenhum dos campos `name` e `product-id` foi fornecido para o produto do tipo `product-type` e índice `index`. | `missing-health-insurance-0-product-identifier`                                                                           |
  | `missing-{product-type}-{index}-product-id`         | O ID de produto informado não foi encontrado dentre as opções disponíveis.                                    | `missing-health-insurance-0-product-id`                                                                                   |
</Accordion>

## Member Offenses

Essas `offenses` são respostas para validações de dados do membro e seus dependentes, e são mais simples
que as de benefícios, o que significa que elas serão apresentadas exatamente do jeito que elas estão
listadas.

<Accordion title="Ver lista de Member Offenses">
  | Offense                                          | Descrição                                                                                                                                                                               |
  | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `missing-tax-id`                                 | CPF em branco.                                                                                                                                                                          |
  | `invalid-tax-id`                                 | CPF inválido.                                                                                                                                                                           |
  | `duplicated-tax-id`                              | CPF duplicado.                                                                                                                                                                          |
  | `missing-primary-tax-id`                         | CPF do titular em branco.                                                                                                                                                               |
  | `invalid-primary-tax-id`                         | Não existe titular com o CPF informado.                                                                                                                                                 |
  | `dependent-without-tax-id`                       | Titular cadastrado com dependente sem CPF. Entre em contato com o Suporte Pipo [suporte@piposaude.com.br](mailto:suporte@piposaude.com.br) e solicite o ajuste dos CPFs de dependentes. |
  | `missing-company-tax-id`                         | CNPJ em branco.                                                                                                                                                                         |
  | `invalid-company-tax-id`                         | CNPJ inválido.                                                                                                                                                                          |
  | `company-not-in-conglomerate`                    | Empresa não pertence ao conglomerado do cliente.                                                                                                                                        |
  | `missing-company-id`                             | Empresa não pertence ao conglomerado do cliente.                                                                                                                                        |
  | `missing-products`                               | Ao menos um benefício precisa ser definido.                                                                                                                                             |
  | `missing-beneficiary-type`                       | Tipo de Beneficiário em branco.                                                                                                                                                         |
  | `invalid-beneficiary-type`                       | Tipo de Beneficiário inválido.                                                                                                                                                          |
  | `missing-date-of-birth`                          | Data de Nascimento em branco.                                                                                                                                                           |
  | `invalid-date-of-birth`                          | Data de Nascimento inválida.                                                                                                                                                            |
  | `missing-mothers-name`                           | Nome da Mãe em branco.                                                                                                                                                                  |
  | `invalid-mothers-name`                           | Nome da mãe inválido.                                                                                                                                                                   |
  | `missing-name`                                   | Nome em branco.                                                                                                                                                                         |
  | `invalid-name`                                   | Nome inválido.                                                                                                                                                                          |
  | `missing-work-contract-type`                     | Tipo de Contrato de Trabalho em branco.                                                                                                                                                 |
  | `invalid-work-contract-type`                     | Tipo de Contrato de Trabalho inválido.                                                                                                                                                  |
  | `missing-bank-number`                            | Código bancário em branco.                                                                                                                                                              |
  | `invalid-bank-number`                            | Código bancário inválido.                                                                                                                                                               |
  | `missing-bank-branch-number`                     | Agência em branco.                                                                                                                                                                      |
  | `invalid-bank-branch-number`                     | Número da Agência inválido.                                                                                                                                                             |
  | `missing-bank-account-number`                    | Número da Conta em branco.                                                                                                                                                              |
  | `invalid-bank-account-number`                    | Número da Conta inválido.                                                                                                                                                               |
  | `missing-dependent-relationship-type`            | Tipo de Dependente em branco.                                                                                                                                                           |
  | `invalid-dependent-relationship-type`            | Tipo de Dependente inválido.                                                                                                                                                            |
  | `missing-dependent-relationship-start-date`      | Data de Início do Relacionamento em branco.                                                                                                                                             |
  | `invalid-dependent-relationship-start-date`      | Data de Início do Relacionamento inválida.                                                                                                                                              |
  | `missing-document-type`                          | Tipo de documento em branco.                                                                                                                                                            |
  | `invalid-document-type`                          | Tipo de Documento inválido.                                                                                                                                                             |
  | `missing-document-issuer`                        | Emissor do documento em branco.                                                                                                                                                         |
  | `invalid-document-issuer`                        | Emissor do Documento inválido.                                                                                                                                                          |
  | `missing-document-number`                        | Número do documento em branco.                                                                                                                                                          |
  | `invalid-document-number`                        | Número do Documento inválido.                                                                                                                                                           |
  | `duplicated-document-number`                     | Número de Documento duplicado.                                                                                                                                                          |
  | `missing-document-issue-date`                    | Data de Emissão em branco.                                                                                                                                                              |
  | `invalid-document-issue-date`                    | Data de Emissão inválida.                                                                                                                                                               |
  | `missing-document-issuer-state`                  | Estado do Emissor em branco.                                                                                                                                                            |
  | `invalid-document-issuer-state`                  | Estado do Emissor inválido.                                                                                                                                                             |
  | `missing-preferred-name`                         | Nome Social em branco.                                                                                                                                                                  |
  | `invalid-preferred-name`                         | Nome Social inválido.                                                                                                                                                                   |
  | `missing-cost-center`                            | Centro de Custo em branco.                                                                                                                                                              |
  | `invalid-cost-center`                            | Centro de Custo inválido.                                                                                                                                                               |
  | `missing-admission-date`                         | Data de Admissão em branco.                                                                                                                                                             |
  | `invalid-admission-date`                         | Data de Admissão inválida.                                                                                                                                                              |
  | `missing-salary`                                 | Salário em branco.                                                                                                                                                                      |
  | `invalid-salary`                                 | Salário inválido.                                                                                                                                                                       |
  | `invalid-employee-id`                            | Matrícula inválida.                                                                                                                                                                     |
  | `duplicated-employee-id`                         | Matrícula duplicada.                                                                                                                                                                    |
  | `missing-weight`                                 | Peso em branco.                                                                                                                                                                         |
  | `invalid-weight`                                 | Peso inválido.                                                                                                                                                                          |
  | `missing-height`                                 | Altura em branco.                                                                                                                                                                       |
  | `invalid-height`                                 | Altura inválida.                                                                                                                                                                        |
  | `missing-address-street`                         | Endereço em branco.                                                                                                                                                                     |
  | `invalid-address-street`                         | Endereço inválido.                                                                                                                                                                      |
  | `missing-address-postal-code`                    | CEP em branco.                                                                                                                                                                          |
  | `invalid-address-postal-code`                    | CEP inválido.                                                                                                                                                                           |
  | `missing-address-city`                           | Cidade em branco.                                                                                                                                                                       |
  | `invalid-address-city`                           | Cidade inválido.                                                                                                                                                                        |
  | `missing-address-number`                         | Número da Residência em branco.                                                                                                                                                         |
  | `invalid-address-number`                         | Número da residência inválido.                                                                                                                                                          |
  | `missing-address-neighborhood`                   | Bairro em branco.                                                                                                                                                                       |
  | `invalid-address-neighborhood`                   | Bairro inválido.                                                                                                                                                                        |
  | `missing-address-state`                          | Estado em branco.                                                                                                                                                                       |
  | `invalid-address-state`                          | Estado inválido.                                                                                                                                                                        |
  | `missing-address-complement`                     | Complemento de endereço em branco.                                                                                                                                                      |
  | `invalid-address-complement`                     | Complemento de endereço inválido, limite de 15 caracteres.                                                                                                                              |
  | `missing-beneficiary-services-company-tax-id`    | CNPJ da Empresa de Serviços em branco.                                                                                                                                                  |
  | `invalid-beneficiary-services-company-tax-id`    | CNPJ da Empresa de Serviços inválido.                                                                                                                                                   |
  | `duplicated-beneficiary-services-company-tax-id` | CNPJ da Empresa de Serviços duplicado.                                                                                                                                                  |
  | `missing-gender`                                 | Sexo em branco.                                                                                                                                                                         |
  | `invalid-gender`                                 | Sexo inválido.                                                                                                                                                                          |
  | `missing-email`                                  | E-mail em branco.                                                                                                                                                                       |
  | `invalid-email-private`                          | E-mail particular inválido.                                                                                                                                                             |
  | `invalid-email-corporate`                        | E-mail Corporativo em branco.                                                                                                                                                           |
  | `duplicated-corporate-email`                     | E-mail corporativo duplicado.                                                                                                                                                           |
  | `missing-marital-status`                         | Estado Civil em branco.                                                                                                                                                                 |
  | `invalid-marital-status`                         | Estado Civil inválido.                                                                                                                                                                  |
  | `missing-job-title`                              | Cargo em branco.                                                                                                                                                                        |
  | `invalid-job-title`                              | Cargo inválido.                                                                                                                                                                         |
  | `missing-phone`                                  | Telefone em branco.                                                                                                                                                                     |
  | `invalid-phone`                                  | Telefone inválido.                                                                                                                                                                      |
  | `dependent-without-primary`                      | Dependente não vinculado a nenhum titular.                                                                                                                                              |
  | `missing-handicapped`                            | Campo em branco.                                                                                                                                                                        |
  | `invalid-handicapped`                            | Opção inválida.                                                                                                                                                                         |
  | `already-existing-primary`                       | Titular já cadastrado.                                                                                                                                                                  |
  | `missing-enrollment-reason`                      | Motivo da movimentação em branco.                                                                                                                                                       |
  | `invalid-enrollment-reason`                      | Motivo da movimentação inválido.                                                                                                                                                        |
  | `missing-enrollment-reason-details`              | Detalhes da movimentação obrigatório quando o motivo é "outro".                                                                                                                         |
  | `missing-enrollment-requester`                   | Solicitante Pipo em branco.                                                                                                                                                             |
  | `missing-enrollment-requester-area`              | Área solicitante Pipo em branco.                                                                                                                                                        |
  | `invalid-enrollment-requester-area`              | Área solicitante Pipo inválido.                                                                                                                                                         |
  | `missing-enrollment-requester-hr`                | RH solicitante em branco.                                                                                                                                                               |
  | `missing-enrollment-requester-hr-email`          | E-mail RH solicitante em branco.                                                                                                                                                        |
  | `missing-exclusion-reason`                       | Motivo da exclusão em branco.                                                                                                                                                           |
  | `invalid-exclusion-reason`                       | Motivo da exclusão inválido.                                                                                                                                                            |
  | `missing-exclusion-reason-details`               | Detalhes do motivo da exclusão em branco.                                                                                                                                               |
  | `member-not-found`                               | Membro não encontrado.                                                                                                                                                                  |
  | `member-not-active`                              | Membro não está ativo na empresa.                                                                                                                                                       |
  | `missing-alteration-data-type`                   | Tipo de alteração em branco.                                                                                                                                                            |
  | `invalid-alteration-data-type`                   | Tipo de alteração inválida.                                                                                                                                                             |
  | `missing-new-alteration-value`                   | Novo valor em branco.                                                                                                                                                                   |
  | `invalid-new-alteration-value`                   | Novo valor inválido.                                                                                                                                                                    |
  | `missing-requested-effective-date`               | Data pretendida da alteração em branco.                                                                                                                                                 |
  | `invalid-requested-effective-date`               | Data pretendida da alteração inválida.                                                                                                                                                  |
  | `missing-plan-alteration-reason`                 | Tipo de alteração de plano em branco.                                                                                                                                                   |
  | `invalid-plan-alteration-reason`                 | Tipo de alteração de plano inválido.                                                                                                                                                    |
  | `document-not-found`                             | Documento, identificado pelo `document-id`, não encontrado no file-storage da Pipo (garantir que já tenha sido feito o upload dele).                                                    |
  | `document-invalid-format`                        | Formato do arquivo do documento recebido não está entre os formatos aceitos (são aceitos apenas imagens ou PDF).                                                                        |
  | `invalid-document-type`                          | Tipo de documento informado em `document-type` inválido.                                                                                                                                |
  | `missing-document_***`                           | Documento do tipo `***` é obrigatório para a movimentação mas não foi fornecido.                                                                                                        |
</Accordion>
