ml-connector
DeltekOrderful

Deltek and Orderful integration

Deltek Vantagepoint runs project accounting, finance, and the general ledger. Orderful is an EDI network that translates JSON into X12 documents and routes them to trading partners over AS2, SFTP, or VAN. Connecting the two lets the invoices Deltek produces leave as standard EDI without re-keying, and lets the purchase orders partners send arrive in Deltek as project and billing records. ml-connector reads finance data from the Deltek REST API, posts and retrieves transactions through Orderful, and moves the data on the schedule you set. The general ledger stays in Deltek, since Orderful is a routing network and holds no accounting records.

How Deltek works

Deltek Vantagepoint exposes firms (vendors and clients), projects, AP invoices, AR invoices, journal entries, cash receipts, payments, and GL accounts through a REST API on a tenant-specific URL such as acme.deltekfirst.com, so there is no shared hostname. It authenticates with OAuth 2.0 using the password grant, which from version 5.0 must be enabled in settings, with every call carrying a bearer token. Vantagepoint has workflow-driven webhooks but no signed event bus and no confirmed public purchase order REST endpoint, so finance records are read by polling. The older Costpoint product is SOAP and file based instead.

How Orderful works

Orderful is an EDI transaction-routing network, not an ERP, so it holds no vendor, project, or GL account as a queryable object. It exposes EDI document types such as the 810 invoice, 850 purchase order, 855 acknowledgment, and 856 ship notice through one REST API on api.orderful.com, where the transaction type differentiates the payload. Authentication is a single static orderful-api-key header, with no OAuth and no token refresh, and US and EU accounts are fully isolated on separate URLs. Sender and receiver ISA IDs route every transaction, a stream field set to test or live controls delivery, and inbound documents arrive either by HTTP push to your endpoint or by polling a bucket.

What moves between them

Outbound, ml-connector reads approved AR invoice data from Deltek Vantagepoint, maps each to an X12 810 invoice in the Orderful Mosaic schema, and posts it to Orderful with the right sender and receiver ISA IDs so the network translates and delivers it to the trading partner. Inbound, it pulls 850 purchase orders and 855 acknowledgments from Orderful and creates the matching record in Deltek against the right firm and project. Trading partner ISA IDs in Orderful are aligned to Deltek firms so each document references a partner that exists on both sides. Invoices move outbound, purchase orders and acknowledgments move inbound, on the polling cadence you set.

How ml-connector handles it

ml-connector stores both credential sets encrypted. On the Deltek side it accepts the full tenant URL per customer, since there is no shared base address, requests an OAuth 2.0 password-grant token, and refreshes it when a call returns 401, which depends on the password grant being enabled in Vantagepoint settings and the API user role having full field visibility so amount and fee fields do not read as zero. On the Orderful side it sends the static orderful-api-key header on every request, targets api.orderful.com or the EU URL to match the account region, and stamps each transaction with the sender and receiver ISA IDs and a stream value of test until go-live. To send an invoice it posts an 810 to the transactions endpoint; to receive, it reads the inbox or a polling bucket and approves each batch to dequeue it. Because Orderful has no usable webhook for this two-way work, both directions can run on a schedule, though an inbound HTTP channel can trigger reads. Neither side offers an idempotency key, so ml-connector checks Deltek for an existing record by number before posting and stores the 64-bit Orderful transaction ID after a successful send to avoid duplicates. Orderful rate limits return HTTP 429, so the connector backs off on the Retry-After header and retries, and every record carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized engineering and construction firm of roughly two hundred staff runs Deltek Vantagepoint for project accounting and bills several large clients that require X12 EDI invoices through their procurement portals. Before the integration, the finance team exported each client invoice from Deltek and re-keyed it into an EDI format by hand, then logged incoming client purchase orders into Deltek manually, which left invoices waiting days and let partner references drift between the systems. With Deltek and Orderful connected, approved Vantagepoint invoices become 810 documents sent through Orderful automatically, and client 850 purchase orders arriving in Orderful create Deltek records without manual entry. The duplicate keying and the month-end lag go away.

What you can do

  • Turn approved Deltek Vantagepoint AR invoices into X12 810 documents and send them to trading partners through Orderful.
  • Pull 850 purchase orders and 855 acknowledgments from Orderful and create the matching records in Deltek.
  • Map Deltek firms to Orderful trading partner ISA IDs so every transaction routes to the right account.
  • Bridge the Deltek OAuth 2.0 tenant password grant and the static Orderful API key on the correct region URL.
  • Run both directions on a schedule with duplicate checks, 429 backoff, and a full audit trail on every record.

Questions

Which direction does data move between Deltek and Orderful?
Invoices move outbound and purchase orders move inbound. ml-connector reads approved AR invoice data from Deltek Vantagepoint and posts X12 810 documents to Orderful for delivery to partners, while it pulls inbound 850 purchase orders and 855 acknowledgments from Orderful and creates the matching records in Deltek. Trading partner ISA IDs are aligned to Deltek firms so each document references a known partner on both sides.
Why does the integration poll Orderful instead of relying on webhooks?
Orderful can push inbound documents to an HTTP endpoint, but for reliable two-way sync ml-connector reads the Orderful inbox or a polling bucket on the schedule you set and approves each batch to dequeue it. Deltek Vantagepoint also has no signed event bus for this work, only workflow callbacks, so the outbound side runs on a schedule as well. An inbound HTTP channel can be added later as a trigger without changing the mapping.
How does ml-connector handle Deltek's tenant URL and Orderful's regions and streams?
Deltek Vantagepoint publishes no shared base address, so ml-connector accepts the full tenant URL such as company.deltekfirst.com per customer and refreshes the OAuth 2.0 token on a 401. For Orderful it sends the static API key against api.orderful.com or the EU URL to match the account region, since the two regions are isolated, and it stamps each transaction with a stream value of test until you complete partner testing and schedule go-live.

Related integrations

Connect Deltek and Orderful

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started