npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@velocity-bpa/n8n-nodes-affirm-bnpl

v1.0.0

Published

n8n community node for Affirm BNPL integration

Downloads

25

Readme

n8n-nodes-affirm-bnpl

[Velocity BPA Licensing Notice]

This n8n node is licensed under the Business Source License 1.1 (BSL 1.1).

Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA.

For licensing information, visit https://velobpa.com/licensing or contact [email protected].

An n8n community node for integrating with Affirm's Buy Now Pay Later platform. This node provides access to 5 core resources (Checkout, Charge, Transaction, Authorization, Read Financing) enabling comprehensive payment processing workflows including checkout creation, charge management, transaction monitoring, and financing program administration.

n8n Community Node License TypeScript BNPL Payments E-commerce

Features

  • Checkout Management - Create and configure Affirm checkout sessions for customer payment flows
  • Charge Processing - Handle payment captures, refunds, and charge lifecycle management
  • Transaction Monitoring - Track and analyze payment transaction status and history
  • Authorization Control - Manage payment authorizations and approval workflows
  • Read Financing - Access financing program details and customer eligibility information
  • Webhook Support - Handle real-time payment status updates and notifications
  • Error Handling - Comprehensive error management with detailed response mapping
  • Rate Limiting - Built-in request throttling to respect API limits

Installation

Community Nodes (Recommended)

  1. Open n8n
  2. Go to SettingsCommunity Nodes
  3. Click Install a community node
  4. Enter n8n-nodes-affirm-bnpl
  5. Click Install

Manual Installation

cd ~/.n8n
npm install n8n-nodes-affirm-bnpl

Development Installation

git clone https://github.com/Velocity-BPA/n8n-nodes-affirm-bnpl.git
cd n8n-nodes-affirm-bnpl
npm install
npm run build
mkdir -p ~/.n8n/custom
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-affirm-bnpl
n8n start

Credentials Setup

| Field | Description | Required | |-------|-------------|----------| | API Key | Your Affirm API private key from merchant dashboard | Yes | | Environment | Select Sandbox or Production environment | Yes | | Public API Key | Your Affirm public API key for client-side operations | No |

Resources & Operations

1. Checkout

| Operation | Description | |-----------|-------------| | Create | Create a new Affirm checkout session with cart and customer details | | Get | Retrieve checkout session details and current status | | Update | Modify existing checkout session parameters | | Delete | Cancel and remove an active checkout session |

2. Charge

| Operation | Description | |-----------|-------------| | Create | Capture payment from an authorized checkout token | | Get | Retrieve charge details and payment status | | Update | Modify charge metadata and tracking information | | Capture | Capture a previously authorized but uncaptured charge | | Refund | Process full or partial refunds for completed charges | | Void | Cancel an uncaptured authorized charge |

3. Transaction

| Operation | Description | |-----------|-------------| | List | Retrieve transaction history with filtering options | | Get | Get detailed information about a specific transaction | | Search | Search transactions by date range, amount, or status |

4. Authorization

| Operation | Description | |-----------|-------------| | Create | Create payment authorization for future capture | | Get | Retrieve authorization details and expiration status | | Void | Cancel an unused payment authorization | | Extend | Extend authorization expiration date |

5. Read Financing

| Operation | Description | |-----------|-------------| | Get Programs | Retrieve available financing programs and rates | | Get Terms | Get financing terms for specific cart amounts | | Check Eligibility | Verify customer eligibility for financing options |

Usage Examples

// Create a new checkout session
{
  "merchant": {
    "user_confirmation_url": "https://mystore.com/confirm",
    "user_cancel_url": "https://mystore.com/cancel",
    "user_confirmation_url_action": "POST"
  },
  "shipping": {
    "name": {
      "first": "John",
      "last": "Doe"
    },
    "address": {
      "line1": "123 Main St",
      "city": "San Francisco",
      "state": "CA",
      "zipcode": "94102",
      "country": "USA"
    }
  },
  "items": [{
    "display_name": "Awesome Product",
    "sku": "AWE-PROD-001",
    "unit_price": 25000,
    "qty": 2,
    "item_image_url": "https://mystore.com/product.jpg",
    "item_url": "https://mystore.com/products/awesome"
  }],
  "currency": "USD",
  "order_id": "ORDER-12345",
  "shipping_amount": 500,
  "tax_amount": 2500,
  "total": 52500
}
// Capture a charge from checkout token
{
  "checkout_token": "ABCD1234EFGH5678",
  "order_id": "ORDER-12345",
  "shipping_carrier": "USPS",
  "shipping_confirmation": "1234567890"
}
// Process a partial refund
{
  "charge_id": "CHRG-TEST-12345",
  "amount": 10000,
  "metadata": {
    "reason": "Customer return",
    "internal_id": "REF-001"
  }
}
// Check financing eligibility
{
  "loan_amount": 50000,
  "currency": "USD",
  "customer": {
    "name": {
      "first": "Jane",
      "last": "Smith"
    },
    "email": "[email protected]",
    "phone_number": "555-123-4567"
  }
}

Error Handling

| Error | Description | Solution | |-------|-------------|----------| | 401 Unauthorized | Invalid or missing API credentials | Verify API key is correct and has proper permissions | | 400 Bad Request | Malformed request data or missing required fields | Check request payload against API documentation | | 404 Not Found | Resource (charge, checkout, etc.) not found | Verify resource ID exists and is accessible | | 422 Unprocessable Entity | Business logic error (insufficient funds, expired auth) | Review transaction details and customer account status | | 429 Too Many Requests | Rate limit exceeded | Implement exponential backoff and retry logic | | 500 Internal Server Error | Affirm service temporarily unavailable | Retry request after delay or contact Affirm support |

Development

npm install
npm run build
npm test
npm run lint
npm run dev

Author

Velocity BPA

Licensing

This n8n community node is licensed under the Business Source License 1.1.

Free Use

Permitted for personal, educational, research, and internal business use.

Commercial Use

Use of this node within any SaaS, PaaS, hosted platform, managed service, or paid automation offering requires a commercial license.

For licensing inquiries: [email protected]

See LICENSE, COMMERCIAL_LICENSE.md, and LICENSING_FAQ.md for details.

Contributing

Contributions are welcome! Please ensure:

  1. Code follows existing style conventions
  2. All tests pass (npm test)
  3. Linting passes (npm run lint)
  4. Documentation is updated for new features
  5. Commit messages are descriptive

Support