Sevdesk API zeigt Invoice: Correct number abort

Hallo zusammen,

leider habe ich aktuell Probleme mit der API.

Mein Code:
$personid = 21077672;
$nextinvoicenumber = json_decode($this->client()->get(self::API_URL.’/Invoice/Factory/getNextInvoiceNumber/?invoiceType=RE&useNextNumber=1&token=’.self::API_KEY)->getBody(), true)[„objects“];

    $address = "N/A" . "\n" . "N/A" . "\n" . "N/A" . "\n" . "N/A" . "\n" . "N/A";

    $now = new \DateTime();
    $now_from = new \DateTime("first day of this month");
    $now_until = new \DateTime("last day of this month");
    $fields = array(
        'header' => "Rechnung " . $nextinvoicenumber,
        'invoiceNumber' => $nextinvoicenumber,
        'invoiceType' => "RE",
        'invoiceDate' => $now->format(\DateTime::ISO8601),
        'deliveryDate' => $now_from->format(\DateTime::ISO8601),
        'deliveryDateUntil' => $now_until->format(\DateTime::ISO8601),
        'timeToPay' => 10,
        'contactPerson[id]' => $personid,
        'contactPerson[objectName]' => "SevUser",
        'discountTime' => '0',
        'taxRate' => "20",
        'taxText' => 'Umsatzsteuer ausweisen',
        'taxType' => "default",
        'smallSettlement' => '0',
        'currency' => 'EUR',
        'discount' => '0',
        'status' => 100,
        'address' => $address
    );

    return $this->client()->post(self::API_URL.'/Invoice?token='.self::API_KEY, [
        RequestOptions::FORM_PARAMS => [
            'header' => "Rechnung " . $nextinvoicenumber,
            'invoiceNumber' => $nextinvoicenumber,
            'invoiceType' => "RE",
            'invoiceDate' => $now->format(\DateTime::ISO8601),
            'deliveryDate' => $now_from->format(\DateTime::ISO8601),
            'deliveryDateUntil' => $now_until->format(\DateTime::ISO8601),
            'timeToPay' => 10,
            'customerNumber' => $personid,
            'category' => [
                'id' => 3,
                'objectName' => 'Category'
            ],
            'discountTime' => '0',
            'taxRate' => "20",
            'taxText' => 'Umsatzsteuer ausweisen',
            'taxType' => "default",
            'smallSettlement' => '0',
            'currency' => 'EUR',
            'discount' => '0',
            'status' => 100,
            'address' => $address
        ],
    ]);

Zurück erhalte ich folgendes:
Server error: POST https://my.sevdesk.de/api/v1/Invoice?token=************************* resulted in a 500 Internal Server Error response:\n {„objects“:null,„error“:{„message“:„Invoice: Correct number abort. Timeout“,„code“:null,„data“:null}}\n

Leider kann ich mir nicht erklären woran dies liegt.

Kommt mir irgendwie vor, als wäre die API Docs echt nicht Gut ausgebaut.

Vielen Dank im Voraus!

Liebe Grüße
Christopher Sakel

Hallo @Christopher_Sakel,

es gibt eine neue Version unserer API Dokumentation (Alpha-Version). Hast du es damit schon probiert?

Hier ist nochmal der passende Artikel zu deinem Problem: https://5677.extern.sevdesk.dev/apiOverview/index.html#/doc-invoices

Viele Grüße
Thilo

Hey @Thilo_von_sevDesk,

leider hilft diese mir auch nicht weiter.
Ich Frage mich wie ich den contactPerson bekommen soll. Wenn ich ein Contact anlegen erhalte ich nur die contact ID(z.B. 21129421).
Wenn ich aber eine Rechnung anlegen möchte benötige ich aber auch den contactPerson da ich sonst folgenden Fehler erhalte: Server error: POST https://my.sevdesk.de/api/v1/Invoice?token=3a0c63a68d75104a7a2639bd3700c448 resulted in a 500 Internal Server Error response:
{„objects“:null,„error“:{„message“:„Invoice: Correct number abort. Timeout“,„code“:null,„data“:null}}

Ich bin bereits seit 3 Tagen dabei die API bei mir einzubauen, jedoch klappt dies durch die nicht gute Dokumentation sehr langsam und mit viel Testen…

Mein Code:
return $this->client()->post(self::API_URL.’/Invoice?token=’.self::API_KEY, [
RequestOptions::FORM_PARAMS => [
‚taxType‘ => ‚default‘,
‚currency‘ => ‚EUR‘,
‚header‘ => ‚Rechnung‘,
‚taxText‘ => 0,
‚taxRate‘ => 20,
‚taxNumber‘ => ‚beantragt…‘,
‚vatNumber‘ => ‚beantragt…‘,
‚contact‘ => [
‚id‘ => 21129305,
‚objectName‘ => ‚Contact‘
],
‚invoiceDate‘ => $now->format(\DateTime::ISO8601),
‚status‘ => 1000,
‚discount‘ => 0,
‚deliveryDate‘ => $now->format(\DateTime::ISO8601),
‚deliveryDateUnitl‘ => $now->format(\DateTime::ISO8601),
‚invoiceType‘ => ‚RE‘,
],
])->getBody();

Ich bedanke mich im Voraus!

Füge mal noch das Feld mapall=true ein oder so. Am besten ist es wenn du im Browser mit der Entwicklerconsole die requests von sevdesk nachbaust. Da geht so viel mehr als in der Doku steht, bzw steht in der aktuellen swagger Doku auch nur die Hälfte

Vielen Dank für deine Idee. Leider weiß ich nicht wo das my.sevdesk den contactPerson herholt. mapAll wirft leider auch keinen anderen Fehler außer Server error: POST https://my.sevdesk.de/api/v1/Invoice?token=3a0c63a68d75104a7a2639bd3700c448 resulted in a 500 Internal Server Error response:\n {„objects“:null,„error“:{„message“:„Invoice: Correct number abort. Timeout“,„code“:null,„data“:null}}\n

Ich konnte nirgends finden das die ID im contactPerson die ID aus dem SevDesk Benutzeraccount(Firmenaccount der Firma) ist. Ich habe mich eben schon nach Alternativen umgeschaut. Bitte Dokumentation ausbauen!

OK andere bitte deinen api key

2 Like

Oh, vielen Dank für den Hinweis!