Run my Accounts API: Beleg Upload

Hochladen von Belegen in die Verarbeitung. Akzeptiert werden PDF oder Bilddateien. Genauer die folgenden MIME-Types: application/pdf, image/png, image/jpg, image/jpeg und image/gif. Belege müssen nicht einzeln hochgeladen werden, können also auch in einem PDF hochgeladen werden. Die Trennung erfolgt in der Verarbeitung.

POST https://service.runmyaccounts.com/api/{version}/clients/{mandantenname}/belege

Der Upload erwartet Multipart Data, d.h. der Content-Type Header muss auf multipart/form-data gesetzt sein. Die Datei wird im Parameter Filedata erwartet. Optional kann ein beliebiger Kommentar der Verarbeitung übergeben werden. Dazu muss der Parameter comment verwendet werden.

Antwort:

Die Schnittstelle antwortet mit dem HTTP Status Code 200. Folgende Fehlerfälle können auftreten:

Http Status Beschreibung
403 Fehlerhafte Authentifizierung, eventuell kein oder falscher API-Key.
415 Der hochgeladene Content-Type ist nicht unterstützt. Erlaubt sind application/pdf, image/png, image/jpg, image/jpeg, image/gif.
413 Die maximal erlaubte Dateigrösse von 25mb wurde überschritten.
409 Die exakt gleiche Datei wurde schon mal hochgeladen.

Die Antwort ist entweder ein XML oder JSON, je nach Accept Header des Aufrufs. Die Antwort hat folgende Felder:

Feld Beschreibung
id Eine durch Run my Accounts vergebene eindeutige Id.
comment Der mit dem Upload übertragene Kommentar.
checksum Eine CRC32 Checksum des Dateiinhalts.
date_received Empfangsdatum und Zeit.
file_name Der erkannte Dateiname.

Beispiel Antwort:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<beleg_upload>
<id>112305</id>
<comment></comment>
<checksum>4084618730</checksum>
<date_received>2014-06-18T08:06:52.810+02:00</date_received>
<file_name>1400851148_invoice_R100007.pdf</file_name>
</beleg_upload>

Beispiel Upload:

POST /api/latest/clients/apitest/belege?api_key=GEHEIM HTTP/1.1
Host: service.runmyaccounts.com
Connection: keep-alive
Content-Length: 27974
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryyik8WY7O6UcFUs4z
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,fr;q=0.2,sv;q=0.2

------WebKitFormBoundaryyik8WY7O6UcFUs4z
Content-Disposition: form-data; name="comment"

Kontierung 4200
------WebKitFormBoundaryyik8WY7O6UcFUs4z
Content-Disposition: form-data; name="Filedata"; filename="test_dokument.pdf"
Content-Type: application/pdf

%PDF-1.4
...
%%EOF
------WebKitFormBoundaryAR3J3St4XvA6RGZa--