0

Nochmal API: Wie PDF übertragen?

Nachdem ich dank der großartigen Hilfe von Tobias schon eine in Ninox geschriebene Rechnung als Einnahme korrekt zu FastBill übertragen kann, fehlt nur noch das dazugehörige Ninox PDF welches mit der Einnahme gesendet werden soll. Laut FastBill ginge das auch - die haben allerdings keinen Plan von der Ninox Syntax und verweisen daher auf deren API Dokumentation zu dieser Sache:

#######################################################################

Erstellen eines Einnahmen-Eintrags. Dieser kann optional einen Dateianhang (Beleg) beinhalten

ACHTUNG! – Wenn ein Dateianhang eingeliefert werden soll, erfordert diese Action einen POST-Request des Typs „multipart/form-data“. Der Request-Body muss in diesem Fall aus den folgenden beiden Teilen zusammengesetzt sein:

document -> Datei, die übertragen werden soll
httpbody -> XML- oder JSON-Datenblock
Aufbau des POST-Requests im Multipart-Format:

curl -v -X POST \
-u {E-Mail-Adresse}:{API-Key} \
-H 'Content-Type: multipart/form-data, boundary=AaB03x' \
-d '{xml body}' \ https://my.fastbill.com/api/1.0/api.php

POST /api/1.0/api.php HTTP/1.0
Host: my.fastbill.com
Content-type: multipart/form-data, boundary=AaB03x
Content-Length: {Größe des Inhalts}

--AaB03x content-disposition: form-data; name="httpbody"
{XML- oder JSON-Daten}
--AaB03x
content-disposition: form-data; name="document"; filename{Dateiname}"
Content-Type: {MIME Typ}
Content-Transfer-Encoding: binary
{Datei-Inhalt}
--AaB03x--

#######################################################################

 

Hier ist das was in Ninox bereits funktioniert, die Übertragung der Rechnungsdaten zu FastBill:

 

#######################################################################

(APIResponse := null);
let auth := {
Authorization: API_KEY_FROM_FASTBILL,
'Content-Type': "application/json"
};
let response := do as server
http("POST", "https://my.fastbill.com/api/1.0/api.php", auth, {
SERVICE: "revenue.create",
DATA: {
INVOICE_DATE: INVOICE_DATE_FOR_FASTBILL,
DUE_DATE: DUE_DATE_FOR_FASTBILL,
CUSTOMER_ID: COSTUMER_ID_FOR_FASTBILL,
INVOICE_NUMBER: INVOICE_NUMBER_FOR_FASTBILL,
COMMENT: COMMENT_FOR_FASTBILL,
SUB_TOTAL: SUB_TOTAL_FOR_FASTBILL,
VAT_TOTAL: VAT_TOTAL_FOR_FASTBILL
}
})
end;
APIResponse := text(response)
end

 

#######################################################################

 

Hat jemand vielleicht eine Idee wie die Syntax in Ninox lauten müsste?

2 Antworten

null
    • Gunther.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ninox unterstützt "Content-Type: multipart/form-data" nicht. Mit dem Tool INTEGROMAT kann man das umgehen.

    • Pyromixer.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke für den Hinweis. Das ist ja Schade. Wollte eigentlich nicht noch einen Dienst dazwischen schalten.

     

    In dem Falle ist es viel einfacher die PDF Rechnung aus Ninox an den email Dokumenteneingang von FastBill zu senden. Auch da erkennt FastBill fast alle relevanten Daten in der Rechnung. Hatte auch schon beides versucht, in der Hoffnung dass die FastBill KI dann selber erkennt wo das PDF hingehört, das klappt aber nicht.