{
  "title": "Codeunit 817 Service Post Invoice",
  "url": "https://jonas-paprotka.de/ref/codeunit/817-service-post-invoice/",
  "author": "Jonas Paprotka",
  "license": "Content © 2026 Jonas Paprotka. Quote freely with attribution and a link.",
  "subject": "Microsoft Dynamics 365 Business Central",
  "checked": "2026-09-20",
  "source": {
    "feed": "https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/MSSymbols/nuget/v3/index.json",
    "package": "Microsoft.BaseApplication.symbols.437dbf0e-84ff-417a-965d-ed2bb9650972",
    "build": "28.5.54151.54365",
    "code": {
      "29": {
        "url": "https://jonas-paprotka.de/ref/codeunit/817-service-post-invoice/source/29/",
        "repo": "https://github.com/microsoft/BCApps",
        "branch": "releases/29.x",
        "commit": "a66254c3b8b5bb1cea290dc8f9d097aec4381153",
        "path": "src/Layers/W1/BaseApp/Service/Posting/ServicePostInvoice.Codeunit.al",
        "license": "MIT"
      }
    },
    "note": "Presence per major, highest build of each; 17 is the oldest major on the feed. Local procedures are not listed."
  },
  "object": {
    "type": "codeunit",
    "id": 817,
    "name": "Service Post Invoice",
    "app": "Base Application",
    "appByVersion": [
      {
        "app": "Base Application",
        "from": 19
      }
    ],
    "nameByVersion": [
      {
        "name": "Service Post Invoice",
        "from": 19
      }
    ],
    "namespace": "Microsoft.Service.Posting",
    "versions": "19-28",
    "majors": [
      19,
      20,
      21,
      22,
      23,
      24,
      25,
      26,
      27,
      28
    ],
    "extends": null,
    "sourceTable": null,
    "sourceFile": "Service/Posting/ServicePostInvoice.Codeunit.al",
    "obsolete": null,
    "obsoleteSeenFrom": null,
    "byVersion": {
      "19": {
        "app": "base-application",
        "name": "Service Post Invoice",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 19,
          "values": 0
        },
        "stub": false
      },
      "20": {
        "app": "base-application",
        "name": "Service Post Invoice",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 19,
          "values": 0
        },
        "stub": false
      },
      "21": {
        "app": "base-application",
        "name": "Service Post Invoice",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 19,
          "values": 0
        },
        "stub": false
      },
      "22": {
        "app": "base-application",
        "name": "Service Post Invoice",
        "ns": "",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 19,
          "values": 0
        },
        "stub": false
      },
      "23": {
        "app": "base-application",
        "name": "Service Post Invoice",
        "ns": "Microsoft.Service.Posting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 15,
          "values": 0
        },
        "stub": false
      },
      "24": {
        "app": "base-application",
        "name": "Service Post Invoice",
        "ns": "Microsoft.Service.Posting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 15,
          "values": 0
        },
        "stub": false
      },
      "25": {
        "app": "base-application",
        "name": "Service Post Invoice",
        "ns": "Microsoft.Service.Posting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 16,
          "values": 0
        },
        "stub": false
      },
      "26": {
        "app": "base-application",
        "name": "Service Post Invoice",
        "ns": "Microsoft.Service.Posting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 16,
          "values": 0
        },
        "stub": false
      },
      "27": {
        "app": "base-application",
        "name": "Service Post Invoice",
        "ns": "Microsoft.Service.Posting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 16,
          "values": 0
        },
        "stub": false
      },
      "28": {
        "app": "base-application",
        "name": "Service Post Invoice",
        "ns": "Microsoft.Service.Posting",
        "obsolete": null,
        "target": "",
        "sourceTable": "",
        "counts": {
          "fields": 0,
          "keys": 0,
          "methods": 16,
          "values": 0
        },
        "stub": false
      }
    },
    "fields": [],
    "keys": [],
    "procedures": [
      {
        "name": "Check",
        "sig": "(Integer)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "ClearBuffers",
        "sig": "()",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "SetPreviewMode",
        "sig": "(Boolean)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "SetSuppressCommit",
        "sig": "(Boolean)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "SetHideProgressWindow",
        "sig": "(Boolean)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "SetParameters",
        "sig": "(Record Invoice Posting Parameters)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "SetTotalLines",
        "sig": "(Variant, Variant)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "PrepareLine",
        "sig": "(Variant, Variant, Variant)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "PostLines",
        "sig": "(Variant, var Codeunit Gen. Jnl.-Post Line, var Dialog, var Decimal)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "CheckCreditLine",
        "sig": "(Variant, Variant)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "PostLedgerEntry",
        "sig": "(Variant, var Codeunit Gen. Jnl.-Post Line)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "PostBalancingEntry",
        "sig": "(Variant, var Codeunit Gen. Jnl.-Post Line)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "PrepareJobLine",
        "sig": "(Variant, Variant, Variant)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "CalcDeferralAmounts",
        "sig": "(Variant, Variant, Decimal)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "CreatePostedDeferralSchedule",
        "sig": "(Variant, Integer, Code[20], Integer, Date)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28
        ],
        "range": "19-28",
        "first": 19,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 19,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      },
      {
        "name": "PrepareInvoicePostingBuffer",
        "sig": "(var Record Service Line, var Record Invoice Posting Buffer)",
        "returns": "",
        "kind": "procedure",
        "access": "public",
        "obsolete": null,
        "majors": [
          25,
          26,
          27,
          28
        ],
        "range": "25-28",
        "first": 25,
        "last": 28,
        "obsoleteSince": null,
        "spans": [
          {
            "from": 25,
            "to": 25,
            "returns": "",
            "kind": "procedure",
            "access": "internal",
            "obsolete": null
          },
          {
            "from": 26,
            "to": 28,
            "returns": "",
            "kind": "procedure",
            "access": "public",
            "obsolete": null
          }
        ]
      }
    ],
    "events": [
      {
        "name": "OnPostBalancingEntryOnAfterGenJnlPostLine",
        "sig": "(var Record Gen. Journal Line, Record Service Header, var Record Service Line, var Record Service Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by RunOnPostBalancingEntryOnAfterGenJnlPostLine in codeunit Service Post Invoice Subscr.",
          "tag": "20.0"
        },
        "majors": [
          19,
          20,
          21,
          22
        ],
        "range": "19-22",
        "first": 19,
        "last": 22,
        "obsoleteSince": 20,
        "spans": [
          {
            "from": 19,
            "to": 19,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 20,
            "to": 22,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by RunOnPostBalancingEntryOnAfterGenJnlPostLine in codeunit Service Post Invoice Subscr.",
              "tag": "20.0"
            }
          }
        ]
      },
      {
        "name": "OnPostBalancingEntryOnBeforeGenJnlPostLine",
        "sig": "(var Record Gen. Journal Line, Record Service Header, var Record Service Line, var Record Service Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by RunOnPostBalancingEntryOnBeforeGenJnlPostLine in codeunit Service Post Invoice Subscr.",
          "tag": "20.0"
        },
        "majors": [
          19,
          20,
          21,
          22
        ],
        "range": "19-22",
        "first": 19,
        "last": 22,
        "obsoleteSince": 20,
        "spans": [
          {
            "from": 19,
            "to": 19,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 20,
            "to": 22,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by RunOnPostBalancingEntryOnBeforeGenJnlPostLine in codeunit Service Post Invoice Subscr.",
              "tag": "20.0"
            }
          }
        ]
      },
      {
        "name": "OnPostLedgerEntryOnAfterGenJnlPostLine",
        "sig": "(var Record Gen. Journal Line, Record Service Header, var Record Service Line, var Record Service Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by RunOnPostLedgerEntryOnAfterGenJnlPostLine in codeunit Service Post Invoice Subscr.",
          "tag": "20.0"
        },
        "majors": [
          19,
          20,
          21,
          22
        ],
        "range": "19-22",
        "first": 19,
        "last": 22,
        "obsoleteSince": 20,
        "spans": [
          {
            "from": 19,
            "to": 19,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 20,
            "to": 22,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by RunOnPostLedgerEntryOnAfterGenJnlPostLine in codeunit Service Post Invoice Subscr.",
              "tag": "20.0"
            }
          }
        ]
      },
      {
        "name": "OnPostLedgerEntryOnBeforeGenJnlPostLine",
        "sig": "(var Record Gen. Journal Line, Record Service Header, var Record Service Line, var Record Service Line, Boolean, Boolean, var Codeunit Gen. Jnl.-Post Line)",
        "returns": "",
        "kind": "integrationevent",
        "access": "local",
        "obsolete": {
          "state": "Pending",
          "reason": "Replaced by RunOnPostLedgerEntryOnBeforeGenJnlPostLine in codeunit Service Post Invoice Subscr.",
          "tag": "20.0"
        },
        "majors": [
          19,
          20,
          21,
          22
        ],
        "range": "19-22",
        "first": 19,
        "last": 22,
        "obsoleteSince": 20,
        "spans": [
          {
            "from": 19,
            "to": 19,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": null
          },
          {
            "from": 20,
            "to": 22,
            "returns": "",
            "kind": "integrationevent",
            "access": "local",
            "obsolete": {
              "state": "Pending",
              "reason": "Replaced by RunOnPostLedgerEntryOnBeforeGenJnlPostLine in codeunit Service Post Invoice Subscr.",
              "tag": "20.0"
            }
          }
        ]
      }
    ],
    "values": []
  }
}