💰Easy to use framework to communicate with the PayPal API.
At this time, the package doesn't support all the endpoints of the PayPal API, as it is made for one of my projects I only built the endpoints I needed. Please open an issue if there are endpoints you want to see in.
const PayPal = require("paypal-api");
const paypal = new PayPal({
sandboxMode: true,
clientID: 'paypal client id',
clientSecret: 'paypal client secret'
});
paypal.listProducts().then(console.log); // you now have access to all the methods!
paypal.listProducts().then(console.log);
paypal.createProduct({
name: "Video Streaming Service",
description: "Video streaming service",
type: "SERVICE",
category: "SOFTWARE",
image_url: "https://example.com/streaming.jpg",
home_url: "https://example.com/home"
})
- Product details: https://developer.paypal.com/docs/api/catalog-products/v1/#products_get
- Update product: https://developer.paypal.com/docs/api/catalog-products/v1/#products_patch
paypal.listPlans(productID).then(console.log);
paypal.createPlan({
product_id: 'PROD-XXCD1234QWER65782',
name: 'Basic Plan',
description: 'Basic plan',
billing_cycles: [
{
frequency: {
interval_unit: 'MONTH',
interval_count: 1
},
tenure_type: 'TRIAL',
sequence: 1,
total_cycles: 1
},
{
frequency: {
interval_unit: 'MONTH',
interval_count: 1
},
tenure_type: 'REGULAR',
sequence: 2,
total_cycles: 12,
pricing_scheme: {
fixed_price: {
value: '10',
currency_code: 'USD'
}
}
}
],
payment_preferences: {
service_type: 'PREPAID',
auto_bill_outstanding: true,
setup_fee: {
value: '10',
currency_code: 'USD'
},
setup_fee_failure_action: 'CONTINUE',
payment_failure_threshold: 3
},
quantity_supported: true,
taxes: {
percentage: '10',
inclusive: false
}
})
- Plan details: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_get
- Update plan: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_patch
- update plan pricing: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_update-pricing-schemes
- Activate plan: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_activate
- Deactivate plan: https://developer.paypal.com/docs/api/subscriptions/v1/#plans_deactivate
paypal.createSubscription({
plan_id: 'P-2UF78835G6983425GLSM44MA',
start_time: '2020-12-20T16:17:13Z',
subscriber: {
name: {
given_name: 'John',
surname: 'Doe'
},
email_address: '[email protected]'
},
application_context: {
brand_name: 'example',
locale: 'en-US',
shipping_preference: 'SET_PROVIDED_ADDRESS',
user_action: 'SUBSCRIBE_NOW',
payment_method: {
payer_selected: 'PAYPAL',
payee_preferred: 'IMMEDIATE_PAYMENT_REQUIRED'
},
return_url: 'https://example.com/returnUrl',
cancel_url: 'https://example.com/cancelUrl'
}
})
paypal.getSubscription('I-Y3FEL44WUVPU').then(console.log);
- Activate subscription: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_activate
- Cancel subscription: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_cancel
- Subscription capture: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_capture
- Subscription revisions: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_revise
- Suspend subscription: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_suspend
- List transactions: https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_transactions
paypal.listWebhooks().then(console.log);
paypal.createWebhook({
url: "https://example.com/example_webhook",
event_types: [
{
name: "PAYMENT.AUTHORIZATION.CREATED"
},
{
name: "PAYMENT.AUTHORIZATION.VOIDED"
}
]
})
- Update webhook: https://developer.paypal.com/docs/api/webhooks/v1/#webhooks_update
- Webhook details: https://developer.paypal.com/docs/api/webhooks/v1/#webhooks_get
- Webhook event types: https://developer.paypal.com/docs/api/webhooks/v1/#webhooks_list