Chapter 4 of 8Page 18 of 22

Configure

Credit memo netting

Reduce commission when a credit memo is applied to the invoice, exclude short-pay credit memos, handle unapplications and payment discounts, and follow the release job in its log.

updated: applies-to: 1.2.0.0

When commission is paid only after the customer pays, a credit memo should reduce commission when it actually reduces what the customer owes: when it is applied to the invoice. Bitta Commission offers this as a return policy choice, with exclusions for credit memos that only clear a short payment, a defined reversal when a payment or credit memo is unapplied, and a release job with a log. This page shows you how credit memos, payments, unapplications and payment discounts move commission between Pending, Eligible and Netted.

Before you start

  • Netting on application works with payment-based eligibility: an eligibility policy whose Becomes Eligible is On Payment or On Full Payment. These need the Cash-based eligibility and holds module. See Eligibility rules.
  • Native capture and the cash scanner must be running, so that customer ledger applications are seen. See Capture posted sales.
  • Return policies are maintained by users with the Bitta Commission Setup Administrator or Bitta Commission Accountant permission set. See Permission sets.

Choose how credit memos reduce commission

  1. Search for Commission Return Policies and open it.
  2. Set Netting Basis on the policy of the plan version, or on the policy with a blank plan for the company default:
Netting Basis What happens
Item Ledger Lineage The default. A credit memo linked to its original sale is calculated as a negative return earning when it is posted. See Commission returns.
Customer Ledger Application Posting a credit memo changes nothing. Commission is reduced only when the credit memo is applied to the invoice, and the reduction is reversed when it is unapplied.

The plan version's policy is used when it is Active, otherwise the Active company default. With neither, the basis is Item Ledger Lineage.

Under Customer Ledger Application, an attempt to calculate the credit memo as a return is refused with BAA-COR-NETTED-ON-APPLICATION: apply the credit memo to the invoice instead.

WARNING

Customer Ledger Application reduces commission only for components with an On Payment or On Full Payment eligibility policy. Plan validation reports any other combination as BAA-PLAN-NETTING-TRIGGER, and Commission Season Readiness lists it as NETTING_TRIGGER. Use a payment-based policy, or set Netting Basis to Item Ledger Lineage.

How an applied credit memo nets

When the release runs after a credit memo has been applied to an invoice, Bitta Commission works out the commissionable share of the credit memo and moves that share of the invoice's commission from Pending to Netted.

  • A credit memo with lines nets the commission on its included lines, each in proportion to the invoice line it credits. A line the component does not include, for example a freight line excluded by a credit rule, nets nothing.
  • A credit memo without lines, for example one posted from a journal, is prorated on the invoice: the applied amount divided by the invoice amount, with the prepayment invoices of its order.
  • A partial application nets in proportion to the applied amount.
  • The reduction never exceeds what the earning can still release or has released: its commission less what was already netted, forfeited or settled outside Business Central. When less is pending than the reduction, the rest is taken back from Eligible, but never more than the earning released.
  • Each application nets once. Running the release again changes nothing.
  • A credit memo application is never treated as cash, and a prepayment credit memo never nets.

When the credit memo's lines are not captured yet, nothing nets, and the release log counts the invoice as Awaiting Capture. The Commission Exception Report lists it as CM_NOT_CAPTURED. After 30 days, or at once when the credit memo is older than the native history start date, the credit memo is prorated like one without lines, and its netting entry is marked Capture Fallback.

A 1,000.00 invoice with an expected commission of 100.00, on an On Full Payment policy:

Step Pending Netted Eligible
Invoice posted and calculated 100.00 0.00 0.00
Credit memo for one 100.00 line posted, not applied 100.00 0.00 0.00
Credit memo applied to the invoice 90.00 10.00 0.00
Payment of 900.00 applied, invoice closes, release runs 0.00 10.00 90.00

A 50.00 credit memo on an excluded freight G/L account, applied the same way, nets 0.00, and the full 100.00 becomes eligible.

Exclude credit memos that only clear a short payment

Some credit memos do not change the sale. A customer short-pays an invoice by a deduction the commission base already reflects, and finance clears the difference with a reason-coded credit memo. Netting it would reduce commission twice.

  1. On Commission Return Policies, select the policy and choose Netting Exclusions.
  2. On Credit Memo Netting Exclusions, add one line per code:
Field What to enter
Exclusion Type Reason Code, Source Code or Journal Batch. The code is matched against the credit memo's customer ledger entry.
Code The reason code, source code or journal batch name.
Description Why credit memos with this code do not reduce commission.

An excluded application still writes a netting entry, marked Excluded, with the exclusion reason, for example REASON:SHORT or SOURCE:CASHRCPT, so the decision stays visible.

Review netting entries

On Commission Return Policies, choose Credit Memo Netting Entries. Each row is one application of a credit memo to an invoice:

Field What it shows
Invoice No., Credit Memo No., Posting Date The documents and the date of the application.
Applied Amount (LCY) The amount of the credit memo applied to the invoice.
Has Lines, Included Line Amount Whether the credit memo has captured lines, and the amount of its lines the component includes.
Commissionable Share %, Commissionable Reduction (LCY) The share of the invoice the credit memo reduces, and the commissionable amount it removes.
Netting Amount The commission moved to Netted.
Excluded, Exclusion Reason Whether a netting exclusion applied, and which.
Reason Code, Source Code, Journal Batch Name The codes of the credit memo's customer ledger entry.
Overridden by Extension A companion app changed the result.
Capture Fallback The credit memo was prorated because its lines were never captured.
Reversal, Reversed Entry No. The row reverses an earlier entry after an unapplication.

Entries are append-only and cannot be changed.

Unapply and apply again

What happens when a payment or credit memo is unapplied after commission was released is set by the Unapplication Behavior of the eligibility policy:

Unapplication Behavior What happens
Reverse Eligibility The released share moves back to Pending. An amount already paid out becomes recoverable when the plan has a recovery policy.
Hold Recovery The same, but the recoverable amount waits for a manual review.
Net Future The released share is reversed, and an amount already paid out is netted against the next payouts.
Manual Review Nothing is reversed automatically, including netting.

An unapplied credit memo moves its netted amount back to Pending and writes a Reversal netting entry. Under On Full Payment, an invoice that reopens moves the release made when it closed back to Pending, and releases once when it closes again. See Commission clawbacks.

Payment discounts and unapplication on the policy

Set both on New Eligibility Policy. The fields are shown with the Cash-based eligibility and holds module and can be changed only for On Payment and On Full Payment:

Field What to choose
Payment Discount Treatment Ignore releases the discounted share when the invoice closes. Reduce Eligible removes the same share of the commission, so a 2 percent discount removes 2 percent of the commission.
Unapplication Behavior One of the four behaviours above.

Commission Eligibility Policies shows both fields for every policy.

Prepayments

Prepayment invoices, prepayment credit memos and the prepayment deduction line of a final invoice are captured as Sales Prepayment facts. They are kept as evidence and never earn, because the final invoice carries the whole sale. For release, the paid share counts cash applied to the final invoice and to the prepayment invoices of the same order, and On Full Payment waits until all of them are closed.

See the payment status of an earning

The Commission Earning card has an Invoice Payment group, and the Commission Earnings list a Payment Status FactBox, for an invoice earning:

Field What it shows
Collected % How much of the invoice, with the prepayment invoices of its order, the customer has paid in cash. Credit memos and payment discounts are not cash.
Last Payment Date The latest cash application that was not unapplied.
Invoice Open Whether the invoice, or a prepayment invoice of its order, is still open.

The Invoice Payment FactBox on both pages lists the invoice and its payments, credit memos, payment discounts, other applications and commission netting rows, with their dates, amounts and whether they were unapplied. Users without access to customer ledger entries see no payment view.

Commission Earning card 3 with the Invoice Payment group showing Collected %, Last Payment Date and Invoice Open, and the Invoice Payment FactBox listing invoice PS-INV103304 posted 10/16/2026

The earning card shows how much of the invoice has been collected, next to the invoice's payment entries.

The release job and its log

Pending commission is released by the job queue entry Bitta Commission pending eligibility release. The setup wizard creates it Ready. Prepare Native Scanner Jobs on Bitta Commission Setup creates it On Hold, and Validate Native Scanner Readiness checks it.

Each run:

  1. processes the invoices whose customer ledger entries changed since the last run (the worklist);
  2. on its first run for each release date, sweeps every earning that still has an amount pending;
  3. commits after every Release Batch Size earnings, set on Bitta Commission Setup (default 100), so a failure never undoes the rest of the run, and retries a failed batch one earning at a time.

Search for Commission Release Log to see each run:

Field What it shows
As Of Date, Status The release date, and Running, Completed or Completed with Errors.
Full Sweep, Manual Run Whether the run swept every pending earning, and whether a user started it.
Worklist Entries, Earnings Checked How many changed invoices and earnings the run read.
Releases Written, Released Amount, Netted Amount What the run released and netted.
Awaiting Capture, Capture Fallbacks Applied credit memos still waiting for their lines, and those prorated without them.
Errors, Last Error The earnings that failed, and the last message.
Started At, Finished At When the run ran.

Run Release Now runs the job for the work date, and Worklist shows the customer ledger entries waiting for the next run. Release Pending Eligibility on Commission Earnings also writes a log row, marked Manual Run.

Commission Release Log with one Completed run, Full Sweep ticked, and its worklist, earnings checked, releases written, released and netted amounts and errors

Each release run, scheduled or started with Run Release Now, adds a row to the Release Log.

For developers

A companion app can exclude an application from netting, or replace the standard reduction, by subscribing to OnBeforeCalculateCreditMemoNettingV1 in the public codeunit BAA Comm Integration Events. Its amounts are in local currency. See Developer events.

What's next

Record commission that was settled before go-live or paid by another system: Commission paid outside Business Central.

// next step

Ready to try Bitta Commission?