Array
(
)

Digito verificador dos Correios (AR, SEDEX)

Fábio Barroso
   - 16 dez 2009

Ola Pessoal,   Gostaria de saber se alguem sabe como calcular o digito verificador de AR (Aviso de Recebimento) dos correios aqui do Brasil. Eu achei como calcular o CEP, tentei Mod 10 e 11, mas não cheguei no resultado.   Abaixo alguns numeros de AR com 8 digitos e os digitos reais, mas preciso saber como chegar nesses digitos:  

Numero sem o verificador

Verificador Correto Correios

Módulo 11

Módulo 10

25454913

6

6

2

25454914

0

4

0

25454915

3

2

7

25454916

7

0

5

Hugo Soliz
   - 08 ago 2016

PROCUREI MUITO E ACABEI ENCONTRANDO ISSO AQUI... FUNCIONOU PERFEITAMENTE >>>
SEI QUE JÁ FAZ TEMPO O SEU POST... MAS OUTROS PODEM PRECISAR!!! ;-)

Segue abaixo uma rotina que recebi de um anigo que trabalha com correios.
Esta em delphi. Talvez possa ajudar:

function DigitoMod11ECT(Numero: String): String;
const STR_CALC = '86423597';
var Soma, I, Resto: Integer;
begin
result:='';
Soma:= 0;
if Length(Numero) = 8 then begin
for I:=1 to 8 do
Soma:= Soma + StrToInt(Numero[I]) * StrToInt(STR_CALC[I]);
Resto:= Soma Mod 11;
if Resto = 0 then
result:= '5'
else if Resto = 1 then
result:= '0'
else
result:= IntToStr(11 - Resto);
end;
end;

Hugo Soliz
   - 08 ago 2016

Utilizei para gerar o DV automaticamente em uma planilha no LibreOffice Calc...
Numa coluna (N2...) colocava os códigos e em outra (A2...), onde apliquei a fórmula, aparecia o código do AR já formatado e com o DV (Dígito Verificador)
Baseado no código em Delphi acima escrevi a seguinte fórmula >>>

=VALOR(CONCATENAR(N2;SE(MOD(EXT.TEXTO(N2;1;1)*8+EXT.TEXTO(N2;2;1)*6+EXT.TEXTO(N2;3;1)*4+EXT.TEXTO(N2;4;1)*2+EXT.TEXTO(N2;5;1)*3+EXT.TEXTO(N2;6;1)*5+EXT.TEXTO(N2;7;1)*9+EXT.TEXTO(N2;8;1)*7;11)=0;5;SE(MOD(EXT.TEXTO(N2;1;1)*8+EXT.TEXTO(N2;2;1)*6+EXT.TEXTO(N2;3;1)*4+EXT.TEXTO(N2;4;1)*2+EXT.TEXTO(N2;5;1)*3+EXT.TEXTO(N2;6;1)*5+EXT.TEXTO(N2;7;1)*9+EXT.TEXTO(N2;8;1)*7;11)= 1;0;11-MOD(EXT.TEXTO(N2;1;1)*8+EXT.TEXTO(N2;2;1)*6+EXT.TEXTO(N2;3;1)*4+EXT.TEXTO(N2;4;1)*2+EXT.TEXTO(N2;5;1)*3+EXT.TEXTO(N2;6;1)*5+EXT.TEXTO(N2;7;1)*9+EXT.TEXTO(N2;8;1)*7;11)))))

As células da coluna "A" já estavam formatadas como número com o código de formato: "JO "#" "#" BR"

Assim, por exemplo, digitando na coluna N2 o número: "40651641"
obtenho como resultado na coluna em que colei a fórmula (A2): "JO 40651641 1 BR"

Espero que essa info seja de valia para alguém... valeu!!!