Back to integrations
PDI Enterprise integration
PDI Enterprise has no public API, so Demurly works with files: it writes files for PDI's invoice imports, and reads the payment registers you export from PDI.
Early access
Pro plan
Carriers need Pro ($199 a month) to set this up; upgrade on Settings > Plan & Billing. Fuel buyers get it free. See pricing.
Early access
Tested against each vendor's API format; we're completing live sandbox certification. Talk to us before relying on it for month-end.
How it works
Approved charges become rows in an import file: vendor bills for a fuel buyer (free), AR invoices for a carrier (on the Pro plan). Each charge goes in one file only. You get the file to PDI (download it, or have it emailed) and import it there. When you pay or post payments in PDI, export the payment register as CSV and upload it: matched lines mark the charges paid.
Confirm the column layouts with your PDI admin
PDI's import layouts aren't public. Demurly's column layouts are placeholders until you change them: ask your PDI admin (or PDI support) for the vendor invoice import (APII) or AR invoice import layout and a sample payment register, then edit the layouts on the PDI Enterprise files card or load a sample file's header. Import one test file into a PDI test company before going live.
The files
- Files ready to import: rows not in a file yet. Download file makes the file; past files download again byte for byte.
- Email the files: new rows go out daily or weekly, at your company's local time, to people on your team.
- Layouts: column order and names, what each column holds (a field, a fixed value, or empty), delimiter, header line, date format, amounts in dollars or cents, and line endings. Each layout is versioned; a new version applies to rows not yet in a file.
- Payment registers: lines match by the record number in the reference (DMR-…) and the amount. Part payments count, the same lines never count twice, the same file twice is refused, and a voided check un-counts the payment it names. Lines Demurly couldn't match are listed.
- SFTP to your PDI server isn't switched on yet. You can save its settings; until then, download or email the files.
For fuel buyers: bills in PDI Enterprise
Free for fuel buyers
Each charge you approve becomes a row in the next vendor invoice file for PDI's invoice import (APII). Payments you make in Demurly go in a payments file, and the AP check register you upload tells the carrier which bills you paid.
What syncs
- On approval: a row with the carrier's PDI vendor number, its invoice number, the record number as the reference, invoice and due dates on your calendar, the amount to the cent, your expense G/L account, and a memo linking to the record
- Paid in Demurly: a row in the payments file
- Paid in PDI: upload the AP check / payment register, and a bill paid in full marks the charge paid outside Demurly (with the check number); the carrier confirms the money arrived
- Each record says where it is: "In PDI import file 2026-11-10", or that it's waiting for the next file
What doesn't sync
- Demurly can't create vendors in PDI, and the invoice PDF stays in Demurly
- A register can't say a bill was voided in PDI, so voids aren't seen
- Demurly can't tell whether a file was imported; a payment in the register shows it was
What PDI Enterprise needs
- The vendor invoice import (APII) layout from your PDI admin
- Each carrier's vendor number in PDI. Optional: upload your PDI vendor list (CSV with number and name columns) to search by name
- Someone who imports the files in PDI, and exports the payment register as CSV
Set it up
- Go to Settings > Integrations and connect PDI Enterprise (no sign-in).
- On the PDI Enterprise files card, set the vendor invoice, payments and register layouts.
- On the PDI Enterprise bills card, map each carrier: type its vendor number exactly as it is in PDI.
- Download the file (or turn on Email the files) and import it once in PDI.
- After you pay in PDI, Upload payment register.
- Charges approved before you connected: Bill earlier charges on the bills card. Pick a start date (the day you connected, unless you change it) and Demurly shows how many it will bill first. Charges you already paid are left out unless you tick Also bill charges you already paid; then each is billed with its payment recorded.
For carriers: AR invoices in PDI Enterprise
- A customer approves a record: a row in the next AR invoice file, under the customer's PDI customer number, with the record number as the invoice number, the approval date and the amount
- Payments through Demurly: rows in a cash receipts file
- Upload the AR cash receipts you export from PDI: an invoice paid in full marks the record paid
- Enter each customer's PDI customer number on the files card; its invoices wait until you do, then go in the next file
- Demurly doesn't create PDI customers, and can't see invoices voided in PDI
- One system invoices a carrier's records at a time: disconnect QuickBooks, NetSuite or SAP Business One first
Having issues?
Each failed or waiting charge says why on the record and on the card, with Retry. See the Troubleshooting guide for more.