Integration Endpoint (AIR / Travel Card import)
Booking data reaches Business Central through an external integration service that pushes AIR files and travel card transactions into the import tables via OData web services. Every new environment needs two things before the integration works: the Entra application must be registered in the environment, and the web services must be published. Neither happens by itself when the environment is created.
If either step is missing, the integration's requests fail with
Authentication_InvalidCredentials (Entra app missing) or NotFound
(web services missing). Depending on the integration service's error handling
these can be easy to miss — always run the verification steps below after
setting up a new environment.
1. Register the Entra application
In Business Central, search for Microsoft Entra Applications and create an entry for the integration application:
- Client ID — the application (client) ID of the integration's Entra app registration (from the party operating the integration service).
- State = Enabled.
- Grant the application user both permission sets:
- D365 FULL ACCESS
- TBC (51300) — required for the extension's own objects; D365 FULL ACCESS alone is not enough for the 51300-series tables.
This must be repeated per environment (each sandbox and production environment has its own registration list).
2. Web services
From the version that includes webservices.xml, all integration web services
are published automatically when the extension is installed — no manual
step. The services exposed under /ODataV4/:
| Page | Service Name |
|---|---|
| 51900 | AirImportHeader |
| 51902 | AirFlight |
| 51903 | AirPassenger |
| 51904 | AirFare |
| 51905 | AirTax |
| 51906 | AirHotel |
| 51907 | AirCarRental |
| 51908 | AirGroundTransport |
| 51909 | AirHotelRate |
| 51910 | AirRemarks |
| 51911 | AirImportLog |
| 51912 | AirAncillaryService |
| 51913 | TravelCardTransaction |
| 51914 | TravelCardTransLine |
| 51916 | TravelCardPassenger |
| 51917 | TravelCardFlight |
| 51919 | TravelCardStatusUpdate |
| 51920 | TravelCardValidationError |
The service names are consumed case-sensitively by the integration service — never rename them. On an environment running an older version of the app, publish the same list manually on the Web Services page (Object Type = Page, exact names as above, Published = Yes).
3. Verify
GET https://api.businesscentral.dynamics.com/v2.0/{tenant}/{environment}/ODataV4/— the service document must list allAir*andTravelCard*services above.GET .../ODataV4/Companywith the integration app's client credentials — must return the company list (proves both the Entra registration and the permission sets).