openapi: 3.0.3
info:
title: sevdesk CheckAccount Contact API
description: 'The sevdesk API is a RESTful interface to the sevdesk cloud accounting and invoicing platform. Every function and every piece of data available in the sevdesk web application can also be driven through this API - contacts, invoices, orders, credit notes, vouchers (receipts), bank check accounts and transactions, parts (inventory), and tags. All requests are authenticated with a per-administrator API token, passed as the value of an `Authorization` header. Nested resources can be pulled in with the `embed` query parameter.
This OpenAPI document is a grounded, representative subset authored by API Evangelist from sevdesk''s official OpenAPI specification (openapi 3.0.0, reported API version 2.0.0, served at https://my.sevdesk.de/api/v1). The paths, HTTP methods, operationIds, and the apiKey security scheme are taken directly from the official specification; request and response schemas here are simplified representations of the far richer official models. See review.yml for confirmed-vs-modeled detail.'
version: '1.0'
contact:
name: sevdesk
url: https://api.sevdesk.de/
servers:
- url: https://my.sevdesk.de/api/v1
description: sevdesk main application instance
security:
- api_key: []
tags:
- name: Contact
description: Contacts - customers, suppliers, and other business partners.
paths:
/Contact:
get:
operationId: getContacts
tags:
- Contact
summary: Retrieve contacts
description: Retrieves a list of contacts, optionally filtered and embedded.
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Embed'
responses:
'200':
description: A list of contacts.
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createContact
tags:
- Contact
summary: Create a new contact
description: Creates a new contact (organisation or person).
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Contact'
responses:
'201':
description: The created contact.
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/Contact/{contactId}:
parameters:
- $ref: '#/components/parameters/ContactId'
get:
operationId: getContactById
tags:
- Contact
summary: Find contact by ID
description: Retrieves a single contact by its ID.
responses:
'200':
description: The requested contact.
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateContact
tags:
- Contact
summary: Update a existing contact
description: Updates an existing contact.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Contact'
responses:
'200':
description: The updated contact.
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteContact
tags:
- Contact
summary: Deletes a contact
description: Deletes a contact.
responses:
'200':
description: Deletion confirmation.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/Contact/Factory/getNextCustomerNumber:
get:
operationId: getNextCustomerNumber
tags:
- Contact
summary: Get next free customer number
description: Returns the next free customer number sevdesk would assign.
responses:
'200':
description: The next free customer number.
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectResponse'
'401':
$ref: '#/components/responses/Unauthorized'
components:
parameters:
Embed:
name: embed
in: query
required: false
description: Comma-separated list of nested resources to embed fully in the response instead of returning only their id and objectName.
schema:
type: string
ContactId:
name: contactId
in: path
required: true
description: The ID of the contact.
schema:
type: integer
Limit:
name: limit
in: query
required: false
description: Limits the number of entries returned.
schema:
type: integer
Offset:
name: offset
in: query
required: false
description: Number of entries to skip for pagination.
schema:
type: integer
responses:
Unauthorized:
description: Missing or invalid API token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
ObjectResponse:
type: object
description: Standard sevdesk single-object envelope.
properties:
objects:
type: object
additionalProperties: true
Contact:
type: object
description: A sevdesk contact. Simplified subset of the official model; either name (organisation) or surname/familyname (person) is used together with a category.
properties:
name:
type: string
description: Organisation name (for company contacts).
surename:
type: string
description: Given name (for person contacts).
familyname:
type: string
description: Family name (for person contacts).
customerNumber:
type: string
category:
type: object
description: Contact category reference (id + objectName Category).
properties:
id:
type: integer
objectName:
type: string
required:
- category
ObjectList:
type: object
description: Standard sevdesk list envelope. The objects array carries the requested resources.
properties:
objects:
type: array
items:
type: object
additionalProperties: true
Error:
type: object
properties:
error:
type: object
properties:
message:
type: string
code:
type: integer
securitySchemes:
api_key:
type: apiKey
name: Authorization
in: header
description: Per-administrator sevdesk API token - a 32-character hexadecimal string found in the sevdesk web app under user settings. Passed as the raw value of the `Authorization` header (no `Bearer` prefix). Tokens have an infinite lifetime.