Criação do dígito verificador do código de barras

Bom dia pessoa, eu estou criando um código de barras para boleto, eu gerei os três primeiros digitos verificadores do primeiro, segundo e terceiro campo baseados na base 10, agora estou gerando o quarto dígito verificador que seria baseado em todo o código de barras, criei uma função para gerá-lo na base 11, a minha dúvida é quais os dígitos do código de barras que já tenho que devo usar para criá-lo, seriam os digitos das três primeiras partes ou todos os 43 digitos?
Tentei das duas formas más não obtive exito, tentei até mesmo gerar ele antes dos outros três dígitos verificadores.

Pelo que entendi do manual do banco, seria para usar os 43 digitos do boleto para gerá-lo, alguem pode me ajudar?

Segue o código da minha função:

public int getDV11(String numero) {
	int multiplicador = 2;
	int[] numerosMult = new int[numero.length()];
	
	System.out.println("numero " + numero);

	for (int i = (numero.length() - 1); i >= 0; i--) {
		int numAtual = Integer.parseInt(String.valueOf(numero.charAt(i)));

		numerosMult[i] = numAtual * multiplicador;

		System.out.println("numAtual " + numAtual + " x " + multiplicador + " = " + numerosMult[i]);

		multiplicador++;

		if (multiplicador > 9)
			multiplicador = 2;
	}

	int soma = 0;

	for(int i = 0; i < numerosMult.length; i++) {
		soma += numerosMult[i];
	}

	int resto = soma % 11;
	
	int dv = 11 - resto;
	
	System.out.println("soma " + soma);
	System.out.println("resto " + resto);
	System.out.println("dv " + dv);
	

	if (dv < 2 || dv > 9)
		dv = 1;
	
	return dv;
}