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

soulpay-sdk

v1.4.0

Published

A sdk for mercury api

Readme

SoulPay

E-Commerce API SDK

Introdução

Este documento explica como realizar a integração com a API de E-Commerce utilizando nosso SDK em Javascript para começar a realizar transações.

Requerimentos

  • Node >= 12.14.0

Instalação com NPM


npm install soulpay-sdk

Vamos Começar

Para utilizar este SDK recomenda-se leitura da documentação

A API é capaz de realizar transações de cartão de crédito, geração de boletos e recorrências diárias, semanais, mensais ou outras escolhas de período.

CommonJs

Embora os exemplos estejam usuando o import do es6 nossa sdk é híbrida,portanto é possível utilizar o require do CommonJs.

//require para usuários em CommonJs
const {User, UserRequest, Environment} = require('soulpay-sdk')

const user = new User()
user.email = '[email protected]'
user.password = 'testeDev'
user.hash = 'Seu hash aqui'

const userRequest = new UserRequest(Environment.DEVELOPMENT)
const apiResponse = await userRequest.userLogin(user)

Ambientes

Para fazer a escolha de qual Environment utilizar basta declará-lo no construtor das classes de Request

// Request para o ambiente de desenvolvimento
const userRequest = new UserRequest(
  Environment.DEVELOPMENT, 'Sua chave JWT aqui'
)

// Request para o ambiente de produção
const orderRequest = new OrderRequest(
  Environment.PRODUCTION, 'Sua chave JWT aqui'
)

Realizar Login

Para realizar o login é necessário criar um objeto User, preenche-lo com Email, Password e Hash. Logo após, é necessário instanciar a classe UserRequest e passar o objeto User (previamente criado) ao método userLogin.

Vejamos um exemplo abaixo


import {User, UserRequest, Environment} from 'soulpay-sdk/esm'

const user = new User()
user.email = '[email protected]'
user.password = 'testeDev'
user.hash = 'Seu hash aqui'

const userRequest = new UserRequest(Environment.DEVELOPMENT)
const apiResponse = await userRequest.userLogin(user)

Refresh Token

Para que não seja necessário fazer login sempre que seu token JWT expirar, criamos o método refreshToken para facilitação do processo.

Para realizar a atualização de seu token é necessário criar um objeto refreshToken e preenche-lo com seu refreshToken. Logo após, é necessário instanciar a classe UserRequest e passar o objeto refreshToken (previamente criado) ao método refreshToken.

import { RefreshToken, UserRequest, Environment } from 'soulpay-sdk/esm'

const refreshToken = new RefreshToken()
refreshToken.refreshToken =
  'b2a86d96695a81fb46498952b7c5406a0jFshZCaYf9+kbCEoQOiRHWjSZGJA4StqgFOvmr95yWmaKRijqcg4AYJ3AIbyaAj'

const userRequest = new UserRequest(
  Environment.DEVELOPMENT,
  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjMsImlhdCI6MTU3NjA3Mzc2MiwiZXhwIjoxNTc4NjY1NzYyfQ.VjQCmYVwvvQjUEHK-wEZxwlcDQggBicssSfPmtuEawc'
)
const apiResponse = await userRequest.refreshToken(refreshToken)

Gerar Novo Refresh Token

Se por algum motivo for necessário gerar um novo Refresh Token essa função está disponivel na API.

O processo é exatamente o mesmo da funcionalidade de Refresh Token já explicada acima, basta ter seu Refresh Token atual e um token JWT ainda valido. Porém, ao invés de usar o metodo refreshToken use o metodo newRefreshToken.

import { RefreshToken, UserRequest, Environment } from 'soulpay-sdk/esm'

const refreshToken = new RefreshToken()
refreshToken.refreshToken =
  'b2a86d96695a81fb46498952b7c5406a0jFshZCaYf9+kbCEoQOiRHWjSZGJA4StqgFOvmr95yWmaKRijqcg4AYJ3AIbyaAj'

const userRequest = new UserRequest(
  Environment.DEVELOPMENT,
  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjMsImlhdCI6MTU3NjA3Mzc2MiwiZXhwIjoxNTc4NjY1NzYyfQ.VjQCmYVwvvQjUEHK-wEZxwlcDQggBicssSfPmtuEawc'
)
const apiResponse = await userRequest.newRefreshToken(refreshToken)

Criando uma Transação

Para criar uma transação é necessário preencher as informações obrigatórias descritas na documentação.

Seguindo a mesma ideia de login, é necessário instanciar os models da transação, sendo esses Customer, Billing, Shipping, CreditCard, CreditInstallment, Payment, Transaction.
Para enviar a transação é necessário instanciar OrderRequest onde o Environment deve ser passado como primeiro parâmetro e o token JWT deve ser passado como segundo parâmetro.

Usuando a instancia de OrderRequest basta usar o método transaction passando a instancia preenchida de Transaction.

import {
  Customer,
  Billing,
  Shipping,
  CreditCard,
  Payment,
  CreditInstallment,
  Transaction,
  OrderRequest,
  Environment
} from 'soulpay-sdk/esm'

const customer = new Customer()
customer.id = 1
customer.name = 'Luke Skywalker'
customer.visitor = 'visitor gerado pelo js'
customer.email = '[email protected]'
customer.dob = '1977-11-18'
customer.ipAddress = '111.222.0.10'
customer.taxId = '86587529875'
customer.phone1 = '+55 11 98563256'
customer.phone2 = '+55 11 942568223'
customer.createdAt = '2019-11-15'
customer.newCustomer = 'true'
customer.vip = 'false'

const billing = new Billing()
billing.name = 'Anakin Skywalker',
billing.address = 'Death Star',
billing.address2 = '345 setor do laser',
billing.district = 'Galaxia 6543',
billing.city = 'Orbita da lua de Endor',
billing.state = 'ER',
billing.postalCode = '09999000',
billing.country = 'EP',
billing.phone = '1122334455',
billing.email = '[email protected]'

const shipping = new Shipping()
shipping.name = 'Anakin Skywalker',
shipping.address = 'Death Star',
shipping.address2 = '345 setor do laser',
shipping.district = 'Galaxia 6543',
shipping.city = 'Orbita da lua de Endor',
shipping.state = 'ER',
shipping.postalCode = '09999000',
shipping.country = 'EP',
shipping.phone = '1122334455',
shipping.email = '[email protected]'

const creditCard = new CreditCard()
creditCard.cardHolderName = 'Lord Sidius'
creditCard.number = '5431372610284362'
creditCard.expDate = '07/2024'
creditCard.cvvNumber = '066'

const creditInstallment = new CreditInstallment()
creditInstallment.numberOfInstallments = 1
creditInstallment.chargeInterest = 'N'

const payment = new Payment()
payment.chargeTotal = 20.0
payment.currencyCode = 'BRL'
payment.creditInstallment = creditInstallment

const transaction = new Transaction()
transaction.referenceNum = 'do it'
transaction.metaData = {
  jedi: 'kill then all'
}
transaction.customer = customer
transaction.billing = billing
transaction.shipping = shipping
transaction.creditCard = creditCard
transaction.payment = payment

const orderRequest = new OrderRequest(
  Environment.DEVELOPMENT,
  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjMsImlhdCI6MTU3ODUwMzc5MiwiZXhwIjoxNTgxMDk1NzkyfQ.wwSNY5KD08xBjPRykNe98Xn_6IzuY4qgYykrlanqF3E'
)

const apiResponse = await orderRequest.transaction(transaction)

Criando uma Recorrência

Para criar uma recorrência, é necessário preencher as informações obrigatórias descritas na documentação.

Seguindo a mesma ideia de transação é necessário instanciar os models da recorrência, sendo esses Customer, Billing, Shipping, CreditCard, Recurring, CreditInstallment, Payment, Recurrence. Para enviar a recorrência é necessário instanciar OrderRequest onde o Environment deve ser passado como primeiro parâmetro e o token JWT deve ser passado como segundo parâmetro.

Usuando a instancia de OrderRequest basta usar o método recurrence passando a instancia preenchida de Recurrence


import {
  Customer,
  Billing,
  Shipping,
  CreditCard,
  Payment,
  Recurrence,
  Recurring,
  OrderRequest,
  Environment
} from 'soulpay-sdk/esm'

const customer = new Customer()
customer.id = 1
customer.name = 'Luke Skywalker'
customer.visitor = 'visitor gerado pelo js'
customer.email = '[email protected]'
customer.dob = '1977-11-18'
customer.ipAddress = '111.222.0.10'
customer.taxId = '86587529875'
customer.phone1 = '+55 11 98563256'
customer.phone2 = '+55 11 942568223'
customer.createdAt = '2019-11-15'
customer.newCustomer = 'true'
customer.vip = 'false'

const billing = new Billing()
billing.name = 'Anakin Skywalker',
billing.address = 'Death Star',
billing.address2 = '345 setor do laser',
billing.district = 'Galaxia 6543',
billing.city = 'Orbita da lua de Endor',
billing.state = 'ER',
billing.postalCode = '09999000',
billing.country = 'EP',
billing.phone = '1122334455',
billing.email = '[email protected]'

const shipping = new Shipping()
shipping.name = 'Anakin Skywalker',
shipping.address = 'Death Star',
shipping.address2 = '345 setor do laser',
shipping.district = 'Galaxia 6543',
shipping.city = 'Orbita da lua de Endor',
shipping.state = 'ER',
shipping.postalCode = '09999000',
shipping.country = 'EP',
shipping.phone = '1122334455',
shipping.email = '[email protected]'

const creditCard = new CreditCard()
creditCard.cardHolderName = 'Lord Sidius'
creditCard.number = '5431372610284362'
creditCard.expDate = '07/2024'
creditCard.cvvNumber = '066'

const creditInstallment = new CreditInstallment()
creditInstallment.numberOfInstallments = 1
creditInstallment.chargeInterest = 'N'

const payment = new Payment()
payment.chargeTotal = 20.0
payment.currencyCode = 'BRL'
payment.creditInstallment = creditInstallment

const recurring = new Recurring()
recurring.startDate = '2020-10-05'
recurring.period = 'monthly'
recurring.frequency = 1
recurring.installments = 12
recurring.firstAmount = 20.0
recurring.failureThreshold = 15

const recurrence = new Recurrence()
recurrence.referenceNum = 'do it'
recurrence.metaData = {
  jedi: 'kill then all'
}
recurrence.customer = customer
recurrence.billing = billing
recurrence.shipping = shipping
recurrence.creditCard = creditCard
recurrence.payment = payment
recurrence.recurring = recurring

const orderRequest = new OrderRequest(
  Environment.DEVELOPMENT,
  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjMsImlhdCI6MTU3ODUwMzc5MiwiZXhwIjoxNTgxMDk1NzkyfQ.wwSNY5KD08xBjPRykNe98Xn_6IzuY4qgYykrlanqF3E'
)

const apiResponse = await orderRequest.recurrence(transaction)

Gerando Boleto Bancario

Para criar um boleto é necessário preencher as informações obrigatorias descritas na documentação.

Seguindo a mesma ideia de transação é necessário instanciar os models de boleto, sendo esses Customer, Billing, BankSlipPayment, Payment, BankSlip.
Para enviar o Boleto Bancario é necessário instanciar OrderRequest onde o Environment deve ser passado como primeiro parâmetro e o token JWT deve ser passado como segundo parâmetro.

Usuando a instancia de OrderRequest basta usar o método bankSlip passando a instancia preenchida de BankSlip.

    import {
  Customer,
  Billing,
  BankSlip,
  BankSlipPayment,
  Payment,
  OrderRequest,
  Environment
} from 'soulpay-sdk/esm'

const customer = new Customer()
customer.name = 'Bilbo Bolseiro'
customer.visitor = 'visitor gerado pelo js'
customer.taxId = '85673917295'

const billing = new Billing()
billing.name = 'Bilbo Bolseiro',
billing.address = 'O Condado',
billing.address2 = 'Bolsão numero 43',
billing.district = 'Ardor',
billing.city = 'O Condado',
billing.state = 'ER',
billing.postalCode = '05555000',
billing.country = 'ME',
billing.phone = '1122334455',
billing.email = '[email protected]'

const bankSlipPayment = new BankSlipPayment()
bankSlipPayment.expirationDate = '2022-12-25'
bankSlipPayment.instructions = 'teste teste'

const payment = new Payment()
payment.chargeTotal = 1
payment.currencyCode = 'BRL'

const bankSlip = new BankSlip()
bankSlip.customer = customer
bankSlip.billing = billing
bankSlip.bankSlip = bankSlipPayment
bankSlip.payment = payment

const orderRequest = new OrderRequest(
  Environment.DEVELOPMENT,
  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjMsImlhdCI6MTU3NjA3Mzc2MiwiZXhwIjoxNTc4NjY1NzYyfQ.VjQCmYVwvvQjUEHK-wEZxwlcDQggBicssSfPmtuEawc'
)
const apiResponse = await orderRequest.bankSlip(bankSlip)
    

Consultar Transações

Para consultar uma transação, é necessário instanciar a classe OrderRequest e chamar o metodo get do tipo de order que é desejado consultar como no exemplo abaixo para recorrencia, deve se passar o Order ID como parâmetro de busca.


// Passar o token JWT aqui,junto com o ambiente.
const orderRequest = new OrderRequest(
  Environment.DEVELOPMENT,
  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjMsImlhdCI6MTU3NjA3Mzc2MiwiZXhwIjoxNTc4NjY1NzYyfQ.VjQCmYVwvvQjUEHK-wEZxwlcDQggBicssSfPmtuEawc'
)

// Order ID
const apiResponse = await orderRequest.getRecurrence(55)

Suporte

Utilizar o issues do github