Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The endpoint returns a JSON array of invoice objects. Each object contains a nested `Info` array of supplementary key/value (or title/value) entries.

Code Block
[
    {
      "Id":          <value>,    // Composite: $"{InstNr}-{ForbnNr}-{UdebNr}-{Id}" = AKOND.INSTNR-FORBNR-UDEBNR-REGNINGNR
      "ServiceId":   <value>,    // HARDCODED NULL. Previous:  Data: AUDEBFORS.FORSYNINGSART (+AFREGNTYPE) via ForsyningsartMapper.
  El-only join => in practice "consumption_trade" or null (a supply type, not an identifier — omitted; see limitations).
      "InvoiceDate": <value>,    // Data: AKOND.BILAGSDATO  (DateTimeOffset, UTC offset 0) | null
      "DueDate":     <value>,    // Data: AKOND.FORFDATO    (DateTimeOffset, UTC offset 0) | null
      "Period":      <value>,    // Derived from StartDate/EndDate month-span: "1month"/"2month"/"3month"/"6month"/"12month"
  (defaults to "1month" when dates missing or other span)
      "StartDate":   <value>,    // Data: AKOND.DATOFRA     (DateTimeOffset, UTC offset 0) | null
      "EndDate":     <value>,    // Data: AKOND.DATOTIL     (DateTimeOffset, UTC offset 0) | null
      "RemainingAmount": <value>,// Data: running account saldo (SUM of AKOND.KR up to this line) - NOT a per-invoice remaining
  figure.
      "TotalAmount": <value>,    // Data: AKOND.KR (decimal) | null
      "InvoiceStatus": <value>,  // Derived (see status logic below): one of cancelled / credited / paid / overdue / unpaid
  non-empty BDOC.PAYLOAD exists, else "missing"
     
     InvoiceType": <value>,    // Derived: "pdf" when a rendered PDF (non-empty BDOC.PAYLOAD with matching MIMETYPE) exists,
  else "missing"

      // Flat supplementary list; mostly DUPLICATES the structured fields above, as strings/dates.
    "Info": [ // Every entry carries BOTH Key AND Title (EGCommon emits null for whichever is unset).
      "Info": [
        { "Key": "invoiceNumber",   "Title": "Invoice number",   "Value": <Id> },         // Data: AKOND.REGNINGNR (string)
        { "Key": "invoiceDate",     "Title": "Invoice date",     "Value": <InvoiceDate> },// Data: AKOND.BILAGSDATO
  (DateTimeOffset|null)
        { "Key": "dueDate",         "Title": "Due date",         "Value": <DueDate> },    // Data: AKOND.FORFDATO
  (DateTimeOffset|null)
        { "Key": "totalAmount",     "Title": "Total amount",     "Value": <TotalAmount> },// Data: AKOND.KR .ToString() | null
        { "Key": "period",          "Title": "Period",           "Value": <Period> },     // Derived period string
        { "Key": "remainingAmount", "Title": "Remaining amount", "Value": <Saldo> },      // Data: running saldo .ToString() |
  null
        { "Key": "status",          "ValueTitle": <InvoiceStatus> },// Derived status string
"Status",         { "Key": "description",     "Value": <Tekst><InvoiceStatus> },// Derived status string
   // Data: AKOND.TEKST
      { "TitleKey": "Tekstdescription",         "ValueTitle": <Tekst>"Description", }       // Data: AKOND.TEKST (DUPLICATE of description,
       "Value": <Tekst> },      // Data: AKOND.TEKST
        { "Key": "tekst",           "Title": "Tekst",            "Value": <Tekst>  }       // Data: AKOND.TEKST sent(duplicate viaof
 Title (untranslateddescription)
 not Key)
      // NOTE: "ocr" key is NOT emitted (source field not yet identified - TODO)
      ]
    }
  ]

Field origin detail (top-level BrightInvoice): 

...