type: object
description: |
    A reconciliation flag on a `DHLCharge`. Created by `POST /admin/dhl/reconcile`
    when a charge differs from the rate Bigscreen quoted at label-purchase time, or
    when the tracking number can't be matched. Updated by operators via
    `PUT /admin/dhl/charges/{id}` to change `status` / `notes`.
required: [id, chargeId, reason, status]
properties:
    id: { type: string }
    createdAt: { type: string, format: date-time }
    chargeId: { type: string, description: The `DHLCharge.id` this flag applies to. }
    invoiceId: { type: string }
    trackingNumber: { type: string }
    reason:
        type: string
        enum: [TrackingNotFound, NoQuotedRate, OverThreshold]
        description: |
            - `TrackingNotFound` — no matching shipment in our records.
            - `NoQuotedRate` — we don't have a quoted rate for the matched shipment.
            - `OverThreshold` — quoted vs. invoiced delta exceeds the threshold passed to `POST /admin/dhl/reconcile`.
    status:
        type: string
        enum: [New, Reviewed, Resolved, Disputed]
        description: Operator-set workflow state.
    notes:
        type: string
        description: Operator-supplied notes attached during review.
    quotedRate:
        type: number
        description: Quoted rate captured when the label was bought (if known).
    invoicedAmount:
        type: number
        description: The DHL-invoiced amount the flag is comparing against.
example:
    id: "01HZF12345ABC678DEF90GHJKM"
    createdAt: "2026-04-22T10:18:00.000Z"
    chargeId: "01HZ7890ABC678DEF90GHJKMN"
    invoiceId: "01HZ12345ABC678DEF90GHJKMN"
    trackingNumber: "9361269903500987654321"
    reason: "OverThreshold"
    status: "New"
    notes: ""
    quotedRate: 78.40
    invoicedAmount: 102.18
