Credit & Payments ยท Module 3.2 v1.0.0

Payment Credit & Net Terms

Extend trade credit to B2B buyers with configurable payment terms (Net 7โ€“90), real-time balance tracking, and automated overdue management. Supports both company-level and individual user credit accounts. Fully HPOS-compatible โ€” works with both classic post-based orders and 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.

๐Ÿ“„ Self-Service Credit Applications

When enabled, non-company users can apply for a credit account from My Account. Applications are reviewed in a dedicated admin panel. Eligibility criteria, max request limits, and approval emails are all configurable.

๐Ÿ” Activity Log

Every change to a credit account is logged โ€” limit adjustments, status changes, manual transactions, and account closures. View the full history per account in the Activity Log tab.

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
Allow Credit ApplicationsEnable the self-service credit application form in My Account for non-company users. Applications appear in the admin Applications tab for review.Off
Max Requestable Credit LimitOptionally cap the maximum credit limit a customer can submit in their application. Set to 0 for no cap. Admins can approve any amount regardless of this cap.$0 (no cap)
Application Eligibility CriteriaOptional conditions (minimum orders, spend, account age, user group) a user must meet before the application form is shown to them. Acts as a hard gate on the frontend form only.Off

Credit Application Workflow

Who can apply? Only individual users who are not a member of any company account. Company members have credit managed at the company level and see a message directing them to their company admin instead of an application form.

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 โ€” enable Allow Credit Applications from My Account in Settings โ†’ Payment Credit โ†’ Applications. Non-company users will see an application form under My Account โ†’ Payment Credit. They submit a requested credit limit, preferred payment terms, and an optional reason. The admin reviews and approves or rejects from the Applications tab in the Payment Credit admin panel. On approval the credit account is activated immediately and the customer is notified by email. Company members cannot apply โ€” their credit is managed at the company level.

Yes. Set the Maximum Requestable Credit Limit in Settings โ†’ Payment Credit โ†’ Applications. When set, customers cannot submit an application for more than that amount. The form enforces it client-side and the server validates it too. Admins can always approve a different (higher or lower) amount when processing the application regardless of this cap.

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.