ERP API Platform

Build on a
100% open ERP API.

Unlike legacy ERPs that charge $500-1000+/month for API access or restrict integrations, Fulfil gives Shopify Plus and DTC brands complete programmatic control. Every ERP function in the UI is available through our API. No artificial restrictions, no per-call fees, no surprises.

Push Shopify order to ERP
POST /services/channels/v1/orders.json

{
  "channel_identifier": "SHOPIFY-1234",
  "confirmed_at": "2025-10-01T08:20:23",
  "status": "pending",
  "customer": {
    "name": "John Doe",
    "contacts": [["email", "john@example.com"]]
  },
  "lines": [{
    "sku": "PROD-001",
    "quantity": 2
  }]
}

# Response: Order created in ERP
{
  "id": 5042,
  "number": "SO-5042",
  "status": "confirmed"
}

Why Fulfil's ERP API vs Legacy ERP APIs

Built for modern DTC and Shopify Plus brands, not enterprise IT departments

Feature Legacy ERPs Fulfil ERP API
API Access Cost $500-1000+/month for API access ✓ Included free with every plan
Rate Limits Limited to 100-500 calls/minute ✓ 1000+ calls/minute standard
API Coverage Restricted endpoints, missing functions ✓ 100% coverage - every UI function
Technology Complex SOAP/XML from the 2000s ✓ Modern REST with JSON
Sandbox Setup Weeks to provision environments ✓ Instant sandbox with every account
Documentation Scattered docs, inconsistent examples ✓ Complete docs with working examples

Our ERP API powers everything from single Shopify stores to complex omnichannel operations with 10+ sales channels and multiple 3PLs.

Four APIs for every integration

Purpose-built APIs for eCommerce channels, 3PL operations, shipping carriers, and custom ERP extensions

Admin REST API

6,000+ Endpoints • OAuth 2.0 • Personal Access Tokens

The primary API for building custom ERP applications. Full access to all Fulfil models and operations with comprehensive read/write capabilities. Create, read, update, and delete records across all models, execute actions, generate reports, and run multi-step wizards.

Core Data Operations

CRUD operations across all models
Advanced search and filtering
Bulk read and count operations
Report generation and execution
Model-specific actions (single or bulk)
Multi-step wizards and async tasks

Orders & Sales

  • Sales Orders
  • Invoices
  • Customer Payments
  • Checkout and Cart Management
  • Shipping Rate Calculations

Inventory & Warehouse

  • Inventory Counts
  • Bin Transfers
  • Putaway Operations
  • Inventory Planning and Allocation
  • Warehouse Configuration

Shipping & Fulfillment

  • Customer Shipments (Outbound)
  • Supplier Shipments (Inbound)
  • Internal Transfers
  • Returns Processing
  • In-Store Pickups
  • Picking, Packing, and Label Generation

Manufacturing & Production

  • Production Orders
  • Work Orders
  • Production Batches
  • Bill of Materials
  • Work Center Operations

Third-Party Logistics (3PL)

  • Warehouse Dashboard
  • Shipment Management
  • Incoming and Outgoing Transfers
  • Receiving
  • Manufacturing Order Tracking

General Ledger & Journal Entries

  • Chart of Accounts
  • Account Types
  • Journal Entries & Templates
  • Journal Entry Reversal
  • Fiscal Years & Accounting Periods

Invoicing

  • Customer & Supplier Invoices
  • Invoice Lines & Tax Lines
  • Invoice Credits & Refunds
  • Invoice Merging
  • Payment Terms
  • Supplier Invoice PDF Upload

Payments

  • Customer Payments & Allocations
  • Supplier Payments & Allocations
  • Payment Links
  • Payment Gateway Transactions
  • Payment Matching & Reconciliation

Accounts Receivable & Payable

  • Open Receivables Dashboard
  • Receivables Processing
  • Open Payables Dashboard
  • Payables Processing & Pay Runs

Banking

  • Bank Accounts & Statements
  • Bank Statement Import
  • Transaction Coding & Suggestions
  • Bank Reconciliation
  • Auto-Reconciliation Rules
  • Financial Connections
  • Receipt Review

Costing

  • Fixed Assets & Depreciation
  • Budgets & Variance
  • Landed Cost Allocation & Preview
  • Amortization Schedules
  • Currencies & Exchange Rates

Cost Centers

  • Classes, Categories & Groups
  • Allocation Templates
  • Line Allocation

Royalties

  • Royalty Agreements & Rates
  • Royalty Transactions & Invoice Generation

Developer Tools

  • API Usage Analytics
  • Webhook Management
  • API Playground

Media & Files

  • Media Management
  • File Import
  • Attachment Management

Channel Integration API

JWT Authentication

Built for custom sales channels and marketplaces not natively supported by Fulfil. Push orders to the ERP, sync inventory across channels, and update fulfillment status in real-time.

  • Push custom channel orders
  • Real-time inventory sync
  • Fulfillment updates
  • Returns handling

3PL Integration API

JWT Authentication

Designed for third-party logistics providers. Each 3PL gets independent API access to manage their assigned warehouse operations and orders.

  • Pick, pack, ship orders
  • Receive inventory
  • Update stock levels
  • Returns processing

Carrier Integration API

Carrier-dependent auth

Connect regional or international shipping carriers for better rates and delivery times in specific markets.

  • Rate shopping
  • Label generation
  • Tracking webhooks
  • Manifest creation

Building ETL for Analytics? Use the Data Warehouse Instead

If you're considering the API to extract data for analytics or reporting, skip the API integration entirely. Fulfil includes a fully managed Google BigQuery data warehouse with zero setup, no API calls, no rate limits, and no ETL pipelines to build.

Automatic provisioning - ready from day one
Near real-time sync - updates multiple times per hour
AI Copilot - natural language to SQL
Google Sheets integration - no BI tool required
Connect any BI tool - Looker, Tableau, Power BI, Metabase
Zero impact on operations - queries run in BigQuery

Included with your Fulfil ERP. No extra cost for the data warehouse and no setup required. Your Shopify orders, Amazon inventory, 3PL shipments, and financials sync automatically. Daily query quota included sufficient for most analytics workloads.

Learn more about the Data Warehouse
REAL-TIME UPDATES

Webhooks for real-time ERP integrations

Stop polling the API. Fulfil sends instant webhook notifications when orders are created, inventory changes, shipments go out, or any ERP event occurs. Critical for keeping custom apps and external systems in sync with your ERP.

  • Order webhooks
    Get notified when orders are created, confirmed, or cancelled in the ERP
  • Inventory webhooks
    Real-time updates when stock levels change across warehouses
  • Fulfillment webhooks
    Instant notification when 3PLs ship orders with tracking numbers
  • Custom event webhooks
    Subscribe to any ERP model change for custom workflows

Large-scale operations: For high-volume integrations, Fulfil supports Google Pub/Sub as an alternative to HTTP-based webhooks, providing reliable message delivery with automatic retry and scaling.

Webhook payload
# Webhook sent when order ships
POST https://your-app.com/webhooks

{
  "event": "shipment.created",
  "data": {
    "order_number": "SO-5042",
    "tracking_number": "1Z999AA10123456",
    "carrier": "UPS",
    "shipped_at": "2025-10-01T14:30:00Z"
  }
}

# Your app updates Shopify
await shopify.fulfillments.create({
  tracking_number: "1Z999AA10123456"
})
Quick Start

Start building in 3 steps, 5 minutes

Get your ERP API credentials and make your first request in under 5 minutes. No complex setup, no infrastructure, no waiting for IT to provision access.

1

Generate API credentials (1 minute)

Log into Fulfil → User Preferences → Generate Personal Access Token. Copy the token.

2

Make your first ERP API request (2 minutes)

Use basic authentication with your token to fetch orders, inventory, or any ERP data. All responses return JSON.

3

Browse the API reference (2 minutes)

Explore endpoints for Shopify integration, 3PL management, inventory sync, and more with working code examples.

Step 2: First API call
# Fetch your ERP orders
curl -u YOUR_TOKEN: \
  https://merchant.fulfil.app/api/v2/model/sales_order

# Response (200 OK) - 2 seconds
{
  "data": [{
    "id": 5042,
    "number": "SO-5042",
    "channel": "Shopify",
    "total": "199.99"
  }],
  "count": 150
}
Create a purchase order
POST /api/v2/model/purchase_order

{
  "supplier": 4,
  "warehouse": 18,
  "lines": [{
    "product": 31,
    "quantity": 10,
    "unit_price": "3.00"
  }]
}

# Response (201 Created)
{
  "id": 892,
  "number": "PO-892",
  "state": "draft"
}

Real DTC use cases

See how Shopify Plus and omnichannel brands use Fulfil's APIs in production

🛒

Headless Shopify Plus Integration

Brands running headless Shopify Plus storefronts (React, Vue, Next.js) use Fulfil's ERP API to bypass Shopify's native inventory limitations. Push orders in real-time, sync inventory across unlimited locations, and manage fulfillment across multiple 3PLs all without Shopify's SKU or location constraints.

Channel Integration API • Admin REST API
Use case: Headless storefronts can bypass Shopify's native inventory and location limitations by connecting directly to Fulfil's ERP API.
🏭

Multi-3PL Orchestration

Growing DTC brands scaling from 1 warehouse to 5+ 3PLs use Fulfil's 3PL Integration API to give each logistics partner independent access. Each 3PL sees only their assigned inventory and orders, picks/packs/ships autonomously, and updates tracking all without your team coordinating manually.

3PL Integration API
Example: Home goods brand reduced fulfillment coordination time from 10 hours/week to zero by giving 4 regional 3PLs direct ERP API access.
🌐

Extend Beyond Native Integrations

While Shopify and Amazon connect natively, brands use the Channel Integration API to add proprietary B2B portals, regional marketplaces, or custom storefronts. Extend Fulfil's ERP beyond what's available out-of-the-box while maintaining unified inventory and order management across all channels.

Channel Integration API • Webhooks
Use case: Brands with native Shopify/Amazon integrations extend their ERP to custom B2B portals, regional marketplaces, and proprietary channels using the Channel Integration API.
🚚

Regional Carrier Integration

DTC brands shipping internationally use Fulfil's Carrier Integration API to connect regional carriers for better rates and delivery times in specific markets. Add support for Canada Post, Australia Post, Royal Mail, or any carrier with an API.

Carrier Integration API
Example: Apparel brand reduced UK shipping costs by 30% by integrating Royal Mail through Fulfil's Carrier API instead of using US carriers for international shipments.
📊

Custom Dashboards & BI Tools

Build internal dashboards, financial reports, and analytics tools tailored to your business. Extract ERP data for custom reporting, connect to Looker/Tableau, or build React dashboards for operations teams.

Admin REST API • Data Warehouse API
Example: DTC brand built a custom React dashboard showing real-time profitability by SKU, channel, and 3PL using Fulfil's Admin REST API.
💳

Custom Accounting & Financial Workflows

Connect proprietary payment processors, sync financial data with accounting systems, and build custom invoicing workflows. B2B brands use Fulfil's ERP API to generate custom invoices with net terms, volume discounts, and approval workflows that legacy ERPs can't handle.

Admin REST API
Example: B2B brand automated custom invoice generation with tiered pricing, net-60 terms, and automatic approval routing using Fulfil's API something their old ERP couldn't do.

Built for modern developers

Everything you need to build powerful ERP integrations and custom applications for DTC commerce

Comprehensive Docs

Complete ERP API reference with Shopify integration examples, authentication guides, and best practices for DTC brands.

RESTful & JSON

Standard REST principles with JSON payloads. No SOAP, no XML, no proprietary formats from legacy ERP systems.

Secure by Default

OAuth 2.0, personal access tokens, and granular ERP permissions. HTTPS everywhere, industry-standard security.

Advanced Filtering

Powerful query language for filtering, sorting, and searching across all ERP data models. Find exactly what you need.

Batch Operations

Create, update, or delete multiple ERP records in a single API call for better performance and efficiency.

Instant Sandbox

Every Fulfil ERP account includes a sandbox environment. Test integrations without affecting production data.

Developers building on Fulfil

Watch how developers have built custom applications on our platform

Zach Flynn - Developer Story
Developer Story
Zach Flynn

Zach Flynn

Developer

Stefan Vermaas - Developer Story
Developer Story
Stefan Vermaas

Stefan Vermaas

Developer

Dax Miller - Developer Story
Developer Story
Dax Miller

Dax Miller

Developer

FAQ

Frequently asked questions.

Which API should I use for my Shopify Plus integration?
Shopify Plus and Amazon are native integrations: you don't need an API or middleware. Fulfil connects directly using their official APIs. Authenticate your store in Fulfil's settings and orders sync, inventory updates push in real-time, and fulfillment/tracking flow back automatically. Use the Channel Integration API only if you're building a custom sales channel that Fulfil doesn't natively support. Use the Admin REST API for headless commerce or custom internal tools. Use the 3PL Integration API if you're a logistics provider. Use the Carrier Integration API to add shipping carriers not natively supported.
Does Fulfil charge extra for API access like other ERPs?
No. Native integrations with Shopify, Amazon, and other major channels are included at no extra cost, with no API development or middleware fees. For custom API integrations, unlike legacy ERPs that charge $500-1000+/month for API access, Fulfil includes complete API access with every plan. No premium tiers, no per-call fees.
How do I authenticate with the ERP API?
The Admin REST API supports OAuth 2.0 for public apps and personal access tokens for private integrations. Personal access tokens use HTTP Basic Authentication. The Channel Integration API and 3PL Integration API use JWT tokens. All requests must use HTTPS.
Are there rate limits on API requests?
The standard rate limit is 1000+ requests per minute, far higher than most legacy ERPs that limit you to 100-500 calls/minute. For high-volume Shopify Plus brands or custom integrations with extreme needs, contact our team to discuss your requirements.
Can I test the ERP API before going live with my Shopify integration?
For native Shopify and Amazon integrations, you can test in Fulfil's sandbox environment without needing API development. Simply connect a test store and validate the integration. For custom API integrations, every Fulfil account includes an instant sandbox environment where you can test orders, inventory, and shipments before going live.
What does '100% open API' actually mean?
Every function you see in Fulfil's UI is available through the API. If you can do it by clicking in the ERP, you can do it programmatically. No artificial restrictions, no 'premium only' endpoints, no hidden features.
Is there an SDK or client library for the ERP API?
The APIs are RESTful and work with any HTTP client. We provide code examples in cURL, Python, JavaScript, and other popular languages. The standard REST interface means you can use any HTTP library in your preferred programming language, no proprietary SDKs required.
What support is available for API development?
For native Shopify and Amazon integrations, our support team can help with setup and troubleshooting, no API development needed. For custom API integrations, complete documentation is available at docs.fulfil.io/developers. For technical support with custom channels, 3PL integrations, or API development, email our support team or create a support ticket.
Is there a Fulfil partnership program for developers?
Yes. If you're building Shopify apps, marketplace integrations, or tools for DTC brands on top of Fulfil's ERP API, we'd love to hear from you. Reach out via the partnerships page to discuss how your integration might benefit other customers.

Ready to start building
on Fulfil's ERP API?

Explore our API documentation or talk to our team about your integration needs.