1057 - Rejeição: Assinatura difere do calculado

3 views
Skip to first unread message

Rafael Franca

unread,
Jan 9, 2026, 12:35:09 PM (3 days ago) Jan 9
to PyNFe
Prezados, boa tarde.
Estou desenvolvendo o envio de notas fiscais para prefeitura de São Paulo utilizando Python.
Mas, estou há um tempo tendo esse erro:
1057 - Rejeição: Assinatura difere do calculado

Estou seguindo o padrão definido na documentação da prefeitura de SP, para a geração da string que vai ser assinada pelo Hash na versão 2 do XML. 

nfedocumentacao.png
A minha string base exatamente com essa. Mas, não consigo superar o erro:
def assinar_rsa_sha1(self, dados_bytes):
        assinatura = self.private_key.sign(dados_bytes, padding.PKCS1v15(), hashes.SHA1())
        return base64.b64encode(assinatura).decode()

def gerar_assinatura_rps_v2(self, nota):
   
        im = nota['inscricao_prestador'].zfill(12)
        serie = nota['serie'].ljust(5)
        numero = nota['numero'].zfill(12)
        data = nota['data'].replace("-", "") # AAAAMMDD
        trib = nota['tributacao'] # T, F, A, B, D, M ou N
        retido = "S" if nota['iss_retido'].lower() == "true" else "N"
        situacao = nota['status'] # N, C ou E
        valor_final = str(int(float(nota['valor']) * 100)).zfill(15)
        deducoes = str(int(float(nota['deducoes']) * 100)).zfill(15)
        cod_servico = nota['codigo_servico'].zfill(5)                      
        tipo_tomador = "1" # Exemplo fixo CPF # Tomador: 1=CPF, 2=CNPJ, 3=Não informado, 4=NIF
        doc_tomador = nota['cnpj_tomador'].zfill(14)
        intermediario = "2"
        cnpj_intermediario = "09999999000106"
        iss_intermediario = "S"
        # nif = "2"
        string_final = f"{im}{serie}{numero}{data}{trib}{situacao}{retido}{valor_final}{deducoes}{cod_servico}{tipo_tomador}{doc_tomador}"

        print(string_final)
        return self.assinar_rsa_sha1(string_final.encode('ascii'))

Alguém já passou por isso e poderia me ajudar?
Reply all
Reply to author
Forward
0 new messages