Status

Display the invoice’s state visually. Kinvoicing provides 7 predefined statuses with default colors, plus a Custom variant for your own.

Status Color Use case
Draft Gray Invoice being prepared
Sent Blue Sent to recipient
Paid Green Payment received
Overdue Red Past due
Void Light gray Cancelled
Uncollectable Stone Written off
Refunded Violet Payment returned
Custom(label, color) Any Your own states

Display Modes

Each status can be rendered in one of five display modes:

Mode Description
Badge (default) Small colored pill next to invoice number
Banner Full-width colored bar at top
Watermark Large diagonal text overlaying the body
Stamp Rotated stamp/seal below the header
None Status stored as data, not rendered

Badge

The default — a small colored pill in the header:

invoice {
    status(InvoiceStatus.Paid)
    // ... sections
}

Full-width bar at the top of the invoice:

invoice {
    status {
        overdue()
        banner()
    }
    // ... sections
}

Watermark

Diagonal text overlaid across the invoice body:

invoice {
    status {
        voided()
        watermark()          // default opacity = 0.15
        // watermark(0.25f)  // or custom opacity
    }
    // ... sections
}

Stamp

Rotated stamp/seal positioned below the header:

invoice {
    status {
        draft()
        stamp()          // default opacity = 0.35
        // stamp(0.5f)   // or custom opacity
    }
    // ... sections
}

Custom Status

Define your own status with any label and ARGB color:

invoice {
    status {
        custom("PENDING APPROVAL", 0xFFF59E0B)
        banner()
    }
    // ... sections
}

Builder Reference

StatusBuilder

Method Description
draft() Set status to Draft (gray)
sent() Set status to Sent (blue)
paid() Set status to Paid (green)
overdue() Set status to Overdue (red)
voided() Set status to Void (gray)
uncollectable() Set status to Uncollectable (stone)
refunded() Set status to Refunded (violet)
custom(label, color) Set a custom status with ARGB color
badge() Display as header pill (default)
banner() Display as full-width bar
watermark(opacity) Display as diagonal text overlay
stamp(opacity) Display as rotated stamp
hidden() Store status without rendering

Cross-Renderer Support

Display Compose PDF HTML Email HTML
Badge Pill in header Pill in header Pill in header Inline span in header
Banner Full-width bar Full-width bar Full-width bar Full-width div
Watermark Canvas overlay SVG overlay SVG overlay Background SVG image
Stamp Canvas overlay SVG overlay SVG overlay Background SVG image

Back to top

Copyright © 2026 Christopher Jenkins. Licensed under Apache 2.0.