Order to Invoice Workflow
Cross-Module Workflow
This guide describes the workflow from sales order creation to invoice generation and payment processing.
Overview
The Order to Invoice workflow covers:
Order Processing (Sales Module)
- Sales order creation and validation
- Order confirmation
- Inventory reservation
Order Fulfillment (Operations Module)
- Pick list generation
- Packing and shipping
- Delivery tracking
Invoice Generation (Sales Module)
- Automatic invoice creation upon shipment
- Invoice line items and calculations
- Tax and discount application
Payment Processing (Finance Module)
- Payment recording and reconciliation
- Multiple payment methods
- Partial payments support
Financial Recording (Finance Module)
- Journal entry creation
- Accounts receivable updates
- Revenue recognition
State Transitions
Order (CONFIRMED) -> Order (IN_PROGRESS) -> Order (SHIPPED) -> Order (DELIVERED)
Invoice (DRAFT) -> Invoice (SENT) -> Invoice (PARTIALLY_PAID) -> Invoice (PAID)Integration Points
- Sales orders trigger inventory reservations in Operations via
OrderConfirmedevent - Shipment completion triggers invoice generation via
OrderShippedevent - Invoice payments create Finance journal entries via
PaymentReceivedevent - Domain events coordinate cross-module workflows without direct coupling
API Flow Example
http
# 1. Confirm order (reserves inventory)
POST /api/v1/sales/orders/{id}/confirm
# 2. Ship order (triggers invoice)
POST /api/v1/sales/orders/{id}/ship
# 3. Apply payment to invoice
POST /api/v1/sales/invoices/{id}/payments