# Microsoft Dynamics 365 Finance and Supply Chain Management

> How Dynamics 365 Finance and Supply Chain Management works with BatteryPass through data entities and business events.

> [!NOTE]
> This page describes an integration pattern. BatteryPass ships no connector for Dynamics 365 and has no partnership
> with Microsoft; nothing here is a vendor approval.

The data entities under `/data` (OData V4) expose products, serial numbers, production, deliveries and returns. The
middleware signs in through Microsoft Entra ID with a client secret or, better, a certificate, as an application
user with read rights to the entities it needs.

Business events announce changes, for example a finished production order, to Azure Service Bus, Event Grid, Event
Hubs, an HTTPS endpoint or Power Automate. According to Microsoft they are no way to export data and may arrive out of
order. Treat each event as a hint: read the data through OData afterwards and process it idempotently.

Typical fits are [units from production](https://passport.kabin.sh/docs/en/integrations/workflows/units-from-production) with the
`generic-csv` preset, [returns and repairs](https://passport.kabin.sh/docs/en/integrations/workflows/returns-and-repairs) from service orders,
and [condition data](https://passport.kabin.sh/docs/en/integrations/workflows/condition-from-bms) where a service process records measurements.

## Interfaces and how they were checked

- **Vendor:** Microsoft
- **Cloud:** Finance and Supply Chain Management (formerly Finance and Operations)

Business events announce changes, but according to Microsoft they are no way to export data and may arrive out of order: after the event the middleware reads the data through OData.

An integration pattern, not a connector: BatteryPass ships no ERP connector and holds no vendor certification.

| Interface                                                                                                                                                                                      | Protocol | Sign-in                      | Events                       | Objects                                                                                      | Checked                                         |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| [`OData data entities (/data)`](https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/odata) (Data entities (products, serials, production, deliveries, returns)) | OData V4 | OAuth 2.0 client credentials | none                         | Product/material master, Batch/serial number, Production order, Delivery/goods issue, Return | checked in the vendor documentation, 24/10/2026 |
| [`Business events`](https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/business-events/home-page) (Business events)                                                          | REST     | OAuth 2.0 client credentials | Business events (not signed) | Product/material master, Production order, Delivery/goods issue                              | checked in the vendor documentation, 24/10/2026 |

**Notes**

- `OData data entities (/data)`: Sign-in through Microsoft Entra ID with a client secret or a certificate.
- `Business events`: Endpoints include Azure Service Bus, Event Grid, Event Hubs, HTTPS and Power Automate; no ordering guarantee.

**Import presets: Generic CSV file** (`generic-csv`): For any ERP and for files a middleware writes itself: GTIN, serial number, manufacturing date, facility (name or GLN), model version and battery status, with German and English column names.

| Column in the export                                          | Field in BatteryPass                                      |
| ------------------------------------------------------------- | --------------------------------------------------------- |
| `GTIN` (also EAN, GTIN-13, GTIN-14)                           | GTIN (GS1) `identification.gtin`                          |
| `Serial number` (also Seriennummer, serial_number)            | Serial number `identification.serial_number`              |
| `Manufacturing date` (also Herstelldatum, manufacturing_date) | Manufacturing date `identification.manufacturing_date`    |
| `Facility` (also Produktionsstätte, Facility GLN, Werk-GLN)   | Place of manufacture `identification.manufacturing_place` |
| `Model version` (also Modellversion, model_version)           | Model version `model_version`                             |
| `Battery status` (also Batteriestatus, battery_status)        | Battery status `identification.battery_status`            |

## Workflows

- [Units from production](https://passport.kabin.sh/docs/en/integrations/workflows/units-from-production.md): Serial numbers from the production confirmation or goods receipt are staged as an import; members review, commit and approve before any passport appears. Key scopes: import
- [Passport links back into the ERP](https://passport.kabin.sh/docs/en/integrations/workflows/passport-links-to-erp.md): The middleware follows the change feed and writes the GS1 Digital Link and the passport status to the serial number record in the ERP, so labels and delivery papers carry it. Key scopes: read
- [Condition data from BMS and service](https://passport.kabin.sh/docs/en/integrations/workflows/condition-from-bms.md): A battery management system or a service tool reports measurements such as capacity fade or cycles; BatteryPass accepts newer measurements and publishes according to the organisation's policy. Key scopes: read, condition
- [Returns and repairs as lifecycle events](https://passport.kabin.sh/docs/en/integrations/workflows/returns-and-repairs.md): Completed repairs, inspections and component replacements from service or return orders appear as events in the unit's history. Key scopes: read, condition
- [Product change leads to a new model version](https://passport.kabin.sh/docs/en/integrations/workflows/product-change.md): A change to the product master in the ERP triggers a notification; a member creates a new model version in BatteryPass. Declared data is never written automatically. Key scopes: read
