The Perk Spend integration for Microsoft Dynamics 365 Finance connects Perk to Microsoft Dynamics 365 Finance (D365 Finance) so master data, expenses, and supplier invoices stay in sync between the two systems.
What the integration does
The integration keeps expense and invoice data in sync between Perk and D365 Finance. Master data — workers, vendors, cost centers, and more — flows from D365 Finance into Perk automatically. Expenses and supplier invoices that people manage in Perk flow into D365 Finance as expense reports and vendor invoices, ready for your finance team to review or post.
The integration is designed for account admins and company admins who manage the connection, and for financial reviewers and invoice or expense processors who work with the documents it creates. It works with both cloud and on-premises D365 Finance deployments. The setup steps differ slightly between the two — on-premises environments need extra firewall rules and use AD FS for authentication instead of Microsoft Entra ID.
How data flows between Perk and D365 Finance
Data moves in two directions between Perk and D365 Finance, using a different method for each:
- Import (D365 Finance → Perk): master data — workers, vendors, cost centers, projects, purchase orders, and more — is pushed from D365 Finance into Perk through business events, which fire in real time whenever the source data changes.
- Export (Perk → D365 Finance): approved expenses and supplier invoices, along with their attachments, are pushed from Perk into D365 Finance through REST APIs.
The tables below shows what moves and how:
Import (D365 Finance → Perk)
| D365 Finance object | Perk object | Sync method |
|---|---|---|
| Workers | Users (with line manager hierarchy) | Business event, real time |
| Expense categories | Expense categories | Business event, real time |
| Cost center dimension | Cost objects | Business event, real time |
| Other financial dimensions | Tags | Business event, real time |
| Vendors | Suppliers (with bank accounts and contacts) | Business event, real time |
| Projects | Cost objects (type: project) | Business event, real time |
| Purchase orders (confirmed only) | Purchase orders | Business event, real time |
| Product receipts | Goods receipts | Business event, real time |
| Procurement categories | Invoice categories | Business event, real time |
| Payment terms | Payment terms (with cash discounts) | Business event, real time |
| Tax rates | Tax rates | Scheduled batch job, not real time |
Export (Perk → D365 Finance)
| Perk object | D365 Finance object | Sync method |
|---|---|---|
| Expense reports | Expense reports | REST API |
| Expense receipts and attachments | Expense report attachments | REST API |
| Supplier invoices | Pending vendor invoices | REST API |
| Invoice document attachments | Vendor invoice attachments | REST API |
Exporting expenses to D365 Finance
The integration supports these expense types:
- Reimbursable expenses: out-of-pocket costs employees pay themselves and claim back.
- Transactions: corporate card purchases.
- Travel expenses: costs tied to business trips.
- Receipts and attachments: supporting documents in PDF, JPG, PNG, and other common formats.
Once an expense report is ready, the integration creates it in D365 Finance under Expense management My expenses Expense reports, with one of two statuses:
- Draft: auto-submit is off, so the worker still needs to submit it in D365 Finance.
- In review: auto-submit is on, so the integration submits it straight to the D365 Finance workflow.
Turning on Send documents sends receipts and other attachments along with the report.
Exporting invoices to D365 Finance
The integration supports these invoice types:
- Non-PO invoices: invoices that don't reference a purchase order.
- PO invoices: invoices linked to a purchase order, including three-way matching against the order and goods receipt.
- Document attachments: invoice documents in PDF, JPG, PNG, and other common formats.
Once an invoice clears Perk's approval workflow, the integration creates it in D365 Finance under Accounts payable Invoices Pending vendor invoices, with one of two statuses:
- Pending: auto-posting is off, so someone still needs to post it to the invoice journal.
- Posted: auto-posting is on, so the integration posts it automatically.
As with expenses, turning on Send documents sends the invoice's attachments across too.
Prerequisites
Before you turn on the integration, the relevant D365 Finance modules need to be fully set up:
- Accounts Payable module: needed for invoice processing.
- Expense Management module: needed for expense processing.
Two D365 Finance security roles control who can do what with the integration:
- integration manager: full configuration access — general configuration, initial master data sync, and both vendor invoices and expense reports.
- integration clerk: day-to-day work only — vendor invoices and expense reports, without configuration access.
Known limitations
- Tax rates don't sync in real time — they update through a scheduled batch job instead of business events.
- Only confirmed purchase orders sync from D365 Finance to Perk.
- Only projects sync as cost objects — project tasks and project hierarchies don't.
- A deleted purchase order line in D365 Finance shows up in Perk as an inactive line, not a deleted one.
- Payment terms and cash discount combinations need to already exist in Perk before purchase order sync works correctly for them.
Caution: The approver for a cost center comes from the Owner field on the financial dimension value in D365 Finance — checking the legal entity override first, then the dimension value itself. If no owner is set, no approver syncs to Perk, which can leave a cost object without an approver.