---
title: "Create a Contract 🇫🇷"
method: POST
path: "/companies/{companyId}/collaborators/{collaboratorId}/contracts"
tags: ["Contract"]
---

# Create a Contract 🇫🇷

`POST /companies/{companyId}/collaborators/{collaboratorId}/contracts`

## Request

- Base URL: `https://partner-api.payfit.com`
- URL: `https://partner-api.payfit.com/companies/{companyId}/collaborators/{collaboratorId}/contracts`
- Auth: OAuth 2
  - Authorization code: `https://oauth.payfit.com/authorize`
  - Token URL: `https://oauth.payfit.com/token` scopes: `collaborators:contracts:write`
- TypeScript: <https://skmtc.dev/payfit/apis/partner-api/docs/companies/:companyId/collaborators/:collaboratorId/contracts/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a basic contract on a collaborator and return its ID.
Important notes:
1. **Contract completion**: the created contract won't be finalized, and the employee won't be available for payroll while their information is not set by an admin in the PayFit app.
2. **Multiple Contracts**: While it is technically possible to create multiple contracts for an employee, it is strongly recommended to avoid this during the initialization phase. It will be difficult for the HR manager to identify which contract needs to be updated. We encourage implementing a control to prevent initializing a new contract if one is already in progress. If your use case requires multiple contracts, proceed with caution and ensure proper identification and management.
3. **Country availability**: Currently, this functionality is only available for France. It will be made available for Spain and the United Kingdom in the future.

\
**Required scopes**: *collaborators:contracts:write*

## Path parameters

- `companyId` string, required
- `collaboratorId` string, uuid, required

## Request body

- object
  - `jobTitle` string, required: Job title on the contract.
  - `startDate` string, date, required: Start date of a contract in the format YYYY-MM-DD.

## Response `201`

This endpoint returns no data. The contract can take 2-5min before being available.

- object

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found

## Changes

- **2026-11-03** `4ad2186afd5e`: 1 breaking
  - for the `path` request parameter `collaboratorId`, the format changed from no format to `uuid`

[Operation history](https://skmtc.dev/payfit/apis/partner-api/changes/companies/:companyId/collaborators/:collaboratorId/contracts/post.md)

---

[API](https://skmtc.dev/payfit/apis/partner-api.md) - [All operations](https://skmtc.dev/payfit/apis/partner-api/llms.txt) - [OpenAPI document](https://skmtc.dev/payfit/apis/partner-api/revisions/4ad2186afd5e?raw)
