> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://support.robaws.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# API - Dateien hochladen über API

Es gibt zwei Möglichkeiten, Dateien in Robaws hochzuladen:


1. **Aktualisieren eines Bildes/PDFs** für Elemente wie Artikel, Rechnungsdokumente oder Zertifikate über einen temporären Dokumenten-Bucket.

2. **Dokumente hochladen** direkt in Projekte, Rechnungen oder jedes andere Modul in Robaws, das in der Benutzeroberfläche eine Registerkarte „Dokumente“ hat.

---


# 1. Hochladen über einen temporären Dokumenten-Bucket

## Schritt 1: Erstellen eines temporären Dokumenten-Buckets*


**Request:** POST /api/v2/temp-document-buckets

**Beispielantwort:**

```json
{
  "id": "1a4aeabc-0aa8-484d-947a-8ca47e13ee34",
  "expires": "2024-03-09T07:58:22.693Z"
}
```


### Schritt 2: Dateien in den temporären Bucket hochladen


* Für Dateien bis zu 6 MB verwenden Sie diesen Endpunkt:
    
```
    POST /api/v2/temp-document-buckets/{your-bucket-uuid}/documents
```

    
* Für Dateien größer als 6 MB starten Sie eine Upload-Session:
    
```
    POST /api/v2/temp-document-buckets/{your-bucket-uuid}/document-upload-sessions
```

    
* Während der Session laden Sie die Datei in Teilen hoch. Jeder Teil darf nicht größer als 6 MB sein. Die `partNumber` beginnt bei 0.
    
```
    POST /api/v2/document-upload-sessions/{sessionId}
Content-Type: application/json
```


**Beispiel für den Anfrageinhalt:**

```json
{
  "bytesBase64": "base64encodedData",
  "partNumber": 0
}
```

---


## Schritt 3: Den Upload abschließen

* Wenn der letzte Teil hochgeladen wurde (oder wenn die Datei kleiner als 6 MB ist und in einem Schritt hochgeladen wurde), erhalten Sie eine Antwort mit der Dokument-ID.

* Verwenden Sie diese Dokument-ID, um die Datei an eine bestimmte Entität zu hängen, z. B. eine Eingangsrechnung.


**z.B. Anhängen an eine Eingangsrechnung):**

```
PATCH /api/v2/purchase-invoices/123
Content-Type: application/merge-patch+json
```


**z.B. für den Anfrageinhalt:**

```json
{
  "documentId": "your-newly-uploaded-document-id"
}
```


**Hinweis**

* Sobald ein Dokument an eine Entität angehängt wird, wird es aus dem temporären Bucket entfernt.
* Wenn die hochgeladenen Dateien nicht angehängt werden, werden sie gelöscht, wenn der temporäre Bucket abläuft.

---

# 2. Direktes Hochladen in Entitäten

Sie können den temporären Bucket überspringen und Dateien direkt an eine Entität (z. B. ein Projekt) hochladen, indem Sie denselben Prozess wie oben verwenden.


## Schritt 1: Dateien hochladen

* Für Dateien bis zu 6 MB:
    
```
    POST /api/v2/projects/{your-project-id}/documents
```

    
* Für Dateien größer als 6 MB starten Sie eine Upload-Session:
    
```
    POST /api/v2/projects/{your-project-id}/document-upload-sessions
```
    

* Laden Sie jeden Teil wie im Verfahren für temporäre Buckets hoch:
    
```
POST /api/v2/document-upload-sessions/{sessionId}
Content-Type: application/json
```


**Beispiel für den Anfrageinhalt:**
    
```json
{
      "bytesBase64": "base64encodedData",
      "partNumber": 0
}
```
    

## Schritt 2: Dokument an die Entität anhängen

* Sobald der Upload abgeschlossen ist und die Dokument-ID zurückgegeben wurde, wird das Dokument automatisch an die Entität (z. B. ein Projekt) angehängt.
* Es sind keine weiteren Schritte erforderlich.

---


**Unterstützte Content-Types:**

Jeder dieser Upload-Endpoint unterstützt:

    * `application/json`
    * `multipart/form-data`


Für weitere Details zu den Anforderungsparametern siehe [die API-Referenzdokumentation](https://app.robaws.com/swagger-ui/index.html).