Ir para conteúdo
  • Cadastre-se

dev botao

Renovação do certificado para a api pix da SICREDI .


Ver Solução Respondido por Natanailson Cardoso,

Recommended Posts

  • Membros Pro
Postado

Boa tarde!

Fiz a integração com a SICREDI em 2023 e o certificado esta se vencendo e quando eu utilizo a geração da solicitação de arquivo SCR do programa de exemplo do ABR e  passo pelo link abaixo fornecido pela o suporte do SICREDI para fazer o decoder o arquivo de solicitação apresenta problema outra coisa apontada foi a falta do serial number que deveria ter ido o CNPJ do associado e não foi.

 

image.thumb.png.0ba290c3b0219d288f021f19eba2fddb.png

link:https://redkestrel.co.uk/tools/decoder

Alguém poderia me ajudar ?

Em 2023 eu gerei da mesma forma utilizando o exemplo do próprio projeto ACBR (ACBrPIXCD) e funcionou.

 

image.thumb.png.4639f47f604eb0eb417bb1ad1a189a57.png 

  • Membros Pro
Postado

Oi Daniel,  o certificado atual do meu cliente (.cer) ainda esta válido mas se vence em março, o que eu estou tentando fazer é já obter um novo certificado na sicredi, no caso o arquivo .cer para que a solução PIX continue funcionando.

Quando eu utilizo ACBrPIXCD para gerar um novo .scr para obtenção de um novo certificado a SICREDI reprova essa nova solicitação.

Desculpe-me se não estou sendo claro.

Quando eu envio SicrediCertificado.csr no internet bank a SICREDI reprova o pedido.

 

SicrediChavePrivada.key SicrediCertificado.csr

  • Membros Pro
Postado

Bom dia!

Adicionei essa linha no código abaixo e estou esperando a SICREDI retornar a minha solicitação de certificado.

Aparentemente o arquivo ficou idêntico ao arquivo gerado pelo manual da sicredi. 

 

function TACBrOpenSSLUtils.CreateCertificateSignRequest(
  const CN_CommonName: String; O_OrganizationName: String;
  OU_OrganizationalUnitName: String; L_Locality: String;
  ST_StateOrProvinceName: String; C_CountryName: String;
  EMAIL_EmailAddress: String; Algorithm: TACBrOpenSSLAlgorithm): String;
var
  x: PX509_REQ;
  name: PX509_NAME;
  bio: PBIO;
  md: PEVP_MD;
begin
  CheckPrivateKeyIsLoaded;
  CheckPublicKeyIsLoaded;

  Result := '';
  md := GetEVPAlgorithmByName(Algorithm);
  x := X509_REQ_new;
  try
    name := X509_NAME_new;
    try
      if (EMAIL_EmailAddress <> '') then
        X509NameAddEntryByTxt(name, 'EMAIL', MBSTRING_ASC, EMAIL_EmailAddress, -1, -1, 0);
      if (C_CountryName <> '') then
        X509NameAddEntryByTxt(name, 'C', MBSTRING_ASC, C_CountryName, -1, -1, 0);
      if (ST_StateOrProvinceName <> '') then
        X509NameAddEntryByTxt(name, 'ST', MBSTRING_ASC, ST_StateOrProvinceName, -1, -1, 0);
      if (L_Locality <> '') then
        X509NameAddEntryByTxt(name, 'L', MBSTRING_ASC, L_Locality, -1, -1, 0);
      if (OU_OrganizationalUnitName <> '') then
        X509NameAddEntryByTxt(name, 'OU', MBSTRING_ASC, OU_OrganizationalUnitName, -1, -1, 0);
      if (O_OrganizationName <> '') then
        X509NameAddEntryByTxt(name, 'O', MBSTRING_ASC, O_OrganizationName, -1, -1, 0);
      X509NameAddEntryByTxt(name, 'CN', MBSTRING_ASC, CN_CommonName, -1, -1, 0);


 //Adicionar subjetct no certificado colocar o cnpj de cada cliente xxxxxxx é o cnpj do assossiado

      X509NameAddEntryByTxt(name, 'serialNumber', MBSTRING_ASC, 'urn:cpfcnpj:xxxxxxxxxxxxxx', -1, -1, 0);


      if (X509_REQ_set_subject_name(x, name) <> 1) then
        raise EACBrOpenSSLException.Create('X509_REQ_set_subject_name' + sLineBreak + GetLastOpenSSLError);
    finally
      X509_NAME_free(name);
    end;

    if (X509_REQ_set_pubkey(x, fEVP_PublicKey) <> 1) then
      raise EACBrOpenSSLException.Create('X509_REQ_set_pubkey' + sLineBreak + GetLastOpenSSLError);
    if (X509_REQ_sign(x, fEVP_PrivateKey, md) = 0) then
      raise EACBrOpenSSLException.Create('X509_REQ_sign' + sLineBreak + GetLastOpenSSLError);

    bio := BioNew(BioSMem);
    try
      if (PEM_write_bio_X509_REQ(bio, x) <> 1) then
        raise EACBrOpenSSLException.Create('PEM_write_bio_X509_REQ' + sLineBreak + GetLastOpenSSLError);
      Result := BioToStr(bio);
    finally
      BioFreeAll(bio);
    end;
  finally
    X509_REQ_free(x);
  end;
end;
 

 

  • Consultores
Postado

Conforme  manual que temos, o CNPJ não é previsto:
image.png?ex=67bf18bf&is=67bdc73f&hm=32f

Pode ser que eles tenham atualizado o manual.

Você tem algum manual atual para disponibilizar? Se o CNPJ for necessário, precisamos realizar o ajuste no componente.

  • Membros Pro
Postado (editado)

Bom dia. 

Aparentemente  estão solicitando a a solicitação de certificado de acordo com o anexo I do guia da API de pagamento deles.

Vou confirmar assim que eles derem a validação da solicitação do certificado.

Assim que eu obter a aprovação do arquivo eu aviso aqui.

 

Guia Técnico Integrações API Multipag Sicredi_V7.pdf

Editado por Natanailson Cardoso
  • Curtir 1
  • Consultores
Postado
Em 25/02/2025 at 11:18, Natanailson Cardoso disse:

Aparentemente  estão solicitando a a solicitação de certificado de acordo com o anexo I do guia da API de pagamento deles.

Vou confirmar assim que eles derem a validação da solicitação do certificado.

Assim que eu obter a aprovação do arquivo eu aviso aqui.

Bom dia ! 
Você recebeu algum retorno referente ao certificado ?

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...