Get dunning notice
Returns the details of a single dunning notice.
Required license
This endpoint requires the Dunning add-on.
Request
GET /api/oauth/v2/resource/invoices/dunnings/{uuid}
Header
| Header | Value |
|---|---|
Authorization | Bearer {access_token} |
URL parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | Yes | Unique ID of the dunning notice |
Required scope: dunnings
Response
Success (200 OK)
{
"data": {
"id": "c3d4e5f6-a7b8-9012-cdef-234567890123",
"invoice": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"customer": "f0e1d2c3-b4a5-6789-fedc-ba9876543210",
"status": "active",
"text": "Dear Sir or Madam, we would like to remind you of the following open invoice.",
"printedStatus": "unprinted",
"paidStatus": "open",
"dunningType": "7f8e9d0c-1b2a-3456-789a-bcdef0123456",
"fee": "12.00",
"latePaymentInterestRate": "4.00",
"paymentDeadline": 14,
"totalAmount": "122.35",
"outstandingTotal": "122.35",
"totalFee": "12.00",
"outstandingFee": "12.00",
"totalInterest": "0.35",
"outstandingInterest": "0.35",
"invoiceOutstandingBalance": "110.00",
"interestCalculateStartDate": "2026-06-16",
"interestCalculateEndDate": "2026-07-15",
"createdAt": "2026-07-15T09:00:00+02:00",
"updatedAt": "2026-07-15T09:00:00+02:00",
"createdBy": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
"updatedBy": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
"deleted": false,
"deletedAt": null,
"deletedBy": null,
"tenancy": "9a8b7c6d-5e4f-3210-9876-543210fedcba"
}
}Note: A replaced or canceled dunning notice still returns
200—statusisreplacedorcanceledthen, and a canceled notice additionally hasdeleted=true.
Response fields
| Field | Type | Description |
|---|---|---|
data.id | string (UUID) | null | Unique ID of the dunning notice |
data.invoice | string (UUID) | null | ID of the dunned invoice, loadable via Get Invoice |
data.customer | string (UUID) | null | ID of the customer, loadable via Get Customer |
data.status | string | Technical status: active, replaced, canceled. See Conventions |
data.text | string | null | Dunning text as printed on the letter to the customer |
data.printedStatus | string | Print status: printed, unprinted |
data.paidStatus | string | Payment status: open, paid |
data.dunningType | string (UUID) | null | ID of the dunning level, loadable via Get dunning level |
data.fee | string | Dunning fee of this dunning level |
data.latePaymentInterestRate | string | Late payment interest rate in percent |
data.paymentDeadline | integer | Payment deadline in days |
data.totalAmount | string | Total amount of the dunning notice |
data.outstandingTotal | string | Outstanding total amount |
data.totalFee | string | Total dunning fees |
data.outstandingFee | string | Outstanding dunning fees |
data.totalInterest | string | Total late payment interest |
data.outstandingInterest | string | Outstanding late payment interest |
data.invoiceOutstandingBalance | string | Outstanding amount of the dunned invoice |
data.interestCalculateStartDate | string | null | Start of interest calculation (YYYY-MM-DD) |
data.interestCalculateEndDate | string | null | End of interest calculation (YYYY-MM-DD) |
data.createdAt | string (ISO 8601) | Creation timestamp |
data.updatedAt | string (ISO 8601) | Last change timestamp |
data.createdBy | string (UUID) | null | ID of the user who created the dunning notice, loadable via Get User |
data.updatedBy | string (UUID) | null | ID of the user who made the last change |
data.deleted | boolean | Whether the dunning notice is deleted |
data.deletedAt | string (ISO 8601) | null | Deletion timestamp |
data.deletedBy | string (UUID) | null | ID of the user who deleted the dunning notice |
data.tenancy | string (UUID) | null | ID of the assigned tenancy |
Note on monetary amounts: All monetary amounts and the interest rate come as a JSON string, not as a number (
"fee": "12.00"). This affectsfee,latePaymentInterestRate,totalAmount,outstandingTotal,totalFee,outstandingFee,totalInterest,outstandingInterest, andinvoiceOutstandingBalance. Process the values with a decimal type. If you parse them into a floating-point number, you build in rounding errors. Same behavior as with invoices and cash revenues.
Note:
paymentDeadlineis a number of days, not a date.
curl -X GET "https://my.offisy.at/api/oauth/v2/resource/invoices/dunnings/b2c3d4e5-f6a7-8901-bcde-f01234567890" \
-H "Authorization: Bearer {access_token}"Possible errors
| Status | Code | Description |
|---|---|---|
| 401 | invalid_client | Access token invalid or expired |
| 403 | insufficient_scope | Scope dunnings not present |
| 404 | not_found | Dunning notice not found, or assigned to a tenancy the owning user of your API access does not have access to or where they lack the Mahnwesen: Anzeigen permission under the Tenancies add-on. The response is the same as for an unknown UUID (The requested resource was not found.) |
| 429 | rate_limit_exceeded | Too many requests — see Error Handling |
Note: If the
Authorizationheader is missing or the token is invalid, the API answers with401and the JSON envelopeinvalid_client. This holds for the OAuth API in general, not just for this endpoint.