The OpenNode Node library provides convenient access to the OpenNode API from applications written in server-side JavaScript.
You can find examples here. For more information refer to our API docs.
Install the package with:
npm install opennode --save
or
yarn add opennode
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}`);
}
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}`);
});
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);
}
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}`));