Skip to content
Developer

Donation

Billing16 EndpointsBilling / Donation

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/invoice/donation/report \
  --header 'x-iw-jwt-token: <TOKEN>'

List all donations

GET/api/invoice/donation

Responses

200Returns a list of Donations

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/invoice/donation \
  --header 'x-iw-jwt-token: <TOKEN>'

Create a new donation (admin)

POST/api/invoice/donation

Responses

200Creates a new Donation

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/invoice/donation \
  --header 'x-iw-jwt-token: <TOKEN>'

Get a single donation

GET/api/invoice/donation/{id}

Path parameters

idrequiredstring

Responses

200Returns a single Donation

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/invoice/donation/42 \
  --header 'x-iw-jwt-token: <TOKEN>'

Update a donation (limited fields: status, address, person/company link)

PUT/api/invoice/donation/{id}

Path parameters

idrequiredstring

Responses

200Updates a Donation

Request
curl --request PUT \
  --url https://your-instance.iw-erp.de/api/invoice/donation/42 \
  --header 'x-iw-jwt-token: <TOKEN>'

Update a donation (limited fields: status, address, person/company link)

PATCH/api/invoice/donation/{id}

Path parameters

idrequiredstring

Responses

200Updates a Donation

Request
curl --request PATCH \
  --url https://your-instance.iw-erp.de/api/invoice/donation/42 \
  --header 'x-iw-jwt-token: <TOKEN>'

Download Spendenbescheinigung PDF

GET/api/invoice/donation/{id}/pdf

Path parameters

idrequiredstring

Responses

200Returns the Spendenbescheinigung as PDF

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/invoice/donation/42/pdf \
  --header 'x-iw-jwt-token: <TOKEN>'

Rücklastschrift einer per SEPA eingezogenen Spende von Hand erfassen.

POST/api/invoice/donation/{id}/sepa_return

Für Rücklastschriften, die der Bankabgleich nicht selbst zuordnen kann (Kontoauszug ohne Referenz, Mitteilung der Bank per Brief). Die Spende wird storniert, eine Dauerspende nach mehreren Rücklastschriften in Folge pausiert. Setting donation_sepa_return_enabled.

Path parameters

idrequiredstring

Request body application/json

  • reasonstring

    Rückgabegrund, z. B. AC04 oder MD06

  • feenumber

    Bankentgelt der Rücklastschrift

Responses

200Die stornierte Spende

409Die Spende wurde nicht per SEPA eingezogen oder der Einzug ging noch nicht an die Bank

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/invoice/donation/42/sepa_return \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "reason": "string",
  "fee": 1.5
}
'

Spenden ohne Person, die mit einer Mailadresse der Person gegeben wurden.

GET/api/invoice/donation/reassign/suggestions

Für das Zuordnen von Gast-Spenden zu einem Mitglied (V5). Setting donation_reassign_enabled.

Query parameters

crmPersonstringDie Person, für die gesucht wird

Responses

200Die Mailadressen der Person, passende Spenden und Dauerspenden

404Funktion nicht aktiviert oder Person nicht gefunden

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/invoice/donation/reassign/suggestions \
  --header 'x-iw-jwt-token: <TOKEN>'

Spenden und Dauerspenden einer anderen Person oder einem anderen Haushalt zuordnen.

POST/api/invoice/donation/reassign

Gast-Spenden einem Mitglied zuordnen oder die Spenden einer doppelt angelegten Person zusammenführen (V5). Ohne Haushalt gilt der einzige Haushalt der Person. Eine Spende mit ausgestellter Zuwendungsbestätigung bleibt beim Spender, bis die Bestätigung storniert ist; dann wird keine der Spenden geändert. Setting donation_reassign_enabled.

Request body application/json

  • donationsarray<integer>

    IDs der Spenden

  • recurringDonationsarray<integer>

    IDs der Dauerspenden

  • crmPersoninteger

    Neue Person

  • crmCompanyinteger

    Neuer Haushalt

Responses

200Anzahl der zugeordneten Spenden und Dauerspenden

409Eine Spende ist bereits bestätigt

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/invoice/donation/reassign \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "donations": [
    1
  ],
  "recurringDonations": [
    1
  ],
  "crmPerson": 1,
  "crmCompany": 1
}
'

Die Arbeitsliste für die Sammelbestätigungen eines Jahres.

GET/api/invoice/donation/collective_receipt/candidates

Wer im Jahr mehrfach gespendet hat, bekommt eine Bestätigung statt zwölf. Diese Liste sagt, für wen sich das lohnt - mit Anzahl und Summe, damit vor dem Erzeugen erkennbar ist, worum es geht.

Voran stehen die Stammdaten: fehlen Finanzamt oder Bescheiddatum, ist jede Bestätigung angreifbar, und das fällt erst beim Spender auf.

Query parameters

yearstringKalenderjahr, Vorgabe das vergangene
minimumstringAb wie vielen Zuwendungen, Vorgabe 2

Responses

200Zuwendende mit mehreren Spenden im Jahr

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/invoice/donation/collective_receipt/candidates \
  --header 'x-iw-jwt-token: <TOKEN>'

Sachspende erfassen (S4).

POST/api/invoice/donation/in_kind

Die Felder einer Spende wie beim Anlegen, amount ist der Wert der Sachspende. Dazu inKind mit der genauen Bezeichnung, der Herkunft (private, business, unknown), ob Unterlagen zur Wertermittlung vorliegen und der Bewertungsgrundlage. Die Spende ist sofort abgeschlossen: sie kommt nicht über das Konto. Setting donation_in_kind_enabled.

Request body application/json

  • amountnumber

    Wert der Sachspende

  • donorNamestring
  • inKindobject
    Show fields (4)
    • descriptionstring

      Bezeichnung mit Alter, Zustand, Kaufpreis

    • originstring

      Allowed: private business unknown

    • documentsboolean

      Unterlagen zur Wertermittlung liegen vor

    • valuationBasisstring

      z. B. Rechnung vom 03.02.2026

Responses

200Die Sachspende

400Angaben zur Sachspende fehlen

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/invoice/donation/in_kind \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "amount": 49.9,
  "donorName": "string",
  "inKind": {
    "description": "Text",
    "origin": "private",
    "documents": true,
    "valuationBasis": "string"
  }
}
'

Angaben einer Sachspende korrigieren (S4): Wert und inKind wie beim Erfassen. Nach dem Ausstellen der Bestätigung erst nach deren Storno.

PUT/api/invoice/donation/{id}/in_kind

Path parameters

idrequiredstring

Responses

200Die Sachspende

409Die Bestätigung ist ausgestellt

Request
curl --request PUT \
  --url https://your-instance.iw-erp.de/api/invoice/donation/42/in_kind \
  --header 'x-iw-jwt-token: <TOKEN>'

Angaben einer Sachspende korrigieren (S4): Wert und inKind wie beim Erfassen. Nach dem Ausstellen der Bestätigung erst nach deren Storno.

PATCH/api/invoice/donation/{id}/in_kind

Path parameters

idrequiredstring

Responses

200Die Sachspende

409Die Bestätigung ist ausgestellt

Request
curl --request PATCH \
  --url https://your-instance.iw-erp.de/api/invoice/donation/42/in_kind \
  --header 'x-iw-jwt-token: <TOKEN>'

Sammelbestätigungen eines Jahres als Massenlauf.

POST/api/invoice/donation/collective_receipt/run

Der Testlauf (dryRun) zeigt nur, wer eine bekommt. Der echte Lauf stellt sie aus und schickt sie mit sendMail per Mail mit dem PDF im Anhang. Wer für das Jahr schon eine hat, bleibt draußen, ebenso wer unter der Mindestsumme donation_collective_receipt_min_total liegt. Setting donation_collective_receipt_bulk_enabled (S7).

Request body application/json

  • yearinteger

    Kalenderjahr, Vorgabe das vergangene

  • minimuminteger

    Ab wie vielen Zuwendungen, Vorgabe 2

  • dryRunboolean

    Nur anzeigen, Vorgabe true

  • sendMailboolean

    Per Mail verschicken, Vorgabe true

Responses

200Ergebnis je Zuwendendem und Zusammenfassung

409Angaben zum Freistellungsbescheid fehlen oder Bestätigungen werden nicht protokolliert

Request
curl --request POST \
  --url https://your-instance.iw-erp.de/api/invoice/donation/collective_receipt/run \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "year": 1,
  "minimum": 1,
  "dryRun": true,
  "sendMail": true
}
'

Die Sammelbestätigung eines Zuwendenden als PDF.

GET/api/invoice/donation/collective_receipt/{id}/pdf

Path parameters

idrequiredstring

Query parameters

yearstringKalenderjahr, Vorgabe das vergangene
donor_typestringperson oder company, Vorgabe person
previewstring1 = Entwurf zum Testlauf, wird weder ausgestellt noch protokolliert (Setting donation_collective_receipt_bulk_enabled)

Responses

200Die Sammelbestätigung als PDF

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/invoice/donation/collective_receipt/42/pdf \
  --header 'x-iw-jwt-token: <TOKEN>'