/opennode-node

Node.js library for the OpenNode API. https://opennode.com

Primary LanguageJavaScript

OpenNode Node.js Library

Version Build Status Try opennode on RunKit

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

Documentation

You can find examples here. For more information refer to our API docs.

Installation

Install the package with:

npm install opennode --save
or
yarn add opennode

Usage

The package needs to be configured with your account's secret key which is available in your OpenNode Dashboard. value:

const opennode = require('opennode');
opennode.setCredentials('MY_API_KEY', 'dev'); //if no parameter given, default environment is 'live'

try {
  const charge = await opennode.createCharge({
    amount: 10.5,
    currency: "USD",
    callback_url: "https://example.com/webhook/opennode",
    auto_settle: false
  });
}
catch (error) {
  console.error(`${error.status} | ${error.message}`);
}

Using Promises

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

// Create a new charge
opennode.createCharge({
  amount: 10.5,
  currency: "USD",
  callback_url: "https://example.com/webhook/opennode",
  auto_settle: false
}).then(charge => {
  console.log(charge);
})
.catch(error => {
  console.error(`${error.status} | ${error.message}`);
});

Webhook signing

OpenNode can send signed webhook events that notify your application any time a specific event occurs. You can read more about it here.

You can verify if a webhook was sent by OpenNode by comparing the signatures.

function handleWebhook (req, res) {
  const charge = req.body;
  const isValid = await opennode.signatureIsValid(charge);

  if (isValid){
    //Handle event
  }

  return res.sendStatus(200);
}

Typescript usage

You can also use this library in a typescript project by importing the OpenNodeClass which allows you to create multiple instances.

import OpenNodeClient from "opennode/submodules/client";

const opennode: OpenNodeClient = new OpenNodeClient("API_KEY", "dev");

opennode.createCharge({ amount: 1.1 })
  .then(console.log)
  .catch((error) => console.error(`${error.status} | ${error.message}`));