Hallo!
Ich bin neu hier und versuche derzeit unsere eigene Software über die API an Sevdesk anzubinden:
Entwicklungsumgebung: MS VS 2019
Import der openAPI Schnittstelle
Abrufen von Kontakten funktioniert… aber beim Anlegen scheitere ich derzeit!
Vorgehen:
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(„MEIN TOKEN“);
httpClient.DefaultRequestHeaders.Accept.Add(MediaTypeWithQualityHeaderValue.Parse(„application/json“));
httpClient.DefaultRequestHeaders.ExpectContinue = false;
try
{
Model_Contact modelContact = new Model_Contact();
modelContact.BankAccount = null;
modelContact.BankNumber = null;
modelContact.Birthday = null;
modelContact.Category = new Category();
modelContact.Category.Id = 3;
modelContact.Category.ObjectName = „Category“;
modelContact.Parent = null;
modelContact.Surename = null;
modelContact.TaxNumber = null;
modelContact.TaxOffice = null;
modelContact.TaxSet = null;
modelContact.TaxType = null;
modelContact.Titel = null;
modelContact.VatNumber = null;
modelContact.CustomerNumber = „1005“;
modelContact.Name = „Ich AG“;
//modelContact.ObjectName = „Contact“;
var jsonString = JsonConvert.SerializeObject(modelContact);
var body = new StringContent(jsonString, Encoding.UTF8, "application/json");
httpClient.BaseAddress = new Uri("https://my.sevdesk.de/api/v1/Contact");
var httpRequest = new HttpRequestMessage(HttpMethod.Post, "https://my.sevdesk.de/api/v1/Contact");
httpRequest.Content = body;
HttpResponseMessage response = await httpClient.SendAsync(httpRequest, HttpCompletionOption.ResponseHeadersRead);
}
Als Response bekomme ich:
{StatusCode: 400, ReasonPhrase: ‚Bad Request‘, Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:{ Date: Mon, 13 Jun 2022 09:22:56 GMT Transfer-Encoding: chunked Connection: keep-alive Server: nginx Cache-Control: no-store, must-revalidate, no-cache Pragma: no-cache Vary: Accept Access-Control-Allow-Methods: INVALID, MIGRATORINVALID, GET, POST, PUT, DELETE, OPTIONS Version: 1518879078 Access-Control-Expose-Headers: Version Access-Control-Allow-Origin: * Access-Control-Max-Age: 86400 Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Authorization, X-Authorization, Origin, Accept, Content-Type, X-Requested-With, X-HTTP-Method-Override Content-Type: application/json Expires: Thu, 19 Nov 1981 08:52:00 GMT}}
pjoos
13. Juni 2022 um 10:40
#3
Bitte verwende Codeblöcke für den gesamten Code, ist massiv schwierig zu lesen.
Die sevDesk API setzt 3 Header voraus:
Accept: "*/*"
Content-Type: "application/json"
Authorization: "DEIN_API_TOKEN"
Dir fehlt der Accept Header.
Danke erstmal für die rasche Antwort:
Ich habe nun den letzten Header auch hinzu gefügt und erhalte keine anderes (positives) Ergebnis
httpClient.DefaultRequestHeaders.
Authorization = new AuthenticationHeaderValue("MEIN TOKEN");
httpClient.DefaultRequestHeaders.
Accept.
Add(MediaTypeWithQualityHeaderValue.Parse("application/json"));
httpClient.DefaultRequestHeaders.
ExpectContinue = false;
httpClient.DefaultRequestHeaders.
Add("Accept", "*/*");
Response:
{StatusCode: 400, ReasonPhrase: ‚Bad Request‘, Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:{ Date: Mon, 13 Jun 2022 11:45:26 GMT Transfer-Encoding: chunked Connection: keep-alive Server: nginx Cache-Control: no-store, must-revalidate, no-cache Pragma: no-cache Vary: Accept Access-Control-Allow-Methods: INVALID, MIGRATORINVALID, GET, POST, PUT, DELETE, OPTIONS Version: 1518879078 Access-Control-Expose-Headers: Version Access-Control-Allow-Origin: * Access-Control-Max-Age: 86400 Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Authorization, X-Authorization, Origin, Accept, Content-Type, X-Requested-With, X-HTTP-Method-Override Content-Type: application/json Expires: Thu, 19 Nov 1981 08:52:00 GMT}}
pjoos
13. Juni 2022 um 12:48
#5
s_Fachl_GmbH:
{StatusCode: 400, ReasonPhrase: ‚Bad Request‘, Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:{ Date: Mon, 13 Jun 2022 11:45:26 GMT Transfer-Encoding: chunked Connection: keep-alive Server: nginx Cache-Control: no-store, must-revalidate, no-cache Pragma: no-cache Vary: Accept Access-Control-Allow-Methods: INVALID, MIGRATORINVALID, GET, POST, PUT, DELETE, OPTIONS Version: 1518879078 Access-Control-Expose-Headers: Version Access-Control-Allow-Origin: * Access-Control-Max-Age: 86400 Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Authorization, X-Authorization, Origin, Accept, Content-Type, X-Requested-With, X-HTTP-Method-Override Content-Type: application/json Expires: Thu, 19 Nov 1981 08:52:00 GMT}}
Sende den selben Request mal in CURL ab, und schau was da raus kommt.
Hallo zusammen,
ich Biete eine Klassenbibliothek in C# geschrieben da die OpenApi.json (in meinem Fall noch v1.0.0) von SevDesk leider fehlerhaft oder unvollständig waren.
https://github.com/utbert/SevClient
und da ich es in einem anderen Thema angekündigt hatte, auch den Code um Sepa Lastschrift Dateien erstellen zu können
https://github.com/utbert/SepaDirectDebitXML
Das erstellen der XmlDatei läuft bei mir wie folgt ab:
public async Task CreateSepaDirectDebitXml()
{
…
Hab für C# ne Fertige Klassenbibliothek geschrieben … Probiere es einfach mal damit über n Feedback würde ich mich freuen
1 „Gefällt mir“
Vielen Dank! Ich werde es mal ausprobieren und gebe auf jeden Fall Feedback… und Vielleicht gibt’s ja auch die eine oder andere Frage!