n8n-nodes-maxio
v1.0.0
Published
A comprehensive n8n community node for Maxio (Chargify) B2B subscription billing platform providing 12 resources and 80+ operations for subscription management, invoicing, customer accounts, and payment processing.
Maintainers
Readme
n8n-nodes-maxio
[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].
A comprehensive n8n community node for Maxio (formerly Chargify), a B2B subscription billing and revenue management platform. This node enables workflow automation for subscription lifecycle management, usage-based billing, component pricing, invoice operations, and customer account management.
Features
- 12 Resources with comprehensive operations covering all major Maxio functionality
- 80+ Operations for complete subscription billing automation
- Webhook Triggers for 30+ event types to build reactive workflows
- Full TypeScript Support with complete type definitions
- Pagination Support for efficient handling of large datasets
- Error Handling with detailed error messages and retry logic
Installation
Community Nodes (Recommended)
- Open your n8n instance
- Go to Settings > Community Nodes
- Click Install a community node
- Enter
n8n-nodes-maxio - Click Install
Manual Installation
# Navigate to your n8n installation directory
cd ~/.n8n
# Install the package
npm install n8n-nodes-maxioDevelopment Installation
# Clone the repository
git clone https://github.com/Velocity-BPA/n8n-nodes-maxio.git
cd n8n-nodes-maxio
# Install dependencies
npm install
# Build the project
npm run build
# Link to n8n
mkdir -p ~/.n8n/custom
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-maxio
# Restart n8nCredentials Setup
To use this node, you need Maxio API credentials:
| Field | Description |
|-------|-------------|
| API Key | Your Maxio API key from Config > Integrations > API Access |
| Subdomain | Your Maxio subdomain (e.g., yourcompany from yourcompany.chargify.com) |
Getting Your API Key
- Log in to your Maxio/Chargify account
- Navigate to Config > Integrations > API Access
- Copy your API Key
- Note your subdomain from the URL
Resources & Operations
Subscription (20 operations)
get- Get subscription by IDgetAll- List all subscriptions with filterscreate- Create a new subscriptionupdate- Update subscription detailscancel- Cancel subscription (immediate or delayed)reactivate- Reactivate canceled subscriptionresetBalance- Reset subscription balanceupdateProduct- Change subscription productupdatePaymentProfile- Change payment methodpreviewRenewal- Preview next renewalpreviewMigration- Preview product migrationaddCoupon- Apply coupon to subscriptionremoveCoupon- Remove coupon from subscriptiongetPrepayments- Get prepayment balancecreatePrepayment- Add prepaymentrefundPrepayment- Refund prepaymentgetEvents- Get subscription eventsgetMetadata- Get subscription metadatasetMetadata- Set subscription metadataoverride- Admin override subscription settings
Customer (9 operations)
create- Create a new customerget- Get customer by IDgetAll- List all customersupdate- Update customer detailsdelete- Delete a customergetSubscriptions- Get customer subscriptionsgetPaymentProfiles- Get payment profilesgetMetadata- Get customer metadatasetMetadata- Set customer metadata
Product (6 operations)
get- Get product by ID or handlegetAll- List all productscreate- Create a new productupdate- Update product detailsarchive- Archive a productgetComponents- Get product components
Component (13 operations)
get- Get component by IDgetAll- List all components for product familycreate- Create a new componentupdate- Update componentarchive- Archive a componentgetAllocations- Get component allocationscreateAllocation- Create/update allocationgetAllPricePoints- Get pricing tierscreatePricePoint- Create price pointupdatePricePoint- Update price pointarchivePricePoint- Archive price pointlistUsages- List usage recordscreateUsage- Record usage
Invoice (13 operations)
get- Get invoice by ID or UIDgetAll- List all invoicescreate- Create ad-hoc invoicevoid- Void an invoicerefund- Refund an invoiceissueAdvanceInvoice- Issue invoice in advancerecordPayment- Record external paymentapplyPayment- Apply payment to invoiceapplyCredit- Apply credit notesendEmail- Send invoice emailgetEvents- Get invoice eventsgetLineItems- Get line item detailsgetCreditNotes- Get related credit notes
Payment Profile (6 operations)
get- Get payment profile by IDgetAll- List payment profiles for customercreate- Create payment profileupdate- Update payment profiledelete- Delete payment profilesetDefault- Set as default payment method
Coupon (9 operations)
get- Get coupon by ID or codegetAll- List all couponscreate- Create a new couponupdate- Update coupon detailsarchive- Archive a coupongetSubcodes- Get subcodes for couponcreateSubcodes- Generate subcodesdeleteSubcode- Delete a subcodegetUsages- Get coupon usage
Product Family (7 operations)
get- Get product family by IDgetAll- List all product familiescreate- Create product familyupdate- Update product familygetProducts- Get products in familygetComponents- Get components in familygetCoupons- Get coupons in family
Statement (3 operations)
get- Get statement by IDgetAll- List statements for subscriptiongetIds- Get statement IDs in date range
Transaction (4 operations)
get- Get transaction by IDgetAll- List all transactionsrefund- Refund a transactionvoid- Void a transaction
Webhook (7 operations)
getEndpoints- List webhook endpointscreateEndpoint- Create endpointupdateEndpoint- Update endpointdeleteEndpoint- Delete endpointenableWebhooks- Enable webhooksreplayWebhooks- Replay failed webhookslistWebhooks- List recent webhooks
Site (3 operations)
get- Get site detailsclearData- Clear test/sandbox datagetStats- Get site statistics
Trigger Node
The Maxio Trigger node allows you to start workflows based on Maxio events via webhooks.
Supported Events
| Event | Description |
|-------|-------------|
| signup_success | New subscription created successfully |
| signup_failure | Subscription creation failed |
| payment_success | Payment completed successfully |
| payment_failure | Payment failed |
| renewal_success | Subscription renewed successfully |
| renewal_failure | Subscription renewal failed |
| subscription_state_change | Subscription state changed |
| subscription_product_change | Product changed on subscription |
| subscription_card_update | Payment card updated |
| invoice_issued | New invoice issued |
| customer_create | New customer created |
| customer_update | Customer updated |
| customer_delete | Customer deleted |
| component_allocation_change | Component allocation modified |
| metered_usage | Usage recorded |
| refund_success | Refund completed |
| refund_failure | Refund failed |
| dunning_step_reached | Dunning milestone reached |
| expiring_card | Card expiring soon |
| statement_closed | Statement closed |
| statement_settled | Statement settled |
| upgrade_downgrade_success | Migration succeeded |
| upgrade_downgrade_failure | Migration failed |
| upcoming_renewal_notice | Renewal approaching |
| And more... | |
Usage Examples
Create a Customer and Subscription
{
"nodes": [
{
"name": "Create Customer",
"type": "n8n-nodes-maxio.maxio",
"parameters": {
"resource": "customer",
"operation": "create",
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"organization": "Acme Corp"
}
},
{
"name": "Create Subscription",
"type": "n8n-nodes-maxio.maxio",
"parameters": {
"resource": "subscription",
"operation": "create",
"customerId": "={{ $json.customer.id }}",
"productHandle": "basic-plan"
}
}
]
}Handle Payment Failures
Use the Maxio Trigger node to listen for payment_failure events and send notifications or take corrective action.
Record Metered Usage
{
"name": "Record Usage",
"type": "n8n-nodes-maxio.maxio",
"parameters": {
"resource": "component",
"operation": "createUsage",
"subscriptionId": 12345,
"componentId": 67890,
"quantity": 100,
"memo": "API calls for January 2024"
}
}Maxio Concepts
Subscriptions
Subscriptions represent the billing relationship between a customer and a product. They track the customer's payment status, billing dates, and any applied coupons or components.
Components
Components are add-ons or usage-based items that can be attached to subscriptions. Types include:
- Quantity-based: Fixed quantity per billing period
- Metered: Usage recorded and billed at period end
- On/Off: Binary feature flags
- Prepaid: Pre-purchased usage credits
Product Families
Product families group related products and components together, making it easier to manage pricing and offerings.
Invoices
Invoices are billing documents generated for subscriptions. They can be automatic (from renewals) or ad-hoc (manually created).
Error Handling
The node handles common Maxio API errors:
| Status Code | Description | |-------------|-------------| | 401 | Invalid API credentials | | 403 | Access denied | | 404 | Resource not found | | 422 | Validation error | | 429 | Rate limit exceeded (automatic retry) | | 500 | Server error |
The node implements automatic retry with exponential backoff for rate limiting (429) and server errors (5xx).
Security Best Practices
- Store credentials securely - Use n8n's credential system
- Use test environments - Test workflows in sandbox before production
- Limit API access - Use read-only keys when possible
- Monitor webhook endpoints - Regularly audit webhook configurations
- Validate webhook signatures - The trigger node automatically verifies signatures
Development
# Install dependencies
npm install
# Build the project
npm run build
# Run linting
npm run lint
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Watch mode for development
npm run devAuthor
Velocity BPA
- Website: velobpa.com
- GitHub: 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 your code follows the existing style and includes tests.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
Support
- Issues: GitHub Issues
- Documentation: Maxio API Docs
- n8n Community: n8n Community Forum
