@JJB Wenn es nur eine PUT und keine PATCH Api gibt musst du alle Felder mitschicken die es beim Updaten gibt. Welche das sind ist in Api Dokumentation in deiner Installation unter /api definiert.
Beim GET geben wir häufig mehr Informationen zurück um das anzeigen von Informationen zu vereinfachen. Am saubersten ist es den Request-Body einzeln zusammenzubauen und nicht einfach den aus dem GET bekommenen Body mitzuschicken.
Zu deiner Fehlermeldung:
Wenn du einen Spender mitschickst muss deine Buchung auch eine Spende sein. Das macht sich daran fest, dass das Gegenkonto ein Spendenkonto ist. Das ist vermutlich in deinem Request nicht so.