For fuel buyers, free. PDI Enterprise has no public API, so the sync works with files: Demurly writes files for PDI's vendor invoice import (APII), and you upload the payment register you export from PDI.
What syncs
- You approve a charge: a row in the next vendor invoice file, with the carrier's PDI vendor number, its invoice number, the record number as the reference, the dates, the amount to the cent, your expense G/L account and a memo that links to the record. Each charge goes in one file only.
- You pay in Demurly: a row in the payments file.
- You pay in PDI and upload the AP check / payment register: a bill paid in full marks the charge paid outside Demurly (with the check number), and the carrier confirms. Part payments are noted.
- On the record: "In PDI import file 2026-11-10", or "In the next PDI import file (not made yet)".
Set it up
- Settings > Integrations > PDI Enterprise > Connect (no sign-in).
- Ask your PDI admin (or PDI support) for the vendor invoice import layout. Demurly's column layouts are placeholders until you change them: edit each layout on the PDI Enterprise files card, or load a sample file's header.
- Map each carrier: type its vendor number exactly as it is in PDI, or upload your PDI vendor list (a CSV with number and name columns) to search by name.
- Get the files to PDI: Download file under Files ready to import, turn on Email the files (daily or weekly, to people on your team), or have Demurly put them on your PDI server by SFTP (under How files reach PDI: the server's address and port, a user and its password or private key, the upload folder, and the server's host key fingerprint, from "ssh-keyscan host | ssh-keygen -lf -"). Import each file once in PDI.
- After you pay in PDI, export the payment register as CSV and Upload payment register.
- Charges approved before you connected: Bill earlier charges; they go in 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. A voided check in the register does cancel the payment it names.
- Demurly can't tell whether a file was imported; a bill paid in the register shows it was.
Troubleshooting
- "Waiting for a vendor mapping": enter the carrier's vendor number on the bills card.
- "… isn't a PDI vendor number": map the carrier again with the number from PDI.
- "The file has no … column": the register layout doesn't match PDI's export. Edit the payment register layout (columns are found by header name).
- "This register was already imported": the same file twice is refused; lines already imported never count twice.
- Lines Demurly couldn't match: check the reference holds the record number (DMR-…) and the amount, then upload the corrected register.