Skip to content

Latest commit

History

50 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Safe2Pay NodeJS SDK

Safe2Pay

Principais recursos

  • Consulta de transações.
  • Tokenização de cartão.
  • Pagamentos.
    • Boleto bancário.
    • Cartão de crédito.
    • Bitcoin.
    • Cartão de débito.
    • Carnê.
    • Lote de Carnês.
  • Gerenciamento de subcontas para Marketplace.

Instalação

npm i safe2pay

Utilização

A integração com a API do Safe2Pay se dá pelo modelo RESTful, de forma a realizar a transferência segura e simplificada dos dados pelo formato JSON. Para facilitar o envio dos dados, deve-se montar um objeto para envio baseado nos modelos disponíveis, com exemplos abaixo, e a própria chamada do método desejado realizará o tratamento e conversão deste objeto para JSON.

Exemplo

  • const safe2pay = require('safe2pay');
  • const environment = safe2pay.environment.setApiKey('x-api-key');

A biblioteca contém os modelos para as requisições via api, necessitando passar somente o modelo do objeto a ser enviado. Após a importação da biblioteca para utilizar basta utilizar o comando 'safe2pay.api' e utilizar o módulo desejado.

As APIs do inclusas na SDK são:

AccountDepositRequest
MarketplaceRequest
PaymentRequest
TokenizationRequest
TransactionRequest

Para a importação dos objetos basta utilizar o comando 'safe2pay.model'

Os modelos inclusos são:

Transfer
TransferRegister
Transaction
TransactionStatus
SingleSale
SingleSalePayment
SingleSalePaymentMethod
SingleSaleProduct
Bankslip
CreditCard
Bitcoin
DebitCard
DebbitAccount
BankTransfer
Carnet
CarnetItems
CarnetLot
PaymentMethod
Customer
Address
Product
Bank
BankData
Merchant
MerchantPaymentDate
MerchantPaymentMethod
MerchantSplit
MerchantSplitTax
MerchantType
TaxType
ListTax

Tratamento das respostas da API

Após o envio, a própria chamada devolverá a resposta em um objeto completo com as propriedades desta, onde um cast das classes de resposta permitirá o tratamento das propriedades do objeto de retorno de forma simplificada, sem a necessidade de criar os mesmos modelos em seu projeto.

Pagamentos / Transações

A informação da forma de pagamento é dada por meio da propriedade PaymentMethod, onde deve ser informado o código correspondente ao método desejado:

  1. Boleto Bancário;
  2. Cartão de Crédito;
  3. Bitcoin;
  4. Cartão de Débito

O retorno do envio da transação trará um status para esta, que pode ser igual a:

1 = PENDENTE
2 = PROCESSAMENTO
3 = AUTORIZADO
4 = DISPONÍVEL
5 = EM DISPUTA
6 = DEVOLVIDO
7 = BAIXADO
8 = RECUSADO
11 = LIBERADO
12 = EM CANCELAMENTO
13 = CHARGEBACK

Consultar transação

constsafe2pay=require('safe2pay');constenvironment=safe2pay.environment.setApiKey('x-api-key');varTransactionRequest=safe2pay.api.TransactionRequest;varId=848906;TransactionRequest.Get(Id).then(function(result){//...}).catch(function(error){//...});

Tokenizando um cartão

constsafe2pay=require('safe2pay');constenvironment=safe2pay.environment.setApiKey('x-api-key');constTokenizationRequest=safe2pay.api.TokenizationRequest;varCreditCard=safe2pay.model.payment.CreditCard;varcreditCard=newCreditCard();creditCard.Holder="João da Silva";creditCard.CardNumber="4024007153763191";creditCard.ExpirationDate="12/2019";creditCard.SecurityCode="241";TokenizationRequest.Create(creditCard).then(function(result){//...},function(err){//...});

Criando uma venda com Boleto

constsafe2pay=require('safe2pay');constenvironment=safe2pay.environment.setApiKey('x-api-key');//apiconstPaymentRequest=safe2pay.api.PaymentRequest;varBankSlip=safe2pay.model.payment.Bankslip;varTransaction=safe2pay.model.transaction.Transaction;varCustomer=safe2pay.model.general.Customer;varProduct=safe2pay.model.general.ProductvarAddress=safe2pay.model.general.Address;//Inicializar método de pagamentovarpayload=newTransaction();//Ambiente de homologaçãopayload.IsSandbox=true;//Descrição geral payload.Application="Teste SDK NodeJS";//Nome do vendedorpayload.Vendor="João da Silva"//Url de callbackpayload.CallbackUrl="https://callbacks.exemplo.com.br/api/Notify";//Código da forma de pagamento// 1 - Boleto bancário// 2 - Cartão de crédito// 3 - Criptomoeda// 4 - Cartão de débito // 10 - Débito em conta payload.PaymentMethod="1";//Informa o objeto de pagamento//Objeto de pagamento - para boleto bancáriovarbankslip=newBankSlip();bankslip.DueDate="22/08/2019";bankslip.CancelAfterDue=false;bankslip.IsEnablePartialPayment=false;bankslip.PenaltyRate=2.00;bankslip.InterestRate=0.40;bankslip.Instruction="Instrução de Exemplo";bankslip.Message=["Mensagem 1","Mensagem 2","Mensagem 3"];payload.PaymentObject=bankslip;//Lista de produtos incluídos na cobrançapayload.Products.push(newProduct("001","Teste 1",1.99,10));payload.Products.push(newProduct("002","Teste 1",1.99,10));payload.Products.push(newProduct("002","Teste 1",1.99,10));//Dados do endereço do clientevaraddress=newAddress();address.ZipCode="90670090";address.Street="Logradouro";address.Complement="Complemento";address.Number="123";address.District="Higienopolis";address.StateInitials="RS";address.CityName="Porto Alegre";address.CountryName="Brasil";//Dados do clientevarcustomer=newCustomer();customer.Name="João da silva";customer.Identity="18978393080";customer.Phone="51999999999";customer.Email="safe2pay@safe2pay.com.br";customer.Address=address;payload.Customer=customer;PaymentRequest.Payment(payload).then(function(result){//...},function(err){//...});// ...

Criando uma venda com cartão de crédito

constsafe2pay=require('safe2pay');constenvironment=safe2pay.environment.setApiKey('x-api-key');//apiconstPaymentRequest=safe2pay.api.PaymentRequest;//modelosvarCreditCard=safe2pay.model.payment.CreditCard;varTransaction=safe2pay.model.transaction.Transaction;varCustomer=safe2pay.model.general.Customer;varProduct=safe2pay.model.general.ProductvarAddress=safe2pay.model.general.Address;//Inicializar método de pagamentovarpayload=newTransaction();//Ambiente de homologaçãopayload.IsSandbox=true;//Descrição geral payload.Application="Teste SDK NodeJS";//Nome do vendedorpayload.Vendor="João da Silva"//Url de callbackpayload.CallbackUrl="https://callbacks.exemplo.com.br/api/Notify";//Código da forma de pagamento// 1 - Boleto bancário// 2 - Cartão de crédito// 3 - Criptomoeda// 4 - Cartão de débito // 10 - Débito em conta payload.PaymentMethod="2";//Informa o objeto de pagamento//Objeto de pagamento - para boleto bancáriovarcreditCard=newCreditCard();creditCard.Holder="22/07/2019";creditCard.CardNumber="4024007153763191";creditCard.ExpirationDate="12/2019";creditCard.SecurityCode="241";//Lista de produtos incluídos na cobrançapayload.PaymentObject=creditCard;payload.Products.push(newProduct("001","Teste 1",1.99,10));payload.Products.push(newProduct("002","Teste 1",1.99,10));payload.Products.push(newProduct("002","Teste 1",1.99,10));//Dados do endereço do clientevaraddress=newAddress();address.ZipCode="90670090";address.Street="Logradouro";address.Complement="Complemento";address.Number="123";address.District="Higienopolis";address.StateInitials="RS";address.CityName="Porto Alegre";address.CountryName="Brasil";//Dados do clientevarcustomer=newCustomer();customer.Name="João da silva";customer.Identity="18978393080";customer.Phone="51999999999";customer.Email="safe2pay@safe2pay.com.br";customer.Address=address;payload.Customer=customer;PaymentRequest.Payment(payload).then(function(result){//...},function(err){//...});// ...

Criando uma venda com Bitcoin

constsafe2pay=require('safe2pay');constenvironment=safe2pay.environment.setApiKey('x-api-key');//apiconstPaymentRequest=safe2pay.api.PaymentRequest;varTransaction=safe2pay.model.transaction.Transaction;varCustomer=safe2pay.model.general.Customer;varProduct=safe2pay.model.general.ProductvarAddress=safe2pay.model.general.Address;//Inicializar método de pagamentovarpayload=newTransaction();//Ambiente de homologaçãopayload.IsSandbox=true;//Descrição geral payload.Application="Teste SDK NodeJS";//Nome do vendedorpayload.Vendor="João da Silva"//Url de callbackpayload.CallbackUrl="https://callbacks.exemplo.com.br/api/Notify";//Código da forma de pagamento// 1 - Boleto bancário// 2 - Cartão de crédito// 3 - Criptomoeda// 4 - Cartão de débito // 10 - Débito em conta payload.PaymentMethod="3";//Lista de produtos incluídos na cobrançapayload.Products.push(newProduct("001","Teste 1",1.99,10));payload.Products.push(newProduct("002","Teste 1",1.99,10));payload.Products.push(newProduct("002","Teste 1",1.99,10));//Dados do endereço do clientevaraddress=newAddress();address.ZipCode="90670090";address.Street="Logradouro";address.Complement="Complemento";address.Number="123";address.District="Higienopolis";address.StateInitials="RS";address.CityName="Porto Alegre";address.CountryName="Brasil";//Dados do clientevarcustomer=newCustomer();customer.Name="João da silva";customer.Identity="18978393080";customer.Phone="51999999999";customer.Email="safe2pay@safe2pay.com.br";customer.Address=address;payload.Customer=customer;PaymentRequest.Payment(payload).then(function(result){//...},function(err){//...});// ...

Criando uma venda com cartão de débito

constsafe2pay=require('safe2pay');constenvironment=safe2pay.environment.setApiKey('x-api-key');//apiconstPaymentRequest=safe2pay.api.PaymentRequest;varDebitCard=safe2pay.model.payment.DebitCard;varTransaction=safe2pay.model.transaction.Transaction;varCustomer=safe2pay.model.general.Customer;varProduct=safe2pay.model.general.ProductvarAddress=safe2pay.model.general.Address;//Inicializar método de pagamentovarpayload=newTransaction();//Ambiente de homologaçãopayload.IsSandbox=true;//Descrição geral payload.Application="Teste SDK NodeJS";//Nome do vendedorpayload.Vendor="João da Silva"//Url de callbackpayload.CallbackUrl="https://callbacks.exemplo.com.br/api/Notify";//Código da forma de pagamento// 1 - Boleto bancário// 2 - Cartão de crédito// 3 - Criptomoeda// 4 - Cartão de débito // 10 - Débito em conta payload.PaymentMethod="4";//Informa o objeto de pagamento//Objeto de pagamento - para boleto bancáriovardebitCard=newDebitCard();debitCard.Holder="22/07/2019";debitCard.CardNumber="4024007153763191";debitCard.ExpirationDate="12/2019";debitCard.SecurityCode="241";payload.PaymentObject=debitCard;//Lista de produtos incluídos na cobrançapayload.Products.push(newProduct("001","Teste 1",1.99,10));payload.Products.push(newProduct("002","Teste 1",1.99,10));payload.Products.push(newProduct("002","Teste 1",1.99,10));//Dados do endereço do clientevaraddress=newAddress();address.ZipCode="90670090";address.Street="Logradouro";address.Complement="Complemento";address.Number="123";address.District="Higienopolis";address.StateInitials="RS";address.CityName="Porto Alegre";address.CountryName="Brasil";//Dados do clientevarcustomer=newCustomer();customer.Name="João da silva";customer.Identity="18978393080";customer.Phone="51999999999";customer.Email="safe2pay@safe2pay.com.br";customer.Address=address;payload.Customer=customer;PaymentRequest.Payment(payload).then(function(result){//...},function(err){//...});// ...

Cancelando uma venda

constsafe2pay=require('safe2pay');constenvironment=safe2pay.environment.setApiKey('x-api-key');constTokenizationRequest=safe2pay.api.TokenizationRequest;varCreditCard=safe2pay.model.payment.CreditCard;varId=851356;varCancelType=PaymentRequest.CancelType.BANKSLIP;//var CancelType = PaymentRequest.CancelType.CREDIT;//var CancelType = PaymentRequest.CancelType.DEBIT;constresponse=awaitPaymentRequest.Refund(Id,CancelType);PaymentRequest.Refund(Id,type).then(function(result){//...},function(err){//...});// ...

Informações adicionais / Contato

A orientação sobre a utilização da API também está disponível na documentação de referência da API, disponível aqui, porém salientamos que ela se encontra em atualização para a nova versão da API.

Em caso de dúvidas, ficamos à disposição em nossos canais ou diretamente pelo e-mail integracao@safe2pay.com.br.

About

SDK do Safe2Pay para NodeJS

Resources

Stars

16 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages