Infor CloudSuite and Basware integration
Infor CloudSuite runs ERP and finance through the ION API Gateway. Basware handles invoice receipt, coding, matching, and approval. Connecting the two lets Basware code and match invoices against current Infor vendor and purchase order data, then return approved invoices for posting in Infor CloudSuite. Vendors, purchase orders, GL accounts, and cost centers flow from Infor into Basware, and coded accounting documents flow back. ml-connector handles the different APIs and auth on each side and moves records on a schedule you control.
What moves between them
Master data flows from Infor CloudSuite into Basware. ml-connector reads suppliers, purchase orders, GL accounts, and cost centers from the ION API Gateway and imports them into Basware as vendors, purchase orders, coding accounts, and dimensions so the coding panel and matching have current references. Coded and approved accounting documents flow back from Basware into Infor CloudSuite, where ml-connector posts them as supplier invoices through APS100MI or the equivalent SyteLine path. After an invoice posts and is paid in Infor, ml-connector can send a payment confirmation back to Basware. Basware never initiates payments to a bank.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the Infor side it accepts the full .ionapi fields per customer, requests an OAuth2 token with the password grant, and refreshes proactively because tokens expire in one to twenty-four hours. On the Basware side it obtains a client credentials bearer token per region and renews it after the one-hour default. Infor master data is read by polling, since Infor has no connector webhooks, while Basware push notifications signal when an accounting document is coded and ready for transfer; ml-connector verifies the HMAC-SHA256 signature in the X-BWAPI-Signature-256 header against the raw UTF-8 body and rejects stale timestamps. Vendors, GL accounts, and cost centers are mapped first so every coding line references an account that exists in Infor. Because Infor Add transactions are not idempotent, ml-connector queries by invoice number before posting to avoid duplicates, and it acknowledges each Basware document only after the Infor write succeeds. Basware skips unchanged records on import, so a field must change to retrigger a master data sync. Both APIs are polled and written with exponential backoff on 429 responses, and every record carries a full audit trail with replay.
A real-world example
A mid-sized distribution company running Infor CloudSuite M3 across several warehouses uses Basware for invoice receipt and approval. Before the integration, staff manually exported new vendors and purchase orders from M3 into Basware and re-keyed approved invoices back into the ERP, which delayed coding and caused mismatches when a PO or supplier was missing in Basware. With Infor CloudSuite and Basware connected, vendor and purchase order data lands in Basware automatically so invoices match on the first pass, and approved documents post straight into M3 against the right GL accounts and cost centers. The AP team stops re-keying and month-end starts with payables already reconciled.
What you can do
- Import Infor CloudSuite suppliers, purchase orders, GL accounts, and cost centers into Basware so coding and matching use current data.
- Post coded and approved Basware accounting documents back into Infor CloudSuite as supplier invoices.
- Verify Basware HMAC-SHA256 webhook signatures and acknowledge each document only after the Infor write succeeds.
- Bridge Infor OAuth2 password-grant tokens and Basware OAuth2 client credentials, refreshing each before it expires.
- Poll Infor by schedule, query before posting to avoid duplicates, and replay any record from a full audit trail.
Questions
- Which direction does data move between Infor CloudSuite and Basware?
- Master data moves from Infor CloudSuite into Basware, including suppliers, purchase orders, GL accounts, and cost centers, so invoices code and match against current references. Coded and approved accounting documents move back from Basware into Infor CloudSuite, where they post as supplier invoices. After payment in Infor, a confirmation can flow back to Basware, but Basware does not initiate payments.
- How does the integration know when an invoice is ready in Basware?
- Basware sends a push notification through its P2P API when an accounting document is coded and ready for transfer. ml-connector subscribes to that event, verifies the HMAC-SHA256 signature in the X-BWAPI-Signature-256 header against the raw UTF-8 body, and rejects stale timestamps to block replays. Infor itself has no connector webhooks, so Infor master data is read by polling on a schedule.
- How are duplicate invoices avoided when posting into Infor CloudSuite?
- Infor M3 Add transactions are not idempotent, so a repeated POST would create a duplicate record. ml-connector queries Infor by invoice number before posting and skips the write if the invoice already exists. It also acknowledges the Basware document only after the Infor write succeeds, so a failure leaves the document available for a clean retry.
Related integrations
More Infor CloudSuite integrations
Other systems that connect to Basware
Connect Infor CloudSuite and Basware
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started