Bem-vindo, Visitante
Nome do utilizador: Senha: Memorizar

TÓPICO: Como validar NIF em Java?

Como validar NIF em Java? 4 meses 1 semana atrás #11117

  • inforoeste
  • Avatar de inforoeste
  • DESLIGADO
  • Mensagens: 38
  • Obrigado recebido 14
Boa Tarde

Sendo utilizador do vosso excelente programa e tendo já vários clientes também a usar o vosso software, ando a desenvolver uma APP mobile que interliga com ERP's para consulta de faturas, encomendas e dados de cliente diretamente no Tablet.

Surgiu-me a situação em que gostaria de validar o NIF localmente na app na qual já testei diversos códigos/algoritmos e até agora todos funcionaram mal.

Seria possível disponibilizar a função Java que valida o NIF PT?

Desde já agradeço o tempo despendido
Stéphane
O adminstrador desactivou a escrita pública.

Como validar NIF em Java? 4 meses 1 semana atrás #11118

  • marcolopes
  • Avatar de marcolopes
  • DESLIGADO
  • Mensagens: 4758
  • Obrigado recebido 657
Existe forma de o fazer através da API do Colibri... o método depende da versão da API.

Se quer mesmo incorporar a função para VALIDAR o NIF PT num desenvolvimento seu, então posso facultar a função em JAVA para tal:
/**
 * http://zylla.wipos.p.lodz.pl/ut/translation.html
 */
public static class CheckDigit {

	public static boolean PT(String vatNumber) {
		final int max=9;
		//check if is numeric and has 9 numbers
		if (!vatNumber.matches("[0-9]+") || vatNumber.length()!=max) return false;
		int checkSum=0;
		//calculate checkSum
		for (int i=0; i<max-1; i++){
			checkSum+=(vatNumber.charAt(i)-'0')*(max-i);
		}
		int checkDigit=11-(checkSum % 11);
		//if checkDigit is higher than TEN set it to zero
		if (checkDigit>=10) checkDigit=0;
		//compare checkDigit with the last number of NIF
		return checkDigit==vatNumber.charAt(max-1)-'0';
	}

}

Se quiser ir mais além e efectuar a verificação no registo CENTRAL europeu, pode usar o WEBSERVICE VIES: github.com/marcolopes/dma/tree/master/org.dma.services.vies
Marco Lopes
Gestor de projecto
Análise e Programação
O adminstrador desactivou a escrita pública.
The following user(s) said Thank You: inforoeste

Como validar NIF em Java? 4 meses 1 semana atrás #11119

  • inforoeste
  • Avatar de inforoeste
  • DESLIGADO
  • Mensagens: 38
  • Obrigado recebido 14
Mais uma vez agradeço ao tempo despendido pela equipa do projecto colibri em responder de forma tão rápida e com respostas bastante detalhadas.

Pelo código que me apresentou dá-me a entender que alem de validarem o NIF PT validam outros NIFS de outros Paises? Se sim para que países o colibri está a validar NIF/Vat Number?

Usar o webservice do VIES já foi uma abordagem em que pensei adotar mas essa só funcionaria se o cliente for sujeito passivo de IVA que realiza operações intra-comunitárias pelo que sei, no entanto corrija-me se estiver errado
O adminstrador desactivou a escrita pública.

Como validar NIF em Java? 4 meses 1 semana atrás #11134

  • marcolopes
  • Avatar de marcolopes
  • DESLIGADO
  • Mensagens: 4758
  • Obrigado recebido 657
inforoeste escreveu:
Pelo código que me apresentou dá-me a entender que alem de validarem o NIF PT validam outros NIFS de outros Paises? Se sim para que países o colibri está a validar NIF/Vat Number?

Usar o webservice do VIES já foi uma abordagem em que pensei adotar mas essa só funcionaria se o cliente for sujeito passivo de IVA que realiza operações intra-comunitárias pelo que sei, no entanto corrija-me se estiver errado

Existem DUAS formas de validação (pelo menos vou distinguir para que não seja feita confusão):

1) CHECKSUM (ou outra forma de controle), por forma a evitar erros de digitação. Uma boa fonte de informação para implementar algoritmo é este site: zylla.wipos.p.lodz.pl/ut/translation.html

Neste caso, o Colibri APENAS faz validação para os NIF nacionais.

2) WEBSERVICE (apenas países da UE), por forma a obter os dados da empresa (leia-se sujeito passivo registado nos serviços de IVA). Existe um serviço CENTRAL que está disponível ao público e comunica directamente com os serviços fiscais de cada país: ec.europa.eu/taxation_customs/vies/

Neste caso, o Colibri faz a validação (leia-se pesquisa) dos NIF de todos os 28 países da UE (pelo que pude apurar, qualquer empresa registada para efeitos de IVA é acessível através deste serviço).

Em resumo: são métodos distintos, que se complementam.
Marco Lopes
Gestor de projecto
Análise e Programação
Última Edição: 4 meses 1 semana atrás por marcolopes.
O adminstrador desactivou a escrita pública.
Moderadores: marcolopes