---
id: object/table/8068
type: object
title: Table 8068 "Sales Subscription Line"
summary: Table 8068 "Sales Subscription Line" in Subscription Billing (Microsoft.SubscriptionBilling). 41 fields, 9 public procedures, 6 events. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - table
  - subscription billing
versions:
  introduced: "29"
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: ba38c08b6f35c5657f18c7346b0f82e74b3d75f5f017c9e0310b7e734d80bc5b
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Subscription%20Billing/app/Sales%20Service%20Commitments/Tables/SalesSubscriptionLine.Table.al
    title: src/Apps/W1/Subscription Billing/app/Sales Service Commitments/Tables/SalesSubscriptionLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/SRB/purchases
    - https://learn.microsoft.com/dynamics365/business-central/SRB/working-with-contracts/contracts-services-mgmt
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/sales/subscription-billing
    - topic/business-central/business-functionality/sales/subscription-billing/contracts
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/11824
    - change/bcapps/11747
object_type: table
object_id: 8068
name: Sales Subscription Line
namespace: Microsoft.SubscriptionBilling
app: Subscription Billing
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 41
  procedures: 27
  events: 6
  subscribers: 0
relations:
  out: 11
  referenced_by: 1
  pages: 3
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 0
  implements: 0
---

# Table 8068 "Sales Subscription Line"

> Table 8068 "Sales Subscription Line" in Subscription Billing (Microsoft.SubscriptionBilling). 41 fields, 9 public procedures, 6 events. Introduced in BC29, still in BC30.

Subscription Billing · Microsoft.SubscriptionBilling · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Subscription%20Billing/app/Sales%20Service%20Commitments/Tables/SalesSubscriptionLine.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 8015 "Sales Service Commitments List"](../page/8015.md) (2 Learn pages).

## Properties

| Property | Value |
|---|---|
| Caption | Sales Subscription Line |
| DataClassification | CustomerContent |
| LookupPageId | Sales Service Commitments |
| DrillDownPageId | Sales Service Commitments |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Document Type | Enum "Sales Document Type" | Specifies the value of the Document Type field. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | enum [Enum 36 "Sales Document Type"](../enum/36.md) |
| 2 | Document No. | Code[20] | Specifies the value of the Document No. field. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | TableRelation [Table 36 "Sales Header"](../table/36.md) ("Sales Header"."No." where("Document Type" = field("Document Type"))) |
| 3 | Document Line No. | Integer | Specifies the value of the Document Line No. field. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 4 | Line No. | Integer | Specifies the value of the Line No. field. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | AutoIncrement |
| 10 | Item No. | Code[20] | Specifies the number of an item. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | TableRelation [Table 27 "Item"](../table/27.md); not editable |
| 11 | Item Description | Text[100] | Specifies a description of the product to be sold. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | FlowField: lookup("Sales Line".Description where("Document Type" = field("Document Type"), "Document No." = field("Document No."), "Line No." = field("Document Line No."))); not editable |
| 12 | Partner | Enum "Service Partner" | Specifies whether a Subscription Line should be invoiced to a vendor (purchase invoice) or to a customer (sales invoice). <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | enum [Enum 8053 "Service Partner"](../enum/8053.md); not editable |
| 13 | Description | Text[100] | Specifies a description of the package line. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 14 | Calculation Base Type | Enum "Calculation Base Type" | Specifies how the price for Subscription Line is calculated. "Item Price" uses the list price defined on the Item. "Document Price" uses the price from the sales document. "Document Price And Discount" uses the price and the discount from the sales document. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | enum [Enum 8052 "Calculation Base Type"](../enum/8052.md); not editable |
| 15 | Calculation Base Amount | Decimal | Specifies the base amount from which the price will be calculated. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 16 | Calculation Base % | Decimal | Specifies the percent at which the price of the Subscription Line will be calculated. 100% means that the price corresponds to the Base Price. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 17 | Price | Decimal | Specifies the price of the Subscription Line with quantity of 1 in the billing period. The price is calculated from Base Price and Base Price %. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | not editable |
| 18 | Discount % | Decimal | Specifies the percent of the discount for the Subscription Line. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 19 | Discount Amount | Decimal | Specifies the amount of the discount for the Subscription Line. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 20 | Amount | Decimal | Specifies the amount for the Subscription Line including discount. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 21 | Sub. Line Start Formula | DateFormula | Specifies the value of the Subscription Line Start Formula field. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 22 | Agreed Sub. Line Start Date | Date | Specifies the individually agreed start of the Subscription Line. Enter a date here to overwrite the determination of the start of Subscription Line with the start of Subscription Line formula upon delivery. If the field remains empty, the start of the Subscription Line is determined upon delivery. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 23 | Initial Term | DateFormula | Specifies a date formula for calculating the minimum term of the Subscription Line. If the minimum term is filled and no extension term is entered, the end of Subscription Line is automatically set to the end of the initial term. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 24 | Notice Period | DateFormula | Specifies a date formula for the lead time that a notice must have before the Subscription Line ends. The rhythm of the update of "Notice possible to" and "Term Until" is determined using the extension term. For example, with an extension period of 1M, the notice period is repeatedly postponed by on... <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 25 | Extension Term | DateFormula | Specifies a date formula for automatic renewal after initial term and the rhythm of the update of "Notice possible to" and "Term Until". <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> |  |
| 26 | Billing Base Period | DateFormula | Specifies for which period the Amount is valid. If you enter 1M here, a period of one month, or 12M, a period of 1 year, to which Amount refers to. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | not editable |
| 27 | Billing Rhythm | DateFormula | Specifies the Dateformula for rhythm in which the Subscription Line is invoiced. Using a Dateformula rhythm can be, for example, a monthly, a quarterly or a yearly invoicing. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | not editable |
| 28 | Invoicing via | Enum "Invoicing Via" | Specifies whether the Subscription Line is invoiced via a contract. Subscription Lines with invoicing via sales are not charged. Only the items are billed. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | enum [Enum 8051 "Invoicing Via"](../enum/8051.md); not editable |
| 30 | Template | Code[20] | Specifies a code to identify this Subscription Package Line Template. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | TableRelation [Table 8054 "Sub. Package Line Template"](../table/8054.md) (Sub. Package Line Template); not editable |
| 31 | Subscription Package Code | Code[20] | Specifies a code to identify this Subscription Package. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | TableRelation [Table 8055 "Subscription Package"](../table/8055.md) (Subscription Package); not editable |
| 32 | Customer Price Group | Code[10] | Specifies the value of the Customer Price Group field. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | TableRelation [Table 6 "Customer Price Group"](../table/6.md) (Customer Price Group); not editable |
| 33 | Discount | Boolean | Specifies whether the Subscription Line is used as a basis for periodic invoicing or discounts. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | not editable |
| 40 | Create Contract Deferrals | Enum "Create Contract Deferrals" | Specifies whether deferrals are created for new Subscription lines. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | enum [Enum 8020 "Create Contract Deferrals"](../enum/8020.md) |
| 50 | Subscription Header No. | Code[20] | Specifies the value of the Subscription No. field. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | TableRelation [Table 8057 "Subscription Header"](../table/8057.md) (Subscription Header); not editable |
| 51 | Subscription Line Entry No. | Integer | Specifies the value of the Subscription Line Entry No. field. <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | TableRelation [Table 8059 "Subscription Line"](../table/8059.md) ("Subscription Line"."Entry No."); not editable |
| 54 | Price Binding Period | DateFormula | Specifies the period the price will not be changed after the price update. It sets a new "Next Price Update" in the contract line after the price update has been performed. <small>via [Page 8082 "Sales Service Commitments"](../page/8082.md)</small> |  |
| 59 | Period Calculation | enum "Period Calculation" | Specifies the Period Calculation, which controls how a period is determined for billing. The calculation of a month from 28.02. can extend to 27.03. (Align to Start of Month) or 30.03. (Align to End of Month). <small>via [Page 8015 "Sales Service Commitments List"](../page/8015.md)</small> | enum [Enum 8005 "Period Calculation"](../enum/8005.md) |
| 60 | Linked to No. | Code[20] | Specifies the associated Contract the Subscription Line will be assigned to. If the sales line was created by a Contract Renewal, the Contract No. cannot be edited. <small>via [Page 8082 "Sales Service Commitments"](../page/8082.md)</small> | not editable |
| 61 | Linked to Line No. | Integer | Specifies the associated Contract line the Subscription Line will renew. <small>via [Page 8082 "Sales Service Commitments"](../page/8082.md)</small> | not editable |
| 62 | Process | Enum Process | Specifies the type of operation and state of the process. <small>via [Page 8082 "Sales Service Commitments"](../page/8082.md)</small> | enum [Enum 8017 "Process"](../enum/8017.md); not editable |
| 100 | Unit Cost | Decimal | — | not editable |
| 101 | Unit Cost (LCY) | Decimal | Specifies the unit cost of the item. <small>via [Page 8082 "Sales Service Commitments"](../page/8082.md)</small> |  |
| 102 | Currency Code | Code[10] | — | FlowField: lookup("Sales Header"."Currency Code" where("Document Type" = field("Document Type"), "No." = field("Document No."))); not editable |
| 8000 | Usage Based Billing | Boolean | Specifies whether usage data is used as the basis for billing via contracts. <small>via [Page 8082 "Sales Service Commitments"](../page/8082.md)</small> |  |
| 8001 | Usage Based Pricing | Enum "Usage Based Pricing" | Specifies the method for customer based pricing. <small>via [Page 8082 "Sales Service Commitments"](../page/8082.md)</small> | enum [Enum 8007 "Usage Based Pricing"](../enum/8007.md) |
| 8002 | Pricing Unit Cost Surcharge % | Decimal | Specifies the surcharge in percent for the debit-side price calculation, if a unit cost surcharge is to be used. <small>via [Page 8082 "Sales Service Commitments"](../page/8082.md)</small> |  |

## Keys

- PK: Line No. (clustered)
- SK1: Document Type, Document No., Document Line No., Subscription Package Code

## Events published

- `OnCalculateBaseTypeElseCaseOnCalculateCalculationBaseAmountCustomer(SalesSubscriptionLine: Record "Sales Subscription Line"; SalesLine: Record "Sales Line"; var CalculatedBaseAmount: Decimal; var IsHandled: Boolean)` (integration)
- `OnCalculateBaseTypeElseCaseOnCalculateCalculationBaseAmountVendor(SalesSubscriptionLine: Record "Sales Subscription Line"; SalesLine: Record "Sales Line"; var CalculatedBaseAmount: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCreateVATAmountLineForSalesSubscriptionLine(SalesSubscriptionLine: Record "Sales Subscription Line"; var IsHandled: Boolean)` (integration)
- `OnAfterGetSalesLine(var SalesSubscriptionLine: Record "Sales Subscription Line"; var SalesLine: Record "Sales Line")` (integration)
- `OnBeforeCalculateCalculationBaseAmount(var SalesLine: Record "Sales Line"; var SalesSubscriptionLine: Record "Sales Subscription Line"; var IsHandled: Boolean)` (integration)
- `OnAfterCalculateCalculationBaseAmount(var SalesLine: Record "Sales Line"; var SalesSubscriptionLine: Record "Sales Subscription Line")` (integration)

## Procedures

- `FilterOnSalesLine(SourceSalesLine: Record "Sales Line")`
- `FilterOnDocument(SalesDocumentType: Enum "Sales Document Type"; DocumentNo: Code[20])` (internal)
- `InitRecord(SourceSalesLine: Record "Sales Line")` (internal)
- `SetDocumentFields(DocType: Enum "Sales Document Type"; DocNo: Code[20]; DocLineNo: Integer)` (internal)
- `CalculateCalculationBaseAmount()`
- `CalcVATAmountLines(var SalesHeader: Record "Sales Header"; var TempSalesServiceCommitmentBuff: Record "Sales Service Commitment Buff." temporary; var UniqueRhythmDictionary: Dictionary of [Code[20], Text])` (internal)
- `IsOnlyRemainingLineForContractRenewalInDocument(): Boolean` (internal)
- `CalculateUnitCost()` (internal)
- `SetSalesLine(var NewSalesLine: Record "Sales Line")`

Plus 12 local procedures.

## Triggers

OnModify, OnDelete

## Relations

- drill-down page [Page 8082 "Sales Service Commitments"](../page/8082.md)
- lookup page [Page 8082 "Sales Service Commitments"](../page/8082.md)
- Item No.: TableRelation [Table 27 "Item"](../table/27.md)
- Currency Code: CalcFormula [Table 36 "Sales Header"](../table/36.md)
- Document No.: TableRelation [Table 36 "Sales Header"](../table/36.md)
- Item Description: CalcFormula [Table 37 "Sales Line"](../table/37.md)
- Customer Price Group: TableRelation [Table 6 "Customer Price Group"](../table/6.md)
- Template: TableRelation [Table 8054 "Sub. Package Line Template"](../table/8054.md)
- Subscription Package Code: TableRelation [Table 8055 "Subscription Package"](../table/8055.md)
- Subscription Header No.: TableRelation [Table 8057 "Subscription Header"](../table/8057.md)
- Subscription Line Entry No.: TableRelation [Table 8059 "Subscription Line"](../table/8059.md)

## Referenced by

1 fields in 1 objects relate to this table (TableRelation or CalcFormula).

- [Table extension 8054 "Sales Line"](../tableextension/8054.md): Subscription Lines

## Pages and codeunits on this table

- [Page 8015 "Sales Service Commitments List"](../page/8015.md) (source table)
- [Page 8019 "Sales Service Commitments API"](../page/8019.md) (source table)
- [Page 8082 "Sales Service Commitments"](../page/8082.md) (source table)

## Recent changes

- 2026-09-28 [#11824 [29.x][Subscription Billing] Sales-Explode BOM fails for foreign-currency customers](../../changes/bcapps/11824.md) (releases/29.x, BC29, fix)
- 2026-09-24 [#11747 [master][Subscription Billing] Sales-Explode BOM fails for foreign-currency customers](../../changes/bcapps/11747.md) (main, BC30, fix)

## Across versions

- Present in: BC29-30
- Changed (declaration) in: none

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "Sales Subscription Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
