AIR Posting Setup (Table 51301)
The AIR Posting Setup table defines which G/L Accounts are used when posting sales orders created from AIR bookings. Each row maps a specific combination of business posting group, product type, booking type, payment method, and card type to a set of accounts.
Page
Accessible via AIR Posting Setup page (search for "AIR Posting Setup" in Business Central).
All setup tables have dedicated pages in Business Central. For smaller datasets or initial setup, entering data directly in the UI may be more practical than building a config package. Config packages are most useful when you have many rows to import or want a repeatable setup across environments.
Primary Key Structure
The table uses a composite primary key with 5 fields. The system finds the most specific matching row when posting.
| Field ID | Field Name | Data Type | Values |
|---|---|---|---|
| 1 | Gen. Bus. Posting Group | Code[20] | References standard BC Gen. Business Posting Group |
| 2 | AIR Product Type | Enum | Other, Flight, GroundTransport, Train, Hotel, CarRental |
| 3 | AIR Booking Type | Enum | (blank), BSP, UCCCF, Ghost, Voucher, Confirmation |
| 4 | Payment Method | Enum | (blank), Card, Invoice |
| 5 | Card Type | Enum | None, FirstCard, Diners |
Account Fields
| Field ID | Field Name | Data Type | Description |
|---|---|---|---|
| 10 | Sales Account | Code[20] | G/L Account for sales revenue. Required for all rows |
| 11 | Purchase Account | Code[20] | G/L Account for purchases. Used with Confirmation booking type (for vendor netting) |
| 12 | Markup Account | Code[20] | G/L Account for markup revenue (when markup is applied to a booking) |
| 13 | Service Fee Account | Code[20] | G/L Account for service fee revenue |
All account fields reference the G/L Account table.
How Matching Works
When the system needs to post a booking line, it searches for a Posting Setup row that matches the line's attributes. The matching uses the key fields in this priority:
- Exact match on all 5 key fields
- If no exact match, the system tries progressively less specific combinations (with blank values acting as wildcards)
This means you can create:
- Specific rules: e.g., Gen. Bus. Posting Group = "DOMESTIC", Product Type = Flight, Booking Type = BSP, Payment = Card, Card Type = FirstCard → specific accounts
- General fallback rules: e.g., Gen. Bus. Posting Group = "DOMESTIC", Product Type = Flight, all other fields blank → default accounts for domestic flights
Example Configuration
| Gen. Bus. Post. Group | Product Type | Booking Type | Payment | Card Type | Sales Acc. | Markup Acc. | Service Fee Acc. |
|---|---|---|---|---|---|---|---|
| DOMESTIC | Flight | (blank) | (blank) | None | 3010 | 3015 | 3020 |
| DOMESTIC | Flight | (blank) | Card | FirstCard | 3010 | 3015 | 3020 |
| DOMESTIC | Hotel | (blank) | (blank) | None | 3030 | 3035 | 3040 |
| DOMESTIC | Hotel | Voucher | (blank) | None | 3030 | 3035 | 3040 |
| DOMESTIC | Hotel | Confirmation | (blank) | None | 3030 | 3035 | 3040 |
| EUROPE | Flight | (blank) | (blank) | None | 3110 | 3115 | 3120 |
| EUROPE | Hotel | (blank) | (blank) | None | 3130 | 3135 | 3140 |
Config Package Notes
- This is a multi-row table — include all rows needed for the customer's posting rules
- The number of rows depends on how granular the customer's accounting needs to be
- At minimum, create one row per Product Type per Gen. Bus. Posting Group
- Add more specific rows (by Booking Type, Payment Method, Card Type) only when different accounts are needed
Common Pitfalls
- Missing rows: If no matching Posting Setup row is found during booking processing, the system will raise an error. Make sure all expected combinations are covered.
- Blank vs. specific: A row with blank Booking Type, Payment Method, and Card Type acts as a catch-all for that Product Type + Posting Group combination. Make sure you have catch-all rows for common scenarios.
- G/L Accounts must exist: All referenced G/L Account numbers must exist in the chart of accounts before importing this table.