---
title: "Admin \u2014 accounting integrations"
path: reference/api/admin-accounting
status: published
---

# Admin — accounting integrations

**9 endpoints** in this group. All paths are prefixed with `/api/v1`.

## Endpoints in this group

- [`GET /api/v1/admin/accounting/connections`](#get-api-v1-admin-accounting-connections) — List Connections
- [`POST /api/v1/admin/accounting/connections/authorize`](#post-api-v1-admin-accounting-connections-authorize) — Start Oauth
- [`POST /api/v1/admin/accounting/connections/callback`](#post-api-v1-admin-accounting-connections-callback) — Oauth Callback
- [`DELETE /api/v1/admin/accounting/connections/{connection_id}`](#delete-api-v1-admin-accounting-connections-connection-id) — Disconnect
- [`PATCH /api/v1/admin/accounting/connections/{connection_id}/config`](#patch-api-v1-admin-accounting-connections-connection-id-config) — Update Connection Config
- [`POST /api/v1/admin/accounting/connections/{connection_id}/sync`](#post-api-v1-admin-accounting-connections-connection-id-sync) — Sync Single Invoice
- [`POST /api/v1/admin/accounting/connections/{connection_id}/sync-all`](#post-api-v1-admin-accounting-connections-connection-id-sync-all) — Sync All Invoices
- [`GET /api/v1/admin/accounting/connections/{connection_id}/sync-log`](#get-api-v1-admin-accounting-connections-connection-id-sync-log) — List Sync Log
- [`GET /api/v1/admin/accounting/plugins`](#get-api-v1-admin-accounting-plugins) — List Plugins

---

### GET `/api/v1/admin/accounting/connections` — List Connections {#get-api-v1-admin-accounting-connections}

List accounting connections, optionally filtered by partner.

**Parameters**:

- `partner_id` (query, string, optional)
- `authorization` (header, string, optional)


**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_list_AccountingConnectionResponse__` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}


### POST `/api/v1/admin/accounting/connections/authorize` — Start Oauth {#post-api-v1-admin-accounting-connections-authorize}

Start OAuth2 flow for an accounting plugin. Returns the authorization URL.

**Parameters**:

- `authorization` (header, string, optional)


**Body**: `AccountingConnectRequest` — {`plugin_slug`, `redirect_uri`}


**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_dict_` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}


### POST `/api/v1/admin/accounting/connections/callback` — Oauth Callback {#post-api-v1-admin-accounting-connections-callback}

Complete OAuth2 flow: exchange code for tokens and create/update connection.

**Parameters**:

- `authorization` (header, string, optional)


**Body**: `AccountingCallbackRequest` — {`plugin_slug`, `code`, `redirect_uri`}


**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_AccountingConnectionResponse_` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}


### DELETE `/api/v1/admin/accounting/connections/{connection_id}` — Disconnect {#delete-api-v1-admin-accounting-connections-connection-id}

Disable an accounting connection (soft-delete).

**Parameters**:

- `connection_id` (path, string, required)
- `authorization` (header, string, optional)


**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_dict_` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}


### PATCH `/api/v1/admin/accounting/connections/{connection_id}/config` — Update Connection Config {#patch-api-v1-admin-accounting-connections-connection-id-config}

Update plugin-specific config on a connection (e.g. default accounts).

**Parameters**:

- `connection_id` (path, string, required)
- `authorization` (header, string, optional)


**Body**: `AccountingConnectionConfigRequest` — {`config`}


**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_AccountingConnectionResponse_` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}


### POST `/api/v1/admin/accounting/connections/{connection_id}/sync` — Sync Single Invoice {#post-api-v1-admin-accounting-connections-connection-id-sync}

Sync a single invoice to the accounting system.

**Parameters**:

- `connection_id` (path, string, required)
- `authorization` (header, string, optional)


**Body**: `AccountingSyncRequest` — {`invoice_id`}


**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_AccountingSyncLogResponse_` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}


### POST `/api/v1/admin/accounting/connections/{connection_id}/sync-all` — Sync All Invoices {#post-api-v1-admin-accounting-connections-connection-id-sync-all}

Sync all un-synced finalized invoices for this connection's partner.

**Parameters**:

- `connection_id` (path, string, required)
- `authorization` (header, string, optional)


**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_list_AccountingSyncLogResponse__` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}


### GET `/api/v1/admin/accounting/connections/{connection_id}/sync-log` — List Sync Log {#get-api-v1-admin-accounting-connections-connection-id-sync-log}

List sync log entries for a connection.

**Parameters**:

- `connection_id` (path, string, required)
- `page` (query, integer, optional)
- `page_size` (query, integer, optional)
- `status` (query, string, optional)
- `authorization` (header, string, optional)


**Responses**:

- `200` — Successful Response. Returns: `PaginatedResponse_AccountingSyncLogResponse_` — {`data`, `pagination`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}


### GET `/api/v1/admin/accounting/plugins` — List Plugins {#get-api-v1-admin-accounting-plugins}

List available accounting system plugins.

**Parameters**:

- `authorization` (header, string, optional)


**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_list_AccountingPluginInfo__` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}
