---
id: object/table/8056
type: object
title: Table 8056 "Subscription Package Line"
summary: Table 8056 "Subscription Package Line" in Subscription Billing (Microsoft.SubscriptionBilling). 22 fields, 4 public procedures. 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: 2d4713bd7a9650e74a53b7c7b4fd2ac6acad7094e7b769636f018442984935b3
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Subscription%20Billing/app/Service%20Commitments/Tables/SubscriptionPackageLine.Table.al
    title: src/Apps/W1/Subscription Billing/app/Service Commitments/Tables/SubscriptionPackageLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 8056
name: Subscription Package 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: 22
  procedures: 11
  events: 0
  subscribers: 0
relations:
  out: 2
  referenced_by: 0
  pages: 1
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 0
  implements: 0
---

# Table 8056 "Subscription Package Line"

> Table 8056 "Subscription Package Line" in Subscription Billing (Microsoft.SubscriptionBilling). 22 fields, 4 public procedures. 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/Service%20Commitments/Tables/SubscriptionPackageLine.Table.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Subscription Package Line |
| DataClassification | CustomerContent |

## 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 | Subscription Package Code | Code[20] | — | TableRelation [Table 8055 "Subscription Package"](../table/8055.md) (Subscription Package); NotBlank |
| 2 | Line No. | Integer | — |  |
| 3 | 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 8058 "Service Comm. Package Lines"](../page/8058.md)</small> | enum [Enum 8053 "Service Partner"](../enum/8053.md) |
| 4 | Template | Code[20] | Specifies a code to identify this Subscription Package Line Template. <small>via [Page 8058 "Service Comm. Package Lines"](../page/8058.md)</small> | TableRelation [Table 8054 "Sub. Package Line Template"](../table/8054.md) (Sub. Package Line Template) |
| 5 | Description | Text[100] | Specifies a description of the package line. <small>via [Page 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |
| 6 | 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 8058 "Service Comm. Package Lines"](../page/8058.md)</small> | enum [Enum 8051 "Invoicing Via"](../enum/8051.md) |
| 7 | Invoicing Item No. | Code[20] | Specifies which item will be used in contract invoice for invoicing of the periodic Subscription Line. <small>via [Page 8058 "Service Comm. Package Lines"](../page/8058.md)</small> | TableRelation Item."No." where("Subscription Option" = const("Invoicing Item")) |
| 8 | 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 8058 "Service Comm. Package Lines"](../page/8058.md)</small> | enum [Enum 8052 "Calculation Base Type"](../enum/8052.md) |
| 9 | Calculation Base % | Decimal | Specifies the percentage at which the price of the Subscription Line is calculated. 100% means that the price is the same as the calculation base (item or document). <small>via [Page 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |
| 10 | Billing Base Period | DateFormula | Specifies the period to which the Subscription Line amount relates. For example, enter 1M if the amount relates to one month or 12M if the amount relates to 1 year. <small>via [Page 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |
| 11 | Billing Rhythm | DateFormula | Specifies the rhythm in which the Subscription Line is calculated. Using a date formula, the rhythm can be defined as monthly, quarterly or annual calculation. <small>via [Page 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |
| 12 | Sub. Line Start Formula | DateFormula | Specifies when a Subscription Line is valid. The validity can be automatically changed to the first of the following month using date formula. If the field remains empty, the Subscription Line is valid after shipment. <small>via [Page 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |
| 13 | 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 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |
| 14 | 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 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |
| 15 | 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 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |
| 16 | Discount | Boolean | Specifies whether the Subscription Line is used as a basis for periodic invoicing or discounts. <small>via [Page 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |
| 18 | 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 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |
| 40 | Create Contract Deferrals | Enum "Create Contract Deferrals" | Specifies whether deferrals are created for new Subscription lines. <small>via [Page 8058 "Service Comm. Package Lines"](../page/8058.md)</small> | enum [Enum 8020 "Create Contract Deferrals"](../enum/8020.md) |
| 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 8058 "Service Comm. Package Lines"](../page/8058.md)</small> | enum [Enum 8005 "Period Calculation"](../enum/8005.md) |
| 8000 | Usage Based Billing | Boolean | Specifies whether usage data is used as the basis for billing via contracts. <small>via [Page 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |
| 8001 | Usage Based Pricing | Enum "Usage Based Pricing" | Specifies the method for customer based pricing. <small>via [Page 8058 "Service Comm. Package Lines"](../page/8058.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 8058 "Service Comm. Package Lines"](../page/8058.md)</small> |  |

## Keys

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

## Procedures

- `CheckCalculationBaseTypeAgainstVendorError(ServicePartner: Enum "Service Partner"; CalculationBaseType: Enum "Calculation Base Type")` (internal)
- `FilterOnPackageCode(PackageCode: Code[20])` (internal)
- `IsPartnerVendor(): Boolean` (internal)
- `GetInvoicingItemNo(Item: Record Item): Code[20]` (internal)

Plus 7 local procedures.

## Relations

- Template: TableRelation [Table 8054 "Sub. Package Line Template"](../table/8054.md)
- Subscription Package Code: TableRelation [Table 8055 "Subscription Package"](../table/8055.md)

## Pages and codeunits on this table

- [Page 8058 "Service Comm. Package Lines"](../page/8058.md) (source table)

## 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: "Subscription Package Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
