Skip to content
Developer

BillingDryRun

Billing8 EndpointsBilling / BillingDryRun

This method will get all BillingDryRun objects - without the simulated invoices

GET/api/invoice/billing_dry_run

Query parameters

searchStringstringtext to search for in the list
orderFieldNamestringname of the order field
orderFieldSortstringsorting modeAllowed: DESCASC
pageintegerpage of the list
pageSizeintegernumber of entries for each page
withMaxPageNumberstringreturns the number of pages available as a header if this is set

Responses

200Returns a list of BillingDryRun objectsarray<BillingDryRun>

Show fields (22)
  • idinteger

    Primary key of the billing dry run. Internal ID.

  • billing_payment_profileBillingPaymentProfile10

    Payment profile used for the dry run.

    Show fields (15)
    • idinteger

      Primary key of the payment profile. Internal ID.

    • payout_typestring

      Type of payout, for example SEPA direct debit or transfer.

    • auto_modeboolean

      Payments are created automatically.

    • is_defaultboolean

      Default payment profile.

    • is_event_defaultboolean

      Default payment profile for events.

    • is_donation_defaultboolean

      Default payment profile for donations.

    • execution_daystring

      Day of the month the payments are executed.

    • next_execution_datestring (date-time)

      Date of the next execution.

    • booking_daystring

      Day of the month the payments are booked.

    • next_booking_datestring (date-time)

      Date of the next booking.

    • force_billing_due_date_to_next_booking_dateboolean

      Force the due date of the invoice to the next booking date.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • namestring

      Name of the entity.

  • statusstring

    Status of the dry run, for example running or finished.

  • billing_datestring (date-time)

    Billing date used for the dry run.

  • started_atstring (date-time)

    Time the dry run started.

  • finished_atstring (date-time)

    Time the dry run finished.

  • company_countinteger

    Number of companies checked.

  • invoice_countinteger

    Number of invoices that would be created.

  • saved_invoice_countinteger

    Number of invoices that were saved.

  • skipped_invoice_countinteger

    Number of invoices that were skipped.

  • position_countinteger

    Number of positions on all invoices.

  • mail_countinteger

    Number of invoices sent by e-mail.

  • postal_countinteger

    Number of invoices sent by post.

  • sum_nettonumber (float)

    Sum of the net values.

  • sum_bruttonumber (float)

    Sum of the gross values.

  • sum_taxnumber (float)

    Sum of the tax values.

  • log_lengthinteger

    Length of the log of the dry run.

  • stored_item_countinteger

    Number of items stored by the dry run.

  • error_messagestring

    Error message of the dry run.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/invoice/billing_dry_run \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
[
  {
    "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
  }
]

Start a new simulated billing run ("dry run").

POST/api/invoice/billing_dry_run

The run is executed in the background. Nothing is persisted by the simulation itself - only the resulting BillingDryRun record with its items is stored. Poll the returned record until its status is done or failed.

Request body application/json

  • dataBillingDryRun2
    Show fields (3)
    • billing_payment_profileBillingPaymentProfile6

      Payment profile used for the dry run.

    • billing_datestring (date-time)

      Billing date used for the dry run.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

Responses

200The scheduled dry runBillingDryRun3

Show fields (23)
  • idinteger

    Primary key of the billing dry run. Internal ID.

  • billing_payment_profileBillingPaymentProfile10

    Payment profile used for the dry run.

    Show fields (15)
    • idinteger

      Primary key of the payment profile. Internal ID.

    • payout_typestring

      Type of payout, for example SEPA direct debit or transfer.

    • auto_modeboolean

      Payments are created automatically.

    • is_defaultboolean

      Default payment profile.

    • is_event_defaultboolean

      Default payment profile for events.

    • is_donation_defaultboolean

      Default payment profile for donations.

    • execution_daystring

      Day of the month the payments are executed.

    • next_execution_datestring (date-time)

      Date of the next execution.

    • booking_daystring

      Day of the month the payments are booked.

    • next_booking_datestring (date-time)

      Date of the next booking.

    • force_billing_due_date_to_next_booking_dateboolean

      Force the due date of the invoice to the next booking date.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • namestring

      Name of the entity.

  • triggered_by_userUser14

    Login user who started the dry run.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • statusstring

    Status of the dry run, for example running or finished.

  • billing_datestring (date-time)

    Billing date used for the dry run.

  • started_atstring (date-time)

    Time the dry run started.

  • finished_atstring (date-time)

    Time the dry run finished.

  • company_countinteger

    Number of companies checked.

  • invoice_countinteger

    Number of invoices that would be created.

  • saved_invoice_countinteger

    Number of invoices that were saved.

  • skipped_invoice_countinteger

    Number of invoices that were skipped.

  • position_countinteger

    Number of positions on all invoices.

  • mail_countinteger

    Number of invoices sent by e-mail.

  • postal_countinteger

    Number of invoices sent by post.

  • sum_nettonumber (float)

    Sum of the net values.

  • sum_bruttonumber (float)

    Sum of the gross values.

  • sum_taxnumber (float)

    Sum of the tax values.

  • log_lengthinteger

    Length of the log of the dry run.

  • stored_item_countinteger

    Number of items stored by the dry run.

  • error_messagestring

    Error message of the dry run.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

Request
curl --request POST \
  --url https://your-instance.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
  }
}
'
Response 200 application/json
{
  "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
}

This method will get a single BillingDryRun with the given id including all simulated invoices

GET/api/invoice/billing_dry_run/{identifier}

Path parameters

identifierrequiredstring

Responses

200Returns a single BillingDryRunBillingDryRun3

Show fields (23)
  • idinteger

    Primary key of the billing dry run. Internal ID.

  • billing_payment_profileBillingPaymentProfile10

    Payment profile used for the dry run.

    Show fields (15)
    • idinteger

      Primary key of the payment profile. Internal ID.

    • payout_typestring

      Type of payout, for example SEPA direct debit or transfer.

    • auto_modeboolean

      Payments are created automatically.

    • is_defaultboolean

      Default payment profile.

    • is_event_defaultboolean

      Default payment profile for events.

    • is_donation_defaultboolean

      Default payment profile for donations.

    • execution_daystring

      Day of the month the payments are executed.

    • next_execution_datestring (date-time)

      Date of the next execution.

    • booking_daystring

      Day of the month the payments are booked.

    • next_booking_datestring (date-time)

      Date of the next booking.

    • force_billing_due_date_to_next_booking_dateboolean

      Force the due date of the invoice to the next booking date.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • namestring

      Name of the entity.

  • triggered_by_userUser14

    Login user who started the dry run.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • statusstring

    Status of the dry run, for example running or finished.

  • billing_datestring (date-time)

    Billing date used for the dry run.

  • started_atstring (date-time)

    Time the dry run started.

  • finished_atstring (date-time)

    Time the dry run finished.

  • company_countinteger

    Number of companies checked.

  • invoice_countinteger

    Number of invoices that would be created.

  • saved_invoice_countinteger

    Number of invoices that were saved.

  • skipped_invoice_countinteger

    Number of invoices that were skipped.

  • position_countinteger

    Number of positions on all invoices.

  • mail_countinteger

    Number of invoices sent by e-mail.

  • postal_countinteger

    Number of invoices sent by post.

  • sum_nettonumber (float)

    Sum of the net values.

  • sum_bruttonumber (float)

    Sum of the gross values.

  • sum_taxnumber (float)

    Sum of the tax values.

  • log_lengthinteger

    Length of the log of the dry run.

  • stored_item_countinteger

    Number of items stored by the dry run.

  • error_messagestring

    Error message of the dry run.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/invoice/billing_dry_run/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
{
  "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
}

Archive a BillingDryRun so it disappears from the list without losing its result.

PUT/api/invoice/billing_dry_run/{identifier}

Deleting a run drops its simulated invoices and its log for good, which is the right thing once a result was reviewed. Archiving is the reversible way out of the list for a result one wants to keep - it can still be opened and exported, and the flag can be taken back. Everything else about a run is written by the simulation itself, so the deleted flag is the only field this accepts.

Path parameters

identifierrequiredstring

Request body application/json

  • dataBillingDryRun4
    Show fields (3)
    • billing_payment_profileBillingPaymentProfile8

      Payment profile used for the dry run.

    • billing_datestring (date-time)

      Billing date used for the dry run.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

Responses

200The updated BillingDryRunBillingDryRun3

Show fields (23)
  • idinteger

    Primary key of the billing dry run. Internal ID.

  • billing_payment_profileBillingPaymentProfile10

    Payment profile used for the dry run.

    Show fields (15)
    • idinteger

      Primary key of the payment profile. Internal ID.

    • payout_typestring

      Type of payout, for example SEPA direct debit or transfer.

    • auto_modeboolean

      Payments are created automatically.

    • is_defaultboolean

      Default payment profile.

    • is_event_defaultboolean

      Default payment profile for events.

    • is_donation_defaultboolean

      Default payment profile for donations.

    • execution_daystring

      Day of the month the payments are executed.

    • next_execution_datestring (date-time)

      Date of the next execution.

    • booking_daystring

      Day of the month the payments are booked.

    • next_booking_datestring (date-time)

      Date of the next booking.

    • force_billing_due_date_to_next_booking_dateboolean

      Force the due date of the invoice to the next booking date.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • namestring

      Name of the entity.

  • triggered_by_userUser14

    Login user who started the dry run.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • statusstring

    Status of the dry run, for example running or finished.

  • billing_datestring (date-time)

    Billing date used for the dry run.

  • started_atstring (date-time)

    Time the dry run started.

  • finished_atstring (date-time)

    Time the dry run finished.

  • company_countinteger

    Number of companies checked.

  • invoice_countinteger

    Number of invoices that would be created.

  • saved_invoice_countinteger

    Number of invoices that were saved.

  • skipped_invoice_countinteger

    Number of invoices that were skipped.

  • position_countinteger

    Number of positions on all invoices.

  • mail_countinteger

    Number of invoices sent by e-mail.

  • postal_countinteger

    Number of invoices sent by post.

  • sum_nettonumber (float)

    Sum of the net values.

  • sum_bruttonumber (float)

    Sum of the gross values.

  • sum_taxnumber (float)

    Sum of the tax values.

  • log_lengthinteger

    Length of the log of the dry run.

  • stored_item_countinteger

    Number of items stored by the dry run.

  • error_messagestring

    Error message of the dry run.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

Request
curl --request PUT \
  --url https://your-instance.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
  }
}
'
Response 200 application/json
{
  "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
}

Archive a BillingDryRun so it disappears from the list without losing its result.

PATCH/api/invoice/billing_dry_run/{identifier}

Deleting a run drops its simulated invoices and its log for good, which is the right thing once a result was reviewed. Archiving is the reversible way out of the list for a result one wants to keep - it can still be opened and exported, and the flag can be taken back. Everything else about a run is written by the simulation itself, so the deleted flag is the only field this accepts.

Path parameters

identifierrequiredstring

Request body application/json

  • dataBillingDryRun4
    Show fields (3)
    • billing_payment_profileBillingPaymentProfile8

      Payment profile used for the dry run.

    • billing_datestring (date-time)

      Billing date used for the dry run.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

Responses

200The updated BillingDryRunBillingDryRun3

Show fields (23)
  • idinteger

    Primary key of the billing dry run. Internal ID.

  • billing_payment_profileBillingPaymentProfile10

    Payment profile used for the dry run.

    Show fields (15)
    • idinteger

      Primary key of the payment profile. Internal ID.

    • payout_typestring

      Type of payout, for example SEPA direct debit or transfer.

    • auto_modeboolean

      Payments are created automatically.

    • is_defaultboolean

      Default payment profile.

    • is_event_defaultboolean

      Default payment profile for events.

    • is_donation_defaultboolean

      Default payment profile for donations.

    • execution_daystring

      Day of the month the payments are executed.

    • next_execution_datestring (date-time)

      Date of the next execution.

    • booking_daystring

      Day of the month the payments are booked.

    • next_booking_datestring (date-time)

      Date of the next booking.

    • force_billing_due_date_to_next_booking_dateboolean

      Force the due date of the invoice to the next booking date.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • namestring

      Name of the entity.

  • triggered_by_userUser14

    Login user who started the dry run.

    Show fields (10)
    • idinteger

      Primary key of the user. Internal ID of the login user.

    • namestring

      Display name of the user. Shown in the UI and in audit entries.

    • usernamestring

      Login name of the user. Must be unique across all users.

    • emailstring

      E-mail address of the user. Used for login notifications, password resets and as a login alias.

    • positioningeneralstring

      Free text describing the position or role of the user.

    • crm_personCRMPerson10

      CRM person linked to this login user. Connects the login account with the person record.

    • profile_picture_urlstring

      URL of the profile picture of the user.

    • archivedboolean

      Marks the user as archived. Archived users are kept for history and are not active.

    • require2faboolean

      Two-factor authentication is required for this user.

    • search_stringstring

      Text that the entity can be searched by.

  • statusstring

    Status of the dry run, for example running or finished.

  • billing_datestring (date-time)

    Billing date used for the dry run.

  • started_atstring (date-time)

    Time the dry run started.

  • finished_atstring (date-time)

    Time the dry run finished.

  • company_countinteger

    Number of companies checked.

  • invoice_countinteger

    Number of invoices that would be created.

  • saved_invoice_countinteger

    Number of invoices that were saved.

  • skipped_invoice_countinteger

    Number of invoices that were skipped.

  • position_countinteger

    Number of positions on all invoices.

  • mail_countinteger

    Number of invoices sent by e-mail.

  • postal_countinteger

    Number of invoices sent by post.

  • sum_nettonumber (float)

    Sum of the net values.

  • sum_bruttonumber (float)

    Sum of the gross values.

  • sum_taxnumber (float)

    Sum of the tax values.

  • log_lengthinteger

    Length of the log of the dry run.

  • stored_item_countinteger

    Number of items stored by the dry run.

  • error_messagestring

    Error message of the dry run.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

Request
curl --request PATCH \
  --url https://your-instance.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
  }
}
'
Response 200 application/json
{
  "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
}

Delete a BillingDryRun together with its simulated invoices.

DELETE/api/invoice/billing_dry_run/{identifier}

The record is removed for good instead of being flagged as deleted: a run holds up to BillingDryRunCollector::MAX_ITEMS simulated invoices with their positions and a log of a few hundred kilobytes, none of which describes anything that ever happened. Keeping that around after the result was reviewed only fills up the database.

A run that is still scheduled or executing is kept - the background process would fail on its own result.

Path parameters

identifierrequiredstring

Responses

200The deleted BillingDryRunBillingDryRun

Show fields (22)
  • idinteger

    Primary key of the billing dry run. Internal ID.

  • billing_payment_profileBillingPaymentProfile10

    Payment profile used for the dry run.

    Show fields (15)
    • idinteger

      Primary key of the payment profile. Internal ID.

    • payout_typestring

      Type of payout, for example SEPA direct debit or transfer.

    • auto_modeboolean

      Payments are created automatically.

    • is_defaultboolean

      Default payment profile.

    • is_event_defaultboolean

      Default payment profile for events.

    • is_donation_defaultboolean

      Default payment profile for donations.

    • execution_daystring

      Day of the month the payments are executed.

    • next_execution_datestring (date-time)

      Date of the next execution.

    • booking_daystring

      Day of the month the payments are booked.

    • next_booking_datestring (date-time)

      Date of the next booking.

    • force_billing_due_date_to_next_booking_dateboolean

      Force the due date of the invoice to the next booking date.

    • deletedboolean

      This property is used to mark an entity as deleted / archived

    • createdstring (date-time)

      Point in time the entity was created.

    • updatedstring (date-time)

      Point in time the entity was last updated.

    • namestring

      Name of the entity.

  • statusstring

    Status of the dry run, for example running or finished.

  • billing_datestring (date-time)

    Billing date used for the dry run.

  • started_atstring (date-time)

    Time the dry run started.

  • finished_atstring (date-time)

    Time the dry run finished.

  • company_countinteger

    Number of companies checked.

  • invoice_countinteger

    Number of invoices that would be created.

  • saved_invoice_countinteger

    Number of invoices that were saved.

  • skipped_invoice_countinteger

    Number of invoices that were skipped.

  • position_countinteger

    Number of positions on all invoices.

  • mail_countinteger

    Number of invoices sent by e-mail.

  • postal_countinteger

    Number of invoices sent by post.

  • sum_nettonumber (float)

    Sum of the net values.

  • sum_bruttonumber (float)

    Sum of the gross values.

  • sum_taxnumber (float)

    Sum of the tax values.

  • log_lengthinteger

    Length of the log of the dry run.

  • stored_item_countinteger

    Number of items stored by the dry run.

  • error_messagestring

    Error message of the dry run.

  • deletedboolean

    This property is used to mark an entity as deleted / archived

  • createdstring (date-time)

    Point in time the entity was created.

  • updatedstring (date-time)

    Point in time the entity was last updated.

Request
curl --request DELETE \
  --url https://your-instance.iw-erp.de/api/invoice/billing_dry_run/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
{
  "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
}

Downloads the console output of a simulated billing run as a plain text file.

GET/api/invoice/billing_dry_run/{identifier}/log

The log holds one line per simulated invoice and reaches several megabytes on a large installation. Sending it inside the JSON detail response made every reload of the result view slow, so it is offered as a file instead.

Path parameters

identifierrequiredstring

Responses

200The log of the BillingDryRun as a text file

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

This method will get all simulated invoices of a single BillingDryRun

GET/api/invoice/billing_dry_run_item

Query parameters

searchStringstringtext to search for in the list
orderFieldNamestringname of the order field
orderFieldSortstringsorting modeAllowed: DESCASC
pageintegerpage of the list
pageSizeintegernumber of entries for each page
withMaxPageNumberstringreturns the number of pages available as a header if this is set

Responses

200Returns a list of BillingDryRunItem objectsarray<BillingDryRunItem>

Show fields (21)
  • idinteger

    Primary key of the dry run item. Internal ID.

  • company_idinteger

    ID of the company to be billed.

  • company_numberstring

    Number of the company to be billed.

  • company_namestring

    Name of the company to be billed.

  • sourcestring

    Source of the item, for example event or membership.

  • accounting_type_namestring

    Name of the accounting type.

  • invoice_messagestring

    Message that would be printed on the invoice.

  • start_datestring (date-time)

    Start of the billed period.

  • end_datestring (date-time)

    End of the billed period.

  • due_datestring (date-time)

    Due date of the invoice.

  • netto_valuenumber (float)

    Net value of the invoice.

  • brutto_valuenumber (float)

    Gross value of the invoice.

  • tax_valuenumber (float)

    Tax value of the invoice.

  • position_countinteger

    Number of positions on the invoice.

  • time_report_countinteger

    Number of time reports included.

  • would_be_persistedboolean

    The invoice would be saved in a real run.

  • skip_reasonstring

    Reason the invoice would be skipped.

  • send_mailboolean

    The invoice would be sent by e-mail.

  • send_postalboolean

    The invoice would be sent by post.

  • recipient_emailstring

    E-mail address the invoice would be sent to.

  • positionsarray<object>

    Positions of the invoice as JSON.

Request
curl --request GET \
  --url https://your-instance.iw-erp.de/api/invoice/billing_dry_run_item \
  --header 'x-iw-jwt-token: <TOKEN>'
Response 200 application/json
[
  {
    "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"
  }
]