Executando verificação de segurança...
1

Eu acho que você pode simplificar só verificando o tamanho e se inclui caracteres com acentos e disparar uma exceção com isso.

O resto, o programador se vira.

Eu nunca vi um banco usar esse dado, mas por vias das dúvidas, ele tá lá.

Outra coisa: o tipo da chave pix é omitido no payload final. Você usa ele para o que? Validar key? Ou tem outra utilidade?

Carregando publicação patrocinada...
1

O type foi algo meu mesmo, para facilitar nas validações, pois do jeito que estava antes eu tinha um grande volume de if para validar regex e tamanho.

Dessa forma eu ataco de forma mais precisa, apenas valido um input com o que eu quero que ele seja, não preciso verificar se um número é um email, ou seja, eu valido se um email é um email. Já que o usuário me diz que chave é aquela. Porém eu pretendo fazer o projeto ficar cada vez mais dinâmico no futuro.