ml-connector
Infor CloudSuiteProcurify

Infor CloudSuite and Procurify integration

Procurify handles procurement workflows and spend approval. Infor CloudSuite handles the general ledger and vendor master. Connecting them keeps your procurement spend visible in your ERP as it happens, not after month-end. Purchase orders and bills approved in Procurify flow into CloudSuite with the correct vendors, GL accounts, and cost centers, so your procurement team works in Procurify while your finance team sees all spending in real time in your ERP.

How Infor CloudSuite works

Procurify exposes vendors, purchase orders, requisitions, bills, order items, account codes, locations, and departments through a REST API with JSON payloads over HTTPS. Every API call requires OAuth2 client credentials and custom X-Procurify-Client header. Procurify has no webhooks or native push, so records are read through time-based polling using date-range filters on endpoints like /purchase-orders and /bills. Procurify token lifetime is 24 hours, and some endpoints like Payments and order items are read-only.

How Procurify works

Infor CloudSuite exposes suppliers, purchase orders, AP invoices, GL accounts, items, and customers through the ION API Gateway via REST business object APIs and OData. Authentication is OAuth2 Resource Owner Password Credentials with service account credentials and registered app credentials, with token lifetime configurable per tenant from 1 to 24 hours. Base URL and tenant ID are customer-specific, extracted from an .ionapi credentials file. CloudSuite has no traditional webhooks, so records are polled by querying transaction lists filtered by modified date or status. Pagination varies by CloudSuite product line: M3 uses cursor-based filtering, SyteLine uses Bookmark parameters.

What moves between them

Purchase orders and approved bills move from Procurify into Infor CloudSuite. When a PO is approved in Procurify, ml-connector reads it and creates a purchase order header and line items in CloudSuite mapped to the correct vendor from the CloudSuite vendor master and GL account from the ERP chart of accounts. Bills approved in Procurify are created as AP invoices in CloudSuite with the same vendor and account mapping. Reference data like vendors, GL accounts, and departments are synced bidirectionally so Procurify account codes align with CloudSuite GL accounts before any transactional data moves.

How ml-connector handles it

ml-connector stores both credential sets encrypted and handles the two different OAuth flows: Procurify's client credentials against a customer subdomain, and CloudSuite's Resource Owner Password Credentials against a per-tenant ION Gateway base URL. It accepts the CloudSuite .ionapi file contents per customer and extracts the base URL and OAuth endpoints from those credentials, since CloudSuite has no shared base address. Procurify has no native idempotency keys, so ml-connector tracks PO and bill IDs to prevent duplicate creates when retries occur. It polls Procurify on a schedule tied to your procurement calendar and maps Procurify vendors to CloudSuite supplier records by name or code before creating orders, so every PO references a valid CloudSuite vendor. GL accounts are mapped first so bills land on the correct accounts. Rate limits on both sides trigger retries with exponential backoff: CloudSuite typically enforces 100-500 requests per minute, and Procurify suspends access on excessive requests causing timeouts. Every record carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized manufacturing company runs Infor CloudSuite M3 for procurement and finance, and uses Procurify for purchase request approval and vendor management. Before the integration, procurement teams approved POs in Procurify, finance printed and manually re-entered them into CloudSuite, then reconciled discrepancies at month-end. With Procurify and CloudSuite connected, each approved PO flows into CloudSuite automatically with the correct vendor from the ERP master and the correct GL account from the chart of accounts. Bills approved in Procurify post to AP in CloudSuite with the same mappings, so accounts payable starts each month with all open POs and bills already recorded and reconciled to the procurement source.

What you can do

  • Create purchase orders in Infor CloudSuite from approved Procurify purchase orders, mapped to the correct CloudSuite vendors and GL accounts.
  • Post AP invoices from Procurify into CloudSuite with vendor and account codes matching your ERP chart of accounts.
  • Sync vendors and GL accounts bidirectionally so Procurify procurement data always lands on valid CloudSuite dimensions.
  • Authenticate Procurify with OAuth2 client credentials and CloudSuite with Resource Owner Password Credentials against a per-tenant ION Gateway base URL.
  • Poll Procurify on a schedule with deduplication, retries on rate limits, and a full audit trail on every record.

Questions

Which direction does data move between Procurify and Infor CloudSuite?
The main flow is Procurify into CloudSuite. Purchase orders and bills approved in Procurify create purchase orders and AP invoices in CloudSuite. Vendors, GL accounts, and departments are aligned in both directions so Procurify account codes match valid CloudSuite GL accounts and vendors before any transactional records move. Bills and orders are never written back from CloudSuite into Procurify.
How does the integration handle CloudSuite's per-tenant base URL and lack of webhooks?
ml-connector accepts the full CloudSuite .ionapi credentials file per customer, which contains the per-tenant base URL and OAuth endpoints specific to that customer and region, since CloudSuite publishes no shared base address. Because CloudSuite has no webhooks, it polls Procurify on a schedule tied to your procurement calendar rather than waiting for a push from the ERP, and it filters by modified date or status to capture only new and changed records.
What happens when a Procurify PO references a vendor or account that does not exist in CloudSuite?
ml-connector syncs vendors and GL accounts from CloudSuite first, so every account code in Procurify is validated against your ERP chart of accounts before any PO is created. If Procurify uses an account code that does not exist in CloudSuite, the record is flagged in the audit trail and an alert is sent so it can be corrected in Procurify or added to CloudSuite before the order proceeds.

Related integrations

Connect Infor CloudSuite and Procurify

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

Get started