10.2 Customer Posting Profiles & Account Code Precedence
Key Takeaways
- A customer posting profile maps summary (control), settlement discount, interest, and write-off accounts for a set of customers.
- Account code determines scope: Table applies to one customer, Group to a customer group, and All to every customer.
- Dynamics 365 Finance resolves the posting profile in the order Table, then Group, then All — the most specific match wins.
- A posting failure citing a missing summary account almost always means no posting profile rule covers that customer's group and no All rule exists.
10.2 Customer Posting Profiles & Account Code Precedence
Quick Summary: Customer posting profiles are the bridge from the Accounts receivable subledger to general ledger control accounts. This section covers the account types on a profile and the Table/Group/All precedence hierarchy that determines which rule applies.
1. Customer Posting Profiles & Control Account Framework
Customer Posting Profiles represent the primary financial configuration link between Accounts Receivable subledger operations and the General Ledger Chart of Accounts.
Navigation
- Path:
Accounts receivable > Setup > Customer posting profiles
+---------------------------------------------------------------------------------------------+
| Customer Posting Profile Anatomy: [ GEN - General ] |
+---------------------------------------------------------------------------------------------+
| Posting Profile Header: [ GEN ] Description: [ Standard General Receivables ] |
+---------------------------------------------------------------------------------------------+
| Setup FastTab (Control Accounts Grid): |
| Account Code | Account / Group | Summary Account | Settle Account | Sales Tax Prepayments |
| ------------ | --------------- | --------------- | -------------- | ---------------------- |
| `Table` | `US-001` | `130105` | `130190` | `220150` |
| `Group` | `10` | `130110` | `130190` | `220150` |
| `Group` | `30` (Gov) | `130130` | `130190` | `220150` |
| `All` | `*` | `130100` | `130190` | `220150` |
+---------------------------------------------------------------------------------------------+
| Additional Control Accounts (Side Columns): |
| - Arrival: `130180` (Interim Receipts) - Write-off: `610500` (Bad Debt Expense) |
| - Interest: `420100` (Finance Charges) - Collection Letter: `420200` (Admin Fees) |
+---------------------------------------------------------------------------------------------+
| Table Restrictions FastTab: |
| - Settle: [ Auto ] - Cancel: [ Yes ] |
+---------------------------------------------------------------------------------------------+
Core Control Account Fields and Functional Accounting Impact
| Control Account Field | Normal Balance | Accounting Trigger & Subledger Event | General Ledger Posting Entry |
|---|---|---|---|
| Summary account | Asset (Debit) | Posted when an invoice (Sales Order or Free Text Invoice) is committed to the subledger. | Debit: Accounts Receivable Summary (130100)<br/>Credit: Sales Revenue / Tax Payable |
| Settle account | Balance Sheet | Used as an interim clearing account during automatic settlement or cross-currency payment matching. | Clears variance differences between open invoice vouchers and payment vouchers. |
| Sales tax prepayments | Liability (Credit) | Used when a prepayment invoice is posted prior to the final shipment of goods to record statutory sales tax liability on advance deposits. | Credit: Sales Tax Prepayment Liability (220150)<br/>Debit: AR Prepayment Summary |
| Arrival account | Asset (Debit) | Used in advanced payment arrival workflows where cash is received at a lockbox prior to invoice matching. | Debit: AR Arrival Clearing (130180)<br/>Credit: Cash / Bank |
| Write-off account | Expense (Debit) | Populates automatically during the Write-off routine in the Collections Workspace when bad debt is recognized. | Debit: Bad Debt Expense (610500)<br/>Credit: AR Summary Control (130100) |
2. The Table / Group / All Account Code Precedence Hierarchy
In Dynamics 365 Finance posting setups, the posting engine evaluates rules according to the universal Account Code Precedence Hierarchy: Table > Group > All.
+---------------------------------------------------------------------------------------------------------+
| Account Code Hierarchy: Resolution Order |
+---------------------------------------------------------------------------------------------------------+
| |
| 1. TABLE LEVEL (Highest Priority) |
| Evaluates whether a specific rule exists for the exact Customer Account Number (e.g., US-001). |
| -> MATCH FOUND? Use configured Summary Account (e.g., 130105). STOPS SEARCH. |
| |
| 2. GROUP LEVEL (Medium Priority) |
| If no Table match, evaluates whether a rule exists for the Customer's Group (e.g., Group 10). |
| -> MATCH FOUND? Use configured Summary Account (e.g., 130110). STOPS SEARCH. |
| |
| 3. ALL LEVEL (Lowest Priority / Universal Fallback) |
| If neither Table nor Group matches, evaluates the universal 'All' rule (*). |
| -> MATCH FOUND? Use configured Summary Account (e.g., 130100). |
| -> NO MATCH FOUND? System halts with hard posting exception: "Posting profile does not exist". |
+---------------------------------------------------------------------------------------------------------+
Practical Example of Account Code Resolution
Assume the following Customer Posting Profile setup for profile GEN:
- Line 1:
Table=US-001-> Summary Account130105(Key Account AR) - Line 2:
Group=10-> Summary Account130110(Wholesale AR) - Line 3:
Group=20-> Summary Account130120(Retail AR) - Line 4:
All=*-> Summary Account130100(General AR)
Scenario Resolution Matrix
| Transaction Customer | Customer Group | Resolved Rule Level | Resolved Summary GL Account | Rationale |
|---|---|---|---|---|
| US-001 | 10 | Table | 130105 | Table rule explicitly matches US-001; overrides Group 10 and All. |
| US-002 | 10 | Group | 130110 | No Table rule for US-002; matches Group 10. |
| US-003 | 20 | Group | 130120 | No Table rule for US-003; matches Group 20. |
| US-004 | 30 | All | 130100 | No Table rule for US-004; no Group 30 rule; falls back to All. |
3. Accounts Receivable Parameters & Default Posting Profile Assignment
For the system to process sales invoices and customer payments without requiring manual profile selection on every document, a default posting profile must be assigned globally in AR parameters.
Navigation
- Path:
Accounts receivable > Setup > Accounts receivable parameters > Ledger and sales tax FastTab
+---------------------------------------------------------------------------------------------+
| Accounts Receivable Parameters: Ledger & Sales Tax |
+---------------------------------------------------------------------------------------------+
| Posting: |
| - Posting profile: [ GEN ] <- Primary default for standard invoicing |
| - Prepayment posting profile: [ PREPAY ] <- Dedicated profile for customer prepayments |
| - Sales tax on prepayment: [ Yes ] <- Triggers tax accounting on deposit invoices |
| - Cash discount posting: [ To accounts for cash discounts ] |
+---------------------------------------------------------------------------------------------+
Alternative Posting Profiles on Transactions
While GEN serves as the parameter-driven default, alternative posting profiles can be assigned or selected in specific operational scenarios:
- Prepayments: When a prepayment sales order invoice is created, D365 Finance uses the Prepayment posting profile (e.g.,
PREPAY) configured in AR Parameters to credit the Prepayment Liability account instead of the standard AR summary account. - Bad Debt Transfers: A customer balance can be reclassified by changing the posting profile on a general journal line from
GENtoBAD_DEBT(moving the receivable from130100 - Active ARto130199 - Doubtful Accounts AR). - Intercompany Billing: Direct intercompany sales can route to
INTERCO(posting to130300 - Intercompany Receivables).
4. Exam Traps & Real-World Best Practices
[!WARNING] Exam Trap: Changing Posting Profiles on Open Transactions Once an invoice has been posted to the customer subledger, you cannot retroactively edit the posting profile on the open transaction record (
CustTrans). To move a posted balance from one posting profile to another (e.g., fromGENtoDOUBTFUL), you must post a customer settlement or a reclassification journal using a General Journal with an offsetting posting profile.
[!IMPORTANT] Consultant Pro-Tip: The "Posting Profile Does Not Exist" Error If an invoice fails to post with the error "Customer posting profile does not exist for customer account X", check two things immediately:
- Is there an
Allrecord configured on the posting profile? If onlyGroupandTablerecords exist, any customer belonging to a newly created customer group will cause posting failures.- Is the posting profile populated in Accounts receivable parameters > Ledger and sales tax > Posting profile?
An organization configures Customer Posting Profile 'GEN' with three rules for Summary Accounts: (1) Account code 'Table' for Customer US-045 pointing to Main Account 130150, (2) Account code 'Group' for Customer Group 20 pointing to Main Account 130120, and (3) Account code 'All' pointing to Main Account 130100. Customer US-045 belongs to Customer Group 20. When a $10,000 sales order invoice is posted for Customer US-045, which Accounts Receivable summary main account is debited in the General Ledger voucher?
An Accounts Receivable clerk attempts to post a sales order invoice for a newly onboarded customer in Customer Group 40. The posting fails with the error message: 'Customer posting profile does not exist'. The consultant verifies that Customer Posting Profile 'GEN' is assigned in Accounts Receivable Parameters. What is the most likely root cause in the posting profile configuration?