---
title: "Create partner expense connection"
method: POST
path: "/companies/{companyId}/sync/expenses/connections/partnerExpense"
tags: ["Connections"]
---

# Create partner expense connection

`POST /companies/{companyId}/sync/expenses/connections/partnerExpense`

## Request

- Base URL: `https://api.codat.io`
- URL: `https://api.codat.io/companies/{companyId}/sync/expenses/connections/partnerExpense`
- Auth: API key in header `Authorization`

Creates a partner expense data connection

## Path parameters

- `companyId` string, uuid, required: Unique identifier for your SMB in Codat.

## Response `200`

Success

- Connection: A connection represents a [company's](https://docs.codat.io/sync-for-expenses-api#/schemas/Company) connection to a data source and allows you to synchronize data (pull and/or push) with that source. A company can have multiple data connections depending on the type of data source it is connecting to. For example, a single company can link to: - [Accounting data](https://docs.codat.io/accounting-api/overview) - 1 active connection. - [Banking data](https://docs.codat.io/banking-api/overview) - Multiple active connections. - [Commerce data](https://docs.codat.io/commerce-api/overview) - Multiple active connections. Any combination of accounting, banking, and commerce data connections is allowed. Before you can use a data connection to pull or push data, the company must grant you access to their business data by [linking the connection](https://docs.codat.io/auth-flow/overview).
  - `id` Schema, required (unresolved $ref)
  - `integrationId` string, uuid, required: A Codat ID representing the integration.
  - `integrationKey` string: A unique four-character ID that identifies the platform of the company's data connection. This ensures continuity if the platform changes its name in the future.
  - `sourceId` string, uuid, required: A source-specific ID used to distinguish between different sources originating from the same data connection. In general, a data connection is a single data source. However, for TrueLayer, `sourceId` is associated with a specific bank and has a many-to-one relationship with the `integrationId`.
  - `sourceType` 'Accounting' | 'Banking' | 'BankFeed' | 'Commerce' | 'Expense' | 'Other' | 'Unknown', required: The type of platform of the connection.
  - `platformName` string, required: Name of integration connected to company.
  - `linkUrl` string, uri, required: The link URL your customers can use to authorize access to their business application.
  - `status` DataConnectionStatus, required (unresolved $ref)
  - `lastSync` 1 (unresolved $ref)
  - `created` 1, required (unresolved $ref)
  - `dataConnectionErrors` DataConnectionError[], nullable (unresolved $ref)
  - `connectionInfo` object, nullable

## Other responses

- `400`: The request made is not valid.
- `401`: Your API request was not properly authorized.
- `402`: An account limit has been exceeded. The type of limit is described in the error property: - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io.
- `403`: You are using an outdated API key or a key not associated with that resource.
- `404`: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted.
- `429`: Too many requests were made in a given amount of time. Wait a short period and then try again.
- `500`: There is a problem with our server. Please try again later.
- `503`: The Codat API is temporarily offline for maintenance. Please try again later.

## Changes

- **2026-04-15** `4cec2042759e`: 1 breaking
  - the response property `integrationKey` became optional for the status `200`
- **2024-09-26** `f64df5c655ec`: 1 breaking
  - the response property `dataConnectionErrors` became nullable for the status `200`
- **2024-09-23** `2d8788c80250`: 2 breaking
  - the response property `connectionInfo` became nullable for the status `200`
  - the response property `lastSync` became nullable for the status `200`
- **2024-09-23** `d64723f7f651`: 1 warning
  - removed the optional property `additionalProperties` from the response with the `200` status

[Operation history](https://skmtc.dev/codatio/apis/sync-for-expenses-v1/changes/companies/:companyId/sync/expenses/connections/partnerExpense/post.md)

---

[API](https://skmtc.dev/codatio/apis/sync-for-expenses-v1.md) - [All operations](https://skmtc.dev/codatio/apis/sync-for-expenses-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/codatio/apis/sync-for-expenses-v1/revisions/ca501f1fd9a0?raw)
