enBusiness FlowsERP — Order-to-Cash & Procure-to-Pay

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 → Payment

Steps 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: draftsentaccepted / 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: draftconfirmedpartially_deliveredfully_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: draftconfirmedshippedcompleted / 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: draftsentpartially_paidpaid / 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 → Payment

Purchase Requisition (optional)

An internal request to purchase something. Used when purchasing requires approval before an order is placed.

  • Status: draftsubmittedapproved / 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: draftsentclosed
  • 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: draftconfirmedpartially_receivedfully_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: draftconfirmed / 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.

CheckPass condition
Quantity matchBill qty ≤ GRN qty
Price matchBill price ≤ PO price (within tolerance)
PO referenceBill 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: draftsubmittedapprovedpartially_paidpaid
  • 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 COGS

Landed cost journals post automatically to the configured GL accounts.


Data Integrity Rules

RuleBehaviour
Invoice > delivered qtyBlocked (strict mode) or warned (loose mode)
GRN > PO qtyBlocked — cannot receive more than ordered
Cancel confirmed SORequires all linked DOs and invoices to be cancelled first
Cancel paid invoiceMust create a credit note — cannot delete
Modify confirmed PORequires 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 → paid

Integration Points

ModuleWhat happens
InventorySO confirmation → Delivery Order queued; GRN confirmation → stock added
AccountingInvoice confirmed → AR entry; Bill approved → AP entry; Payment → cash account
CRMDeal won → Sales Order pre-filled from deal data
ProcurementApproved PR → RFQ or PO created
e-InvoiceConfirmed invoice → submitted to tax authority (VN: HHDDT)

AI Agents

AgentWhat it doesCadence
AR Aging IntelligenceSegments overdue invoices by risk tier, suggests collection actionsDaily
Cashflow ForecasterProjects 30/60/90-day cash position from open invoices and billsWeekly
3-Way Match Exception HandlerReviews unresolved exceptions, suggests approve or reject with reasoningDaily
Accounts Payable OptimizerIdentifies early payment discount opportunities and cash flow trade-offsWeekly
Invoice CollectorSends automated payment reminders for overdue invoicesEvent-driven