Your Accounts Receivable Data Template

Microsoft Dynamics 365
Your Accounts Receivable Data Template

Your Accounts Receivable Data Template

This template provides a comprehensive framework for mapping your invoice-to-cash process within Microsoft Dynamics 365. It outlines the essential data fields and milestones required to build a high-quality event log for process mining. By following this structure, you can gain deep visibility into payment delays and streamline your collection workflows.
  • Essential data fields for ledger analysis
  • Standard process milestones for tracking
  • Technical extraction guidance for Microsoft Dynamics 365
New to event logs? Learn how to create a process mining event log.

Accounts Receivable Attributes

These are the recommended data fields to include in your event log for a comprehensive analysis of your accounts receivable performance.
5 Required 8 Recommended 8 Optional
Name Description
Activity
Activity
The specific event or task performed on the invoice.
Description

This attribute describes the step occurring in the process, such as Invoice Posted, Payment Received, or Dispute Opened. In Microsoft Dynamics 365, these are often derived from the transaction type (TransType) or the specific table where the record is logged (e.g., CustSettlement for payments). This attribute is essential for visualizing the process map.

Why it matters

It defines the nodes in the process map and allows for the analysis of process flow and variant discovery.

Where to get

Derived from TransType enum or table context (CustTrans, CustSettlement, etc.)

Examples
Invoice PostedPayment ReceivedCollection Letter SentInterest Note Posted
Event Timestamp
EventTimestamp
The exact date and time when the activity occurred.
Description

This attribute records the specific point in time when an event was logged in the system. It is used to calculate durations between activities, determine process lead times, and order events sequentially. In D365, this is typically the CreatedDateTime or TransDate combined with a time component.

Why it matters

Time stamps are critical for calculating all time based KPIs, such as Invoice Cycle Time and Dispatch Lead Time.

Where to get

Commonly CreatedDateTime or TransDate fields across various tables

Examples
2023-10-15T08:30:00Z2023-10-15T14:45:22Z2023-11-01T09:00:00Z
Invoice Number
InvoiceNumber
The unique identifier for the financial invoice document.
Description

The Invoice Number is the primary key for tracking the lifecycle of a receivable within Microsoft Dynamics 365. It links the initial sales order, the posted invoice, subsequent payments, and any collection activities into a single case. In analysis, this attribute serves as the case identifier to reconstruct the end to end process flow.

Why it matters

It is the fundamental unit of analysis for Accounts Receivable, allowing the process mining engine to group disparate events into a cohesive case.

Where to get

CustInvoiceJour.InvoiceId or CustTrans.Invoice

Examples
INV-2023-001CIV-88921US-004321DE-99120
Last Data Update
LastDataUpdate
The timestamp of when the data was extracted or refreshed.
Description

This attribute indicates when the data was last pulled from Microsoft Dynamics 365. It helps users understand the freshness of the analysis and validity of the KPIs. It is typically generated by the extraction tool at the time of the query.

Why it matters

It provides context on data latency and helps users trust the currency of the dashboards.

Where to get

Generated by the ETL / extraction script

Examples
2023-11-05T00:00:00Z2023-11-05T12:00:00Z
Source System
SourceSystem
The name of the system where the data originated.
Description

This attribute identifies the system of record for the data, which is Microsoft Dynamics 365 in this context. It is useful when combining data from multiple ERP instances or external collection tools into a single view. This allows analysts to filter or segment processes by their originating environment.

Why it matters

It ensures data lineage and traceability, especially in multi-system landscapes.

Where to get

Hardcoded during extraction or derived from connection string

Examples
D365 F&O ProdD365 FinanceDynamics AX 2012
Business Unit
BusinessUnit
The operating unit or division responsible for the invoice.
Description

This attribute segments data by internal organizational structure, such as Electronics Division or Services Division. In D365, this is often a financial dimension linked to the transaction. It supports the Invoice Issuance Lead Time dashboard by allowing comparisons across units.

Why it matters

Enables internal benchmarking to find which divisions are most efficient.

Where to get

Financial Dimensions (DefaultDimension) on CustInvoiceJour

Examples
BU-001Sales-NorthServices-Global
Company Code
CompanyCode
The legal entity identifier within D365.
Description

This attribute represents the DataAreaId in D365, which corresponds to the legal entity or company where the transaction occurred. It is essential for filtering data in multi-company deployments and ensures that invoice numbers, which may overlap between companies, are treated distinctly.

Why it matters

Crucial for uniqueness in multi-entity environments and regional analysis.

Where to get

DataAreaId field on all tables

Examples
USMFDEMFGBSI
Customer Account
CustomerAccount
The unique identifier or account number of the customer.
Description

The Customer Account identifies the specific entity being billed. In D365, this is the AccountNum field. Grouping by this attribute allows for analysis of payment behaviors, dispute frequencies, and clearing times across different customers.

Why it matters

Essential for identifying high risk customers and segmenting performance by client.

Where to get

CustInvoiceJour.InvoiceAccount or CustTrans.AccountNum

Examples
US-001DE-550CUST-9921
Customer Group
CustomerGroup
The classification or segment the customer belongs to.
Description

This attribute categorizes customers into logical groups, such as Wholesale, Retail, or Intercompany. It is used to perform comparative analysis, such as checking if certain segments have longer payment cycles or higher dispute rates. In D365, this is the CustGroup field.

Why it matters

Enables the comparison of process performance across different market segments.

Where to get

CustTable.CustGroup

Examples
WholesaleRetailIntercompanyExport
Due Date
DueDate
The date by which the payment is expected to be received.
Description

The Due Date is the deadline for payment as defined by the payment terms. It is compared against the actual payment date to determine on time performance and calculate days sales outstanding (DSO). It is a standard field on the customer transaction record.

Why it matters

Fundamental for calculating On Time Payment Rate and analyzing overdue invoices.

Where to get

CustTrans.DueDate

Examples
2023-11-302023-12-15
Invoice Amount
InvoiceAmount
The total monetary value of the invoice.
Description

This attribute represents the financial value of the invoice document. It is used to calculate the total exposure in Accounts Receivable and to prioritize high value collections. This field is typically found in the invoice journal table.

Why it matters

Critical for financial impact analysis and identifying high value bottlenecks.

Where to get

CustInvoiceJour.InvoiceAmount

Examples
1500.00250.5010000.00
Is Automated
IsAutomated
Flag indicating if the activity was performed by a system account.
Description

This attribute determines if a specific step was performed by a user or an automated batch job. It is calculated by comparing the User attribute against a list of known system accounts (e.g., 'Workflow', 'Batch'). It supports the Manual Clearing Rate KPI.

Why it matters

Critical for identifying automation opportunities and measuring current automation levels.

Where to get

Derived from User field logic

Examples
truefalse
User
User
The user ID of the person or system account that performed the activity.
Description

This attribute identifies who executed the specific process step, derived from the CreatedBy or ModifiedBy fields. It helps in analyzing resource utilization, identifying training needs, and distinguishing between automated system tasks and manual user interventions.

Why it matters

Allows for resource performance analysis and automation rate calculation.

Where to get

CreatedBy field on transaction tables

Examples
AdminJSmithWorkflowAgentBSmith
Cash Discount Date
CashDiscountDate
The date until which an early payment discount is valid.
Description

This attribute indicates the deadline for the customer to receive a discount for early payment. It is compared against the payment date to calculate the Missed Discount Rate KPI and analyze the effectiveness of discount incentives.

Why it matters

Key for the Early Payment Discount Optimization dashboard.

Where to get

CustTrans.CashDisc or calculated from CashDiscCode

Examples
2023-11-102023-11-15
Currency
Currency
The currency code of the invoice transaction.
Description

This attribute specifies the currency in which the invoice was issued (e.g., USD, EUR). It is important for normalizing financial values if global analysis is required across different regions.

Why it matters

Necessary for understanding value distribution in multi-currency systems.

Where to get

CustInvoiceJour.CurrencyCode

Examples
USDEURGBPJPY
Days Overdue
DaysOverdue
The number of days the payment was late compared to the due date.
Description

This metric calculates the difference between the payment date and the due date. Positive values indicate late payments, while negative values indicate early payments. It provides a granular view of payment performance beyond simple boolean flags.

Why it matters

Provides depth to the On Time Payment Rate KPI analysis.

Where to get

Calculated: PaymentDate - DueDate

Examples
50-230
Dispute Reason
DisputeReason
The reason code assigned when a case is in dispute.
Description

This attribute captures the categorical reason why an invoice was disputed, such as 'Price Error' or 'Damaged Goods'. It is vital for the Dispute Resolution Lifecycle dashboard to identify root causes of payment delays.

Why it matters

Enables root cause analysis for the Dispute Resolution Time KPI.

Where to get

CustTrans.ReasonRefRecId or related collections case table

Examples
PriceDiscrepancyGoodsDamagedMissingPOServiceQuality
Is Cleared
IsCleared
Flag indicating if the invoice has been fully settled.
Description

This boolean attribute indicates whether the invoice has reached a balance of zero through payment or write-off. It allows for the quick filtering of open vs. closed cases to calculate the Average Invoice Cycle Time.

Why it matters

Distinguishes between active and historical cases.

Where to get

Derived from CustTrans.Closed date presence

Examples
truefalse
Is Credit Memo
IsCreditMemo
Flag indicating if the document is a credit note.
Description

This boolean attribute identifies whether the transaction represents a credit memo issued to the customer. It is used to calculate the Credit Memo Issuance Rate and filter out standard invoices from rework analysis.

Why it matters

Directly supports the Credit Memo and Rework Frequency dashboard.

Where to get

Derived from CustInvoiceJour.InvoiceAmount < 0 or TransType

Examples
truefalse
Payment Terms
PaymentTerms
The code defining the agreed upon payment schedule.
Description

This attribute holds the code that dictates when payment is due (e.g., Net30, Net60). It is used to analyze if customers are adhering to their specific terms and to validate if the Due Date was calculated correctly.

Why it matters

Provides context for the Due Date and helps identify if terms are too lenient or strict.

Where to get

CustInvoiceJour.Payment or CustTable.PaymTermId

Examples
Net30Net45CODEOM
Sales Order ID
SalesOrderId
The reference number of the sales order associated with the invoice.
Description

This attribute links the invoice back to the originating sales order. It allows for cross-process analysis if data from the Order-to-Cash process is available and helps investigate upstream causes for billing issues.

Why it matters

Connects the billing process to the sales process.

Where to get

CustInvoiceJour.SalesId

Examples
SO-10022SO-55912
Required Recommended Optional

Accounts Receivable Activities

These are the key process steps and milestones to capture in your event log for accurate discovery of your payment settlement flow.
8 Recommended 7 Optional
Activity Description
Credit Memo Issued
The posting of a credit note that offsets the original invoice amount. Often the result of a resolved dispute or return.
Why it matters

High frequency indicates revenue leakage and upstream quality issues. Distinct from payment as it represents non-cash settlement.

Where to get

CustTrans table where Type is 'Credit Note' or CustInvoiceJour with a negative InvoiceAmount.

Capture

Logged when transaction posted to CustTrans

Event type explicit
Dispute Case Opened
The creation of a case in the Case Management module linked to the invoice, signaling a customer disagreement. Blocks standard collection flows.
Why it matters

Disputes are a primary cause of late payments. Tracking this identifies quality issues in upstream processes like pricing or fulfillment.

Where to get

CaseDetailBase table where Category relates to Collections/AR and RefRecId links to the invoice context.

Capture

Logged when transaction X executed in Case Management

Event type explicit
Full Payment Received
The posting of a payment transaction that covers the remaining balance of the invoice. This is the cash inflow event.
Why it matters

The most critical success event. Used to calculate On-Time Payment Rate and effectiveness of discount terms.

Where to get

CustTrans table with Type 'Payment', linked via CustSettlement to the invoice, bringing the balance to zero.

Capture

Logged when transaction posted to CustTrans and settled

Event type explicit
Invoice Cleared
The final status change where the invoice balance becomes zero and the transaction is marked as 'Closed' in the system.
Why it matters

The absolute end of the process instance. Used for total Cycle Time calculation.

Where to get

CustTrans.Closed field (date). This date is populated when the sum of settlements equals the invoice amount.

Capture

Inferred from CustTrans.Closed date field

Event type inferred
Invoice Dispatched
The event where the invoice is sent to the customer via email, print, or EDI. This is often inferred from the incrementing of the 'Printed' count or print management logs.
Why it matters

Delays between posting and dispatching directly shorten the effective payment window for the customer, leading to perceived late payments.

Where to get

Inferred from CustInvoiceJour.PrintedOriginals changing from 0 to 1, or tracked via the PrintJobHeader table if logging is enabled.

Capture

Compare status field before/after or PrintJobHeader log

Event type inferred
Invoice Posted
The initial recording of the invoice in the financial ledger. This activity captures the creation of the financial obligation in the CustInvoiceJour table.
Why it matters

Marks the official start of the Accounts Receivable lifecycle and the beginning of the payment term clock. Essential for calculating Days Sales Outstanding (DSO).

Where to get

CustInvoiceJour table. The CreatedDateTime or InvoiceDate field serves as the timestamp.

Capture

Logged when transaction posted to CustInvoiceJour

Event type explicit
Partial Payment Posted
The recording of a payment that does not fully cover the open balance of the invoice. Often triggers a remaining balance to be pursued.
Why it matters

Distinguishes between installment behaviors and full settlements. Important for cash flow forecasting accuracy.

Where to get

CustSettlement table linking a Payment (CustTrans) to the Invoice (CustTrans) where SettlementAmount < InvoiceAmount.

Capture

Logged when transaction X executed in CustSettlement

Event type explicit
Payment Reminder Sent
Records the issuance of a formal collection letter to the customer. This is captured from the Collection Letter Journal.
Why it matters

Indicates the start of active collection efforts. Frequency analysis helps optimize the dunning strategy and reduce administrative costs.

Where to get

CustCollectionLetterJour table. Captures the date the letter code was posted for the specific invoice transaction.

Capture

Logged when transaction posted to CustCollectionLetterJour

Event type explicit
Bank Statement Matched
The reconciliation event where the payment recorded in AR is matched against a line on the imported bank statement.
Why it matters

Validates that funds are actually in the bank. Delays here indicate inefficiencies in the Cash and Bank Management processes.

Where to get

BankReconciliationLine or BankAccountTrans matched status. Requires Advanced Bank Reconciliation module.

Capture

Logged when transaction matched in Bank Reconciliation

Event type explicit
Dispute Resolved
The closing of the dispute case, allowing the invoice to proceed to payment or credit. Marks the end of the exception handling sub-process.
Why it matters

The timestamp delta between Opened and Resolved is a key KPI for administrative efficiency.

Where to get

CaseDetailBase table where Status changes to Closed/Resolved.

Capture

Compare status field before/after in CaseDetailBase

Event type inferred
Dispute Under Review
Indicates the dispute case has moved from 'Opened' to an 'In Process' state. Represents the working time of the resolution team.
Why it matters

Bottlenecks here increase the Cash Conversion Cycle. Segregates wait time from active resolution time.

Where to get

Inferred from CaseDetailBase.Status field changes or CaseLog table entries corresponding to status progression.

Capture

Compare status field before/after in CaseDetailBase

Event type inferred
Due Date Passed
A calculated milestone indicating that the current date has surpassed the invoice due date while the invoice remains open. This flags the invoice as overdue.
Why it matters

Critical for aging analysis and triggering collection workflows. It segments the process between standard billing and collections management.

Where to get

Calculated by comparing the CustInvoiceJour.DueDate against the current simulation time or payment timestamp.

Capture

Derive from comparing field DueDate to current time

Event type calculated
Interest Note Generated
The creation of an interest note for overdue payments. Represents a financial penalty applied to the customer account.
Why it matters

Indicates severe delinquency. Analysis helps determine if penalties effectively accelerate payment or damage customer relationships.

Where to get

CustInterestJour table. This table logs interest notes generated for specific customer transactions.

Capture

Logged when transaction posted to CustInterestJour

Event type explicit
Payment Written Off
The act of declaring the invoice uncollectible and removing the balance via a write-off journal. Represents a financial loss.
Why it matters

End state for failed collection processes. Essential for analyzing bad debt ratios and credit policy effectiveness.

Where to get

CustTrans table where Type is 'WriteOff' or GeneralJournalEntry specifically marked with write-off reason codes.

Capture

Logged when transaction posted with WriteOff type

Event type explicit
Promise to Pay Received
A specific commitment logged by a collections agent that the customer will pay by a certain date. Captured from the Collections Management module.
Why it matters

Measures the effectiveness of collection calls. Comparing this date to actual payment reveals the reliability of customer promises.

Where to get

CustPromiseToPay table. Linked to the customer transaction via TransRecId.

Capture

Logged when record created in CustPromiseToPay

Event type explicit
Recommended Optional

Extraction Guides

How to get your data from Microsoft Dynamics 365