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

n8n-nodes-ramp

v0.1.5

Published

n8n community node for the Ramp spend management API — transactions, bills, cards, reimbursements, and webhook triggers

Readme

n8n-nodes-ramp

npm version npm downloads License: MIT n8n community node Built by SolutionLab

A production-grade n8n community node for the Ramp spend management platform, built by SolutionLab (Avishai Asaf). Query transactions, bills, receipts, reimbursements, and 13 more resources. Receive real-time webhook events with HMAC signature verification. Upload bill attachments. Zero manual token management.

17 resources. 30+ operations. Real-time triggers. Attachment uploads. Automatic pagination.


Why This Node?

Integrating Ramp into n8n workflows typically means chaining HTTP Request nodes with manual OAuth token handling, pagination loops, and webhook verification code. This creates fragile automations that break silently.

This node was built by SolutionLab to solve three specific production bottlenecks:

Fully Automated OAuth

Client Credentials flow with automatic token acquisition on every request. No browser login, no token refresh logic, no manual intervention. Configure your Client ID and Secret once - the node handles everything from there.

Comprehensive API Coverage

17 resources covering the full Ramp API surface: transactions, bills (with attachment uploads), receipts, reimbursements, cards, users, departments, locations, merchants, vendors, entities, memos, limits, cashbacks, transfers, webhooks, and business info. Each resource supports automatic cursor-based pagination via the "Return All" toggle.

Production-Grade Reliability

Rate limit handling with automatic exponential backoff on 429 responses (Ramp enforces 200 requests per 10-second window). HMAC-SHA256 webhook signature verification using the raw request body. Challenge handshake auto-verification on webhook registration. Structured error parsing instead of raw HTTP status codes.


Enterprise Features

Transaction Operations

| Operation | Description | |-----------|-------------| | Get | Retrieve a transaction by ID with optional merchant data | | Get Many | List transactions with filters: sync status, date range, department |

Bill Operations

| Operation | Description | |-----------|-------------| | Get | Retrieve a bill by ID | | Get Many | List bills with filters: sync status, approval status, vendor | | Upload Attachment | Upload a file attachment to a finalized bill (multipart) | | Upload Draft Attachment | Upload a file attachment to a draft bill (multipart) |

Attachment uploads accept any binary data from upstream nodes (HTTP Request, Read Binary File, etc.) and support INVOICE and OTHER attachment types.

Receipt Operations

| Operation | Description | |-----------|-------------| | Get | Retrieve a receipt by ID (includes receipt URL for download) | | Get Many | List receipts with filters: user, transaction, date range |

Organizational Resources

| Resource | Operations | API Endpoint | |----------|-----------|--------------| | Department | Get, Get Many | /departments | | Location | Get, Get Many | /locations | | User | Get, Get Many | /users | | Entity | Get | /entities | | Merchant | Get, Get Many | /merchants | | Vendor | Get, Get Many | /accounting/vendors |

Financial Resources

| Resource | Operations | API Endpoint | |----------|-----------|--------------| | Reimbursement | Get, Get Many | /reimbursements | | Card | Get, Get Many | /cards | | Limit | Get, Get Many | /limits | | Cashback | Get Many | /cashbacks | | Transfer | Get, Get Many | /transfers | | Memo | Get, Get Many | /memos | | Business | Get Info, Get Balance | /business |

Webhook Management

| Operation | Description | |-----------|-------------| | Create | Register a new webhook endpoint with event type selection | | Get Many | List all registered webhooks | | Delete | Remove a webhook registration |

Ramp Trigger Node

The Ramp Trigger node starts your workflow when Ramp fires a webhook event. No manual webhook setup required - n8n handles registration, challenge verification, and HMAC signature validation automatically.

| Event | Description | |-------|-------------| | Transaction Cleared | Card transaction has cleared | | Transaction Ready to Sync | Transaction is ready for ERP sync | | Reimbursement Ready to Sync | Reimbursement approved and ready for ERP sync | | Bill Approved | Bill has been approved for payment | | Bill Created | New bill has been created |

Security: Every incoming webhook payload is verified using HMAC-SHA256 with the secret provided at webhook registration. Invalid signatures are rejected with a 401 response.

Platform Capabilities

  • Automatic Pagination - Enable "Return All" on any Get Many operation to automatically follow Ramp's cursor-based pagination until all records are retrieved.
  • Rate Limit Handling - Automatic exponential backoff on 429 responses with up to 3 retries. Ramp enforces 200 requests per 10-second window.
  • Dual Environment - Switch between Demo (sandbox) and Production environments via credential configuration. Each environment requires separate Ramp app credentials.
  • Structured Errors - API error responses are parsed and surfaced as readable messages instead of raw HTTP status codes.

Installation

Community Nodes (Recommended)

  1. In n8n, go to Settings > Community Nodes
  2. Enter n8n-nodes-ramp
  3. Click Install
  4. Restart n8n if prompted

Manual Installation

cd ~/.n8n/custom
npm install n8n-nodes-ramp

Then restart n8n.

Multi-instance deployments: If running n8n with separate main and worker processes (queue mode), install the package on all instances - both main and workers. Workers without the package will throw "Unrecognized node type" errors.


Credential Setup

  1. Log in to the Ramp Developer Dashboard (or Demo Dashboard for sandbox)
  2. Go to Settings > Developer > Create New App
  3. Select Client Credentials grant type
  4. Copy the Client ID and Client Secret
  5. In n8n, create a new Ramp API credential and paste the values

Required Scopes

When creating your Ramp app, include these scopes:

| Scope | Used By | |-------|---------| | business:read | Business Info, Business Balance | | transactions:read | Transactions | | bills:read | Bills (Get, Get Many) | | bills:write | Bill Attachment Uploads | | receipts:read | Receipts | | entities:read | Entities | | accounting:read | Vendors (Accounting) | | accounting:write | Accounting sync operations | | webhooks:write | Webhook management, Trigger node | | departments:read | Departments | | locations:read | Locations | | merchants:read | Merchants | | limits:read | Spending Limits | | transfers:read | Transfers | | cashbacks:read | Cashbacks | | memos:read | Memos |

Environment Note

Create two separate credentials in n8n - one for Demo (sandbox), one for Production. Each requires separate Ramp app credentials created in the respective environment.

Testing the Connection

Click Test in the n8n credential form. The test performs a full token exchange and calls GET /business to verify the credentials and scopes are configured correctly.


Usage

Querying Transactions

Select Resource: Transaction and Operation: Get Many. Enable filters to narrow results:

  • Sync Status: SYNC_READY, SYNCED, or NOT_SYNCED
  • Date Range: From Date and To Date
  • Department: Filter by department ID

Enable Return All to automatically paginate through all matching transactions.

Uploading Bill Attachments

Select Resource: Bill and Operation: Upload Attachment.

  1. Provide the Bill ID of the finalized bill
  2. Set Binary Property to the name of the binary property containing your file (default: data)
  3. Choose Attachment Type: INVOICE or OTHER

The file data comes from any upstream node that produces binary output (HTTP Request downloading a file, Read Binary File, etc.).

Note: Only one INVOICE-type attachment is allowed per bill. Use OTHER for additional documents.

Fetching Receipts

Select Resource: Receipt and Operation: Get. The response includes a receipt_url field - use an HTTP Request node to download the actual receipt file if needed.

Real-Time Webhook Triggers

Add a Ramp Trigger node as the first node in your workflow:

  1. Select the Event Types to listen for
  2. Activate the workflow

n8n automatically registers the webhook with Ramp, handles the challenge verification handshake, and validates HMAC signatures on every incoming event. When you deactivate the workflow, the webhook is automatically cleaned up.


Common Workflow Examples

These are popular workflows built with this connector. For implementation help, contact SolutionLab.

Ramp Transactions to NetSuite Vendor Bills Use the Ramp Trigger (Transaction Ready to Sync) to capture cleared transactions, fetch receipt attachments, map accounting fields via data-table-driven transformation, and create vendor bills in NetSuite with line items and file attachments.

Ramp Bills to NetSuite with Attachments Trigger on Bill Approved, fetch the bill details and attachments, transform to NetSuite journal entry or vendor bill format, and post with the original invoice PDF attached.

Multi-Entity Transaction Routing For organizations with multiple Ramp entities mapped to NetSuite subsidiaries, route transactions to the correct subsidiary based on entity-to-subsidiary mapping tables.

Receipt Automation Pipeline Poll for new transactions, fetch associated receipts, download receipt files, and attach them to corresponding records in your ERP or document management system.

Daily Sync Status Reconciliation Schedule a daily workflow to query all SYNC_READY transactions and reimbursements, post them to your ERP, then update Ramp sync status with deep link URLs back to the created records.


Professional Services & Support

This node is developed and maintained by SolutionLab, a team that specializes in Ramp + NetSuite integrations, n8n workflow automation, and SuiteScript development.

Free vs Professional

| Capability | Free (this connector) | Professional (SolutionLab) | |---|---|---| | Transaction, Bill, Receipt querying | Included | - | | Bill attachment uploads | Included | - | | All 17 resources with pagination | Included | - | | Real-time webhook triggers with HMAC | Included | - | | Department, Location, Vendor lookups | Included | - | | Ramp to NetSuite transaction sync | - | End-to-end orchestration with field mapping | | Multi-entity to multi-subsidiary routing | - | Entity-subsidiary mapping and GL configuration | | Data-table-driven field transformation | - | Dynamic mapping tables for accounting fields | | Receipt-to-ERP attachment pipeline | - | Download, convert, and attach to NetSuite records | | Sync status posting with deep links | - | Mark synced in Ramp with URLs back to ERP records | | GL account and vendor sync | - | Full chart of accounts upload and vendor matching | | Custom accounting field configuration | - | Ramp accounting connection lifecycle management |

What We Build

  • Ramp to NetSuite end-to-end accounting sync - Transaction capture, field mapping, vendor bill creation, payment posting, and sync status updates - all automated
  • Multi-entity / multi-subsidiary routing - Transactions from different Ramp entities automatically routed to the correct NetSuite subsidiary with proper GL coding
  • Data-table-driven transformation engine - Configurable mapping tables that business users can update without touching workflow code
  • Receipt and attachment automation - Automatic receipt fetching, file conversion, and attachment to ERP records
  • Real-time webhook to ERP posting - Sub-minute latency from Ramp event to NetSuite record creation with HMAC security

Contact

Book a consultation | [email protected] | LinkedIn


API Notes

  • Amounts: Ramp returns monetary values in minor units (cents). Divide amount.amount by amount.minor_unit_conversion_rate (typically 100) to get the decimal value.
  • Rate Limits: Ramp enforces 200 requests per 10-second window. The node handles 429 responses with automatic exponential backoff (up to 3 retries).
  • Pagination: Get Many operations support a "Return All" toggle. When disabled, use the Limit parameter to control result count. Ramp uses cursor-based pagination internally.
  • Environments: Demo API (demo-api.ramp.com) and Production API (api.ramp.com) are completely separate. Credentials from one environment do not work in the other.

Related

  • n8n-nodes-netsuite-v2 - NetSuite community node by SolutionLab. Together with this Ramp connector, they form a complete Ramp + NetSuite integration platform.

Troubleshooting

| Error | Cause | Solution | |-------|-------|----------| | Scopes not allowed for this client | Ramp app missing required scopes | Add all required scopes in the Ramp Developer Dashboard and recreate the app | | Connection failed: 403 | Invalid credentials or scopes | Verify Client ID/Secret match the correct environment (Demo vs Production) | | Unrecognized node type: rampTrigger | Workers missing the community node | Install n8n-nodes-ramp on all n8n instances (main + workers) | | No output data returned (Trigger) | HMAC signature verification failing | Deactivate and reactivate the workflow to re-register the webhook with a fresh secret | | 429 Too Many Requests | Rate limit exceeded despite backoff | Reduce workflow concurrency or add Wait nodes between API calls | | Invalid webhook signature | Webhook secret mismatch | Deactivate the workflow, wait 30 seconds, then reactivate to register a new webhook | | INVOICE attachment already exists | Duplicate invoice upload attempt | Use attachment type OTHER for additional documents, or delete the existing invoice first |


Contributing

git clone https://github.com/avishaiasaf/n8n-node-ramp.git
cd n8n-node-ramp
npm install
npm run build

Submit issues and pull requests via GitHub.


License

MIT