- 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.
npm i safe2pay
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.
- 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
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.
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:
- Boleto Bancário;
- Cartão de Crédito;
- Bitcoin;
- 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
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){//...});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){//...});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){//...});// ...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){//...});// ...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){//...});// ...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){//...});// ...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){//...});// ...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.
