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 🙏

© 2026 – Pkg Stats / Ryan Hefner

simple-payments

v1.2.0

Published

Uma biblioteca JavaScript para integração com sistemas de pagamento e bancos, oferecendo uma solução simplificada e eficiente para processamento de transações financeiras.

Readme

Simple Payments API

Descrição

Simple Payments é uma biblioteca JavaScript para integração com sistemas de pagamento como Mercado Pago, EFI Bank, PagBank e PicPay. Ela simplifica o processo de criação e gerenciamento de pagamentos, permitindo implementações rápidas e eficientes.

Instalação

npm install simple-payments

Funcionalidades

A biblioteca possui quatro classes principais:

1. MercadoPago

Permite a integração com o Mercado Pago para:

  • Criar pagamentos
  • Criar pagamentos customizados
  • Realizar reembolsos
  • Verificar status de pagamentos

2. EfiBank

Permite a integração com o EFI Bank para:

  • Criar pagamentos PIX
  • Obter chaves PIX disponíveis
  • Verificar status de pagamentos
  • Criar pagamentos customizados

3. PagBank

Permite a integração com o PagBank para:

  • Criar pagamentos PIX
  • Criar pagamentos customizados
  • Verificar status de pagamentos

4. PicPay

Permite a integração com o PicPay para:

  • Criar pagamentos
  • Criar pagamentos customizados
  • Verificar status de pagamentos
  • Cancelar pagamentos

Exemplos de Uso

Mercado Pago

const { MercadoPago } = require('simple-payments');

const mercadopago = new MercadoPago({ token: 'SEU_TOKEN_MERCADO_PAGO' });

// Criar um pagamento simples
async function criarPagamento() {
  try {
    const resultado = await mercadopago.createPayment({ value: 100.50 });
    console.log('Pagamento criado:', resultado);
  } catch (erro) {
    console.error('Erro ao criar pagamento:', erro);
  }
}

// Criar um pagamento customizado
async function criarPagamentoCustomizado() {
  try {
    const resultado = await mercadopago.createCustomPayment({
      value: 100.50,
      color1: '#FF0000',
      color2: '#00FF00',
      image: 'URL_DA_IMAGEM'
    });
    console.log('Pagamento customizado criado:', resultado);
  } catch (erro) {
    console.error('Erro ao criar pagamento customizado:', erro);
  }
}

// Verificar um pagamento
async function verificarPagamento(paymentId) {
  try {
    const status = await mercadopago.checkPayment(paymentId);
    console.log('Status do pagamento:', status);
  } catch (erro) {
    console.error('Erro ao verificar pagamento:', erro);
  }
}

// Reembolsar um pagamento
async function reembolsarPagamento(paymentId) {
  try {
    const resultado = await mercadopago.refundPayment(paymentId);
    console.log('Reembolso realizado:', resultado);
  } catch (erro) {
    console.error('Erro ao realizar reembolso:', erro);
  }
}

EFI Bank

const { EfiBank } = require('simple-payments');

const efibank = new EfiBank({
  client_id: 'SEU_CLIENT_ID',
  client_secret: 'SEU_CLIENT_SECRET',
  certificate: 'caminho/para/seu/certificado.p12'
});

// Criar um pagamento PIX
async function criarPagamento() {
  try {
    const resultado = await efibank.createPayment({
      chave_pix: 'SUA_CHAVE_PIX',
      price: 100.50
    });
    console.log('Pagamento PIX criado:', resultado);
  } catch (erro) {
    console.error('Erro ao criar pagamento PIX:', erro);
  }
}

// Obter chaves PIX disponíveis
async function obterChavesPix() {
  try {
    const chaves = await efibank.getPixKeys();
    console.log('Chaves PIX disponíveis:', chaves);
  } catch (erro) {
    console.error('Erro ao obter chaves PIX:', erro);
  }
}

// Criar um Pagamento Personalizado
async function criarPagamentoCustomizado() {
  try {
    const resultado = await efibank.createCustomPayment({
      chave_pix: 'SUA_CHAVE_PIX',
      price: 100.50,
      color1: '#FF0000',
      color2: '#00FF00',
      image: 'URL_DA_IMAGEM'
    });
    console.log('Pagamento personalizado criado:', resultado);
  } catch (erro) {
    console.error('Erro ao criar pagamento personalizado:', erro);
  }
}

// Verificar um pagamento
async function verificarPagamento(paymentId) {
  try {
    const status = await efibank.checkPayment(paymentId);
    console.log('Status do pagamento PIX:', status);
  } catch (erro) {
    console.error('Erro ao verificar pagamento PIX:', erro);
  }
}

PagBank

const { PagBank } = require('simple-payments');

const pagbank = new PagBank({ token: 'SEU_TOKEN_PAGBANK' });

// Criar um pagamento simples
async function criarPagamento() {
  try {
    const resultado = await pagbank.createPayment({ value: 100.50 });
    console.log('Pagamento criado:', resultado);
  } catch (erro) {
    console.error('Erro ao criar pagamento:', erro);
  }
}

// Criar um pagamento customizado
async function criarPagamentoCustomizado() {
  try {
    const resultado = await pagbank.createCustomPayment({
      value: 100.50,
      color1: '#FF0000',
      color2: '#00FF00',
      image: 'URL_DA_IMAGEM'
    });
    console.log('Pagamento customizado criado:', resultado);
  } catch (erro) {
    console.error('Erro ao criar pagamento customizado:', erro);
  }
}

// Verificar um pagamento
async function verificarPagamento(paymentId) {
  try {
    const status = await pagbank.checkPayment(paymentId);
    console.log('Status do pagamento:', status);
  } catch (erro) {
    console.error('Erro ao verificar pagamento:', erro);
  }
}

PicPay

const { PicPay } = require('simple-payments');

const picpay = new PicPay({ token: 'SEU_TOKEN_PICPAY' });

// Criar um pagamento simples
async function criarPagamento() {
  try {
    const resultado = await picpay.createPayment({ value: 100.50 });
    console.log('Pagamento criado:', resultado);
  } catch (erro) {
    console.error('Erro ao criar pagamento:', erro);
  }
}

// Criar um pagamento customizado
async function criarPagamentoCustomizado() {
  try {
    const resultado = await picpay.createCustomPayment({
      value: 100.50,
      color1: '#FF0000',
      color2: '#00FF00',
      image: 'URL_DA_IMAGEM'
    });
    console.log('Pagamento customizado criado:', resultado);
  } catch (erro) {
    console.error('Erro ao criar pagamento customizado:', erro);
  }
}

// Verificar um pagamento
async function verificarPagamento(paymentId) {
  try {
    const status = await picpay.checkPayment(paymentId);
    console.log('Status do pagamento:', status);
  } catch (erro) {
    console.error('Erro ao verificar pagamento:', erro);
  }
}

// Cancelar um pagamento
async function cancelarPagamento(paymentId) {
  try {
    const resultado = await picpay.cancelPayment(paymentId);
    console.log('Pagamento cancelado:', resultado);
  } catch (erro) {
    console.error('Erro ao cancelar pagamento:', erro);
  }
}

Formato das Respostas

MercadoPago

Criar Pagamento (Simples ou Customizado)

{
    status: 'success',
    payment_id: '102162...',  // ID do pagamento no Mercado Pago
    qr_code_link: 'https://api.qrserver.com/v1/create-qr-code/?data=...',  // Link do QR code
    copy_paste: '00020126580014br.gov.bcb.pix0136b5907...',  // Código PIX copia e cola
    qr_code_image_url: 'https://simple-payments.squareweb.app/api/qrcode?id=102162...'  // URL da imagem do QR code
}

Verificar Status do Pagamento

{
    status: 'approved'  // Possíveis valores: 'approved', 'pending', 'cancelled'
}

Verificar Reembolsos

{
    status: 'success',
    refunds: [
        {
            id: '123456789',
            payment_id: '102162...',
            amount: 100.50,
            status: 'approved',
            created_at: '2024-03-15T10:30:00.000Z'
        }
    ]
}

EfiBank

Criar Pagamento (Simples ou Customizado)

{
    status: 'success',
    payment_id: 'b21a72...',  // ID da transação (txid)
    copy_paste: '00020101021226830014BR.GOV.BCB.PIX256...',  // Código PIX copia e cola
    qr_code_image_url: 'https://simple-payments.squareweb.app/api/qrcode?id=b21a72...'  // URL da imagem do QR code
}

Obter Chaves PIX

{
    status: 'success',
    chaves: '[email protected], 11999999999, randomkey123'  // Lista de chaves PIX disponíveis
}

Verificar Status do Pagamento

{
    status: 'approved'  // Possíveis valores: 'approved', 'pending', 'cancelled'
}

PagBank

Criar Pagamento (Simples ou Customizado)

{
    status: 'success',
    payment_id: 'ORDER_ID_123456',  // ID do pedido no PagBank
    copy_paste: '00020126580014br.gov.bcb.pix0136random-key-pix-example',  // Código PIX copia e cola
    qr_code_image_url: 'https://simple-payments.squareweb.app/api/qrcode?id=ORDER_ID_123456'  // URL da imagem do QR code
}

Verificar Status do Pagamento

{
    status: 'approved'  // Possíveis valores: 'approved', 'pending', 'cancelled'
}

PicPay

Criar Pagamento (Simples ou Customizado)

{
    status: 'success',
    payment_id: 'order-1234567890',  // ID do pedido no PicPay (referenceId)
    payment_url: 'https://app.picpay.com/checkout/NWZhY2U',  // URL para redirecionamento
    qr_code: {
        content: 'https://app.picpay.com/checkout/NWZhY2U',  // Mesmo que payment_url
        base64: 'data:image/png;base64,iVBORw0KGgoAAAANSUh...'  // QR code em base64
    },
    expires_at: '2024-03-15T10:30:00-03:00',  // Data de expiração do pagamento
    qr_code_image_url: 'https://simple-payments.squareweb.app/api/qrcode?id=order-1234567890'  // URL alternativa da imagem do QR code
}

Verificar Status do Pagamento

{
    status: 'approved'  // Possíveis valores: 'approved', 'pending', 'cancelled', 'expired', 'refunded', 'chargeback'
}

Cancelar Pagamento

{
    status: 'success',
    cancellation_id: '5e3600e2-8c77-4265-89e5-60cbb7c19d0a',  // ID do cancelamento
    payment_status: 'refunded'  // Status atualizado do pagamento
}

Códigos de Status

Todas as APIs retornam os seguintes status padronizados:

  • approved: Pagamento aprovado/concluído
  • pending: Pagamento pendente/aguardando
  • cancelled: Pagamento cancelado/estornado
  • error: Erro no processamento (com mensagem descritiva)

Tratamento de Erros

Todas as APIs retornam erros no seguinte formato:

{
    status: 'error',
    message: 'Descrição detalhada do erro'
}

Principais códigos de erro HTTP:

  • 400: Parâmetros inválidos ou faltando
  • 401: Token/credenciais inválidas
  • 404: Recurso não encontrado
  • 500: Erro interno do servidor

Requisitos

  • Node.js
  • Dependências:
    • axios: ^1.7.9

Créditos

Desenvolvido por:

  • Someone (Discord: @gh8y) - Criador

Licença

ISC