Invoice AG-2026-0005 Draft Draft
Supplier
garg GmbH
Musterstr. 1, 12345 Musterstadt
Phone: 0123-456789
Email: rahulgrg.200@gmail.com
Customer
Rahul Garg
#384/7 new colony adarsh gali no. 2
#384/7

rahulgrg.200@gmail.com
09306019728
Invoice Date
09.06.2026
Due Date
23.06.2026
Retention Until
Line Items
Description Type Qty Unit Price Total
fixed Other 1.00 hours 200.00 EUR 238.00 EUR
Subtotal 200.00 EUR
VAT (19.00%) 30.40 EUR
Total 190.40 EUR
Notes

fix

Manager Review — Reminders & Auto-Escalation

Verify reminder emails are sent and next escalation is automatically scheduled.

1. Trigger First Reminder (Test)

Use the API or wait for an invoice to become overdue:

POST /api/v1/invoices/<uuid>/reminders/trigger/

Expected: Reminder L1 scheduled and email sent via Brevo.

2. Send Reminder Now (Manual Test)
POST /api/v1/invoices/<uuid>/reminders/send/
{"level": 1}

Check delivery status: sentdelivered (via Brevo webhook).

3. Check Reminder Status
GET /api/v1/invoices/<uuid>/reminders/status/

Verify:

  • reminder_level increases after each sent reminder
  • next_reminder_scheduled_at is set (auto-scheduled)
  • escalation_complete = true when max level reached
4. View Reminder History
GET /api/v1/invoices/<uuid>/reminders/

Should show full history per invoice with delivery status.

Acceptance Criteria:
  • Approved reminder sent via email (reuses email delivery)
  • Next escalation automatically scheduled based on tenant config
  • Max level reached → escalation_complete flagged for manual action
  • Reminder history tracked per invoice
  • Delivery tracking (sent, delivered, bounced, failed)
Manager Review — Audit Trail (GoBD Compliance)

Verify immutable audit trail records every invoice status change and action.

1. View Audit Logs via API

List all audit logs (paginated):

GET https://app.taskfree.de/api/v1/files/audit-logs/

Returns all audit log entries across the platform.

Single audit log entry:

GET https://app.taskfree.de/api/v1/files/audit-logs/<uuid:pk>/

Get details of a specific audit log entry by ID.

2. Verify Logged Actions

Perform these actions on an invoice and verify each creates an audit log:

  • Create invoice
  • Finalize / approve invoice
  • Send invoice to customer
  • Mark invoice as paid
  • Void invoice
  • Reissue invoice
3. Verify Audit Log Fields

Each audit log entry must contain:

  • timestamp — when action occurred
  • tenant_id — company/tenant identifier
  • user_id — who performed the action
  • entity_type — e.g., invoice
  • entity_id — invoice UUID
  • action — e.g., created, issued, sent, paid, voided
  • old_status / new_status — status transition
  • metadata — additional context
4. Verify Immutability

Attempt to modify or delete an audit log entry via Django admin or database — this should be prevented or not exposed in the UI.

Acceptance Criteria:
  • Append-only audit log table
  • Records: timestamp, tenant_id, user_id, entity_type, entity_id, action, old_status, new_status, metadata
  • Covers: created, validated, approved, issued, sent, paid, voided
  • Cannot be modified or deleted
  • Queryable by pipeline_run_id, tenant_id, entity_id
  • GoBD-compliant immutable audit trail