BillingDryRun
Diese Methode liefert alle BillingDryRun-Objekte – ohne die simulierten Rechnungen
GET/api/invoice/billing_dry_run
Query-Parameter
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert eine Liste der BillingDryRun-Objekte.array<BillingDryRun>
Felder anzeigen (22)
idintegerPrimärschlüssel des Abrechnungs-Probelaufs. Interne ID.
billing_payment_profileBillingPaymentProfile10Zahlungsprofil, das für den Probelauf verwendet wird.
Felder anzeigen (15)
idintegerPrimärschlüssel des Zahlungsprofils. Interne ID.
payout_typestringArt der Auszahlung, zum Beispiel SEPA-Lastschrift oder Überweisung.
auto_modebooleanZahlungen werden automatisch angelegt.
is_defaultbooleanStandard-Zahlungsprofil.
is_event_defaultbooleanStandard-Zahlungsprofil für Veranstaltungen.
is_donation_defaultbooleanStandard-Zahlungsprofil für Spenden.
execution_daystringTag des Monats, an dem die Zahlungen ausgeführt werden.
next_execution_datestring (date-time)Datum der nächsten Ausführung.
booking_daystringTag des Monats, an dem die Zahlungen gebucht werden.
next_booking_datestring (date-time)Datum der nächsten Buchung.
force_billing_due_date_to_next_booking_datebooleanFälligkeitsdatum der Rechnung auf den nächsten Buchungstermin setzen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
statusstringStatus des Probelaufs, zum Beispiel laufend oder beendet.
billing_datestring (date-time)Für den Probelauf verwendetes Abrechnungsdatum.
started_atstring (date-time)Zeitpunkt, zu dem der Testlauf gestartet wurde.
finished_atstring (date-time)Zeitpunkt, zu dem der Testlauf beendet wurde.
company_countintegerAnzahl der geprüften Firmen.
invoice_countintegerAnzahl der Rechnungen, die erstellt würden.
saved_invoice_countintegerAnzahl der gespeicherten Rechnungen.
skipped_invoice_countintegerAnzahl der übersprungenen Rechnungen.
position_countintegerAnzahl der Positionen auf allen Rechnungen.
mail_countintegerAnzahl der per E-Mail versandten Rechnungen.
postal_countintegerAnzahl der per Post versandten Rechnungen.
sum_nettonumber (float)Summe der Nettowerte.
sum_bruttonumber (float)Summe der Bruttowerte.
sum_taxnumber (float)Summe der Steuerbeträge.
log_lengthintegerLänge des Protokolls des Testlaufs.
stored_item_countintegerAnzahl der Gegenstände, die der Probelauf eingelagert hat.
error_messagestringFehlermeldung des Probelaufs.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/billing_dry_run_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingDryRunController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"billing_payment_profile": {
"id": 42,
"name": "Beispiel",
"payout_type": "string",
"auto_mode": true,
"is_default": true,
"is_event_default": true,
"is_donation_default": true,
"execution_day": "string",
"next_execution_date": "2026-10-15T09:30:00+02:00",
"booking_day": "string"
},
"status": "string",
"billing_date": "2026-10-15T09:30:00+02:00",
"started_at": "2026-10-15T09:30:00+02:00",
"finished_at": "2026-10-15T09:30:00+02:00",
"company_count": 1,
"invoice_count": 1,
"saved_invoice_count": 1,
"skipped_invoice_count": 1
}
]Einen neuen simulierten Abrechnungslauf („Probelauf“) starten.
POST/api/invoice/billing_dry_run
Der Lauf wird im Hintergrund ausgeführt. Die Simulation selbst speichert nichts – nur der daraus entstehende BillingDryRun-Datensatz mit seinen Positionen wird gespeichert. Den zurückgegebenen Datensatz so lange abfragen, bis sein Status done oder failed ist.
Request-Body application/json
dataBillingDryRun2Felder anzeigen (3)
billing_payment_profileBillingPaymentProfile6Zahlungsprofil, das für den Probelauf verwendet wird.
billing_datestring (date-time)Für den Probelauf verwendetes Abrechnungsdatum.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200Der geplante ProbelaufBillingDryRun3
Felder anzeigen (23)
idintegerPrimärschlüssel des Abrechnungs-Probelaufs. Interne ID.
billing_payment_profileBillingPaymentProfile10Zahlungsprofil, das für den Probelauf verwendet wird.
Felder anzeigen (15)
idintegerPrimärschlüssel des Zahlungsprofils. Interne ID.
payout_typestringArt der Auszahlung, zum Beispiel SEPA-Lastschrift oder Überweisung.
auto_modebooleanZahlungen werden automatisch angelegt.
is_defaultbooleanStandard-Zahlungsprofil.
is_event_defaultbooleanStandard-Zahlungsprofil für Veranstaltungen.
is_donation_defaultbooleanStandard-Zahlungsprofil für Spenden.
execution_daystringTag des Monats, an dem die Zahlungen ausgeführt werden.
next_execution_datestring (date-time)Datum der nächsten Ausführung.
booking_daystringTag des Monats, an dem die Zahlungen gebucht werden.
next_booking_datestring (date-time)Datum der nächsten Buchung.
force_billing_due_date_to_next_booking_datebooleanFälligkeitsdatum der Rechnung auf den nächsten Buchungstermin setzen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
triggered_by_userUser14Benutzer, der den Testlauf gestartet hat.
Felder anzeigen (10)
idintegerPrimärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.
namestringAnzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.
usernamestringAnmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.
emailstringE-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.
positioningeneralstringFreitext zur Position oder Rolle des Benutzers.
crm_personCRMPerson10CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.
profile_picture_urlstringURL des Profilbilds des Benutzers.
archivedbooleanMarkiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.
require2fabooleanFür diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.
search_stringstringText, unter dem die Entität gesucht werden kann.
statusstringStatus des Probelaufs, zum Beispiel laufend oder beendet.
billing_datestring (date-time)Für den Probelauf verwendetes Abrechnungsdatum.
started_atstring (date-time)Zeitpunkt, zu dem der Testlauf gestartet wurde.
finished_atstring (date-time)Zeitpunkt, zu dem der Testlauf beendet wurde.
company_countintegerAnzahl der geprüften Firmen.
invoice_countintegerAnzahl der Rechnungen, die erstellt würden.
saved_invoice_countintegerAnzahl der gespeicherten Rechnungen.
skipped_invoice_countintegerAnzahl der übersprungenen Rechnungen.
position_countintegerAnzahl der Positionen auf allen Rechnungen.
mail_countintegerAnzahl der per E-Mail versandten Rechnungen.
postal_countintegerAnzahl der per Post versandten Rechnungen.
sum_nettonumber (float)Summe der Nettowerte.
sum_bruttonumber (float)Summe der Bruttowerte.
sum_taxnumber (float)Summe der Steuerbeträge.
log_lengthintegerLänge des Protokolls des Testlaufs.
stored_item_countintegerAnzahl der Gegenstände, die der Probelauf eingelagert hat.
error_messagestringFehlermeldung des Probelaufs.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"billing_payment_profile": {
"deleted": true
},
"billing_date": "2026-10-15T09:30:00+02:00",
"deleted": true
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
billing_payment_profile: {deleted: true},
billing_date: '2026-10-15T09:30:00+02:00',
deleted: true
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run"
payload = { "data": {
"billing_payment_profile": { "deleted": True },
"billing_date": "2026-10-15T09:30:00+02:00",
"deleted": True
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run', [
'body' => '{"data":{"billing_payment_profile":{"deleted":true},"billing_date":"2026-10-15T09:30:00+02:00","deleted":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"billing_payment_profile\":{\"deleted\":true},\"billing_date\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"billing_payment_profile\":{\"deleted\":true},\"billing_date\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run"
payload := strings.NewReader("{\"data\":{\"billing_payment_profile\":{\"deleted\":true},\"billing_date\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true}}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/billing_dry_run_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/billing_dry_run.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingDryRunController.post(BillingDryRun.fromJson({
"billing_payment_profile": {
"deleted": true
},
"billing_date": "2026-10-15T09:30:00+02:00",
"deleted": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"billing_payment_profile": {
"id": 42,
"name": "Beispiel",
"payout_type": "string",
"auto_mode": true,
"is_default": true,
"is_event_default": true,
"is_donation_default": true,
"execution_day": "string",
"next_execution_date": "2026-10-15T09:30:00+02:00",
"booking_day": "string"
},
"triggered_by_user": {
"id": 42,
"name": "Beispiel",
"username": "lena.hartmann@example.org",
"email": "lena.hartmann@example.org",
"profile_picture_url": "https://vynst.de",
"positioningeneral": "string",
"crm_person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"archived": true,
"require2fa": true,
"search_string": "string"
},
"status": "string",
"billing_date": "2026-10-15T09:30:00+02:00",
"started_at": "2026-10-15T09:30:00+02:00",
"finished_at": "2026-10-15T09:30:00+02:00",
"company_count": 1,
"invoice_count": 1,
"saved_invoice_count": 1
}Diese Methode liefert eine einzelne BillingDryRun mit der angegebenen ID einschließlich aller simulierten Rechnungen
GET/api/invoice/billing_dry_run/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Liefert ein einzelnes BillingDryRun-Objekt.BillingDryRun3
Felder anzeigen (23)
idintegerPrimärschlüssel des Abrechnungs-Probelaufs. Interne ID.
billing_payment_profileBillingPaymentProfile10Zahlungsprofil, das für den Probelauf verwendet wird.
Felder anzeigen (15)
idintegerPrimärschlüssel des Zahlungsprofils. Interne ID.
payout_typestringArt der Auszahlung, zum Beispiel SEPA-Lastschrift oder Überweisung.
auto_modebooleanZahlungen werden automatisch angelegt.
is_defaultbooleanStandard-Zahlungsprofil.
is_event_defaultbooleanStandard-Zahlungsprofil für Veranstaltungen.
is_donation_defaultbooleanStandard-Zahlungsprofil für Spenden.
execution_daystringTag des Monats, an dem die Zahlungen ausgeführt werden.
next_execution_datestring (date-time)Datum der nächsten Ausführung.
booking_daystringTag des Monats, an dem die Zahlungen gebucht werden.
next_booking_datestring (date-time)Datum der nächsten Buchung.
force_billing_due_date_to_next_booking_datebooleanFälligkeitsdatum der Rechnung auf den nächsten Buchungstermin setzen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
triggered_by_userUser14Benutzer, der den Testlauf gestartet hat.
Felder anzeigen (10)
idintegerPrimärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.
namestringAnzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.
usernamestringAnmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.
emailstringE-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.
positioningeneralstringFreitext zur Position oder Rolle des Benutzers.
crm_personCRMPerson10CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.
profile_picture_urlstringURL des Profilbilds des Benutzers.
archivedbooleanMarkiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.
require2fabooleanFür diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.
search_stringstringText, unter dem die Entität gesucht werden kann.
statusstringStatus des Probelaufs, zum Beispiel laufend oder beendet.
billing_datestring (date-time)Für den Probelauf verwendetes Abrechnungsdatum.
started_atstring (date-time)Zeitpunkt, zu dem der Testlauf gestartet wurde.
finished_atstring (date-time)Zeitpunkt, zu dem der Testlauf beendet wurde.
company_countintegerAnzahl der geprüften Firmen.
invoice_countintegerAnzahl der Rechnungen, die erstellt würden.
saved_invoice_countintegerAnzahl der gespeicherten Rechnungen.
skipped_invoice_countintegerAnzahl der übersprungenen Rechnungen.
position_countintegerAnzahl der Positionen auf allen Rechnungen.
mail_countintegerAnzahl der per E-Mail versandten Rechnungen.
postal_countintegerAnzahl der per Post versandten Rechnungen.
sum_nettonumber (float)Summe der Nettowerte.
sum_bruttonumber (float)Summe der Bruttowerte.
sum_taxnumber (float)Summe der Steuerbeträge.
log_lengthintegerLänge des Protokolls des Testlaufs.
stored_item_countintegerAnzahl der Gegenstände, die der Probelauf eingelagert hat.
error_messagestringFehlermeldung des Probelaufs.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/billing_dry_run_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingDryRunController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"billing_payment_profile": {
"id": 42,
"name": "Beispiel",
"payout_type": "string",
"auto_mode": true,
"is_default": true,
"is_event_default": true,
"is_donation_default": true,
"execution_day": "string",
"next_execution_date": "2026-10-15T09:30:00+02:00",
"booking_day": "string"
},
"triggered_by_user": {
"id": 42,
"name": "Beispiel",
"username": "lena.hartmann@example.org",
"email": "lena.hartmann@example.org",
"profile_picture_url": "https://vynst.de",
"positioningeneral": "string",
"crm_person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"archived": true,
"require2fa": true,
"search_string": "string"
},
"status": "string",
"billing_date": "2026-10-15T09:30:00+02:00",
"started_at": "2026-10-15T09:30:00+02:00",
"finished_at": "2026-10-15T09:30:00+02:00",
"company_count": 1,
"invoice_count": 1,
"saved_invoice_count": 1
}BillingDryRun archivieren, damit er aus der Liste verschwindet, ohne sein Ergebnis zu verlieren.
PUT/api/invoice/billing_dry_run/{identifier}
Das Löschen eines Laufs entfernt seine simulierten Rechnungen und sein Protokoll endgültig, was richtig ist, sobald ein Ergebnis geprüft wurde. Archivieren ist der umkehrbare Weg aus der Liste für ein Ergebnis, das man behalten möchte - es kann weiterhin geöffnet und exportiert werden, und das Kennzeichen lässt sich zurücknehmen. Alles andere an einem Lauf schreibt die Simulation selbst, daher ist das Lösch-Kennzeichen das einzige Feld, das hier akzeptiert wird.
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataBillingDryRun4Felder anzeigen (3)
billing_payment_profileBillingPaymentProfile8Zahlungsprofil, das für den Probelauf verwendet wird.
billing_datestring (date-time)Für den Probelauf verwendetes Abrechnungsdatum.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200Die aktualisierte BillingDryRunBillingDryRun3
Felder anzeigen (23)
idintegerPrimärschlüssel des Abrechnungs-Probelaufs. Interne ID.
billing_payment_profileBillingPaymentProfile10Zahlungsprofil, das für den Probelauf verwendet wird.
Felder anzeigen (15)
idintegerPrimärschlüssel des Zahlungsprofils. Interne ID.
payout_typestringArt der Auszahlung, zum Beispiel SEPA-Lastschrift oder Überweisung.
auto_modebooleanZahlungen werden automatisch angelegt.
is_defaultbooleanStandard-Zahlungsprofil.
is_event_defaultbooleanStandard-Zahlungsprofil für Veranstaltungen.
is_donation_defaultbooleanStandard-Zahlungsprofil für Spenden.
execution_daystringTag des Monats, an dem die Zahlungen ausgeführt werden.
next_execution_datestring (date-time)Datum der nächsten Ausführung.
booking_daystringTag des Monats, an dem die Zahlungen gebucht werden.
next_booking_datestring (date-time)Datum der nächsten Buchung.
force_billing_due_date_to_next_booking_datebooleanFälligkeitsdatum der Rechnung auf den nächsten Buchungstermin setzen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
triggered_by_userUser14Benutzer, der den Testlauf gestartet hat.
Felder anzeigen (10)
idintegerPrimärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.
namestringAnzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.
usernamestringAnmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.
emailstringE-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.
positioningeneralstringFreitext zur Position oder Rolle des Benutzers.
crm_personCRMPerson10CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.
profile_picture_urlstringURL des Profilbilds des Benutzers.
archivedbooleanMarkiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.
require2fabooleanFür diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.
search_stringstringText, unter dem die Entität gesucht werden kann.
statusstringStatus des Probelaufs, zum Beispiel laufend oder beendet.
billing_datestring (date-time)Für den Probelauf verwendetes Abrechnungsdatum.
started_atstring (date-time)Zeitpunkt, zu dem der Testlauf gestartet wurde.
finished_atstring (date-time)Zeitpunkt, zu dem der Testlauf beendet wurde.
company_countintegerAnzahl der geprüften Firmen.
invoice_countintegerAnzahl der Rechnungen, die erstellt würden.
saved_invoice_countintegerAnzahl der gespeicherten Rechnungen.
skipped_invoice_countintegerAnzahl der übersprungenen Rechnungen.
position_countintegerAnzahl der Positionen auf allen Rechnungen.
mail_countintegerAnzahl der per E-Mail versandten Rechnungen.
postal_countintegerAnzahl der per Post versandten Rechnungen.
sum_nettonumber (float)Summe der Nettowerte.
sum_bruttonumber (float)Summe der Bruttowerte.
sum_taxnumber (float)Summe der Steuerbeträge.
log_lengthintegerLänge des Protokolls des Testlaufs.
stored_item_countintegerAnzahl der Gegenstände, die der Probelauf eingelagert hat.
error_messagestringFehlermeldung des Probelaufs.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request PUT \
--url https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"billing_payment_profile": {
"deleted": true
},
"billing_date": "2026-10-15T09:30:00+02:00",
"deleted": true
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
billing_payment_profile: {deleted: true},
billing_date: '2026-10-15T09:30:00+02:00',
deleted: true
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"
payload = { "data": {
"billing_payment_profile": { "deleted": True },
"billing_date": "2026-10-15T09:30:00+02:00",
"deleted": True
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42', [
'body' => '{"data":{"billing_payment_profile":{"deleted":true},"billing_date":"2026-10-15T09:30:00+02:00","deleted":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"billing_payment_profile\":{\"deleted\":true},\"billing_date\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"billing_payment_profile\":{\"deleted\":true},\"billing_date\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42")
.put(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"
payload := strings.NewReader("{\"data\":{\"billing_payment_profile\":{\"deleted\":true},\"billing_date\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/billing_dry_run_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/billing_dry_run.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingDryRunController.put(BillingDryRun.fromJson({
"billing_payment_profile": {
"deleted": true
},
"billing_date": "2026-10-15T09:30:00+02:00",
"deleted": true
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"billing_payment_profile": {
"id": 42,
"name": "Beispiel",
"payout_type": "string",
"auto_mode": true,
"is_default": true,
"is_event_default": true,
"is_donation_default": true,
"execution_day": "string",
"next_execution_date": "2026-10-15T09:30:00+02:00",
"booking_day": "string"
},
"triggered_by_user": {
"id": 42,
"name": "Beispiel",
"username": "lena.hartmann@example.org",
"email": "lena.hartmann@example.org",
"profile_picture_url": "https://vynst.de",
"positioningeneral": "string",
"crm_person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"archived": true,
"require2fa": true,
"search_string": "string"
},
"status": "string",
"billing_date": "2026-10-15T09:30:00+02:00",
"started_at": "2026-10-15T09:30:00+02:00",
"finished_at": "2026-10-15T09:30:00+02:00",
"company_count": 1,
"invoice_count": 1,
"saved_invoice_count": 1
}BillingDryRun archivieren, damit er aus der Liste verschwindet, ohne sein Ergebnis zu verlieren.
PATCH/api/invoice/billing_dry_run/{identifier}
Das Löschen eines Laufs entfernt seine simulierten Rechnungen und sein Protokoll endgültig, was richtig ist, sobald ein Ergebnis geprüft wurde. Archivieren ist der umkehrbare Weg aus der Liste für ein Ergebnis, das man behalten möchte - es kann weiterhin geöffnet und exportiert werden, und das Kennzeichen lässt sich zurücknehmen. Alles andere an einem Lauf schreibt die Simulation selbst, daher ist das Lösch-Kennzeichen das einzige Feld, das hier akzeptiert wird.
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataBillingDryRun4Felder anzeigen (3)
billing_payment_profileBillingPaymentProfile8Zahlungsprofil, das für den Probelauf verwendet wird.
billing_datestring (date-time)Für den Probelauf verwendetes Abrechnungsdatum.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200Die aktualisierte BillingDryRunBillingDryRun3
Felder anzeigen (23)
idintegerPrimärschlüssel des Abrechnungs-Probelaufs. Interne ID.
billing_payment_profileBillingPaymentProfile10Zahlungsprofil, das für den Probelauf verwendet wird.
Felder anzeigen (15)
idintegerPrimärschlüssel des Zahlungsprofils. Interne ID.
payout_typestringArt der Auszahlung, zum Beispiel SEPA-Lastschrift oder Überweisung.
auto_modebooleanZahlungen werden automatisch angelegt.
is_defaultbooleanStandard-Zahlungsprofil.
is_event_defaultbooleanStandard-Zahlungsprofil für Veranstaltungen.
is_donation_defaultbooleanStandard-Zahlungsprofil für Spenden.
execution_daystringTag des Monats, an dem die Zahlungen ausgeführt werden.
next_execution_datestring (date-time)Datum der nächsten Ausführung.
booking_daystringTag des Monats, an dem die Zahlungen gebucht werden.
next_booking_datestring (date-time)Datum der nächsten Buchung.
force_billing_due_date_to_next_booking_datebooleanFälligkeitsdatum der Rechnung auf den nächsten Buchungstermin setzen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
triggered_by_userUser14Benutzer, der den Testlauf gestartet hat.
Felder anzeigen (10)
idintegerPrimärschlüssel des Benutzers. Interne ID des Anmeldebenutzers.
namestringAnzeigename des Benutzers. Wird in der Oberfläche und in Protokolleinträgen angezeigt.
usernamestringAnmeldename des Benutzers. Muss über alle Benutzer hinweg eindeutig sein.
emailstringE-Mail-Adresse des Benutzers. Wird für Anmeldebenachrichtigungen, Passwort-Zurücksetzen und als Anmeldealias verwendet.
positioningeneralstringFreitext zur Position oder Rolle des Benutzers.
crm_personCRMPerson10CRM-Person, die mit diesem Anmeldebenutzer verknüpft ist. Verbindet das Anmeldekonto mit dem Personendatensatz.
profile_picture_urlstringURL des Profilbilds des Benutzers.
archivedbooleanMarkiert den Benutzer als archiviert. Archivierte Benutzer bleiben zur Historie erhalten und sind nicht aktiv.
require2fabooleanFür diesen Benutzer ist die Zwei-Faktor-Authentifizierung Pflicht.
search_stringstringText, unter dem die Entität gesucht werden kann.
statusstringStatus des Probelaufs, zum Beispiel laufend oder beendet.
billing_datestring (date-time)Für den Probelauf verwendetes Abrechnungsdatum.
started_atstring (date-time)Zeitpunkt, zu dem der Testlauf gestartet wurde.
finished_atstring (date-time)Zeitpunkt, zu dem der Testlauf beendet wurde.
company_countintegerAnzahl der geprüften Firmen.
invoice_countintegerAnzahl der Rechnungen, die erstellt würden.
saved_invoice_countintegerAnzahl der gespeicherten Rechnungen.
skipped_invoice_countintegerAnzahl der übersprungenen Rechnungen.
position_countintegerAnzahl der Positionen auf allen Rechnungen.
mail_countintegerAnzahl der per E-Mail versandten Rechnungen.
postal_countintegerAnzahl der per Post versandten Rechnungen.
sum_nettonumber (float)Summe der Nettowerte.
sum_bruttonumber (float)Summe der Bruttowerte.
sum_taxnumber (float)Summe der Steuerbeträge.
log_lengthintegerLänge des Protokolls des Testlaufs.
stored_item_countintegerAnzahl der Gegenstände, die der Probelauf eingelagert hat.
error_messagestringFehlermeldung des Probelaufs.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request PATCH \
--url https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"billing_payment_profile": {
"deleted": true
},
"billing_date": "2026-10-15T09:30:00+02:00",
"deleted": true
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
billing_payment_profile: {deleted: true},
billing_date: '2026-10-15T09:30:00+02:00',
deleted: true
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"
payload = { "data": {
"billing_payment_profile": { "deleted": True },
"billing_date": "2026-10-15T09:30:00+02:00",
"deleted": True
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42', [
'body' => '{"data":{"billing_payment_profile":{"deleted":true},"billing_date":"2026-10-15T09:30:00+02:00","deleted":true}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"billing_payment_profile\":{\"deleted\":true},\"billing_date\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"billing_payment_profile\":{\"deleted\":true},\"billing_date\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42")
.patch(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"
payload := strings.NewReader("{\"data\":{\"billing_payment_profile\":{\"deleted\":true},\"billing_date\":\"2026-10-15T09:30:00+02:00\",\"deleted\":true}}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"billing_payment_profile": {
"deleted": true
},
"billing_date": "2026-10-15T09:30:00+02:00",
"deleted": true
}
}),
);
print(response.body);{
"id": 42,
"billing_payment_profile": {
"id": 42,
"name": "Beispiel",
"payout_type": "string",
"auto_mode": true,
"is_default": true,
"is_event_default": true,
"is_donation_default": true,
"execution_day": "string",
"next_execution_date": "2026-10-15T09:30:00+02:00",
"booking_day": "string"
},
"triggered_by_user": {
"id": 42,
"name": "Beispiel",
"username": "lena.hartmann@example.org",
"email": "lena.hartmann@example.org",
"profile_picture_url": "https://vynst.de",
"positioningeneral": "string",
"crm_person": {
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"title": "Beispiel",
"language": "de",
"support_description": "Text",
"profile_picture_url": "https://vynst.de",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163"
},
"archived": true,
"require2fa": true,
"search_string": "string"
},
"status": "string",
"billing_date": "2026-10-15T09:30:00+02:00",
"started_at": "2026-10-15T09:30:00+02:00",
"finished_at": "2026-10-15T09:30:00+02:00",
"company_count": 1,
"invoice_count": 1,
"saved_invoice_count": 1
}Einen BillingDryRun samt seinen simulierten Rechnungen löschen.
DELETE/api/invoice/billing_dry_run/{identifier}
Der Datensatz wird endgültig entfernt, statt als gelöscht markiert zu werden: Ein Lauf enthält bis zu BillingDryRunCollector::MAX_ITEMS simulierte Rechnungen mit ihren Positionen und einem Protokoll von einigen hundert Kilobyte, von denen nichts beschreibt, was tatsächlich passiert ist. Wird dies nach der Prüfung des Ergebnisses aufbewahrt, füllt es nur die Datenbank.
Ein Lauf, der noch geplant ist oder ausgeführt wird, bleibt erhalten – der Hintergrundprozess würde sonst an seinem eigenen Ergebnis scheitern.
Pfad-Parameter
identifierPflichtstring |
Antworten
200Die gelöschte BillingDryRunBillingDryRun
Felder anzeigen (22)
idintegerPrimärschlüssel des Abrechnungs-Probelaufs. Interne ID.
billing_payment_profileBillingPaymentProfile10Zahlungsprofil, das für den Probelauf verwendet wird.
Felder anzeigen (15)
idintegerPrimärschlüssel des Zahlungsprofils. Interne ID.
payout_typestringArt der Auszahlung, zum Beispiel SEPA-Lastschrift oder Überweisung.
auto_modebooleanZahlungen werden automatisch angelegt.
is_defaultbooleanStandard-Zahlungsprofil.
is_event_defaultbooleanStandard-Zahlungsprofil für Veranstaltungen.
is_donation_defaultbooleanStandard-Zahlungsprofil für Spenden.
execution_daystringTag des Monats, an dem die Zahlungen ausgeführt werden.
next_execution_datestring (date-time)Datum der nächsten Ausführung.
booking_daystringTag des Monats, an dem die Zahlungen gebucht werden.
next_booking_datestring (date-time)Datum der nächsten Buchung.
force_billing_due_date_to_next_booking_datebooleanFälligkeitsdatum der Rechnung auf den nächsten Buchungstermin setzen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
namestringName der Einheit.
statusstringStatus des Probelaufs, zum Beispiel laufend oder beendet.
billing_datestring (date-time)Für den Probelauf verwendetes Abrechnungsdatum.
started_atstring (date-time)Zeitpunkt, zu dem der Testlauf gestartet wurde.
finished_atstring (date-time)Zeitpunkt, zu dem der Testlauf beendet wurde.
company_countintegerAnzahl der geprüften Firmen.
invoice_countintegerAnzahl der Rechnungen, die erstellt würden.
saved_invoice_countintegerAnzahl der gespeicherten Rechnungen.
skipped_invoice_countintegerAnzahl der übersprungenen Rechnungen.
position_countintegerAnzahl der Positionen auf allen Rechnungen.
mail_countintegerAnzahl der per E-Mail versandten Rechnungen.
postal_countintegerAnzahl der per Post versandten Rechnungen.
sum_nettonumber (float)Summe der Nettowerte.
sum_bruttonumber (float)Summe der Bruttowerte.
sum_taxnumber (float)Summe der Steuerbeträge.
log_lengthintegerLänge des Protokolls des Testlaufs.
stored_item_countintegerAnzahl der Gegenstände, die der Probelauf eingelagert hat.
error_messagestringFehlermeldung des Probelaufs.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
curl --request DELETE \
--url https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Delete,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42")
.delete(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/billing_dry_run_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingDryRunController.delete('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"billing_payment_profile": {
"id": 42,
"name": "Beispiel",
"payout_type": "string",
"auto_mode": true,
"is_default": true,
"is_event_default": true,
"is_donation_default": true,
"execution_day": "string",
"next_execution_date": "2026-10-15T09:30:00+02:00",
"booking_day": "string"
},
"status": "string",
"billing_date": "2026-10-15T09:30:00+02:00",
"started_at": "2026-10-15T09:30:00+02:00",
"finished_at": "2026-10-15T09:30:00+02:00",
"company_count": 1,
"invoice_count": 1,
"saved_invoice_count": 1,
"skipped_invoice_count": 1
}Lädt die Konsolenausgabe eines simulierten Abrechnungslaufs als einfache Textdatei herunter.
GET/api/invoice/billing_dry_run/{identifier}/log
Das Protokoll enthält eine Zeile pro simulierter Rechnung und umfasst bei einer großen Installation mehrere Megabyte. Wurde es in der JSON-Detailantwort gesendet, lud sich die Ergebnisansicht bei jedem Neuladen langsam; daher wird es stattdessen als Datei angeboten.
Pfad-Parameter
identifierPflichtstring |
Antworten
200Das Protokoll des BillingDryRun als Textdatei
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42/log \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42/log', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42/log"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42/log', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42/log"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42/log")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42/log"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'package:http/http.dart' as http;
final response = await http.get(
Uri.parse('https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run/42/log'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);Diese Methode liefert alle simulierten Rechnungen eines einzelnen BillingDryRun
GET/api/invoice/billing_dry_run_item
Query-Parameter
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert eine Liste der BillingDryRunItem-Objekte.array<BillingDryRunItem>
Felder anzeigen (21)
idintegerPrimärschlüssel der Probelauf-Position. Interne ID.
company_idintegerID der Firma, der in Rechnung gestellt wird.
company_numberstringNummer der abzurechnenden Firma.
company_namestringName der Firma, an die abgerechnet wird.
sourcestringQuelle der Position, zum Beispiel Veranstaltung oder Mitgliedschaft.
accounting_type_namestringName der Buchungsart.
invoice_messagestringNachricht, die auf der Rechnung gedruckt würde.
start_datestring (date-time)Beginn des abgerechneten Zeitraums.
end_datestring (date-time)Ende des abgerechneten Zeitraums.
due_datestring (date-time)Fälligkeitsdatum der Rechnung.
netto_valuenumber (float)Nettowert der Rechnung.
brutto_valuenumber (float)Bruttowert der Rechnung.
tax_valuenumber (float)Steuerwert der Rechnung.
position_countintegerAnzahl der Positionen auf der Rechnung.
time_report_countintegerAnzahl der enthaltenen Zeitberichte.
would_be_persistedbooleanDie Rechnung würde in einem echten Lauf gespeichert.
skip_reasonstringGrund, warum die Rechnung übersprungen würde.
send_mailbooleanDie Rechnung würde per E-Mail versendet.
send_postalbooleanDie Rechnung würde per Post versendet.
recipient_emailstringE-Mail-Adresse, an die die Rechnung gesendet würde.
positionsarray<object>Positionen der Rechnung als JSON.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run_item \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run_item', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run_item"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run_item', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run_item"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run_item")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/invoice/billing_dry_run_item"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/billing_dry_run_item_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await BillingDryRunItemController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"company_name": "Beispiel",
"accounting_type_name": "Beispiel",
"send_mail": true,
"recipient_email": "lena.hartmann@example.org",
"company_id": 42,
"company_number": "string",
"source": "string",
"invoice_message": "string",
"start_date": "2026-10-15T09:30:00+02:00"
}
]