Accounts Payable Management
Overview
Accounts payable (AP) management covers ingesting supplier invoices, matching them against purchase orders and goods receipts, scheduling payments, capturing early-payment discounts, and reconciling against the vendor ledger. For most e-commerce merchants, a dedicated AP tool or accounting software integration handles this far better than custom code.
When to Use This Skill
- When your AP team is manually keying invoices from PDFs into spreadsheets and payment delays are causing vendor friction
- When you need automated three-way matching between purchase orders, goods receipts, and invoices
- When early-payment discounts (e.g., 2/10 net 30) are being missed because payment scheduling is reactive
- When preparing for an ERP integration (NetSuite, SAP, QuickBooks) and need a clean AP data model
- When audit requirements demand an immutable record of every invoice approval, payment authorization, and GL posting
Core Instructions
Step 1: Determine your current setup and choose the right AP tool
| Store Stage |
Recommended Tool |
Why |
| Small (< $1M revenue) |
QuickBooks Online or Xero |
Both handle AP with supplier invoices, payment scheduling, and bank reconciliation; integrate with Shopify/WooCommerce via native connectors |
| Mid-market ($1M–$20M) |
BILL (formerly Bill.com) or Tipalti |
BILL handles invoice capture via email, approval workflows, ACH/check payments, and vendor portals; Tipalti adds mass global payments |
| Enterprise ($20M+) |
NetSuite ERP or SAP Business One |
Full ERP with three-way matching, GL coding, and multi-entity consolidation |
| Custom / Headless |
Build an AP data model + integrate with Stripe Treasury or Plaid for payments |
For platforms with non-standard procurement workflows |
Step 2: Connect your e-commerce platform to your AP system
Shopify
Connect Shopify to QuickBooks Online:
- Install QuickBooks Online connector from the Shopify App Store (free, by Intuit) or use A2X (paid, more reliable for high-volume)
- The connector syncs Shopify sales, refunds, and payouts to QuickBooks automatically
- In QuickBooks → Expenses → Vendors, manage your supplier invoices and payment schedules
- Enter vendor invoices manually in QuickBooks or forward supplier invoices to your QuickBooks inbox email (QuickBooks extracts invoice data via OCR)
Connect Shopify to BILL:
- Install BILL from the Shopify App Store or connect via Zapier
- BILL receives supplier invoices via email (forward to your BILL inbox address)
- BILL extracts invoice data, routes for approval based on your rules, and schedules ACH or check payments
- For Shopify inventory vendors: create purchase orders in BILL and match incoming invoices against them
WooCommerce
Connect WooCommerce to QuickBooks:
- Install the QuickBooks Online plugin from WooCommerce.com (official extension)
- Configure sync settings: sales orders, refunds, and fees sync automatically
- Manage supplier invoices in QuickBooks → Expenses
Connect WooCommerce to Xero:
- Install Xero from WooCommerce.com or use a third-party connector like WooSync or Xero for WooCommerce by Codisto
- Xero handles AP with a built-in bills module, payment approvals, and bank reconciliation
BigCommerce
Connect BigCommerce to QuickBooks:
- Use QuickBooks Online connector from the BigCommerce App Marketplace or A2X Accounting
- A2X is specifically designed for e-commerce accounting and handles Shopify/WooCommerce/BigCommerce → QuickBooks sync accurately
Connect BigCommerce to NetSuite:
- Use the NetSuite Connector from the BigCommerce App Marketplace or a middleware like Celigo or Boomi
- NetSuite provides enterprise AP with full three-way matching, multi-entity support, and audit trails
Step 3: Set up invoice capture and approval workflows
Using BILL (best-in-class dedicated AP tool)
- Invoice capture: Forward supplier invoices to your BILL inbox email or have suppliers submit directly via a BILL supplier portal link
- AP inbox in BILL: Review captured invoices at BILL → Payables → Inbox; BILL's OCR extracts vendor name, invoice number, date, amount, and due date
- Approval routing: Go to BILL → Settings → Approval Policies to configure amount-based routing:
- Under $500: auto-approve
- $500–$5,000: AP Manager approval
- $5,000–$50,000: Controller approval
- Over $50,000: CFO approval
- Approvers receive an email with a one-click approve/reject link
- Payment scheduling: BILL schedules payments based on vendor due dates; you can also set to pay X days before due date to capture 2/10 early discounts
Using QuickBooks Online for smaller operations
- Go to Expenses → Vendors → [Vendor] → New Transaction → Bill
- Enter invoice details manually or forward the invoice PDF to your QuickBooks inbox email
- Set the due date based on vendor terms (e.g., net 30)
- To pay: go to Expenses → Pay Bills, select invoices due, choose payment method (bank transfer, check)
- QuickBooks tracks outstanding AP and generates an aging report (Reports → Accounts Payable Aging)
Step 4: Implement three-way matching
Three-way matching compares: the purchase order (what you ordered), the goods receipt (what you received), and the vendor invoice (what the vendor is charging).
In NetSuite:
- NetSuite handles three-way matching natively — create a PO, receive the goods (Inventory → Receive Inventory), then match the vendor bill against both; discrepancies auto-flag as exceptions
In QuickBooks:
- QuickBooks does not do three-way matching automatically
- Workflow: create a PO in QuickBooks (Expenses → Purchase Orders), receive the items in inventory, then match the bill to the PO manually
- Third-party add-on: Zahara or Lightyear add PO matching and approval automation on top of QuickBooks
In BILL:
- BILL supports PO matching — create POs in BILL, then when an invoice arrives, BILL prompts you to match it against an open PO
Step 5: Capture early-payment discounts
Common vendor terms are "2/10 net 30" — 2% discount if paid within 10 days, full amount due in 30.
In BILL:
- In your vendor record, set payment terms to "2/10 Net 30"
- BILL automatically flags invoices where early payment would save money
- Go to BILL → Payables → Early Pay to see all discount opportunities sorted by savings amount
In QuickBooks:
- When entering a vendor bill, set the payment terms to "2/10 Net 30"
- QuickBooks calculates the discount amount automatically
- When paying: select the bill and QuickBooks shows the discount available if paid today
Key rule: Set a weekly payment run on a fixed day (e.g., every Tuesday). Pay all invoices due in the next 10 days. This captures early discounts systematically without manual review.
Step 6: Reconcile and report
AP aging report
Run monthly to see all outstanding payables by age:
- QuickBooks: Reports → Accounts Payable Aging Summary
- BILL: Reports → AP Aging
- Xero: Reports → Aged Payables Summary
This shows you what's current, 30–60 days, 60–90 days, and 90+ days overdue.
Cash flow forecast
- QuickBooks: Reports → Cash Flow Forecast (shows projected outflows based on bill due dates)
- Float (add-on for QuickBooks/Xero): provides a more accurate 90-day cash flow forecast including AP obligations
Custom / Headless — core AP data model
// Minimal AP invoice schema for custom implementations
interface ApInvoice {
id: string;
vendorId: string;
invoiceNumber: string; // unique per vendor
invoiceDate: Date;
dueDate: Date;
currency: string; // 'USD'
totalCents: number;
paidCents: number; // increments as payments are applied
status: 'received' | 'pending_approval' | 'approved' | 'scheduled' | 'paid' | 'disputed';
poId?: string; // linked purchase order for matching
earlyDiscountRate?: number; // e.g., 0.02 for 2%
earlyDiscountDeadline?: Date;
}
// Identify invoices where early payment saves money
function findEarlyPaymentOpportunities(
invoices: ApInvoice[],
todayDate: Date
): { invoiceId: string; discountCents: number; deadline: Date }[] {
return invoices
.filter(inv => inv.status === 'approved')
.filter(inv => inv.earlyDiscountRate && inv.earlyDiscountDeadline! > todayDate)
.map(inv => ({
invoiceId: inv.id,
discountCents: Math.round(inv.totalCents * inv.earlyDiscountRate!),
deadline: inv.earlyDiscountDeadline!,
}))
.sort((a, b) => b.discountCents - a.discountCents);
}
Best Practices
- Separate invoice approval from payment authorization — the person who approves an invoice should not be the person who initiates the payment; this is a basic internal control
- Run payment runs on a fixed weekly cadence — predictable payment dates reduce bank fees, simplify cash forecasting, and vendors learn to expect payment on those days
- Store original invoice PDFs for 7 years — attach the PDF to every bill in QuickBooks/BILL; required for tax audits and vendor disputes
- Send remittance advice — when paying multiple invoices in one ACH batch, email the vendor a list of which invoices were paid and for what amounts so they can reconcile their AR
- Lock invoice amounts after approval — never edit a bill's total after it's been approved; create a credit memo or debit memo for adjustments instead
Common Pitfalls
| Problem |
Solution |
| Duplicate invoice payments |
QuickBooks and BILL both alert on duplicate invoice numbers per vendor — enable these warnings and require staff to acknowledge them before saving |
| Early discount window missed because invoice sat in approval queue |
Add a "discount deadline" badge in your approval tool; BILL shows this prominently; set escalation reminders 2 days before the discount expires |
| AP aging report shows negative balances |
Vendor credits and credit memos can create negative balances; ensure credits are applied against open invoices as part of your payment run |
| Vendor disputes payment amount |
Always store the PO, goods receipt, and invoice together with your matching result; this is your paper trail for disputes |
Related Skills
- @vendor-management
- @order-management-system
- @returns-refund-policy
1---2name: accounts-payable-management3description: Manage supplier invoices and vendor payments with automated receipt matching, payment scheduling, early discount optimization, and reconciliation workflows4---56# Accounts Payable Management78## Overview910Accounts payable (AP) management covers ingesting supplier invoices, matching them against purchase orders and goods receipts, scheduling payments, capturing early-payment discounts, and reconciling against the vendor ledger. For most e-commerce merchants, a dedicated AP tool or accounting software integration handles this far better than custom code.1112## When to Use This Skill1314- When your AP team is manually keying invoices from PDFs into spreadsheets and payment delays are causing vendor friction15- When you need automated three-way matching between purchase orders, goods receipts, and invoices16- When early-payment discounts (e.g., 2/10 net 30) are being missed because payment scheduling is reactive17- When preparing for an ERP integration (NetSuite, SAP, QuickBooks) and need a clean AP data model18- When audit requirements demand an immutable record of every invoice approval, payment authorization, and GL posting1920## Core Instructions2122### Step 1: Determine your current setup and choose the right AP tool2324| Store Stage | Recommended Tool | Why |25|-------------|-----------------|-----|26| **Small (< $1M revenue)** | QuickBooks Online or Xero | Both handle AP with supplier invoices, payment scheduling, and bank reconciliation; integrate with Shopify/WooCommerce via native connectors |27| **Mid-market ($1M–$20M)** | BILL (formerly Bill.com) or Tipalti | BILL handles invoice capture via email, approval workflows, ACH/check payments, and vendor portals; Tipalti adds mass global payments |28| **Enterprise ($20M+)** | NetSuite ERP or SAP Business One | Full ERP with three-way matching, GL coding, and multi-entity consolidation |29| **Custom / Headless** | Build an AP data model + integrate with Stripe Treasury or Plaid for payments | For platforms with non-standard procurement workflows |3031### Step 2: Connect your e-commerce platform to your AP system3233#### Shopify3435**Connect Shopify to QuickBooks Online:**361. Install **QuickBooks Online** connector from the Shopify App Store (free, by Intuit) or use **A2X** (paid, more reliable for high-volume)372. The connector syncs Shopify sales, refunds, and payouts to QuickBooks automatically383. In QuickBooks → Expenses → Vendors, manage your supplier invoices and payment schedules394. Enter vendor invoices manually in QuickBooks or forward supplier invoices to your QuickBooks inbox email (QuickBooks extracts invoice data via OCR)4041**Connect Shopify to BILL:**421. Install **BILL** from the Shopify App Store or connect via Zapier432. BILL receives supplier invoices via email (forward to your BILL inbox address)443. BILL extracts invoice data, routes for approval based on your rules, and schedules ACH or check payments454. For Shopify inventory vendors: create purchase orders in BILL and match incoming invoices against them4647#### WooCommerce4849**Connect WooCommerce to QuickBooks:**501. Install the **QuickBooks Online** plugin from WooCommerce.com (official extension)512. Configure sync settings: sales orders, refunds, and fees sync automatically523. Manage supplier invoices in QuickBooks → Expenses5354**Connect WooCommerce to Xero:**551. Install **Xero** from WooCommerce.com or use a third-party connector like **WooSync** or **Xero for WooCommerce** by Codisto562. Xero handles AP with a built-in bills module, payment approvals, and bank reconciliation5758#### BigCommerce5960**Connect BigCommerce to QuickBooks:**611. Use **QuickBooks Online** connector from the BigCommerce App Marketplace or **A2X Accounting**622. A2X is specifically designed for e-commerce accounting and handles Shopify/WooCommerce/BigCommerce → QuickBooks sync accurately6364**Connect BigCommerce to NetSuite:**651. Use the **NetSuite Connector** from the BigCommerce App Marketplace or a middleware like **Celigo** or **Boomi**662. NetSuite provides enterprise AP with full three-way matching, multi-entity support, and audit trails6768### Step 3: Set up invoice capture and approval workflows6970#### Using BILL (best-in-class dedicated AP tool)71721. **Invoice capture:** Forward supplier invoices to your BILL inbox email or have suppliers submit directly via a BILL supplier portal link732. **AP inbox in BILL:** Review captured invoices at BILL → Payables → Inbox; BILL's OCR extracts vendor name, invoice number, date, amount, and due date743. **Approval routing:** Go to BILL → Settings → Approval Policies to configure amount-based routing:75 - Under $500: auto-approve76 - $500–$5,000: AP Manager approval77 - $5,000–$50,000: Controller approval78 - Over $50,000: CFO approval794. **Approvers** receive an email with a one-click approve/reject link805. **Payment scheduling:** BILL schedules payments based on vendor due dates; you can also set to pay X days before due date to capture 2/10 early discounts8182#### Using QuickBooks Online for smaller operations83841. Go to **Expenses → Vendors → [Vendor] → New Transaction → Bill**852. Enter invoice details manually or forward the invoice PDF to your QuickBooks inbox email863. Set the due date based on vendor terms (e.g., net 30)874. To pay: go to **Expenses → Pay Bills**, select invoices due, choose payment method (bank transfer, check)885. QuickBooks tracks outstanding AP and generates an aging report (Reports → Accounts Payable Aging)8990### Step 4: Implement three-way matching9192Three-way matching compares: the purchase order (what you ordered), the goods receipt (what you received), and the vendor invoice (what the vendor is charging).9394**In NetSuite:**95- NetSuite handles three-way matching natively — create a PO, receive the goods (Inventory → Receive Inventory), then match the vendor bill against both; discrepancies auto-flag as exceptions9697**In QuickBooks:**98- QuickBooks does not do three-way matching automatically99- Workflow: create a PO in QuickBooks (Expenses → Purchase Orders), receive the items in inventory, then match the bill to the PO manually100- Third-party add-on: **Zahara** or **Lightyear** add PO matching and approval automation on top of QuickBooks101102**In BILL:**103- BILL supports PO matching — create POs in BILL, then when an invoice arrives, BILL prompts you to match it against an open PO104105### Step 5: Capture early-payment discounts106107Common vendor terms are "2/10 net 30" — 2% discount if paid within 10 days, full amount due in 30.108109**In BILL:**1101. In your vendor record, set payment terms to "2/10 Net 30"1112. BILL automatically flags invoices where early payment would save money1123. Go to BILL → Payables → Early Pay to see all discount opportunities sorted by savings amount113114**In QuickBooks:**1151. When entering a vendor bill, set the payment terms to "2/10 Net 30"1162. QuickBooks calculates the discount amount automatically1173. When paying: select the bill and QuickBooks shows the discount available if paid today118119**Key rule:** Set a weekly payment run on a fixed day (e.g., every Tuesday). Pay all invoices due in the next 10 days. This captures early discounts systematically without manual review.120121### Step 6: Reconcile and report122123#### AP aging report124125Run monthly to see all outstanding payables by age:126- **QuickBooks:** Reports → Accounts Payable Aging Summary127- **BILL:** Reports → AP Aging128- **Xero:** Reports → Aged Payables Summary129130This shows you what's current, 30–60 days, 60–90 days, and 90+ days overdue.131132#### Cash flow forecast133134- **QuickBooks:** Reports → Cash Flow Forecast (shows projected outflows based on bill due dates)135- **Float** (add-on for QuickBooks/Xero): provides a more accurate 90-day cash flow forecast including AP obligations136137#### Custom / Headless — core AP data model138139```typescript140// Minimal AP invoice schema for custom implementations141interface ApInvoice {142 id: string;143 vendorId: string;144 invoiceNumber: string; // unique per vendor145 invoiceDate: Date;146 dueDate: Date;147 currency: string; // 'USD'148 totalCents: number;149 paidCents: number; // increments as payments are applied150 status: 'received' | 'pending_approval' | 'approved' | 'scheduled' | 'paid' | 'disputed';151 poId?: string; // linked purchase order for matching152 earlyDiscountRate?: number; // e.g., 0.02 for 2%153 earlyDiscountDeadline?: Date;154}155156// Identify invoices where early payment saves money157function findEarlyPaymentOpportunities(158 invoices: ApInvoice[],159 todayDate: Date160): { invoiceId: string; discountCents: number; deadline: Date }[] {161 return invoices162 .filter(inv => inv.status === 'approved')163 .filter(inv => inv.earlyDiscountRate && inv.earlyDiscountDeadline! > todayDate)164 .map(inv => ({165 invoiceId: inv.id,166 discountCents: Math.round(inv.totalCents * inv.earlyDiscountRate!),167 deadline: inv.earlyDiscountDeadline!,168 }))169 .sort((a, b) => b.discountCents - a.discountCents);170}171```172173## Best Practices174175- **Separate invoice approval from payment authorization** — the person who approves an invoice should not be the person who initiates the payment; this is a basic internal control176- **Run payment runs on a fixed weekly cadence** — predictable payment dates reduce bank fees, simplify cash forecasting, and vendors learn to expect payment on those days177- **Store original invoice PDFs for 7 years** — attach the PDF to every bill in QuickBooks/BILL; required for tax audits and vendor disputes178- **Send remittance advice** — when paying multiple invoices in one ACH batch, email the vendor a list of which invoices were paid and for what amounts so they can reconcile their AR179- **Lock invoice amounts after approval** — never edit a bill's total after it's been approved; create a credit memo or debit memo for adjustments instead180181## Common Pitfalls182183| Problem | Solution |184|---------|----------|185| Duplicate invoice payments | QuickBooks and BILL both alert on duplicate invoice numbers per vendor — enable these warnings and require staff to acknowledge them before saving |186| Early discount window missed because invoice sat in approval queue | Add a "discount deadline" badge in your approval tool; BILL shows this prominently; set escalation reminders 2 days before the discount expires |187| AP aging report shows negative balances | Vendor credits and credit memos can create negative balances; ensure credits are applied against open invoices as part of your payment run |188| Vendor disputes payment amount | Always store the PO, goods receipt, and invoice together with your matching result; this is your paper trail for disputes |189190## Related Skills191192- @vendor-management193- @order-management-system194- @returns-refund-policy