QAD and Ramp integration
QAD runs manufacturing and finance. Ramp runs corporate cards, bill pay, and spend management. Connecting the two keeps supplier records and purchase orders consistent across both, and moves Ramp bills and card spend into QAD's general ledger without re-keying. Vendors and purchase orders from QAD line up with Ramp so every charge codes against a real supplier, and approved bills and cleared transactions post back into QAD against valid accounts and cost centers. ml-connector handles the very different APIs on each side and runs the sync on a schedule you control.
What moves between them
Records move in both directions. QAD vendors and purchase orders flow into Ramp so card spend and bills code against the correct supplier and PO, mapped through the accounting GL accounts and dimensions Ramp already holds. In the other direction, ml-connector reads approved Ramp bills and cleared card transactions and posts them into QAD as supplier invoices and general ledger entries, allocated to the matching QAD GL accounts and cost centers. GL accounts, departments, and cost centers are aligned across both systems first, so every Ramp line references a dimension that exists in QAD. Because QAD applies three-way match, bills are linked to the originating purchase order through shared purchase order line item ids before they post.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the Ramp side it requests a client credentials token over HTTP Basic and refreshes it daily rather than waiting for a 401, since the token is opaque and lasts ten days. On the QAD side it accepts the full tenant URL per customer, because QAD publishes no shared base address, and validates entity paths against that instance. Because QAD cloud is pull-only, it polls QAD suppliers, purchase orders, and goods receipts on a schedule, while Ramp pushes bill and transaction events over signed webhooks that ml-connector verifies with HMAC-SHA256 and then re-fetches through the GET endpoint for authoritative state. GL accounts, departments, and cost centers are mapped first so every posted line lands on a valid QAD account. Bills are linked to their purchase order through shared purchase order line item ids, and ml-connector waits for the QAD goods receipt before posting a supplier invoice so three-way match holds. Every POST and PATCH to Ramp carries an idempotency key, Ramp rate limits return HTTP 429 at 100 requests per minute, so ml-connector backs off and retries, and every record keeps a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized contract manufacturer with around 300 employees runs QAD Adaptive ERP for production, procurement, and finance, and rolls out Ramp cards and bill pay to control spend across its plants and offices. Before the integration, the AP team re-keyed Ramp bills and card statements into QAD by hand, suppliers existed under different names in each system, and card charges often landed on the wrong cost center or with no purchase order at all. With QAD and Ramp connected, QAD vendors and purchase orders flow into Ramp so spend codes against real suppliers, approved bills and cleared transactions post into QAD against the correct GL accounts and cost centers, and bills tie back to their purchase orders. Month-end close starts with spend already coded and reconciled instead of with a stack of statements to re-enter.
What you can do
- Sync QAD vendors and purchase orders into Ramp so card spend and bills code against the correct supplier and PO.
- Post approved Ramp bills into QAD as supplier invoices, linked to their purchase order for three-way match.
- Read cleared Ramp card transactions and post them into QAD's general ledger against valid accounts and cost centers.
- Align GL accounts, departments, and cost centers across QAD and Ramp so every line lands on a real dimension.
- Authenticate Ramp with OAuth2 client credentials and QAD with its tenant-specific token, with retries and a full audit trail.
Questions
- Which direction does data move between QAD and Ramp?
- Records move both ways. QAD vendors and purchase orders flow into Ramp so spend codes against the right supplier, and approved bills and cleared card transactions flow from Ramp into QAD as supplier invoices and GL entries. GL accounts, departments, and cost centers are aligned across both systems so every posted line references a valid QAD dimension.
- Does the integration use Ramp webhooks or polling?
- It uses both, matched to each system. Ramp pushes bill, transaction, and vendor events over webhooks signed with HMAC-SHA256, which ml-connector verifies and then re-fetches through the GET endpoint for authoritative state. QAD has no webhook system, so ml-connector polls QAD suppliers, purchase orders, and goods receipts on a schedule you control.
- How does the integration handle QAD's three-way match?
- QAD requires a goods receipt to post before a supplier invoice. ml-connector links each Ramp bill to its originating purchase order through the shared purchase order line item ids that both objects carry, and waits for the QAD goods receipt before posting the supplier invoice. That keeps the bill, purchase order, and receipt matched the way QAD expects.
Related integrations
More QAD integrations
Other systems that connect to Ramp
Connect QAD and Ramp
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started