-
Total de ítens
216 -
Registro em
-
Última visita
Community Answers
-
aocampioni's post in Listagem de eventos NFe com seus códigos was marked as the answer
Boa tarde estimado,
Neste link tem um apanhado geral/mapeado de códigos de erro e de não atendimento das solicitações da NFe/NFCe:
https://www.oobj.com.br/bc/article/erros-e-rejeições-na-emissão-de-nfe-e-nfce-mapeados-no-oobj-dfe-453.html
No mais, todo resto se encontra em:
http://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=tW+YMyk/50s=
Espero que ajude,
Até mais
-
aocampioni's post in Digito da Agencia Santander was marked as the answer
Pessoal,
Eu utilizo o Santander com boleto registrado, remessa e retorno e não estou tendo nenhum problema com as configurações atuais.
Minhas configurações vão o dígito da agência sim. Eu configurei desta maneira:
ACBrBoleto.ACBrBoletoFC.DirLogo := sPathImagemBol; ACBrBoleto.ACBrBoletoFC.Filtro := fiNenhum; ACBrBoleto.ACBrBoletoFC.LayOut := TACBrBolLayOut( cmbLayoutBoleto1.ItemIndex ); ACBrBoleto.ACBrBoletoFC.MostrarSetup := true; ACBrBoleto.ACBrBoletoFC.SoftwareHouse := variables._DESENVOLVEDOR; ACBrBoleto.Banco.TipoCobranca := cobSantander ; ACBrBoleto.Banco.Numero := 33; ACBrBoleto.Banco.Digito := 7; ACBrBoleto.Banco.Nome := 'Santander'; ACBrBoleto.Banco.TamanhoMaximoNossoNum := 12; if(length(Trim(sOrientacoesBanco)) > 0) then ACBrBoleto.Banco.OrientacoesBanco.Add(sOrientacoesBanco); // minha agencia 06980 ACBrBoleto.Cedente.Agencia := sAgencia ; // 0698 ACBrBoleto.Cedente.AgenciaDigito := sAgenciaDig ; // 0 ACBrBoleto.Cedente.Bairro := sBairroCedente; case cmbCaractCob.ItemIndex of 00 : ACBrBoleto.Cedente.CaracTitulo := tcSimples; 01 : ACBrBoleto.Cedente.CaracTitulo := tcVinculada; 02 : ACBrBoleto.Cedente.CaracTitulo := tcCaucionada; 03 : ACBrBoleto.Cedente.CaracTitulo := tcDescontada; 04 : ACBrBoleto.Cedente.CaracTitulo := tcVendor; else ACBrBoleto.Cedente.CaracTitulo := tcSimples; end; ACBrBoleto.Cedente.CEP := sCepCedente; ACBrBoleto.Cedente.Cidade := sCidadeCedente; ACBrBoleto.Cedente.CNPJCPF := sCnpjCedente; ACBrBoleto.Cedente.CodigoCedente := sCodCedente; ACBrBoleto.Cedente.CodigoTransmissao:= sCodigoTransmite; ACBrBoleto.Cedente.Complemento := ''; ACBrBoleto.Cedente.Conta := sContaCorrente; ACBrBoleto.Cedente.ContaDigito := sContaCorrenteDig; ACBrBoleto.Cedente.Logradouro := sLogradouroCedente; ACBrBoleto.Cedente.Convenio := sConvenio; ACBrBoleto.Cedente.Modalidade := sModalidade; ACBrBoleto.Cedente.NumeroRes := ''; ACBrBoleto.Cedente.ResponEmissao := Iif(sBancoEmite='S', tbBancoEmite, tbCliEmite); ACBrBoleto.Cedente.Nome := sNomCedente; ACBrBoleto.Cedente.Telefone := sTelefoneCedente; ACBrBoleto.Cedente.UF := sUFCedente; if(length(trim(removecaracteresesp(ACBrBoleto.Cedente.CNPJCPF))) > 11) then ACBrBoleto.Cedente.TipoInscricao := pJuridica else ACBrBoleto.Cedente.TipoInscricao := pFisica; ACBrBoleto.Cedente.TipoCarteira := Iif(Trim(sRegistrar)='SIM', tctRegistrada, tctSimples); ACBrBoleto.DataArquivo := Date; ACBrBoleto.NomeArqRemessa := FormatDateTime('DDMMYYYYHHMMSS',Now)+'.TXT'; ACBrBoleto.DirArqRemessa := sPathRemessa; ACBrBoleto.DirArqRetorno := sPathRetorno; ACBrBoleto.ImprimirMensagemPadrao := False; ACBrBoleto.LayoutRemessa := Iif(Pos(sLayoutArqRem,'400')>0,c400,c240); ACBrBoleto.LeCedenteRetorno := false; end; E está tudo funcionando ok.
Até mais,
-
aocampioni's post in Caixa - Tipo De Carteira was marked as the answer
Estimado,
Boa noite, donde você faz menção à:
Titulo := ACBrBoleto.CriarTituloNaLista; with Titulo do ................. O seu banco de dados deve tá com o conteúdo inválido para a linha: Carteira := CDSContasBCARTEIRA.AsString; // Aqui é que vai a informação 'RG' ou 'SR'. Dá uma verificada aí no que tá indo nesse campo CDSContasBCARTEIRA.AsString. E veja também a linha: OcorrenciaOriginal.Tipo := toRemessaBaixar; Se você está enviando uma remessa pela primeira vez tem que ser: OcorrenciaOriginal.Tipo := toRemessaRegistrar; .. também estaria faltando as tags CodigoMora := '1' e TipoDiasProtesto := diCorridos Até mais, -
aocampioni's post in Ler Arquivo De Retorno was marked as the answer
Boa noite,
Segue:
// remessa procedure TForm1.Remessa; var nValorMora : Currency; //.. outros begin ACBrBoleto.ListadeBoletos.Clear; TituloACBr := ACBrBoleto.CriarTituloNaLista; TituloACBr.TipoDiasProtesto := diCorridos; TituloACBr.CarteiraEnvio := Iif(Trim(sBancoEmite)='SIM', tceBanco, tceCedente); TituloACBr.SeuNumero := sConrecSeq; TituloACBr.Aceite := atNao; TituloACBr.NumeroDocumento := sNumNotaFiscal; TituloACBr.Sacado.CNPJCPF := sCpfCnpj; if(length(trim(TituloACBr.Sacado.CNPJCPF)) > 11) then TituloACBr.Sacado.Pessoa := pJuridica else TituloACBr.Sacado.Pessoa := pFisica; TituloACBr.Sacado.Logradouro := sEndereco; TituloACBr.Sacado.Numero := ''; TituloACBr.Sacado.Complemento := ''; TituloACBr.Sacado.Bairro := sBairro; TituloACBr.Sacado.Cidade := sCidade; TituloACBr.Sacado.UF := sEstado; TituloACBr.Sacado.CEP := sCep; TituloACBr.Sacado.Email := sEmail; TituloACBr.Sacado.Fone := sTelefone; TituloACBr.Vencimento := StrToDate(FormatDateTime('dd/mm/yyyy', dDataVencto)); TituloACBr.DataDocumento := StrToDate(FormatDateTime('dd/mm/yyyy', dDataDocto)); TituloACBr.DataProcessamento := StrToDate(FormatDateTime('dd/mm/yyyy', Date)); TituloACBr.ValorDocumento := rValorDocto; TituloACBr.CodigoMora := '1'; TituloACBr.ValorMoraJuros := 0; TituloACBr.DataMoraJuros := 0; if njuromensal>0 then TituloACBr.PercentualMulta := njuromensal; if nMoraDiaria>0 then begin nValorMora:=(TituloACBr.ValorDocumento*(nMoraDiaria/30))/100; if(nValorMora >= 0.01) then begin TituloACBr.ValorMoraJuros := nValorMora; TituloACBr.DataMoraJuros := TituloACBr.Vencimento+1; end; end; if(iDiasProtesto = 0) then TituloACBr.DataProtesto := 0 else TituloACBr.DataProtesto := StrToDate(FormatDateTime('dd/mm/yyyy', TituloACBr.Vencimento+iDiasProtesto) ); TituloACBr.EspecieDoc := 'DM'; TituloACBr.OcorrenciaOriginal.Tipo := toRemessaRegistrar; TituloACBr.Carteira := sCarteira; TituloACBr.LocalPagamento := sLocalPagto; // nosso numero TituloACBr.NossoNumero := sNossoNum; TituloACBr.Instrucao1 := ''; TituloACBr.Instrucao2 := ''; TituloACBr.Parcela := iParc; end; // ler retorno procedure TForm1.Retorno; var i : Integer; begin if OpenDialog1.Execute then begin //Configurar ConfiguracoesACBr; // ACBrBoleto.NomeArqRetorno := OpenDialog1.FileName; ACBrBoleto.LerRetorno; for i := 0 to ACBrBoleto.ListadeBoletos.Count-1 do begin if ACBrBoleto.ListadeBoletos.Objects[i].ValorRecebido > 0 then begin SQLAux.Close; SQLAux.SQL.Clear; SQLAux.SQL.Add('update conrec set'); SQLAux.SQL.Add('data_baixa = :pData,'); SQLAux.SQL.Add('valor_pago = :pValor,'); SQLAux.SQL.Add('taxa_cobranca = :pTaxa'); SQLAux.SQL.Add('where nosso_numero = :pNossoNum'); SQLAux.Params.ParamByName('pData').AsDate := ACBrBoleto.ListadeBoletos.Objects[i].DataCredito; SQLAux.Params.ParamByName('pValor').AsFloat := ACBrBoleto.ListadeBoletos.Objects[i].ValorRecebido; SQLAux.Params.ParamByName('pNossoNum').AsString:= Copy(ACBrBoleto.ListadeBoletos.Objects[i].NossoNumero,1,ACBrBoleto.Banco.TamanhoMaximoNossoNum); // vir sem o dígito, se quiser SQLAux.Params.ParamByName('pTaxa').AsFloat := ACBrBoleto.ListadeBoletos.Objects[i].ValorDespesaCobranca; SQLAux.ExecSQL(False); end; end; SQLAux.Close; end; end; procedure TForm1.ConfiguracoesACBr; begin ACBrBoleto.ACBrBoletoFC.DirLogo := sPathLogo; ACBrBoleto.ACBrBoletoFC.Filtro := fiNenhum; ACBrBoleto.ACBrBoletoFC.LayOut := lPadrao; ACBrBoleto.ACBrBoletoFC.MostrarSetup:= true; ACBrBoleto.ACBrBoletoFC.SoftwareHouse:= 'SUA EMPRESA'; ACBrBoleto.Banco.TipoCobranca := cobSantander; // escolha o seu tipo de cobrança ACBrBoleto.Banco.Digito := iDigBanco; // 33 ACBrBoleto.Banco.Numero := iBanco; // 7 ACBrBoleto.Banco.Nome := sBanco; // 'Santander'; ACBrBoleto.Banco.TamanhoMaximoNossoNum := iTamNossoNum; // 12 ACBrBoleto.Cedente.CaracTitulo := tcSimples; // simples com registro ACBrBoleto.Cedente.Nome := sNomCedente; ACBrBoleto.Cedente.Telefone := sTelefoneCedente; ACBrBoleto.Cedente.UF := sUFCedente; ACBrBoleto.Cedente.Bairro := sBairroCedente; ACBrBoleto.Cedente.CEP := sCepCedente; ACBrBoleto.Cedente.Cidade := sCidadeCedente; ACBrBoleto.Cedente.CNPJCPF := sCnpjCedente; ACBrBoleto.Cedente.Complemento := ''; ACBrBoleto.Cedente.Conta := sContaCorrente; ACBrBoleto.Cedente.ContaDigito := sContaCorrenteDig; ACBrBoleto.Cedente.Logradouro := sLogradouroCedente; ACBrBoleto.Cedente.NumeroRes := ''; ACBrBoleto.Cedente.Convenio := sConvenio; // ACBrBoleto.Cedente.Modalidade := sModalidade; // ACBrBoleto.Cedente.CodigoCedente := sCodCedente; ACBrBoleto.Cedente.CodigoTransmissao:= sCodigoTransmissao; // no santander tem ACBrBoleto.Cedente.ResponEmissao := Iif(Trim(sBancoEmite)='SIM', tbBancoEmite, tbCliEmite); ACBrBoleto.Cedente.TipoInscricao := pJuridica; ACBrBoleto.Cedente.TipoCarteira := Iif(Trim(sRegistrar)='SIM', tctRegistrada, tctSimples); ACBrBoleto.DataArquivo := Date; ACBrBoleto.NomeArqRemessa := FormatDateTime('DDMMYYYYHHMMSS',Now)+'.TXT'; ACBrBoleto.DirArqRemessa := sPathRemessa; ACBrBoleto.DirArqRetorno := sPathRetorno; ACBrBoleto.ImprimirMensagemPadrao := False; ACBrBoleto.LayoutRemessa := Iif(Pos(sLayoutArqRet,'400')>0,c400,c240); ACBrBoleto.LeCedenteRetorno := true; end; Veja se te ajuda.
Até mais,
-
aocampioni's post in Ajuda Com Santander was marked as the answer
Estimado,
Boa tarde. Minhas propriedades estão assim:
TituloACBr.CodigoMora := '1'; TituloACBr.ValorMoraJuros := 0; TituloACBr.DataMoraJuros := 0; if njuromensal>0 then // multa por atraso TituloACBr.PercentualMulta := njuromensal; (ex:2%) if nMoraDiaria>0 then //(ex:5%) begin nValorMora:=(TituloACBr.ValorDocumento*(nMoraDiaria/30))/100; if(nValorMora >= 0.01) then begin TituloACBr.ValorMoraJuros := nValorMora; TituloACBr.DataMoraJuros := TituloACBr.Vencimento+1; end; end; E é isso. Verifique aí as informações pois aqui está tudo normal. Não visualizei DATAMORAJUROS no seu exemplo e nem o código da mora. Até mais, -
aocampioni's post in Remessa Santander - Complemento Transmissão was marked as the answer
Olá,
Boa noite. Não há informação/propriedade para este complemento. Nos meus fontes eu implementei (nota 2 do manual cobrança santander) pois tem clientes muito antigos do Santander/Banespa que já enviavam cobrança via outro sistema e ao começar a enviar pelo nosso começo a gerar rejeição, pois a informação era fixa.
Mas não se preocupe, o seu cliente já deve estar com conta de cobrança nova (com 10 posições), portanto essa informação, que é o último dígito da conta mais o DV o ACBr gera automático pra você dentro do arquivo.
Até mais,
-
aocampioni's post in Retorno Caixa Econômica Federal, Campo Nosso Número was marked as the answer
Pessoal,
Bom dia! Resolvido aqui tá ok, quando a cobrança for cobCaixaSicob e a carteira for simples ou rápida e cadastrado sem registro eu pego o campo NUMERODOCUMENTO senão pego o NOSSONUMERO.
Valeu e até mais,
-
aocampioni's post in Despesa Com Boleto was marked as the answer
Leotelles,
Bom dia! Essa prática já foi proibida pelo Banco Central, segundo a Carta Circular 3.349, que proíbe o repasse da cobrança da tarifa bancária ao pagador (sacado). No arquivo de retorno existe a propriedade ValorDespesaCobranca que revela a você o valor cobrado pela compensação daquele título.
Até mais,
-
aocampioni's post in Dúvida Cobrança 101 Santander Cnab 240 was marked as the answer
Boa noite GAC,
Eu faço dessa maneira:
// na hora de configurar ACBrBoleto.Banco.TipoCobranca := cobSantander ; ACBrBoleto.Banco.Numero := 33; ACBrBoleto.Banco.Digito := 7; ACBrBoleto.Banco.Nome := 'Santander'; ACBrBoleto.Banco.TamanhoMaximoNossoNum := 12; ACBrBoleto.Cedente.Agencia := '0000'; ACBrBoleto.Cedente.AgenciaDigito := '0'; ACBrBoleto.Cedente.CaracTitulo := tcSimples; ACBrBoleto.Cedente.CNPJCPF := '00000000000000'; ACBrBoleto.Cedente.CodigoCedente := '0000000'; ACBrBoleto.Cedente.CodigoTransmissao:= agencia+digito+000+codcedente; ACBrBoleto.Cedente.Conta := '000000000'; ACBrBoleto.Cedente.ContaDigito := '0'; ACBrBoleto.Cedente.Convenio := ''; ACBrBoleto.Cedente.Modalidade := '101'; ACBrBoleto.Cedente.Nome := 'NOME'; ACBrBoleto.Cedente.Logradouro := 'ENDERECO'; ACBrBoleto.Cedente.Complemento := ''; ACBrBoleto.Cedente.Bairro := 'BAIRRO'; ACBrBoleto.Cedente.CEP := 'CEP'; ACBrBoleto.Cedente.Cidade := 'CIDADE'; ACBrBoleto.Cedente.NumeroRes := ''; ACBrBoleto.Cedente.Telefone := 'FONE'; ACBrBoleto.Cedente.UF := 'UF'; ACBrBoleto.Cedente.ResponEmissao := tbBancoEmite; ACBrBoleto.Cedente.TipoInscricao := pJuridica; ACBrBoleto.Cedente.TipoCarteira := tctRegistrada; ACBrBoleto.DataArquivo := Date; ACBrBoleto.NomeArqRemessa := FormatDateTime('DDMMYYYYHHMMSS',Now)+'.TXT'; ACBrBoleto.DirArqRemessa := 'x:\'; ACBrBoleto.DirArqRetorno := 'x:\'; ACBrBoleto.ImprimirMensagemPadrao := False; ACBrBoleto.LayoutRemessa := c240; ACBrBoleto.LeCedenteRetorno := false; // na hora de gerar var TituloACBr : TACBrTitulo; AStringList: TStrings; ContadorRemessa : Integer; ..... ACBrBoleto.ListadeBoletos.Clear; AStringList := TStringList.Create; TituloACBr := ACBrBoleto.CriarTituloNaLista; AStringList.Clear; // dias de protestos e carteira de envio TituloACBr.TipoDiasProtesto := diCorridos; TituloACBr.CarteiraEnvio := tceBanco; with TituloACBr do begin Sacado.Avalista := ''; Sacado.NomeSacado := 'Fulano de Tal '; Sacado.CNPJCPF := '111.111.111-1'; Sacado.Pessoa := pJuridica; Sacado.Logradouro := 'Rua do Sacado '; Sacado.Numero := ' 123'; Sacado.Complemento := ''; Sacado.Bairro := 'Bairro do Sacado '; Sacado.Cidade := 'Cidade do Sacado'; Sacado.UF := 'SP'; Sacado.CEP := '01001-001'; Sacado.Email := '[email protected]'; Sacado.Fone := '11 1111 1111'; Vencimento := StrToDate('13/04/2015'); DataDocumento := StrToDate('13/04/2015'); DataProcessamento := StrToDate('13/04/2015'); NumeroDocumento := 1; SeuNumero := 1; EspecieDoc := 'DM'; NossoNumero := FormatFloat('000000000000',1); Carteira := '101'; LocalPagamento := 'NA REDE BANCARIA'; Aceite := atNao; ValorDocumento := 1.90; ValorDesconto := 0; DataDesconto := 0; ValorAbatimento := 0; DataAbatimento := 0; ValorDescontoAntDia := 0; if txtJuroMensal.Value>0 then PercentualMulta := txtJuroMensal.Value; CodigoMora := '1'; ValorMoraJuros := 0; DataMoraJuros := 0; if txtMoraDiaria.Value>0 then begin nValorMora:=(ValorDocumento*(txtMoraDiaria.Value/30))/100; if(nValorMora >= 0.01) then begin ValorMoraJuros := nValorMora; DataMoraJuros := Vencimento+1; end; end; if(txtDiasProtesto.AsInteger = 0) then DataProtesto := 0 else DataProtesto := StrToDate(FormatDateTime('dd/mm/yyyy', Vencimento+txtDiasProtesto.AsInteger) ); // mensagens padrão, se for o banco a emitir if(TituloACBr.CarteiraEnvio = tceBanco) then begin if DataProtesto <> 0 then begin if TipoDiasProtesto = diCorridos then AStringList.Add(ACBrStr('Protestar em ' + IntToStr(DaysBetween(Vencimento, DataProtesto))+ ' dias corridos após o vencimento')) else AStringList.Add(ACBrStr('Protestar no ' + IntToStr(DaysBetween(Vencimento, DataProtesto))+ ' dia útil após o vencimento')); end; if ValorMoraJuros <> 0 then begin if DataMoraJuros <> 0 then AStringList.Add(ACBrStr('Cobrar Juros de ' + ifthen(CodigoMora = '2', FloatToStr(ValorMoraJuros) + '%', FormatCurr('R$ #,##0.00',ValorMoraJuros)) + ' por dia de atraso para pagamento a partir de ' + FormatDateTime('dd/mm/yyyy',ifthen(Vencimento = DataMoraJuros, IncDay(DataMoraJuros,1),DataMoraJuros)))) else AStringList.Add(ACBrStr('Cobrar Juros de ' + ifthen(CodigoMora = '2', FloatToStr(ValorMoraJuros) + '%', FormatCurr('R$ #,##0.00',ValorMoraJuros)) + ' por dia de atraso')); end; if PercentualMulta <> 0 then AStringList.Add(ACBrStr('Cobrar Multa de ' + FormatCurr('R$ #,##0.00',ValorDocumento*( 1+ PercentualMulta/100)-ValorDocumento) + ' após o vencimento.')); Mensagem.Text := AStringList.Text + txtInstrucaoCob1.Text + #13+#10 + txtInstrucaoCob2.Text; end else Mensagem.Text := ''; OcorrenciaOriginal.Tipo:= toRemessaRegistrar; Instrucao1 := '00'; Instrucao2 := '00'; Parcela := 1; end; ContadorRemessa := 1; ACBrBoleto.GerarRemessa(ContadorRemessa); Tem alguns edit's no meio mas deve servir pra você adaptar aí.
Até mais,
-
aocampioni's post in Como Alimentar Essas Posições Do Arquivo De Remessa Bradesco was marked as the answer
Olá,
Não trabalho com Bradesco, mas analisando o fonte aqui é assim:
1) Controle do Participante: campo SEUNUMERO do título
2) Condição para emissão : campo ResponEmissao da coleção CEDENTE, se é o cliente emite a propriedade será tbCliEmite, caso seja o banco que emita e processe o registro é tbBancoEmite. Lembrando que se precisar reenviar alguma remessa com este título de novo você deve informar se o banco reemite ou não reemite.
3) Identificação do tipo de inscrição do pagador: campo Pessoa (pFisica, pJuridica) da coleção SACADO (lembrando que só há 01-CPF, 02-CNPJ e 99-OUTROS, não tem 03 e nem 98.)
Até mais,