Integration guide
Procore and Foundation Software integration
Foundation's REST API sits behind a gated onboarding: a commercial evaluation, then a sandbox, then production keys. Start that conversation early; Procore gives you a free developer sandbox the day you register an app, so the Procore side can be built while you wait.
System facts last verified October 2026 against the vendors' documentation (sources below). Confirm details with Procore Technologies and Foundation Software before you build.
Procore and Foundation side by side
- API style
- ProcoreREST/JSON. Procore states that direct database access and RDBMS, XML or SOAP integrations aren't supported.
- FoundationREST/JSON with OpenAPI 3 specifications (the API reference sits behind the developer portal login).
- Authentication
- ProcoreOAuth 2.0, registered as an app in the Procore Developer Portal: authorization code (acts as a specific user) or client credentials through a Developer Managed Service Account (DMSA) with company and project permissions. Traditional service accounts were sunset on March 18, 2025.
- FoundationAn API subscription key plus a bearer access token; Foundation's FAQ says access tokens expire after one hour and sandbox and production keys are separate.
- Webhooks / events
- ProcoreYes. Company- or project-level create, update and delete triggers; Procore recommends payload v4.0 for new integrations. Delivery is best-effort with retries, and events are discarded after 12 hours of continuous failure, so pair webhooks with a periodic reconciliation sync.
- FoundationNot confirmed. Foundation's FAQ lists webhook testing guidance as coming soon.
- Rate limits
- ProcoreAn hourly (60-minute) limit and a 10-second spike limit, reported in X-Rate-Limit-Limit, -Remaining and -Reset headers; exceeding either returns 429, and 503 with Retry-After signals platform load. Procore publishes no fixed default: its rate-limiting page uses sample headers (600 per hour, 25 per spike window), warns not to assume a fixed window such as 3,600/hour, says values can change, and lets apps request an increase. Every request counts, including failed ones.
- FoundationTiered: Foundation's FAQ lists 500 requests per minute (Standard), 2,000 (Professional) and custom (Enterprise), assigned during onboarding.
- Sandbox
- ProcoreYes. A developer sandbox with seed data is created when you register an app (you can have many). Customers can also enable on-demand and monthly sandboxes; the monthly one is refreshed from production each month. Not available to Federal Zone customers.
- FoundationYes, after approval. Onboarding starts with a commercial evaluation; Foundation then provisions a sandbox account with test data, and production keys come at a later phase.
- Exports and files
- ProcoreNo bulk export API confirmed; reporting integrations page through list endpoints. Procore Analytics is a separate product.
- FoundationNot confirmed. Confirm with vendor.
- Marketplace / partners
- ProcoreProcore App Marketplace and the Procore Technology Partner Program (application, technical review, certification, agreement, listing).
- FoundationFoundation integration partners program (listed on Foundation's partners page).
Who owns what
- Accounting usually owns jobs, vendors and cost codes; they flow into project management.
- Commitments and change orders are typically created in project management and pushed to accounting on approval.
- Actual costs flow from accounting back to project management or into a reporting model.
What syncs between Procore and Foundation
The typical shape for this pair. Every row is typical: confirm it against your configuration in discovery.
| Object | Direction | System of record | |
|---|---|---|---|
| Projects / jobs | Foundation to Procore | Foundation (job number) | Hourly |
| Typical frequency: Hourly. Notes: Create the job in Foundation, then the Procore project carrying the Foundation job number.(Typical: confirm against your configuration.) | |||
| Customers → owners | Foundation to Procore | Foundation | On change |
| Typical frequency: On change. Notes: The Foundation customer becomes the owner on the Procore prime contract and directory; reference its ID.(Typical: confirm against your configuration.) | |||
| Vendors | Foundation to Procore | Foundation | Hourly |
| Typical frequency: Hourly. Notes: Reference the Foundation vendor ID from the Procore directory; never match on name alone.(Typical: confirm against your configuration.) | |||
| Cost codes and cost classes | Foundation to Procore | Foundation | On change |
| Typical frequency: On change. Notes: Foundation uses cost codes and cost classes. Map cost classes to Procore cost types in a table accounting reviews.(Typical: confirm against your configuration.) | |||
| Purchase orders and subcontracts | Procore to Foundation | Pick one: usually Procore | Every 15 minutes |
| Typical frequency: Every 15 minutes. Notes: Send approved commitments only. Two-way commitment sync without one owner causes overwrites.(Typical: confirm against your configuration.) | |||
| Change orders | Procore to Foundation | Procore for approval; Foundation for posted cost | Every 15 minutes |
| Typical frequency: Every 15 minutes. Notes: Approved only. Hold a change order whose commitment hasn't synced yet, then retry.(Typical: confirm against your configuration.) | |||
| Subcontractor invoices | not synced | Confirm during onboarding | n/a until confirmed |
| Typical frequency: n/a until confirmed. Notes: Foundation's integration pages don't list AP invoices among the objects we could confirm. Check the OpenAPI specs you get during onboarding before scoping this flow.(Typical: confirm against your configuration.) | |||
Directions, owners and frequencies are the typical pattern from our integration guides and mapping workbook. Confirm each one against your configuration in discovery.
Is a native connector enough?
We haven't confirmed a documented native connector for this pair. Check the Procore App Marketplace and Foundation's integration partners page for a partner connector first: if one moves the records you need with your cost structure and approvals, configure it. Build when the mapping needs governing, when failures need routing to a person, or when you also need cross-system reporting.
Compare native connectors with a custom buildCommon gotchas
- API access needs a commercial evaluation and approval before you get a Foundation sandbox. Put it first on the plan; it's the longest lead time in this pair.
- Foundation's rate limit depends on the tier assigned at onboarding (500 requests per minute on Standard, 2,000 on Professional). Size the backfill to that, and to Procore's hourly and 10-second limits, whichever binds first.
- Foundation webhooks aren't confirmed yet, so changes on that side are polled. Procore webhooks can push the other way; keep a reconciliation run for both.
- Foundation access tokens expire after an hour and sandbox and production keys are separate. Keep both sets in a vault and switch by configuration, not code.
Sources
- Procore developer documentation
- Procore: choosing an OAuth grant type
- Procore: rate limiting
- Procore: webhooks
- Procore: development environments
- Procore: financial tools tutorial
- Procore: partner program overview
- Foundation developer FAQ (tokens, rate tiers, sandbox)
- Foundation integration onboarding
- Foundation integrations overview
- Foundation partners
Frequently asked questions
Does Foundation Software have an API for Procore integrations?
Yes. Foundation offers a REST API with OpenAPI specifications. Access starts with a commercial evaluation; Foundation then provisions a sandbox with test data, and production keys come later.
Can Procore subcontractor invoices post to Foundation?
Not confirmed from public material: AP invoices aren't among the objects Foundation's integration pages list. Check the OpenAPI specs during onboarding before you commit to that flow.
What rate limit applies to a Foundation integration?
The tier assigned at onboarding: Foundation lists 500 requests per minute on Standard, 2,000 on Professional, and custom limits on Enterprise.
Next step
Connecting Procore and Foundation?
Bring one real job and the records you want to move. We'll walk through what syncs, who owns each record, and what to check first.