canonical: https://jentic.com/apis/linuxfoundation.org/linuxfoundation

# Linuxfoundation Reimbursements API

The Linux Foundation Reimbursements API manages expense reimbursement workflows for projects hosted on the Linux Foundation platform. It supports creating and updating reimbursement records per project, applying expense actions (such as submit, approve, or reject) against expense reports, tagging reimbursement policies, and resetting policies. Authentication uses an X-API-Key header issued through the Linux Foundation platform.

## For AI agents

Create and update Linux Foundation project reimbursements, run expense actions on expense reports, and manage tagging and reset of reimbursement policies for finance and ops teams.

## Scope

Does not handle payouts to bank accounts, payroll, or general accounting ledgers - use for Linux Foundation project reimbursement and expense report lifecycle only.

## Capabilities

- Create a reimbursement record for a project via POST `/reimbursement/{projectId}`
- Update an existing reimbursement record via PATCH `/reimbursement/{projectId}`
- Apply an action (submit, approve, reject, etc.) to an expense report via POST `/expense/{action}/{reportId}`
- Tag a reimbursement policy with metadata via POST /tag
- Reset a reimbursement policy to defaults via POST /reset
- Authenticate with the X-API-Key header issued by the Linux Foundation platform

## Use cases

### Project Reimbursement Setup

Set up a reimbursement record for a Linux Foundation project so contributors can submit eligible expenses. POST `/reimbursement/{projectId}` creates the record with project-specific policy settings, and PATCH `/reimbursement/{projectId}` updates it as policies evolve. Useful for project ops teams onboarding new working groups or sub-projects to the Linux Foundation finance platform.

Example prompt: Call POST `/reimbursement/{projectId}` for the new working group with the policy payload, then verify with a PATCH to update the policy threshold.

### Expense Report Approval Workflow

Drive the submit-approve-reject lifecycle on contributor expense reports without a manual UI. POST `/expense/{action}/{reportId}` accepts the action (submit, approve, reject, etc.) and the report id, returning the updated state. Best for finance teams routing dozens of contributor expenses per week through structured approval rules.

Example prompt: Call POST `/expense/approve/{reportId}` for the report once the manager has signed off, then store the resulting state in the audit log.

### Policy Tagging and Reset

Manage reimbursement policy metadata for audit and rollback. POST /tag attaches metadata (such as version, owner, or change reason) to a policy, while POST /reset restores defaults when a policy needs to be rolled back. Useful for finance ops teams that need a clean audit trail across many projects.

Example prompt: Call POST /tag with policy metadata when a new policy version is published, and POST /reset to roll back if validation fails.

### AI Agent Finance Operations

Let an AI agent handle routine reimbursement actions on behalf of finance ops, such as submitting an expense report or applying a project policy update. Through Jentic, the agent searches by intent, gets the schema for the right /expense or /reimbursement endpoint, and executes while the X-API-Key stays in your Jentic One instance. Every action remains traceable through the API's response state.

Example prompt: Search Jentic for 'approve a Linux Foundation expense report', load the schema, and execute POST `/expense/approve/{reportId}.`

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/reimbursement/{projectId}` | Create a reimbursement record for a project |
| PATCH | `/reimbursement/{projectId}` | Update a reimbursement record for a project |
| POST | `/expense/{action}/{reportId}` | Apply an action to an expense report |
| POST | `/tag` | Tag a reimbursement policy |
| POST | `/reset` | Reset a reimbursement policy to defaults |
| GET | `/health` | Service health check |

## Key resources

- **Reimbursement** — Per-project reimbursement records via POST and PATCH `/reimbursement/{projectId}`
- **Expense** — Lifecycle actions on expense reports via POST `/expense/{action}/{reportId}`
- **Policy** — Tag and reset reimbursement policies via POST /tag and POST /reset
- **Health** — Service health check via GET /health and API documentation via GET /api-docs

## Why Jentic

- **Setup:** Wiring the Linux Foundation Reimbursements API by hand means setting up its X-API-Key header auth, targeting the platform gateway host, and handling retries yourself across the expense-report lifecycle. Through Jentic you install once, import the Reimbursements API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** This API puts the project id in the URL path (`/reimbursement/{projectId}`), so a rule can pin your agent to one project: it can create and update reimbursements and act on expense reports for that project and nothing else. You choose the operations it may call, so a POST /reset is not included unless you add it.
- **Credential handling:** Your Linux Foundation X-API-Key is stored once, encrypted, by your own Jentic One instance and injected as the request header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'approve an expense report' or 'create a reimbursement for a project', and Jentic returns the matching Reimbursements operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Stripe API** — Payment platform that disburses approved reimbursements to contributors
- **HubSpot Account API** — CRM for tracking contributor and project relationship records
- **Salesforce API** — General-purpose CRM and finance object platform with custom expense flows

## FAQ

### What authentication does the Reimbursements API use?

The API uses an X-API-Key header (ApiKeyAuth) issued through the Linux Foundation platform. Through Jentic, the key is stored in your Jentic One instance and injected at execution time so agents never receive the raw key.

### Can I create a project reimbursement record with this API?

Yes. POST `/reimbursement/{projectId}` creates a reimbursement record bound to the given project id with the supplied policy payload, and PATCH `/reimbursement/{projectId}` updates it. Each call requires the project id in the path so policies stay scoped to a single project.

### What are the rate limits for the Reimbursements API?

Rate limits are enforced by the Linux Foundation API gateway and vary by endpoint and consumer tier. Build agents to back off on 429 responses and avoid tight loops on `/expense/{action}/{reportId}` when handling bulk approvals.

### How do I approve an expense report through Jentic?

Run pip install jentic, then search for 'approve a Linux Foundation expense report'. Jentic returns POST `/expense/{action}/{reportId}.` Load the schema, supply action=approve and the reportId, and execute. The response confirms the new state of the report.

### Does the API expose a health check endpoint?

Yes. GET /health returns the reimbursement service health status, and GET /api-docs returns the live OpenAPI documentation. Use /health in monitoring and /api-docs when verifying that the deployed schema matches what the agent has loaded.

### Can I limit what my agent is allowed to do with the Reimbursements API?

Yes. Because you self-host Jentic One, your own rules decide which Reimbursements operations and credentials the agent may use. Since the project id lives in the URL path (`/reimbursement/{projectId}`), you can pin the agent to a single project so it only creates and updates reimbursements and applies expense actions such as submit or approve on `/expense/{action}/{reportId}` for that project. You also choose which operations it may call, so an operation like POST /reset stays off limits unless you explicitly grant it.
