Credit & Payments ยท Module 3.2 Module 3.2 UPDATED v3.9

Company Credit & Net Terms

Extend trade credit to B2B buyers with configurable payment terms (Net 7โ€“90), real-time balance tracking, and automated overdue management. Fully HPOS-compatible โ€” works whether you use classic post-based orders or WooCommerce High-Performance Order Storage.

In plain terms: Company Credit is like an in-store charge account. Your B2B customer places orders and you charge their account. They pay you later (Net 30, Net 60, etc.). The plugin tracks exactly how much they owe, reminds them when it's due, and blocks new orders if they go past due.

๐Ÿ’ณ Credit Limits Per Company

Set a currency limit per company. Orders are blocked or flagged when the limit is reached. Override per-company or set a global default for new accounts.

๐Ÿ“… Net 7 โ†’ Net 90 Terms

Six configurable payment terms. Set a global default or override per company. Payment due date is calculated and stored on each order automatically.

๐Ÿ“Š Real-Time Balance Tracking

Every order placed charges the balance. Every payment recorded restores it. Live utilisation percentage visible on both admin and customer My Account dashboards.

โš ๏ธ Overdue Management

Configurable reminders at 7, 14, 30 days. Optional interest charges. Block new orders when past due. Admin dashboard shows all overdue accounts at a glance.

๐Ÿ“‹ Full Transaction History

Charges, payments, manual credits, refunds โ€” all timestamped and auditable. Filter by date range, transaction type, or order. Export to CSV.

๐Ÿ—๏ธ HPOS Compatible

All credit data is stored using WooCommerce's HPOS-compatible order meta API. Works identically on both classic post-based orders and the new high-performance order storage.

๐Ÿ‘ค Individual User Credit

Set credit limits per individual user (not just per company). Useful for freelancers and sole traders who don't belong to a company structure. User credit and company credit can coexist.

๐Ÿ’ฑ Multi-Currency Support

Credit is tracked in your base currency with exchange rate stored on each order. Prevents currency conversion errors when customers order in different currencies.

How to Set Up Company Credit

Real Examples

What It Looks Like in Practice #

๐Ÿ—๏ธ Standard Net 30 trade account

Acme Builders has a $10,000 credit limit with Net 30 terms. Their three purchasing agents all share this balance.

Company Accounts Company Credit Sub-Accounts
Result: Agent orders $3,200 on Monday. Available credit drops to $6,800. On day 31 with no payment, checkout is blocked. Admin records $3,200 bank transfer received. Available credit returns to $10,000.

๐Ÿ” Large orders need approval before credit is charged

Orders above $2,000 shouldn't charge the credit account automatically โ€” you want to review them first.

Company Credit PO Approval
Result: A $3,500 order enters "Pending Approval" status. Credit is not charged yet. Admin reviews and approves โ€” only then does the $3,500 deduct from the credit balance.

๐Ÿ’ฑ International customer, home currency tracking

A German customer orders in EUR but your credit accounts are tracked in USD.

Company Credit
Result: The exchange rate at time of order is stored on the order meta. The credit balance deducts the correct USD equivalent. No double-conversion issues if rates change between order and payment.

๐Ÿ‘ค Individual user credit (no company)

A freelance architect orders regularly and you want to give them a personal credit line without creating a company for them.

Company Credit (User Mode)
Result: Set credit limit directly on the user account (not a company). The user sees their personal credit balance at checkout. Works identically to company credit, just scoped to one person.

Key Settings

SettingWhat it doesDefault
Default Credit LimitStarting limit for new company accounts. Set 0 to require manual setup per company before credit is available.$0
Default Payment TermsNet 7 / 14 / 30 / 45 / 60 / 90 days. Applied globally but overridable per company.Net 30
Block When OverduePrevent new orders when any balance is past its due date. Shows a clear message at checkout.Off
Enable InterestCharge interest on overdue balances. Set the rate and period (daily, weekly, monthly). Interest appears as a transaction in the audit log.Off
Require Approval AboveOrders above this amount need admin approval before credit is charged. Set to 0 to disable.None
Allow Negative CreditLet orders proceed even when they would exceed the credit limit. Set a negative cap to limit how far over the limit they can go.Off
Eligible RolesWhich user roles see the Company Credit payment option at checkout.All logged-in
PO Number FieldAdd a PO number input to checkout for credit orders. Stored on the order as HPOS-compatible meta.Off

Frequently Asked Questions

The module adds a "Company Credit" option to WooCommerce checkout. Eligible users select it and the order total is deducted from their company's available credit balance instantly. No actual card processing โ€” it's an internal ledger. The order is stored with the credit amount, exchange rate, and payment due date as HPOS-compatible order meta.

Yes โ€” fully. All order meta (credit amount, exchange rate, payment due date, PO number) uses $order->update_meta_data() and $order->get_meta() throughout. The admin order list column showing credit status works on both the classic shop_order posts screen and the HPOS wc-orders screen via separate hooks registered for each.

Checkout is blocked with a clear message showing current balance and limit. If you've enabled "Allow Negative Credit," orders can proceed up to a configurable negative cap. If you've set "Require Approval Above," orders near the limit route to admin approval instead of blocking outright.

Yes. Go to Company Account โ†’ Credit โ†’ Add Transaction โ†’ Payment. Enter the amount and a reference note (e.g. bank transfer ref). The balance updates immediately and the transaction appears in the auditable history. You can also record partial payments if the customer paid less than the full balance.

The following meta keys are stored on each order placed with Company Credit:

  • _woob2b_company_id โ€” the company account ID (used for balance lookups)
  • _woob2b_credit_base_amount โ€” amount charged in your base currency
  • _woob2b_credit_exchange_rate โ€” rate at time of order (for multi-currency accuracy)
  • _woob2b_payment_due_date โ€” calculated due date based on payment terms (Y-m-d format)
  • _woob2b_po_number โ€” customer-entered PO number (if PO number field is enabled)

All are stored and read using WC_Order methods, making them fully HPOS-compatible.

Yes, via the woob2b_credit_charged action hook. It fires after every successful credit charge with the order ID, amount, and company ID as parameters. Use it to push to QuickBooks, Xero, or any webhook-based system. See the Hooks & Filters reference for code examples.