ERP — Order-to-Cash & Procure-to-Pay
The Finance Pack covers the two fundamental commercial cycles every product-selling business runs: selling to customers (Order-to-Cash) and buying from suppliers (Procure-to-Pay). Both flows use the same Document Chain principle — each step is created from the previous one, quantities are tracked at line level, and every step is optional based on your configuration.
Order-to-Cash (Sales)
The Order-to-Cash cycle covers everything from a customer request through to receiving payment.
Full flow
[Quote] → Sales Order → [Delivery Order] → Invoice → PaymentSteps in brackets are optional — toggle them on or off per your business rules.
Quote (optional)
Create a quote for the customer with proposed pricing, items, and validity date. The customer can approve or negotiate. Once approved, convert to Sales Order in one click — all lines, pricing, and customer data carry over.
- Status:
draft→sent→accepted/rejected/expired - Supports multiple versions (revision history)
- PDF generation for customer-facing output
Sales Order
The confirmed commitment to sell. Once confirmed, the SO drives inventory (if delivery is enabled) and invoicing.
- Status:
draft→confirmed→partially_delivered→fully_delivered/cancelled - Line-level qty tracking: ordered → delivered → invoiced
- Multiple delivery orders per SO (partial shipments)
Delivery Order (optional)
Records the physical movement of goods out of the warehouse.
- Status:
draft→confirmed→shipped→completed/cancelled - Confirms actual quantities shipped (may differ from ordered)
- Triggers stock deduction in Inventory module
- Connects back to SO to update delivery status
Invoice
The legal demand for payment, linked to the SO and DO.
- Status:
draft→sent→partially_paid→paid/cancelled - Quantity validation: cannot invoice more than delivered (strict mode)
- Recurring invoice support for subscription billing
- e-Invoice integration (Vietnam: Viettel-CA, BKAV, MISA)
Payment
Records cash received against the invoice.
- Auto-reconciliation: system matches payments to open invoices
- Partial payments supported
- Payment triggers AR balance update in Accounting
Procure-to-Pay (Purchasing)
The Procure-to-Pay cycle covers supplier management — from identifying a need through to paying the supplier.
Full flow
[PR] → [RFQ] → Purchase Order → [GRN] → Vendor Bill → PaymentPurchase Requisition (optional)
An internal request to purchase something. Used when purchasing requires approval before an order is placed.
- Status:
draft→submitted→approved/rejected - Approval workflow with multi-level sign-off
- Once approved, converts to RFQ or PO directly
RFQ — Request for Quotation (optional)
Send a price request to one or more suppliers. Compare responses, score vendors, and select the best offer.
- Status:
draft→sent→closed - Multiple supplier quotes on a single RFQ
- Vendor scoring: price, lead time, quality rating
- Convert best response to Purchase Order
Purchase Order
The confirmed commitment to buy from a specific supplier at agreed terms.
- Status:
draft→confirmed→partially_received→fully_received/cancelled - Line-level tracking: ordered → received → billed
- Automatic notifications to supplier on confirmation
Goods Receipt Note (optional)
Records goods physically arriving at the warehouse.
- Status:
draft→confirmed/cancelled - Can receive partially (GRN qty ≤ PO qty remaining)
- Confirms stock addition in Inventory module
- Supports lot number and expiry date capture (if lot tracking is on)
- Triggers 3-Way Match automatically
3-Way Match
Automated reconciliation of PO ↔ GRN ↔ Vendor Bill before payment is approved.
| Check | Pass condition |
|---|---|
| Quantity match | Bill qty ≤ GRN qty |
| Price match | Bill price ≤ PO price (within tolerance) |
| PO reference | Bill references a valid PO |
Discrepancies surface as exceptions requiring manual review. Matched bills flow to payment without friction.
Vendor Bill
The supplier’s invoice, recorded against the PO and GRN.
- Status:
draft→submitted→approved→partially_paid→paid - Must pass 3-Way Match (or manual override with reason)
- Updates AP balance in Accounting
Payment
Records cash paid to the supplier.
- Batch payment support (pay multiple bills in one run)
- Bank reconciliation: matches payments to bank statement lines
- Updates AP balance on payment confirmation
Landed Costs
When purchasing physical goods, the true cost includes freight, insurance, import duties, and handling fees — not just the PO price. XBuddy lets you attach these costs to a GRN and allocate them across line items by quantity, value, or weight.
GRN (goods received)
+ Landed Cost document (freight, duties, insurance)
= Adjusted unit cost used for inventory valuation and COGSLanded cost journals post automatically to the configured GL accounts.
Data Integrity Rules
| Rule | Behaviour |
|---|---|
| Invoice > delivered qty | Blocked (strict mode) or warned (loose mode) |
| GRN > PO qty | Blocked — cannot receive more than ordered |
| Cancel confirmed SO | Requires all linked DOs and invoices to be cancelled first |
| Cancel paid invoice | Must create a credit note — cannot delete |
| Modify confirmed PO | Requires amendment workflow |
Status Reference
Quote: draft → sent → accepted / rejected / expired
Sales Order: draft → confirmed → partially_delivered → fully_delivered / cancelled
Delivery Order: draft → confirmed → shipped → completed / cancelled
Invoice: draft → sent → partially_paid → paid / cancelled
Purchase Req.: draft → submitted → approved / rejected
Purchase Order: draft → confirmed → partially_received → fully_received / cancelled
GRN: draft → confirmed / cancelled
Vendor Bill: draft → submitted → approved → partially_paid → paidIntegration Points
| Module | What happens |
|---|---|
| Inventory | SO confirmation → Delivery Order queued; GRN confirmation → stock added |
| Accounting | Invoice confirmed → AR entry; Bill approved → AP entry; Payment → cash account |
| CRM | Deal won → Sales Order pre-filled from deal data |
| Procurement | Approved PR → RFQ or PO created |
| e-Invoice | Confirmed invoice → submitted to tax authority (VN: HHDDT) |
AI Agents
| Agent | What it does | Cadence |
|---|---|---|
| AR Aging Intelligence | Segments overdue invoices by risk tier, suggests collection actions | Daily |
| Cashflow Forecaster | Projects 30/60/90-day cash position from open invoices and bills | Weekly |
| 3-Way Match Exception Handler | Reviews unresolved exceptions, suggests approve or reject with reasoning | Daily |
| Accounts Payable Optimizer | Identifies early payment discount opportunities and cash flow trade-offs | Weekly |
| Invoice Collector | Sends automated payment reminders for overdue invoices | Event-driven |