npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-asaas-api

v1.0.17

Published

Módulo para integração com a API do asaas.com.

Downloads

32

Readme

node-asaas-api

| Statements | Branches | Functions | Lines | | ------------------------- | ----------------------- | ------------------------ | -------------------- | | Statements | Branches | Functions | Lines |

Módulo para integração com o serviço de cobrança Asaas.com.

Índice

Versões Asaas API

V2 | V3 | --- | --- | ✗ | ✔ |

Endpoints

| Endpoint | Estado | | --- | --- | | customers | ✔ | | subscriptions | ✔ Criar✔ Obter✔ Listar✔ Alterar✔ Remover✗ Listar Notas Fiscais✗ Configurar Emissão de Nota Fiscal✗ Atualizar Configuração Emissão de Nota Fiscal✗ Obter Configuração Emissão de Nota Fiscal✗ Remover Configuração Emissão de Nota Fiscal | | payments | ✗ | | installments | ✗ | | notifications | ✗ | | finance | ✗ | | transfers | ✗ | | anticipations | ✗ | | paymentDunnings | ✗ | | bill | ✗ | | financialTransactions | ✗ | | myAccount | ✗ | | invoices | ✗ | | customerFiscalInfo | ✗ | | webhook | ✗ | | accounts | ✗ |

Instalação

$ npm install node-asaas-api --save

Utilização

Importação

Inicialmente deve ser feito a importação do pacote dentro do arquivo fonte onde será utilizado, conforme código abaixo. O retorno é uma instância de asaasAPI.

const asaasAPI = require('node-asaas-api');

Configuração

A configuração é realizada por meio do método .config(), que recebe como parâmtro um objeto com os seguintes atributos:

let params = {
    environment: asaasAPI.SANDBOX,
    apiKey: '<Chave-da-API-Gerada-para-o-Ambiente>',
    version: 'v3',
    debug: false
};

asaasAPI.config(params);

Caso não seja passado um objeto para o método .config() os valores padrão de configuração são:

{
  environment: asaasAPI.SANDBOX,
  apiKey: '',
  version: 'v3',
  debug: false
}

O objeto asaasAPI fornece duas constantes para indicar o ambiente que o componente acessará, que são: asaasAPI.SANDBOX e asaasAPI.PRODUCTION. Assim, pode-se configurar o componente da seguinte forma:

let params = {
    environment: asaasAPI.SANDBOX,
    apiKey: '<Chave-da-API-SANDBOX>'
};

asaasAPI.config(params);

OU

let params = {
    environment: asaasAPI.PRODUCTION,
    apiKey: '<Chave-da-API-PRODUCTION>'
};

asaasAPI.config(params);

Para obter a configuração atual do componente pode-se invocar o método .config() sem a passagem de parâmetro.

let conf = asaasAPI.config();

Observação: Quando o parâmetro debug = true o componente imprime no console o método executado, o recurso do Asaas invocado e os parâmetros fornecidos.

Integração de Cliente (customers)

A integração de clientes é realizada por meio do atributo asaasAPI.customers, utilizando os respectivos métodos para cada operação desejada.

Adicionar um novo cliente

Para adicionar um novo cliente utiliza-se o método asaasAPI.customers.post(), ele recebe um objeto com os dados do cliente e retorna uma Promise com a chamada da API.

const asaasAPI = require('node-asaas-api');

asaasAPI.config({environment: asaasAPI.SANDBOX, apiKey: 'CHAVE-SANDBOX'});

let cliente = {
    externalReference: 1234, 
    name: 'Nome do cliente', 
    cpfCnpj: '12345678901',
    email: '[email protected]',
    mobilePhone: '11988776655',
    ..., /* demais atributos do cliente */
    ...
};

asaasAPI.customers.post(cliente).then((res)=>{
    console.log('Cliente Cadastrado');
    /* O retorno é todos os dados do cliente cadastrado */
    console.log(res.data);
})
.catch((error)=>{
    console.log('Erro no cadastro do cliente');
    console.log('Status: ', error.response.status);
    console.log('StatusText: ', error.response.statusText);
    console.log('Data: ', error.response.data);
});

Os atributos disponíveis para o cliente são:

{
  name: String, // Obrigatório
  cpfCnpj: String, // Obrigatório
  email: String,
  phone: String,
  mobilePhone: String,
  postalCode: String,
  address: String,
  addressNumber: String,
  complement: String,
  province: String,
  externalReference: String,
  notificationDisabled: Boolean,
  additionalEmails: String,
  municipalInscription: String,
  stateInscription: String,
  observations: String,
  groupName: String,
  company: String
}

Nota:

Para obter a lista completa de campos disponíveis para o cliente acesse a documentação do Asaas clicando aqui.

Editar um cliente

Para editar um cliente cadastrado utiliza-se o método asaasAPI.customers.put(), este método recebe o ID do registro a ser editado e um objeto com os dados atualizados do cliente, o retorno é uma Promise.

// *** Importação e Configuração do componente ***

let cliente = {
    name: 'Nome do cliente alterado',
    company: 'Empresa S/A',
    ..., /* demais atributos alterados */ 
    ...
};

// O ID 'cus_000002875000' foi retornado quando o cliente foi criado com o .post()
asaasAPI.customers.put('cus_000002875000', cliente).then((res)=>{
    console.log('Cliente Atualizado');
    console.log(res.data);
})
.catch((error)=>{
    console.log('Erro no cadastro do cliente');
    console.log('Status: ', error.response.status);
    console.log('StatusText: ', error.response.statusText);
    console.log('Data: ', error.response.data);
});

Excluir um cliente

A exclusão de um cliente é realizada por meio do método asaasAPI.customers.delete(), este método recebe o ID do cliente a ser excluído e retorna uma Promise.

// O ID 'cus_000002875000' foi retornado quando o cliente foi criado com o .post()
asaasAPI.customers.delete('cus_000002875000').then((res)=>{
    console.log('Cliente removido');
    console.log(res.data);
})
.catch((error)=>{
    console.log('Erro ao remover o cliente');
    console.log('Status: ', error.response.status);
    console.log('StatusText: ', error.response.statusText);
    console.log('Data: ', error.response.data);
});

Restaurar um cliente excluído

Para restaurar o registro de um cliente excluído utiliza-se o método asaasAPI.customers.restore(), este método recebe o ID do cliente a ser restaurado e retorna uma Promise.

// O ID 'cus_000002875000' foi retornado quando o cliente foi criado com o .post()
asaasAPI.customers.restore('cus_000002875000').then((res)=>{
    console.log('Cliente restaurado');
    console.log(res.data);
})
.catch((error)=>{
    console.log('Erro ao restaurar o cliente');
    console.log('Status: ', error.response.status);
    console.log('StatusText: ', error.response.statusText);
    console.log('Data: ', error.response.data);
});

Obter um cliente

Para obter o registro de um cliente utiliza-se o método asaasAPI.customers.get(), este método recebe o ID do cliente e retorna uma Promise.

let id = 'cus_000002872237';

asaasAPI.customers.get(id).then((res)=>{
    console.log('Obtem um Cliente');
    console.log(res.data);
})
.catch((error)=>{
    console.log('Erro ao obter cliente');
    console.log('Status: ', error.response.status);
    console.log('StatusText: ', error.response.statusText);
    console.log('Data: ', error.response.data);
});

Listar os clientes

Para listar os registros de clientes utiliza-se o método asaasAPI.customers.list(), este método recebe um objeto com os filtros da pesquisa e retorna uma Promise.

let filtro = {
    cpfCnpj: '12345678901',
    offset: 0,
    limit: 10
};

asaasAPI.customers.list(filtro).then((res)=>{
    console.log('Lista de Clientes');
    console.log(res.data);
})
.catch((error)=>{
    console.log('Erro ao obter clientes');
    console.log('Status: ', error.response.status);
    console.log('StatusText: ', error.response.statusText);
    console.log('Data: ', error.response.data);
});

Os atributos possíveis para o filtro de clientes são:

{
   name: String,
   email: String,
   cpfCnpj: String,
   groupName: String,
   externalReference: String,
   offset: Number, // Opcional: Elemento inicial da lista (default: 0)
   limit: Number   // Opcional: Quantidade de elementos da lista (default: 10, máx: 100)
}

Nota:

Para obter a lista completa de filtros disponíveis para o cliente acesse a documentação do Asaas clicando aqui.

Integração de Assinaturas (subscriptions)

A integração de assinaturas é realizada por meio do atributo asaasAPI.subscriptions, utilizando os respectivos métodos para cada operação desejada.

Adicionar uma assinatura

Para adicionar uma nova assinatura para um cliente utiliza-se o método asaasAPI.subscriptions.post(), ele recebe um objeto com os dados da assinatura e retorna uma Promise com a chamada da API.

let assinatura = {
    customer: 'cus_000002872237', // ID retornado pela integração de cliente
    billingType: 'BOLETO', 
    value: 15,
    nextDueDate: '2020-09-15',
    cycle: 'MONTHLY',
    description: 'Descrição da assinatura'
};

asaasAPI.subscriptions.post(assinatura).then((res)=>{
    console.log('Assinatura adicionada para o Cliente');
    console.log(res.data);
})
.catch((error)=>{
    console.log('Erro no cadastro da assinatura');
    console.log('Status: ', error.response.status);
    console.log('StatusText: ', error.response.statusText);
    console.log('Data: ', error.response.data);
});

Nota:

Para obter a lista completa de campos disponíveis para a assinatura acesse a documentação do Asaas clicando aqui.

Editar uma assinatura

Para alterar os dados de uma assinatura utiliza-se o método asaasAPI.subscriptions.put(), este método recebe o ID do registro a ser editado e um objeto com os dados atualizados da assinatura, o retorno é uma Promise.

let id = 'sub_k55Oi2Sv6MiZ'; // ID retornado quando a Assinatura foi criada.

let assinatura = {
    value: 25, // Alterando o valor da assinatura.
    description: 'Nova descrição para a assinatura',
    updatePendingPayments: true // Indica que devem ser alteradas as faturas pendentes.
};

asaasAPI.subscriptions.put(id, assinatura).then((res)=>{
    console.log('Assinatura alterada!');
    console.log(res.data);
})
.catch((error)=>{
    console.log('Erro na alteração da assinatura');
    console.log('Status: ', error.response.status);
    console.log('StatusText: ', error.response.statusText);
    console.log('Data: ', error.response.data);
});

Nota:

Mais informações sobre a alteração de assinaturas pode ser obtidas na documentação do Asaas clicando aqui.

Excluir uma assinatura

A exclusão de uma assinatura é realizada por meio do método asaasAPI.subscriptions.delete(), este método recebe o ID da assinatura a ser excluída e retorna uma Promise.

// O ID 'sub_XdehrfHjGzPL' foi retornado quando a assinatura foi criada com o .post()
asaasAPI.subscriptions.delete('sub_XdehrfHjGzPL').then((res)=>{
    console.log('Assinatura removida');
    console.log(res.data);
})
.catch((error)=>{
    console.log('Erro ao remover a assinatura');
    console.log('Status: ', error.response.status);
    console.log('StatusText: ', error.response.statusText);
    console.log('Data: ', error.response.data);
});

Obter uma assinatura

Para obter o registro de uma assinatura utiliza-se o método asaasAPI.subscriptions.get(), este método recebe o ID da assinatura e retorna uma Promise.

let id = 'sub_k55Oi2Sv6MiZ1';

asaasAPI.subscriptions.get(id).then((res)=>{
    console.log('Obtem uma assinatura');
    console.log(res.data);
})
.catch((error)=>{
    console.log('Erro ao obter assinatura');
    console.log('Status: ', error.response.status);
    console.log('StatusText: ', error.response.statusText);
    console.log('Data: ', error.response.data);
});

Listar as assinaturas

Para listar os registros de assinaturas utiliza-se o método asaasAPI.subscriptions.list(), este método recebe um objeto com os filtros da pesquisa e retorna uma Promise.

let filtros = {
    customer: 'cus_000002872237',
    offset: 0,
    limit: 10
};

asaasAPI.subscriptions.list(filtros).then((res)=>{
    console.log('Lista de Assinaturas');
    console.log(res.data);
})
.catch((error)=>{
    console.log('Erro ao obter assinaturas');
    console.log('Status: ', error.response.status);
    console.log('StatusText: ', error.response.statusText);
    console.log('Data: ', error.response.data);
});

Os atributos possíveis para o filtro de assinaturas são:

{
   customer: String,
   billingType: Enum,
   includeDeleted: Boolean,
   offset: Number, // Opcional: Elemento inicial da lista (default: 0)
   limit: Number // Opcional: Quantidade de elementos da lista (default: 10, máx: 100)
}

Nota:

Para obter mais informações sobre a pesquisa de assinaturas acesse a documentação do Asaas clicando aqui.

Contribuições

Este é um módulo não oficial e ainda está em desenvolvimento.

Se desejar contribuir para o desenvolvimento favor entrar em contato com [email protected]!