AIR Commission Code (Table 51304)
The AIR Commission Code table defines commission rates and G/L accounts for vendor commissions earned where the travel agency acts as an intermediary.
Commission handling is implemented for hotel bookings only. Car rental, flight and ground transport lines never receive a commission code or amount, so commission codes for those product types have no effect.
Page
Accessible via AIR Commission Codes page (search for "AIR Commission Codes" in Business Central). This is typically a small table and can easily be entered manually in the UI.
Field Reference
| Field ID | Field Name | Data Type | Description |
|---|---|---|---|
| 1 | Code | Code[10] | Must be exactly the 3 characters at positions 5–7 of the hotel's Rate Code — see below |
| 2 | Description | Text[100] | Human-readable description of the commission |
| 3 | Commission % | Decimal | Default (schablon) commission percentage (0–100). Used when no booking-specific rate was parsed from the GDS commission text. Applied to the hotel price excl. supplier VAT (from the AIR data, converted to LCY) |
| 4 | Receivable Account | Code[20] | G/L Account to debit for commission receivables |
| 5 | Income Account | Code[20] | G/L Account to credit for commission income |
How Commissions Work
The commission code is not something a user picks — the system assigns it during import:
- When a hotel line is created, the system reads the segment's Rate Code. If it is shorter than 7 characters, nothing happens
- It takes the 3-character substring at positions 5–7 of the Rate Code (e.g. Rate Code
ABCD10Z→ suffix10Z) - It looks that suffix up in this table with an exact
Get(). No match → no commission, no error. The matched row is always required — it carries the two G/L accounts - The rate is chosen by priority: a booking-specific percentage parsed from the GDS commission text (AIR Hotel field Commission Percent, when the import delivers one) wins over the Commission % on the matched row. If the resulting rate is 0, or the hotel line's Unit Price is 0, no commission is set (zero-price reservation lines are skipped)
- Otherwise the line's Commission Code is set to the suffix and Commission Amount =
Round(Commission Base × Commission % / 100, 0.01), where the commission base is the hotel price excl. supplier VAT from the AIR data, converted to local currency. The base is deliberately not the sales line amount — that amount is excl. supplier VAT in the gross revenue model but incl. supplier VAT (disbursement) in the net revenue model, and the commission must be the same for the same booking regardless of revenue model - The rate, base and rate source (Default = the schablon from this table, Parsed = booking-specific) are stored on the sales line in Commission %, Commission Base Amount and Commission Source, and follow the line onto the posted invoice/credit memo — the posted document always shows how the amount was produced
- When the order is posted, an extra G/L entry is created: debit Receivable Account, credit Income Account (reversed on credit memos). This is a separate entry — it does not change what the customer is charged
- At the same time an AIR Commission Ledger Entry is written (booking reference, hotel, document, rate, base, amount, status Open). This is the history hotel commission payouts are reconciled against — credit memos add a negative entry linked to the original. The entries are visible on the AIR Commission Ledger Entries page
Example Configuration
| Code | Description | Commission % | Receivable Account | Income Account |
|---|---|---|---|---|
| 10Z | Hotel Commission 10% | 10.00 | 1510 | 3510 |
| 15Z | Hotel Commission 15% | 15.00 | 1510 | 3510 |
| 20Z | Hotel Commission 20% | 20.00 | 1510 | 3510 |
Config Package Notes
- Create all commission codes that appear in the customer's hotel booking data
- Both G/L Account references must exist before importing
- The Commission % field accepts values from 0 to 100
- The Code field is Code[10], but only exact 3-character values can ever match
- Use the same account pair on every code unless the customer's accountant requires otherwise. The codes only differ in rate, not in accounting treatment, and per-code/per-hotel/per-booking analysis is available in the AIR Commission Ledger — there is no reporting reason to split the G/L accounts by code
Review the customer's existing hotel booking data and collect the Rate Codes. For each distinct Rate Code of 7+ characters, take characters 5–7 — that set is exactly the list of rows you need.
Common Pitfalls
- Code length: the lookup uses the 3-character suffix verbatim. A code entered as
10Zwith a trailing space, as010Z, or as the full Rate Code will never match. - Silent no-op: an unmatched suffix, a 0% rate, or a zero-price line produces no commission and no error message. If commissions are missing after go-live, check the Rate Codes in the AIR data rather than looking for an error.
- No account filter: unlike AIR Setup and AIR Product Posting Setup, the Receivable Account and Income Account fields relate to G/L Account with no filter on Account Type or Blocked. You can save a heading account or a blocked account here without warning, and posting will then fail. Verify both accounts are of type Posting and not blocked.
- Car rental commission does not exist. If a customer expects it, flag it as a gap rather than configuring codes that will never fire.