Git Product home page Git Product logo

node-sicredi's Introduction

Node Sicredi

Build Status Coverage Status npm version JavaScript Style Guide

Uma biblioteca em Node.js para interagir com o WebService, EcommResource, do Banco Sicredi, para gerenciamento de boletos. Esta tem como objetivo facilitar a criação, consulta, impressão etc de boletos utilizando Promise.

Instalação

$ npm install node-sicredi --save

Como utilizar

ES6

import Sicredi from 'node-sicredi';

const sicredi = new Sicredi({
  token: 'SEU_TOKEN',
  agency: 'AGENCIA',
  assignor: 'CEDENTE',
  station: 'POSTO',
});

// Utilizando um método
sicredi
  .find({
    dataInicio: '10/10/2018',
    dataFim: '31/12/2018',
    tipoData: 'DATA_EMISSAO',
  })
  .then(data => {
    console.log(data);
  })
  .catch(err => console.log(err));

CommonJS

const Sicredi = require('node-sicredi').default;

const sicredi = new Sicredi({
  token: 'SEU_TOKEN',
  agency: 'AGENCIA',
  assignor: 'CEDENTE',
  station: 'POSTO',
});

sicredi
  .find({
    dataInicio: '10/10/2018',
    dataFim: '31/12/2018',
    tipoData: 'DATA_EMISSAO',
  })
  .then(data => {
    console.log(data);
  })
  .catch(err => console.log(err));

Métodos

sicredi.auth('keyMaster')

O método “auth” é responsável por criar uma chave criptografada, denominada chaveTransacao (chamamos de token), baseada na chave master.

Argumento

Argument Type
keyMaster string

Exemplo

import Sicredi from 'node-sicredi';

sicredi = new Sicredi({});
sicredi.auth('keyMaster').then(data => {
  //Chave de transação. Obs: Aqui chamamos de token
});

sicredi.create(body)

O método “create” é responsável pela geração do boleto de Cobrança.

Argumento

Argument Type
body objeto

Exemplo

import Sicredi from 'node-sicredi';

const sicredi = new Sicredi({
  token: 'SEU_TOKEN',
  agency: 'AGENCIA',
  assignor: 'CEDENTE',
  station: 'POSTO',
});

const body = {
  nossoNumero: '',
  codigoPagador: '',
  tipoPessoa: '1',
  nome: 'Cliente Teste',
  endereco: 'Rua 1',
  cidade: 'Rio de Janeiro',
  uf: 'RJ',
  cep: '99999999',
  telefone: '9999999999',
  email: '[email protected]',
  especieDocumento: 'B',
  codigoSacadorAvalista: '000',
  seuNumero: '0000000002',
  dataVencimento: '16/05/2019',
  valor: 6,
  tipoDesconto: 'A',
  valorDesconto1: null,
  dataDesconto1: null,
  valorDesconto2: null,
  dataDesconto2: null,
  valorDesconto3: null,
  dataDesconto3: null,
  tipoJuros: 'A',
  juros: null,
  multas: null,
  descontoAntecipado: null,
  informativo: 'teste1',
  mensagem: 'teste',
  codigoMensagem: '',
};

sicredi.create(body).then(data => {
  // Boleto
});

sicredi.find(query)

O método “find” é responsável pela consulta da situação de boletos.

Argumento

Argument Type
query objeto

Exemplo

import Sicredi from 'node-sicredi';

const sicredi = new Sicredi({
  token: 'SEU_TOKEN',
  agency: 'AGENCIA',
  assignor: 'CEDENTE',
  station: 'POSTO',
});

const query = {
  nossoNumero: 99999999,
};

sicredi.find(query).then(data => {
  // Array Boleto(s)
});

sicredi.print(query)

O método “print” é responsável pela impressão e reimpressão dos boletos de Cobrança.

Argumento

Argument Type
query objeto

Exemplo

import Sicredi from 'node-sicredi';

const sicredi = new Sicredi({
  token: 'SEU_TOKEN',
  agency: 'AGENCIA',
  assignor: 'CEDENTE',
  station: 'POSTO',
});

const query = {
  nossoNumero: 99999999,
};

sicredi.print(query).then(data => {
  // Boleto
});

sicredi.change(body)

O método “change” é responsável por alterar dados dos títulos via serviço.

Arguments

Argument Type
body objeto

Exemplo

import Sicredi from 'node-sicredi';

const sicredi = new Sicredi({
  token: 'SEU_TOKEN',
  agency: 'AGENCIA',
  assignor: 'CEDENTE',
  station: 'POSTO',
});

const body = {
  agencia: '1234',
  posto: '99',
  cedente: '12345',
  nossoNumero: '999999999',
  seuNumero: '9999999999',
  instrucaoComando: 'ALTERACAO_SEU_NUMERO',
  tipoVencimento: 'VISTA',
};

sicredi.change(body).then(data => {
  //Resposta
});

sicredi.health()

O método “health” é responsável pela verificação da disponibilidade do sistema de Cobrança.

Exemplo

import Sicredi from 'node-sicredi';

const sicredi = new Sicredi({});
sicredi.health().then(data => {
  //Resposta
});

Contribuíndo

Por favor, leia CONTRIBUTING.md para detalhes sobre o processo para enviar pull request.

Autor

Murilo Sandiego
Murilo Sandiego

Olhe também a lista de contribuidores.

License

Este projeto está licencidado sobre a licença MIT - consulte o arquivo LICENSE.md para mais detalhes

node-sicredi's People

Contributors

dependabot[bot] avatar murilosandiego avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

node-sicredi's Issues

Manual da api...

Ola Murilo tudo bem mano preciso fazer uma api em php para consumir esse ws, mais não encontro o manual dela em lugar nenhum, vc teria ainda ele?

Ajuda com o campo Posto

Estou tentando fazer a implementação desta API para um determinado cliente, já geramos a chave master a a chave auth que é valida por 24hrs. Porém sempre que tento utilizar o método find() tanto com intervalo de data ou algum 'nosso numero', sempre recebo o erro E0024. Gostaria de saber o porque desse erro e como corrigi-lo?

Duvida campo linha digitavel

Quando é feito uma emissão de boleto a resposta devolve um objeto que contem o valor da linha digitavel, mas quando realizamos um comando de instrução para atualizar a data de vencimento o retorno não devolve a linha digitavel atualizada, o que causa uma inconsistência com os dados que salvamos do boleto no sistema.
Como o boleto gerado depois do comando de instrução já vem atualizado não temos muitos problemas com os pagamentos, mas alguns clientes gostam de pagar copiando e colando a linha digitavel, ao invés de baixar o boleto.
Gostaria de saber se existe alguma forma de recuperar essas informações atualizadas do boleto depois que for realizado um comando de instrução, ou uma forma do sistema calcular a nova linha digitavel.

Campo valor

O campo valor é um bigdecimal segunda a documentação, como geramos um boleto com um valor quebrado como R$ 50,50?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.