Paypal Node API
A wrapper around paypal's REST API, featuring events, promise support and auto auth.
Only supports subscriptions and orders for now, others will be added per request.
THIS IS NOT AN OFFICIAL API
Installation
NPM:
npm i kik-paypal-api
Usage
Requests
- The Basics
- Orders
- Subscriptions
- Plans
- Webhooks
Getting Started
You can use the API by creating an instance of PaypalClient
.
const PaypalClient = require("paypal-node-api");
paypal = new PaypalClient({
env: "sandbox",
clientId: "id",
secret: "secret",
config: {}
});
env
: one of either "sandbox" or "live"
clientId
: your app's client id
secret
: your app's secret
config
: a config object
Sharing a paypal instance:
const PaypalClient = require("paypal-node-api");
const clientId = "yourApp'sId";
const secret = "yourApp'sSecret";
const paypal = new PaypalClient("sandbox", clientId, secret);
paypal.on("auth", () => {
console.log("Paypal token refreshed");
});
module.exports = paypal;
The Basics
All required parameters are supplied directly to the functions,
non required parameters can be supplied via the extras
parameter, this
object is merged into the request's payload
The Error Object
Requests
Orders
Create
await paypal.orders.create(intent, purchaseUnits);
intent
: either "CAPTURE" or "AUTHORIZE"
purchaseUnits
: an array of purchase_unit_request objects
Update
await paypal.orders.update(orderId, patchRequest);
orderId
: the target order's id
patchRequest
: an array of patch objects
Details
await paypal.orders.details(orderId);
orderId
: the target order's id
Authorize
await paypal.orders.authorize(planId);
orderId
: the target order's id
Capture
await paypal.orders.capture(orderId);
orderId
: the target order's id
Subscriptions
Create
await paypal.subscriptions.create(planId, extras);
planId
: the plan associated with this subscription
Details
await paypal.subscriptions.details(subscriptionId);
subscriptionId
: the subscription id to retrieve
returns the subscription object
Webhooks
Verify
await paypal.webhooks.verify(authAlgo, certUrl, transmissionId, transmissionSig, transmissionTime, webhookId, webhookEvent)
returns true if verified, false if not
License
GNU AGPLv3