Skip to content

getsafepay/node-core

Repository files navigation

Safepay Node.js Library

The Safepay Node library provides convenient access to the Safepay API from applications written in server-side JavaScript.

Requirements

Node 12 or higher.

Installation

Install the package with:

pnpm add @sfpy/node-core

Usage

The package can either be configured with your account's secret key or your current JWT session token. The production secret key is available in the Safepay Dashboard, while the sandbox secret key is available in the Sandbox Safepay Dashboard. Require it with the key's value:

const safepay = require('@sfpy/node-core')('12aslkad...', {
  authType: 'secret', // either 'jwt' or 'secret' depending on what you provide
  host: 'https://api.getsafepay.com' // can be configured to our sandbox host for test transactions
});

safepay.customers.object.create({
  "first_name": "Hassan",
  "last_name": "Zaidi",
  "email": "hzaidi@getsafepay.com",
  "phone_number": "+923331234567",
  "country": "PK",
  "is_guest": false
})
  .then(customer => console.log(customer.data.token))
  .catch(error => console.error(error));

Or using ES modules and async/await:

import Safepay from "@sfpy/node-core";
const safepay = new Safepay("12aslkad...", {
  authType: "secret", // either 'jwt' or 'secret' depending on what you provide
  host: "https://api.getsafepay.com", // can be configured to our sandbox host for test transactions
});

try {
  const customer = await safepay.customers.object.create({
    first_name: "Hassan",
    last_name: "Zaidi",
    email: "hzaidi@getsafepay.com",
    phone_number: "+923331234567",
    country: "PK",
    is_guest: false,
  });

  console.log(customer.data.token);
} catch (error) {
  console.log(error);
}

Using Promises

Every method returns a chainable promise which can be used instead of a regular callback:

// Create a new customer and then create an invoice item then invoice it:
safepay.customers.object
  .create({
    first_name: "Hassan",
    last_name: "Zaidi",
    email: "hzaidi@getsafepay.com",
    phone_number: "+923331234567",
    country: "PK",
    is_guest: false,
  })
  .then(({ data }) => {
    // have access to the customer object
  });

Configuration

Initialize with config object

The package can be initialized with several options:

const safepay = Safepay("sk_test_...", {
  timeout: 1000,
  host: "https://sandbox.api.getsafepay.com",
  authType: "secret",
});
Option Default Description
timeout 80000 Maximum time each request can take in ms.
host 'https://api.getsafepay.com' Host that requests are made to.
authType secret or jwt Tells Safepay which authentication mechanism to use

About

Official NodeJS Core to create SDKs for Safepay APIs

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Contributors