@plasoft/boletos 1.0.63 → 1.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.d.mts CHANGED
@@ -480,6 +480,16 @@ interface IGerarRetornoSicredi {
480
480
  arquivo: string[];
481
481
  };
482
482
  }
483
+ interface IDocumentoRetornoSicredi {
484
+ id_documento: string;
485
+ especie: string;
486
+ valor: number;
487
+ valor_multa: number;
488
+ valor_juros: number;
489
+ valor_desconto: number;
490
+ valor_total: number;
491
+ data: Date | string;
492
+ }
483
493
 
484
494
  interface IGerarBoletoSicoob {
485
495
  banco: Banco.SICOOB;
@@ -617,6 +627,16 @@ interface IGerarRetornoSicoob {
617
627
  arquivo: string[];
618
628
  };
619
629
  }
630
+ interface IDocumentoRetornoSicoob {
631
+ id_documento: string;
632
+ especie: string;
633
+ valor: number;
634
+ valor_multa: number;
635
+ valor_juros: number;
636
+ valor_desconto: number;
637
+ valor_total: number;
638
+ data: Date | string;
639
+ }
620
640
 
621
641
  interface IGerarBoletoBancoBrasil {
622
642
  banco: Banco.BANCO_BRASIL;
@@ -780,6 +800,18 @@ interface IGerarRetornoBancoBrasil {
780
800
  arquivo: string[];
781
801
  };
782
802
  }
803
+ interface IDocumentoRetornoBancoBrasil {
804
+ id_documento: string;
805
+ especie: string;
806
+ valor: number;
807
+ valor_multa: number;
808
+ valor_juros: number;
809
+ valor_desconto: number;
810
+ valor_total: number;
811
+ data: Date | string;
812
+ rejeitado: boolean;
813
+ motivo: string;
814
+ }
783
815
 
784
816
  interface IGerarPDFItau {
785
817
  banco: Banco.ITAU;
@@ -894,4 +926,4 @@ declare const _default: {
894
926
  retorno: typeof retorno;
895
927
  };
896
928
 
897
- export { Banco, _default as default, defineConfig };
929
+ export { Banco, IDocumentoRetornoAilos, IDocumentoRetornoBancoBrasil, IDocumentoRetornoSicoob, IDocumentoRetornoSicredi, _default as default, defineConfig };
package/build/index.d.ts CHANGED
@@ -480,6 +480,16 @@ interface IGerarRetornoSicredi {
480
480
  arquivo: string[];
481
481
  };
482
482
  }
483
+ interface IDocumentoRetornoSicredi {
484
+ id_documento: string;
485
+ especie: string;
486
+ valor: number;
487
+ valor_multa: number;
488
+ valor_juros: number;
489
+ valor_desconto: number;
490
+ valor_total: number;
491
+ data: Date | string;
492
+ }
483
493
 
484
494
  interface IGerarBoletoSicoob {
485
495
  banco: Banco.SICOOB;
@@ -617,6 +627,16 @@ interface IGerarRetornoSicoob {
617
627
  arquivo: string[];
618
628
  };
619
629
  }
630
+ interface IDocumentoRetornoSicoob {
631
+ id_documento: string;
632
+ especie: string;
633
+ valor: number;
634
+ valor_multa: number;
635
+ valor_juros: number;
636
+ valor_desconto: number;
637
+ valor_total: number;
638
+ data: Date | string;
639
+ }
620
640
 
621
641
  interface IGerarBoletoBancoBrasil {
622
642
  banco: Banco.BANCO_BRASIL;
@@ -780,6 +800,18 @@ interface IGerarRetornoBancoBrasil {
780
800
  arquivo: string[];
781
801
  };
782
802
  }
803
+ interface IDocumentoRetornoBancoBrasil {
804
+ id_documento: string;
805
+ especie: string;
806
+ valor: number;
807
+ valor_multa: number;
808
+ valor_juros: number;
809
+ valor_desconto: number;
810
+ valor_total: number;
811
+ data: Date | string;
812
+ rejeitado: boolean;
813
+ motivo: string;
814
+ }
783
815
 
784
816
  interface IGerarPDFItau {
785
817
  banco: Banco.ITAU;
@@ -894,4 +926,4 @@ declare const _default: {
894
926
  retorno: typeof retorno;
895
927
  };
896
928
 
897
- export { Banco, _default as default, defineConfig };
929
+ export { Banco, IDocumentoRetornoAilos, IDocumentoRetornoBancoBrasil, IDocumentoRetornoSicoob, IDocumentoRetornoSicredi, _default as default, defineConfig };
package/build/index.js CHANGED
@@ -2593,7 +2593,7 @@ function gerarRemessa5({ dados }) {
2593
2593
  arquivo.add("00000000");
2594
2594
  arquivo.add(valorJurosDia.toFixed(2).replace(".", "").padStart(15, "0"));
2595
2595
  arquivo.add(codigoDesconto);
2596
- arquivo.add(codigoDesconto == "0" ? vencimento : "00000000");
2596
+ arquivo.add(codigoDesconto == "2" ? vencimento : "00000000");
2597
2597
  arquivo.add(desconto.replace(".", "").padStart(15, "0"));
2598
2598
  arquivo.add("000000000000000");
2599
2599
  arquivo.add("000000000000000");
@@ -2706,63 +2706,304 @@ function gerarRetorno5({ dados }) {
2706
2706
  continue;
2707
2707
  }
2708
2708
  const ocorrencia = linha.substring(15, 17);
2709
- if (ocorrencia !== "06" && ocorrencia !== "17") {
2710
- continue;
2711
- }
2712
- let segmento = linha.substring(13, 14);
2713
- if (segmento === "T") {
2714
- const meu_numero = linha.substring(105, 130).trimEnd();
2715
- let tipo_documento = "INDEFINIDO";
2716
- let id_documento = meu_numero;
2717
- if (meu_numero.includes("-")) {
2718
- const [tipo, id] = meu_numero.split("-");
2719
- tipo_documento = tipo;
2720
- id_documento = id;
2721
- }
2722
- const especie = tipo_documento.length ? tipo_documento : "INDEFINIDO";
2723
- linha = arquivo[++i];
2724
- segmento = linha.substring(13, 14);
2725
- if (segmento === "U") {
2726
- let dataCredito;
2727
- const dataCreditoString = linha.substring(145, 153);
2728
- if (dataCreditoString && dataCreditoString !== "00000000") {
2729
- dataCredito = (0, import_date_fns11.parse)(dataCreditoString, "ddMMyyyy", /* @__PURE__ */ new Date());
2730
- } else {
2731
- const dataOcorrenciaString = linha.substring(137, 145);
2732
- dataCredito = (0, import_date_fns11.parse)(dataOcorrenciaString, "ddMMyyyy", /* @__PURE__ */ new Date());
2709
+ if (ocorrencia === "06" || ocorrencia === "17" || ocorrencia === "03") {
2710
+ let segmento = linha.substring(13, 14);
2711
+ if (segmento === "T") {
2712
+ const motivo = linha.substring(213, 223).trim();
2713
+ const meu_numero = linha.substring(105, 130).trimEnd();
2714
+ let tipo_documento = "INDEFINIDO";
2715
+ let id_documento = meu_numero;
2716
+ if (meu_numero.includes("-")) {
2717
+ const [tipo, id] = meu_numero.split("-");
2718
+ tipo_documento = tipo;
2719
+ id_documento = id;
2720
+ }
2721
+ const especie = tipo_documento.length ? tipo_documento : "INDEFINIDO";
2722
+ linha = arquivo[++i];
2723
+ segmento = linha.substring(13, 14);
2724
+ if (segmento === "U") {
2725
+ let dataCredito;
2726
+ const dataCreditoString = linha.substring(145, 153);
2727
+ if (dataCreditoString && dataCreditoString !== "00000000") {
2728
+ dataCredito = (0, import_date_fns11.parse)(dataCreditoString, "ddMMyyyy", /* @__PURE__ */ new Date());
2729
+ } else {
2730
+ const dataOcorrenciaString = linha.substring(137, 145);
2731
+ dataCredito = (0, import_date_fns11.parse)(dataOcorrenciaString, "ddMMyyyy", /* @__PURE__ */ new Date());
2732
+ }
2733
+ const valorAbatimentoString = linha.substring(47, 62);
2734
+ const valorAbatimento = Number(valorAbatimentoString) / 100;
2735
+ const valorDescontoString = linha.substring(32, 47);
2736
+ const valorDesconto = Number(valorDescontoString) / 100;
2737
+ const valorPagoString = linha.substring(77, 92);
2738
+ const valorPago = Number(valorPagoString) / 100;
2739
+ const valorJurosString = linha.substring(17, 32);
2740
+ const valorJuros = Number(valorJurosString) / 100;
2741
+ const valorMulta = 0;
2742
+ const descontos = valorAbatimento + valorDesconto;
2743
+ const valorTotal = valorPago - valorJuros + descontos;
2744
+ let rejeitado = false;
2745
+ let motivoRejeicao = "";
2746
+ if (ocorrencia === "03") {
2747
+ rejeitado = true;
2748
+ motivoRejeicao = retornaMotivoRejeicao(motivo);
2749
+ }
2750
+ const documento = {
2751
+ id_documento,
2752
+ especie,
2753
+ valor: valorPago,
2754
+ valor_multa: valorMulta,
2755
+ valor_juros: valorJuros,
2756
+ valor_desconto: valorDesconto,
2757
+ valor_total: valorTotal,
2758
+ data: dataCredito,
2759
+ rejeitado,
2760
+ motivo: motivoRejeicao
2761
+ };
2762
+ documentos.push(documento);
2733
2763
  }
2734
- const valorAbatimentoString = linha.substring(47, 62);
2735
- const valorAbatimento = Number(valorAbatimentoString) / 100;
2736
- const valorDescontoString = linha.substring(32, 47);
2737
- const valorDesconto = Number(valorDescontoString) / 100;
2738
- const valorPagoString = linha.substring(77, 92);
2739
- const valorPago = Number(valorPagoString) / 100;
2740
- const valorJurosString = linha.substring(17, 32);
2741
- const valorJuros = Number(valorJurosString) / 100;
2742
- const valorMulta = 0;
2743
- const descontos = valorAbatimento + valorDesconto;
2744
- const valorTotal = valorPago - valorJuros + descontos;
2745
- const documento = {
2746
- id_documento,
2747
- especie,
2748
- valor: valorPago,
2749
- valor_multa: valorMulta,
2750
- valor_juros: valorJuros,
2751
- valor_desconto: valorDesconto,
2752
- valor_total: valorTotal,
2753
- data: dataCredito
2754
- };
2755
- documentos.push(documento);
2756
2764
  }
2757
2765
  }
2758
2766
  }
2759
2767
  const documentoAgrupado = agruparRetorno(documentos);
2768
+ console.log(documentoAgrupado);
2760
2769
  return documentoAgrupado;
2761
2770
  } catch (error) {
2762
2771
  console.log(error);
2763
2772
  return null;
2764
2773
  }
2765
2774
  }
2775
+ function retornaMotivoRejeicao(codigo) {
2776
+ switch (codigo) {
2777
+ case "01":
2778
+ return "C\xF3digo do Banco Inv\xE1lido";
2779
+ case "02":
2780
+ return "C\xF3digo do Registro Detalhe Inv\xE1lido";
2781
+ case "03":
2782
+ return "C\xF3digo do Segmento Inv\xE1lido";
2783
+ case "04":
2784
+ return "C\xF3digo de Movimento N\xE3o Permitido para Carteira";
2785
+ case "05":
2786
+ return "C\xF3digo de Movimento Inv\xE1lido";
2787
+ case "06":
2788
+ return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Benefici\xE1rio Inv\xE1lidos";
2789
+ case "07":
2790
+ return "Ag\xEAncia/Conta/DV Inv\xE1lido";
2791
+ case "08":
2792
+ return "Nosso N\xFAmero Inv\xE1lido";
2793
+ case "09":
2794
+ return "Nosso N\xFAmero Duplicado";
2795
+ case "10":
2796
+ return "Carteira Inv\xE1lida";
2797
+ case "11":
2798
+ return "Forma de Cadastramento do T\xEDtulo Inv\xE1lido";
2799
+ case "12":
2800
+ return "Tipo de Documento Inv\xE1lido";
2801
+ case "13":
2802
+ return "Identifica\xE7\xE3o da Emiss\xE3o do Boleto de Pagamento Inv\xE1lida";
2803
+ case "14":
2804
+ return "Identifica\xE7\xE3o da Distribui\xE7\xE3o do Boleto de Pagamento Inv\xE1lida";
2805
+ case "15":
2806
+ return "Caracter\xEDsticas da Cobran\xE7a Incompat\xEDveis";
2807
+ case "16":
2808
+ return "Data de Vencimento Inv\xE1lida";
2809
+ case "17":
2810
+ return "Data de Vencimento Anterior a Data de Emiss\xE3o";
2811
+ case "18":
2812
+ return "Vencimento Fora do Prazo de Opera\xE7\xE3o";
2813
+ case "19":
2814
+ return "T\xEDtulo a Cargo de Bancos Correspondentes com Vencimento Inferior a XX Dias";
2815
+ case "20":
2816
+ return "Valor do T\xEDtulo Inv\xE1lido";
2817
+ case "21":
2818
+ return "Esp\xE9cie do T\xEDtulo Inv\xE1lida";
2819
+ case "22":
2820
+ return "Esp\xE9cie do T\xEDtulo N\xE3o Permitida para a Carteira";
2821
+ case "23":
2822
+ return "Aceite Inv\xE1lido";
2823
+ case "24":
2824
+ return "Data da Emiss\xE3o Inv\xE1lida";
2825
+ case "25":
2826
+ return "Data da Emiss\xE3o Posterior a Data de Entrada";
2827
+ case "26":
2828
+ return "C\xF3digo de Juros de Mora Inv\xE1lido";
2829
+ case "27":
2830
+ return "Valor/Taxa de Juros de Mora Inv\xE1lido";
2831
+ case "28":
2832
+ return "C\xF3digo do Desconto Inv\xE1lido";
2833
+ case "29":
2834
+ return "Valor do Desconto Maior ou Igual ao Valor do T\xEDtulo";
2835
+ case "30":
2836
+ return "Desconto a Conceder N\xE3o Confere";
2837
+ case "31":
2838
+ return "Concess\xE3o de Desconto - J\xE1 Existe Desconto Anterior";
2839
+ case "32":
2840
+ return "Valor do IOF Inv\xE1lido";
2841
+ case "33":
2842
+ return "Valor do Abatimento Inv\xE1lido";
2843
+ case "34":
2844
+ return "Valor do Abatimento Maior ou Igual ao Valor do T\xEDtulo";
2845
+ case "35":
2846
+ return "Valor a Conceder N\xE3o Confere";
2847
+ case "36":
2848
+ return "Concess\xE3o de Abatimento - J\xE1 Existe Abatimento Anterior";
2849
+ case "37":
2850
+ return "C\xF3digo para Protesto Inv\xE1lido";
2851
+ case "38":
2852
+ return "Prazo para Protesto Inv\xE1lido";
2853
+ case "39":
2854
+ return "Pedido de Protesto N\xE3o Permitido para o T\xEDtulo";
2855
+ case "40":
2856
+ return "T\xEDtulo com Ordem de Protesto Emitida";
2857
+ case "41":
2858
+ return "Pedido de Cancelamento/Susta\xE7\xE3o para T\xEDtulos sem Instru\xE7\xE3o de Protesto";
2859
+ case "42":
2860
+ return "C\xF3digo para Baixa/Devolu\xE7\xE3o Inv\xE1lido";
2861
+ case "43":
2862
+ return "Prazo para Baixa/Devolu\xE7\xE3o Inv\xE1lido";
2863
+ case "44":
2864
+ return "C\xF3digo da Moeda Inv\xE1lido";
2865
+ case "45":
2866
+ return "Nome do Pagador N\xE3o Informado";
2867
+ case "46":
2868
+ return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Pagador Inv\xE1lidos";
2869
+ case "47":
2870
+ return "Endere\xE7o do Pagador N\xE3o Informado";
2871
+ case "48":
2872
+ return "CEP Inv\xE1lido";
2873
+ case "49":
2874
+ return "CEP Sem Pra\xE7a de Cobran\xE7a (N\xE3o Localizado)";
2875
+ case "50":
2876
+ return "CEP Referente a um Banco Correspondente";
2877
+ case "51":
2878
+ return "CEP incompat\xEDvel com a Unidade da Federa\xE7\xE3o";
2879
+ case "52":
2880
+ return "Unidade da Federa\xE7\xE3o Inv\xE1lida";
2881
+ case "53":
2882
+ return "Tipo/N\xFAmero de Inscri\xE7\xE3o do Sacador/Avalista Inv\xE1lidos";
2883
+ case "54":
2884
+ return "Sacador/Avalista N\xE3o Informado";
2885
+ case "55":
2886
+ return "Nosso n\xFAmero no Banco Correspondente N\xE3o Informado";
2887
+ case "56":
2888
+ return "C\xF3digo do Banco Correspondente N\xE3o Informado";
2889
+ case "57":
2890
+ return "C\xF3digo da Multa Inv\xE1lido";
2891
+ case "58":
2892
+ return "Data da Multa Inv\xE1lida";
2893
+ case "59":
2894
+ return "Valor/Percentual da Multa Inv\xE1lido";
2895
+ case "60":
2896
+ return "Movimento para T\xEDtulo N\xE3o Cadastrado";
2897
+ case "61":
2898
+ return "Altera\xE7\xE3o da Ag\xEAncia Cobradora/DV Inv\xE1lida";
2899
+ case "62":
2900
+ return "Tipo de Impress\xE3o Inv\xE1lido";
2901
+ case "63":
2902
+ return "Entrada para T\xEDtulo j\xE1 Cadastrado";
2903
+ case "64":
2904
+ return "N\xFAmero da Linha Inv\xE1lido";
2905
+ case "65":
2906
+ return "C\xF3digo do Banco para D\xE9bito Inv\xE1lido";
2907
+ case "66":
2908
+ return "Ag\xEAncia/Conta/DV para D\xE9bito Inv\xE1lido";
2909
+ case "67":
2910
+ return "Dados para D\xE9bito incompat\xEDvel com a Identifica\xE7\xE3o da Emiss\xE3o do Boleto de Pagamento";
2911
+ case "68":
2912
+ return "D\xE9bito Autom\xE1tico Agendado";
2913
+ case "69":
2914
+ return "D\xE9bito N\xE3o Agendado - Erro nos Dados da Remessa";
2915
+ case "70":
2916
+ return "D\xE9bito N\xE3o Agendado - Pagador N\xE3o Consta do Cadastro de Autorizante";
2917
+ case "71":
2918
+ return "D\xE9bito N\xE3o Agendado - Benefici\xE1rio N\xE3o Autorizado pelo Pagador";
2919
+ case "72":
2920
+ return "D\xE9bito N\xE3o Agendado - Benefici\xE1rio N\xE3o Participa da Modalidade D\xE9bito Autom\xE1tico";
2921
+ case "73":
2922
+ return "D\xE9bito N\xE3o Agendado - C\xF3digo de Moeda Diferente de Real (R$)";
2923
+ case "74":
2924
+ return "D\xE9bito N\xE3o Agendado - Data Vencimento Inv\xE1lida";
2925
+ case "75":
2926
+ return "D\xE9bito N\xE3o Agendado, Conforme seu Pedido, T\xEDtulo N\xE3o Registrado";
2927
+ case "76":
2928
+ return "D\xE9bito N\xE3o Agendado, Tipo/Num. Inscri\xE7\xE3o do Debitado, Inv\xE1lido";
2929
+ case "77":
2930
+ return "Transfer\xEAncia para Desconto N\xE3o Permitida para a Carteira do T\xEDtulo";
2931
+ case "78":
2932
+ return "Data Inferior ou Igual ao Vencimento para D\xE9bito Autom\xE1tico";
2933
+ case "79":
2934
+ return "Data Juros de Mora Inv\xE1lido";
2935
+ case "80":
2936
+ return "Data do Desconto Inv\xE1lida";
2937
+ case "81":
2938
+ return "Tentativas de D\xE9bito Esgotadas - Baixado";
2939
+ case "82":
2940
+ return "Tentativas de D\xE9bito Esgotadas - Pendente";
2941
+ case "83":
2942
+ return "Limite Excedido";
2943
+ case "84":
2944
+ return "N\xFAmero Autoriza\xE7\xE3o Inexistente";
2945
+ case "85":
2946
+ return "T\xEDtulo com Pagamento Vinculado";
2947
+ case "86":
2948
+ return "Seu N\xFAmero Inv\xE1lido";
2949
+ case "87":
2950
+ return "e-mail/SMS enviado";
2951
+ case "88":
2952
+ return "e-mail Lido";
2953
+ case "89":
2954
+ return "e-mail/SMS devolvido - endere\xE7o de e-mail ou n\xFAmero do celular incorreto";
2955
+ case "90":
2956
+ return "e-mail devolvido - caixa postal cheia";
2957
+ case "91":
2958
+ return "e-mail/n\xFAmero do celular do Pagador n\xE3o informado";
2959
+ case "92":
2960
+ return "Pagador optante por Boleto de Pagamento Eletr\xF4nico - e-mail n\xE3o enviado";
2961
+ case "93":
2962
+ return "C\xF3digo para emiss\xE3o de Boleto de Pagamento n\xE3o permite envio de e-mail";
2963
+ case "94":
2964
+ return "C\xF3digo da Carteira inv\xE1lido para envio e-mail.";
2965
+ case "95":
2966
+ return "Contrato n\xE3o permite o envio de e-mail";
2967
+ case "96":
2968
+ return "N\xFAmero de contrato inv\xE1lido";
2969
+ case "97":
2970
+ return "Rejei\xE7\xE3o da altera\xE7\xE3o do prazo limite de recebimento (a data deve ser informada no campo 28.3.p)";
2971
+ case "98":
2972
+ return "Rejei\xE7\xE3o de dispensa de prazo limite de recebimento";
2973
+ case "99":
2974
+ return "Rejei\xE7\xE3o da altera\xE7\xE3o do n\xFAmero do t\xEDtulo dado pelo Benefici\xE1rio";
2975
+ case "A1":
2976
+ return "Rejei\xE7\xE3o da altera\xE7\xE3o do n\xFAmero controle do participante";
2977
+ case "A2":
2978
+ return "Rejei\xE7\xE3o da altera\xE7\xE3o dos dados do Pagador";
2979
+ case "A3":
2980
+ return "Rejei\xE7\xE3o da altera\xE7\xE3o dos dados do Sacador/avalista";
2981
+ case "A4":
2982
+ return "Pagador DDA";
2983
+ case "A5":
2984
+ return "Registro Rejeitado \u2013 T\xEDtulo j\xE1 Liquidado";
2985
+ case "A6":
2986
+ return "C\xF3digo do Convenente Inv\xE1lido ou Encerrado";
2987
+ case "A7":
2988
+ return "T\xEDtulo j\xE1 se encontra na situa\xE7\xE3o Pretendida";
2989
+ case "A8":
2990
+ return "Valor do Abatimento inv\xE1lido para cancelamento";
2991
+ case "A9":
2992
+ return "N\xE3o autoriza pagamento parcial";
2993
+ case "B1":
2994
+ return "Autoriza recebimento parcial";
2995
+ case "B2":
2996
+ return "Valor Nominal do T\xEDtulo Conflitante";
2997
+ case "B3":
2998
+ return "Tipo de Pagamento Inv\xE1lido";
2999
+ case "B4":
3000
+ return "Valor M\xE1ximo/Percentual Inv\xE1lido";
3001
+ case "B5":
3002
+ return "Valor M\xEDnimo/Percentual Inv\xE1lido";
3003
+ default:
3004
+ return "C\xF3digo de rejei\xE7\xE3o desconhecido";
3005
+ }
3006
+ }
2766
3007
 
2767
3008
  // src/banks/banco-brasil/index.ts
2768
3009
  var bancoBrasil = {