Deltek and Stampli integration
Deltek runs project-based accounting and the general ledger. Stampli runs accounts payable capture, coding, and approval. Connecting the two means the vendor list, chart of accounts, and project dimensions that live in Deltek are mirrored into Stampli so every invoice is coded against real values, and the bills your team approves in Stampli post back into Deltek as AP invoices without re-keying. Because Stampli publishes no public API, ml-connector moves this data as scheduled CSV or XML files over SFTP. The general ledger stays in Deltek, which is the system of record.
What moves between them
Master data flows from Deltek into Stampli. ml-connector reads firms marked as vendors, GL accounts, organizations, accounting codes, and projects from Deltek and writes them as import files into Stampli's inbound SFTP path so the coding screen offers only valid values, and where Deltek purchase orders are available it includes open POs for matching. Approved bills flow the other direction: ml-connector polls Stampli's outbound SFTP path for exported invoice files and posts each one into Deltek as an AP invoice against the matching firm, GL account, project, and organization. The general ledger and payment execution stay in Deltek, so ml-connector does not write ledger entries or payment instructions back into Stampli.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the Deltek side it requests an OAuth2 bearer token with the password grant against the tenant token endpoint, sends it on every REST call, and refreshes it before the roughly one-hour expiry; the API user role must expose every field the integration reads, since hidden fields such as fees return zero rather than an error. On the Stampli side it connects over SFTP, writes master-data files to the inbound directory, and polls the outbound directory on a schedule because Stampli has no public webhook. Vendors and GL accounts are pushed first so each exported bill resolves to a firm and account that already exist in Deltek. Deltek exposes no idempotency key, so ml-connector queries by invoice number before posting and tracks processed file names to avoid double-booking a re-read file. Approval status on the new AP invoice follows the instance configuration, so a bill can land posted or as a draft awaiting Deltek approval. Because file exchange is scheduled batch rather than real-time, latency is measured in the polling window, and every record carries a full audit trail and can be replayed if a Deltek post fails.
A real-world example
A 250-person architecture and engineering firm runs Deltek Vantagepoint for project accounting and the general ledger, and adopted Stampli to speed up invoice approvals across several offices. Before the integration, an accountant exported the approved-bill report from Stampli each week and re-keyed every invoice into Deltek by hand, picking the firm, project, and GL account from memory, which meant bills posted days late and project costs were sometimes coded to the wrong job. With Deltek and Stampli connected, the vendor list, accounts, and project dimensions are mirrored into Stampli so coding is constrained to valid values, and approved bills post back into Deltek automatically against the right project. Invoices reach the ledger within the polling window and the manual re-entry step is gone.
What you can do
- Push Deltek vendors, GL accounts, organizations, and projects into Stampli so invoices code against valid values.
- Poll Stampli's outbound SFTP directory and post approved bills into Deltek as AP invoices.
- Match each Stampli invoice to the correct Deltek firm, project, and GL account before posting.
- Authenticate Deltek with OAuth2 password grant against its tenant URL, and Stampli over SFTP.
- Dedupe on invoice number and processed file names, with retries and a full audit trail on every record.
Questions
- Which direction does data move between Deltek and Stampli?
- Master data moves from Deltek into Stampli, and approved invoices move from Stampli back into Deltek. ml-connector pushes vendors, GL accounts, organizations, and projects into Stampli so invoices are coded correctly, then posts the bills your team approves in Stampli into Deltek as AP invoices. The general ledger and payment execution stay in Deltek, so no ledger entries are written back into Stampli.
- Why does the integration use files over SFTP instead of a direct API?
- Stampli does not publish a public REST API for third-party developers, so the only path open without a Stampli partner agreement is file-based exchange. ml-connector writes customer-defined CSV or XML import files to Stampli's inbound SFTP directory and reads exported invoice files from the outbound directory. Because there is no public webhook, it polls the outbound directory on a schedule to pick up new files.
- How does the integration avoid posting the same invoice to Deltek twice?
- Deltek's REST API has no idempotency key header, so duplicate prevention is the caller's job. ml-connector queries Deltek by invoice number before creating an AP invoice and tracks the file names it has already processed, so re-reading a file does not double-book a bill. Stampli's own engine also runs duplicate detection before it exports an invoice.
Related integrations
More Deltek integrations
Other systems that connect to Stampli
Connect Deltek and Stampli
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started