Ir para conteúdo
  • Cadastre-se

Larry

Membros
  • Total de ítens

    120
  • Registro em

  • Última visita

Tudo que Larry postou

  1. Obrigado Leandro, tinha feito isso, só não queria informar um troco que não existe caso do cliente final analisar o xml. Um belo dia alguém pode contestar que esqueceram de dar o troco... Vou colocar uma informação nos dados adicionais descrevendo o credito.
  2. Boa tarde, Estou com um caso com alguns clientes que ao fazer uma venda é pago um valor maior que o total da venda e essa diferença fica como crédito para uma compra futura. Por exemplo: o cliente final compra um produto de R$10,00 e paga R$15,00 , ficando com R$5,00 de crédito para um compra futura. No xml se eu informar vNF=10.00 e vPag=15.00 (dinheiro) da essa rejeição. Tentei também colocar vNF=15.00, vPag=10.00 (dinheiro) e outro vPag=5.00 (outra forma pagamento qualquer) mas da a mesma rejeição. Se eu informar um vTroco=5.00 a nota passa mas se o cliente final analisar o xml vai encontrar um troco que nunca existiu. Obs: nota fiscal do Rio Grande do Sul. Tem alguma forma de informa esse pagamento de R$15,00?
  3. É para nfc-e em Pernambuco. Sempre usei assincrono, mas ao usar assíncrono em PE recebo a rejeição "Solicitada resposta assincrona para Lote com somente 1 (uma) NFC-e".
  4. Traz 'Lote recebido com sucesso'.
  5. Larry

    Exceção em ACBrNFe1.Enviar

    Boa tarde, Sempre utilizei o envio de nfe e nfce da forma: try ACBrNFe1.Enviar(1,False,False); *** fluxo 1 except *** fluxo 2 end; Ao enviar a nfe normalmente segue o fluxo1. Mas se eu mudar para ACBrNFe1.Enviar(1,False,True) vou direto para o fluxo 2 (exceção). O ACBrNFe1.WebServices.Enviar.cStat retorna 103. É normal isso?
  6. Não precisa ter domínio não. O campo "Common Name" é opcional e você pode colocar qualquer coisa.
  7. Terminei o código para o button13 do teste que anexei (Consulta Lista de Boletos Inter) que ainda não estava pronto: procedure TForm1.Button13Click(Sender: TObject); var JsonStreamRetorno,JsonStreamEnvio: TStringStream; lista1:tstringlist; valor:real; texto:string; Parametros:string; begin Memo1.Clear; lista1:=tstringlist.create; JsonStreamRetorno := TStringStream.Create(''); lista1.text:='';//memo3.text; JsonStreamEnvio := TStringStream.Create(lista1.text); IdHttp1.Request.CustomHeaders.Clear; IdHTTP1.Request.CustomHeaders.Add('Content-Type: application/json'); IdHTTP1.Request.CustomHeaders.Add('x-inter-conta-corrente: '+conta_corrente); Parametros:=''; Parametros:=Parametros+'?filtrarPor=TODOS'; Parametros:=Parametros+'&dataInicial=2020-01-01'; Parametros:=Parametros+'&dataFinal=2020-08-14'; Parametros:=Parametros+'&ordenarPor=SEUNUMERO'; try IdHTTP1.Get('https://apis.bancointer.com.br:8443/openbanking/v1/certificado/boletos'+Parametros , JsonStreamRetorno); except on E:EIdHTTPProtocolException do memo1.Lines.add(IdHTTP1.ResponseText+#13#10+e.ErrorMessage) else showexception(exceptobject, exceptaddr); end; memo1.Lines.Add('Código de retorno: '+inttostr(IdHTTP1.ResponseCode)); memo1.Lines.Add(''); if JsonStreamRetorno.DataString<>'' then Memo1.Lines.add(JsonStreamRetorno.DataString); if IdHTTP1.ResponseCode<>200 then showmessage('Transação não pode ser inicada ('+inttostr(IdHTTP1.ResponseCode)+').'); end; obs: esse foi um teste inicial, por isso tem algumas variaveis declaradas que não tem uso. obs: lembrando que de acordo com o manual do Inter os boletos lançados no dia de hoje não aparecem na listagem, somente os anteriores. Já na consulta individual aparece.
  8. Ja fiz coisa muito parecida usando TRESTClient, TRESTRequest e TRESTResponse para outra api. Segue um trecho do código: RESTClient1.BaseURL:='url'; RESTRequest1.Method:=TRESTRequestMethod.rmPOST; RESTRequest1.Body.ClearBody; RESTRequest1.Body.Add('Content-Type:application/json'); RESTRequest1.Body.Add('Authorization: 13245'); RESTRequest1.Body.Add('Accept:application/json'); RESTRequest1.Body.Add('{'); RESTRequest1.Body.Add(' "sendSmsRequest": {'); ....... try RESTRequest1.Execute; jValue:=RESTResponse1.JSONValue; except on E:erestexception do memo1.Lines.add(e.ToString) else mostra_erro; end; ..... jValue:=RESTResponse1.JSONValue; Memo1.Lines.add('ResponseCode: '+inttostr(RESTResponse1.StatusCode)); if jValue.ToString<>'' then memo1.Lines.Add(jValue.ToString);
  9. obs: se der erro no comando openssl.exe digita: set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
  10. Primeiro tem que criar os arquivo do certificado. No exemplo que vou postar tem que colocar no formcreate o numero da conta e o caminho de 3 dos arquivos criados. No memo3 tem que substituir alguns campos com os dados corretos: 1) Crie o aplicativo dentro do banco Inter a) Digite o seguinte comando no console (evite acentos): openssl req -new -newkey rsa:2048 -nodes -keyout nomearquivo.key -out nomearquivo.csr b) Nos campos solicitados, insira as informações: Country Name (código do país): as duas letras que representam o país internacionalmente. Ex: BR é Brasil State or Province Name (nome completo do estado): ex. Goias Locality Name (nome completo da cidade): ex. Goiania Organization Name (a razão social completa da sua empresa): ex. SuaEmpresa Organizational Unit Name (número de aplicação): copie a chave exclusiva gerada pelo Inter e cole-a no campo. Este é o "Número de aplicação" e é formado por letras, números e separado por hífens. Common Name (nome comum - campo opcional): o nome de domínio totalmente qualificado, ou URL que você deseja proteger. Exemplo: SEUDOMINIO.COM.BR E-mail Address (endereço de e-mail): insira seu e-mail A Challenge Password (uma senha forte): crie uma senha forte para este SSL c) Abra a CSR em um editor de texto e copie todo o texto gerado. d) Cole o texto gerado no campo "Assinatura do certificado (CSR)" e clique em "Confirmar". 2) Espere receber o e-mail do Inter avisando que sua aplicação foi Aprovada. Apos aprovação acesse suas aplicações no site do Inter e clique na seta que aparece do lado esquerdo no dome da aplicação. Clique no icone da nuvem para baixa o certificado (.crt). 3) Faça a seguinte conversão com o arquivo baixado: openssl x509 -inform PEM -in nomearquivo.crt > nomearquivo-publicchave.pem 4) Com o arquivo .KEY gerado anteriormente no passo 1 openssl rsa -in nomearquivo.key -text > nomearquivo-privatechave.pem BoletoInterAcbr.rar Desenvolvi tudo hoje... Ainda tem muito a fazer para uma implementação, mas como não conheço a fundo os moldes dos fontes do Acbr acho que alguém pode fazer bem melhor. ja tinha pensado o mesmo kkk
  11. Consegui fazer inclusão, consulta e download pdf com a api do Inter. Se aguem quiser me avisa que faço um passo a passo.
  12. Larry

    Consumo indevido

    Boa tarde, Desde ontem estou com vários cliente recebendo a mensagem de consumo indevido ao emitir a nf-e. Faço a consulta ao status de serviço apenas ao emitir a primeira nfe. E após a emissão não faço consulta do status da nfe. Alguém sabe o que poderia ser?
  13. É para gerar o xml em um computador e enviar para outro computador imprimir o sat.
  14. Bom dia, Segue os arquivos anexado. O arquivo "arqcfe.xml" contem um xml com a tag ICMS preenchida e após os comandos abaixo o arquivo "novocfe.xml" é criado com a tag ICMS vazia: ACBrSAT1.CFe.Clear; //ACBrSAT1.InicializaCFe; ACBrSAT1.CFe.LoadFromFile('c:\teste\arqcfe.xml'); ACBrSAT1.CFe.GerarXML(True); ACBrSAT1.CFe.SaveToFile('c:\teste\novocfe.xml'); Observação: se a linha do InicializaCFe for descomentada a tag do ICMS é gerada com os dados originais preenchidos. arqcfe.xml novocfe.xml
  15. Eu salvo o xml em disco ou no banco de dados antes de enviar e posteriormente carrego esse xml para enviar ao sat. Só que ao carregar o xml se eu não utilizar a função InicializaCFe, quando executo a função GerarXML a tag do ICMS fica vazia.
  16. Larry

    Problema ao carregar XML

    Bom dia, Percebi um problema na seguinte situação: - Se eu gerar o xml e em seguida rodar um ACBrSAT1.CFe.GerarXML(True) ocorre tudo bem - Porem se antes do "GerarXML" eu fizer um ACBrSAT1.CFe.SaveToFile, depois um ACBrSAT1.CFe.Clear e depois um ACBrSAT1.CFe.LoadFromFile a tag ICMS esta preenchida, mas ao rodar o GerarXML a tag ICMS fica vazia. A propriedade Config.Emit_cRegTrib foi preenchida corretamente. E se antes do LoadFromFile e rodar um ACBrSAT1.InicializaCFe funciona normalmente. Então é por causa do InicializaCFe mesmo?
  17. Boa dia, nada pelo jeito, segue informação da pagina deles: Importante: Para ter acesso a API Informações de Produtos a empresa precisa ser associada à GS1 Brasil ou ter sido indicada por alguma associação parceira. Caso tenha dúvidas, entre em contato com [email protected]
  18. Quero mudar sim, só preciso uma impressora empresta para testar. Obrigado.
  19. E antes de imprimir o cupom sat usando o ACBrSATExtratoFortes se eu ler printers.Printer.PageWidth recebo 2892 e após o cupom sat recebo 893. OBS: neste caso o teste foi em uma impressora jato de tinta configurada para papel A4.
  20. Tive o mesmo problema: Após imprimir o cupom sat usando o ACBrSATExtratoFortes, se eu imprimir um relatório logo em seguida usando o quickreport funciona normalmente. Mas se eu imprimir um cupom sat usando o ACBrSATExtratoFortes e logo em seguida imprimir um relatório direto na porta (writeln) fica tudo pequeno. Resolvi o problema fazendo um quickreport1.prepare num relatório em branco após a impressão do cupom sat.
  21. Neste caso o emitente vai receber um destes eventos: teManifDestConfirmacao, teManifDestCiencia, teManifDestDesconhecimento, teManifDestOperNaoRealizada?
  22. Larry

    Nota recebida pelo destinatario

    Bom dia, A efetuar o recebimento das DFE usando o método DistribuicaoDFePorUltNSU, recebo além das notas e resumos, os eventos e resumos de eventos. Gostaria de saber se o evento com "ManifDestCiencia" em docZip.Items.procEvento.tpEvento se refere as notas fiscais emitidas pela empresa que esta efetuando a consulta e que já foram manifestadas pelo destinatário (clientes que receberam a nota).
  23. Acabei de olhar o link e já mudaram para pFCPST.
×
×
  • 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.