---
id: object/table/8057
type: object
title: Table 8057 "Subscription Header"
summary: Table 8057 "Subscription Header" in Subscription Billing (Microsoft.SubscriptionBilling). 64 fields, 35 public procedures, 43 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: 4604202a0cee0208db425a49fa9757f2c4d59eb202dbdda545bc88c0b5890104
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Subscription%20Billing/app/Service%20Objects/Tables/SubscriptionHeader.Table.al
    title: src/Apps/W1/Subscription Billing/app/Service Objects/Tables/SubscriptionHeader.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/SRB/masterdata/items
    - https://learn.microsoft.com/dynamics365/business-central/SRB/masterdata/service-commitments
    - https://learn.microsoft.com/dynamics365/business-central/SRB/sales/credit-memo-cancellation
    - https://learn.microsoft.com/dynamics365/business-central/SRB/sales/dealing-with-currencies
    - https://learn.microsoft.com/dynamics365/business-central/SRB/sales/price-calculation
    - https://learn.microsoft.com/dynamics365/business-central/SRB/sales/sales-service-commitments
    - https://learn.microsoft.com/dynamics365/business-central/SRB/setup/contract-types
    - https://learn.microsoft.com/dynamics365/business-central/SRB/setup/general
    - https://learn.microsoft.com/dynamics365/business-central/SRB/setup/job-queue
    - https://learn.microsoft.com/dynamics365/business-central/SRB/setup/permissions
    - https://learn.microsoft.com/dynamics365/business-central/SRB/working-with-contracts/contract-deferrals
    - https://learn.microsoft.com/dynamics365/business-central/SRB/working-with-contracts/service-objects
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/sales/subscription-billing/contracts
    - topic/business-central/business-functionality/sales/subscription-billing/sales
    - topic/business-central/business-functionality/set-up-business-central/set-up-sales/set-up-subscription-billing
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/10675
object_type: table
object_id: 8057
name: Subscription Header
caption: Subscription
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: 64
  procedures: 127
  events: 43
  subscribers: 0
relations:
  out: 29
  referenced_by: 37
  pages: 4
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 0
  implements: 0
---

# Table 8057 "Subscription Header"

> Table 8057 "Subscription Header" in Subscription Billing (Microsoft.SubscriptionBilling). 64 fields, 35 public procedures, 43 events. Introduced in BC29, still in BC30.

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

Learn documents this table through its pages: [Page 8059 "Service Objects"](../page/8059.md) (12 Learn pages), [Page 8060 "Service Object"](../page/8060.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Subscription |
| DataClassification | CustomerContent |
| LookupPageId | Service Objects |
| DrillDownPageId | Service Objects |

## 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 |
|---|---|---|---|---|
| 2 | End-User Customer No. | Code[20] | Specifies the number of the customer to whom the Subscription Line was sold. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 18 "Customer"](../table/18.md) |
| 3 | No. | Code[20] | Specifies the number of Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> |  |
| 4 | Bill-to Customer No. | Code[20] | — | TableRelation [Table 18 "Customer"](../table/18.md); NotBlank |
| 5 | Bill-to Name | Text[100] | Specifies the customer to whom you will send the sales invoice, when different from the customer that you are selling to. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation Customer.Name; DataClassification EndUserIdentifiableInformation |
| 6 | Bill-to Name 2 | Text[50] | — | DataClassification EndUserIdentifiableInformation |
| 7 | Bill-to Address | Text[100] | Specifies the address of the customer that you will send the invoice to. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 8 | Bill-to Address 2 | Text[50] | Specifies additional address information. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 9 | Bill-to City | Text[30] | Specifies the city of the customer on the sales document. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 225 "Post Code"](../table/225.md) (if ("Bill-to Country/Region Code" = const('')) "Post Code".City else if ("Bill-to Country/Region Code" = filter(<> '')) "Post Code".City where("Country/Region Code" = field("Bill-to Country/Region Code"))); DataClassification EndUserIdentifiableInformation |
| 10 | Bill-to Contact | Text[100] | Specifies the name of the person you should contact at the customer who you are sending the invoice to. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 12 | Ship-to Code | Code[10] | Specifies the code for another shipment address than the customer's own address, which is entered by default. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 222 "Ship-to Address"](../table/222.md) ("Ship-to Address".Code where("Customer No." = field("End-User Customer No."))); DataClassification EndUserIdentifiableInformation |
| 13 | Ship-to Name | Text[100] | Specifies the name that Subscription and Subscription Lines were shipped. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 14 | Ship-to Name 2 | Text[50] | — | DataClassification EndUserIdentifiableInformation |
| 15 | Ship-to Address | Text[100] | Specifies the address that Subscription and Subscription Lines were shipped. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 16 | Ship-to Address 2 | Text[50] | Specifies additional address information. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 17 | Ship-to City | Text[30] | Specifies the city of the customer. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 225 "Post Code"](../table/225.md) (if ("Ship-to Country/Region Code" = const('')) "Post Code".City else if ("Ship-to Country/Region Code" = filter(<> '')) "Post Code".City where("Country/Region Code" = field("Ship-to Country/Region Code"))); DataClassification EndUserIdentifiableInformation |
| 18 | Ship-to Contact | Text[100] | Specifies the name of the contact person at the address that Subscription and Subscription Lines were shipped. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 20 | Item No. | Code[20] | Specifies the Item No. of the Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | obsolete Pending 26.0; #if not CLEANSCHEMA29; TableRelation [Table 27 "Item"](../table/27.md) (Item where("Subscription Option" = filter("Sales with Service Commitment" \| "Service Commitment Item" \| "Invoicing Item"))) |
| 21 | Description | Text[100] | Specifies a description of the Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> |  |
| 23 | Serial No. | Code[50] | Specifies the Serial No. assigned to the Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> |  |
| 24 | Version | Text[100] | Specifies the version of the Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> |  |
| 25 | Key | Text[100] | Specifies the additional information (ex. License) of the Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> |  |
| 26 | Provision Start Date | Date | Specifies the date from which the subject of the Subscription Line and the associated Subscription Lines were made available to the customer. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> |  |
| 27 | Provision End Date | Date | Specifies the date from which the subject of the Subscription Line and the associated Subscription Lines are not longer available to the customer. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> |  |
| 28 | Quantity | Decimal | Specifies the number of units of Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> |  |
| 34 | Customer Price Group | Code[10] | — | TableRelation [Table 6 "Customer Price Group"](../table/6.md) (Customer Price Group); not editable |
| 50 | Type | Enum "Service Object Type" | Specifies the type of the Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | enum [Enum 8019 "Service Object Type"](../enum/8019.md) |
| 51 | Source No. | Code[20] | Specifies the No. of the Item or G/L Account of the Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 15 "G/L Account"](../table/15.md), [Table 27 "Item"](../table/27.md) (if (Type = const(Item)) Item where("Subscription Option" = filter("Sales with Service Commitment" \| "Service Commitment Item"), Blocked = const(false)) else if (Type = const("G/L Account")) "G/L Account" where("Direct Posting" = const(true), "Account Type" = const(Posting), Blocked = const(false))) |
| 52 | Created in Contract line | Boolean | Specifies whether the Subscription was created by creating a Contract line manually. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | not editable |
| 79 | End-User Customer Name | Text[100] | Specifies the name of the customer to whom the Subscription Line was sold. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation Customer.Name; DataClassification EndUserIdentifiableInformation |
| 80 | End-User Customer Name 2 | Text[50] | Customer Name 2 <small>caption</small> | DataClassification EndUserIdentifiableInformation |
| 81 | End-User Address | Text[100] | Specifies the address where the customer is located. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 82 | End-User Address 2 | Text[50] | Specifies additional address information. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 83 | End-User City | Text[30] | Specifies the city of the customer. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 225 "Post Code"](../table/225.md) (if ("End-User Country/Region Code" = const('')) "Post Code".City else if ("End-User Country/Region Code" = filter(<> '')) "Post Code".City where("Country/Region Code" = field("End-User Country/Region Code"))); DataClassification EndUserIdentifiableInformation |
| 84 | End-User Contact | Text[100] | Specifies the name of the contact to whom the Subscription Line was sold. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 85 | Bill-to Post Code | Code[20] | Specifies the postal code. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 225 "Post Code"](../table/225.md) (Post Code); DataClassification EndUserIdentifiableInformation |
| 86 | Bill-to County | Text[30] | Specifies the state, province or county of the address. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 87 | Bill-to Country/Region Code | Code[10] | Specifies the country or region of the address. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region); DataClassification EndUserIdentifiableInformation |
| 88 | End-User Post Code | Code[20] | Specifies the postal code. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 225 "Post Code"](../table/225.md) (if ("End-User Country/Region Code" = const('')) "Post Code" else if ("End-User Country/Region Code" = filter(<> '')) "Post Code" where("Country/Region Code" = field("End-User Country/Region Code"))); DataClassification EndUserIdentifiableInformation |
| 89 | End-User County | Text[30] | County <small>caption</small> | DataClassification EndUserIdentifiableInformation |
| 90 | End-User Country/Region Code | Code[10] | Specifies the country or region of the address. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region); DataClassification EndUserIdentifiableInformation |
| 91 | Ship-to Post Code | Code[20] | Specifies the postal code. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 225 "Post Code"](../table/225.md) (if ("Ship-to Country/Region Code" = const('')) "Post Code" else if ("Ship-to Country/Region Code" = filter(<> '')) "Post Code" where("Country/Region Code" = field("Ship-to Country/Region Code"))); DataClassification EndUserIdentifiableInformation |
| 92 | Ship-to County | Text[30] | Specifies the state, province or county of the address. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 93 | Ship-to Country/Region Code | Code[10] | Specifies the customer's country/region. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 9 "Country/Region"](../table/9.md) (Country/Region); DataClassification EndUserIdentifiableInformation |
| 94 | Customer Reference | Text[35] | Specifies the reference by which the customer identifies the Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> |  |
| 95 | Archived Sub. Lines exist | Boolean | Specifies whether archived Subscription Lines exist for the Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | FlowField: exist("Subscription Line Archive" where("Subscription Header No." = field("No."))); not editable |
| 96 | Variant Code | Code[10] | Specifies the Variant Code of the Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 5401 "Item Variant"](../table/5401.md) ("Item Variant".Code where("Item No." = field("Source No."), Blocked = const(false))) |
| 107 | No. Series | Code[20] | — | TableRelation No. Series; not editable |
| 171 | End-User Phone No. | Text[30] | Specifies the phone number of the contact. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 172 | End-User E-Mail | Text[80] | Specifies the email address of the contact. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 173 | End-User Fax No. | Text[30] | Specifies the contact's fax number. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | DataClassification EndUserIdentifiableInformation |
| 200 | Planned Sub. Lines exist | Boolean | Specifies if planned Renewals exists for the Subscription. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | FlowField: exist("Planned Subscription Line" where("Subscription Header No." = field("No."))); not editable |
| 5052 | End-User Contact No. | Code[20] | Specifies the number of the contact of the customer to whom the Subscription Line was sold. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 5050 "Contact"](../table/5050.md) |
| 5053 | Bill-to Contact No. | Code[20] | Specifies the number of the contact the invoice will be sent to. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 5050 "Contact"](../table/5050.md) |
| 5425 | Unit of Measure | Code[10] | Specifies the unit of measure code. <small>via [Page 8060 "Service Object"](../page/8060.md)</small> | TableRelation [Table 204 "Unit of Measure"](../table/204.md), [Table 5404 "Item Unit of Measure"](../table/5404.md) (if (Type = const(Item)) "Item Unit of Measure".Code where("Item No." = field("Source No.")) else if (Type = const("G/L Account")) "Unit of Measure") |
| 8000 | Vendor No. | Code[20] | Specifies the no. of the default vendor of this item. | TableRelation [Table 23 "Vendor"](../table/23.md) |
| 8001 | Vendor Name | Text[100] | Specifies the name of the default vendor of this item. | TableRelation Vendor.Name |
| 8002 | Vendor Name 2 | Text[50] | Specifies an additional part of the name of the default vendor of this item. |  |
| 8003 | Vendor Item No. | Text[50] | Specifies the default vendor's item no. | not editable |
| 8010 | Manufacturer Code | Code[10] | Specifies the code of the manufacturer of this item. | TableRelation [Table 5720 "Manufacturer"](../table/5720.md) |
| 8011 | Manufacturer Name | Text[50] | Specifies the name of the manufacturer of this item. | TableRelation Manufacturer.Name |
| 8020 | Salesperson Code | Code[20] | Specifies the salesperson who is assigned to the customer. | TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md) ("Salesperson/Purchaser" where(Blocked = const(false))) |
| 8021 | Sales Order No. | Code[20] | Specifies the sales order used to create the subscription. | not editable |
| 8022 | Item Ledger Entry No. | Integer | Specifies the item ledger entry number that was used to create the subscription. | TableRelation [Table 32 "Item Ledger Entry"](../table/32.md) (Item Ledger Entry); not editable |
| 8023 | Last Sales Invoice No. | Code[20] | Specifies the last sales invoice for the sales order that was used to create the subscription. | not editable |

## Keys

- PK: No. (clustered)
- SK1: Item Ledger Entry No.

## Events published

- `OnAfterIsShipToAddressEqualToEndUserAddress(EndUserSubscriptionHeader: Record "Subscription Header"; ShipToSubscriptionHeader: Record "Subscription Header"; var Result: Boolean)` (integration)
- `OnAfterGetCustomerSubscriptionContractSetup(SubscriptionHeader: Record "Subscription Header"; var SubscriptionContractSetup: Record "Subscription Contract Setup"; CalledByFieldNo: Integer)` (integration)
- `OnAfterSetFieldsBilltoCustomer(var SubscriptionHeader: Record "Subscription Header"; Customer: Record Customer)` (integration)
- `OnAfterCopyEndUserAddressToBillToAddress(var SubscriptionHeader: Record "Subscription Header")` (integration)
- `OnAfterCopyEndUserCustomerAddressFieldsFromCustomer(var SubscriptionHeader: Record "Subscription Header"; EndUserCustomer: Record Customer; CurrentFieldNo: Integer)` (integration)
- `OnAfterCopyShipToCustomerAddressFieldsFromCustomer(var SubscriptionHeader: Record "Subscription Header"; EndUserCustomer: Record Customer)` (integration)
- `OnAfterCopyShipToCustomerAddressFieldsFromShipToAddr(var SubscriptionHeader: Record "Subscription Header"; ShipToAddress: Record "Ship-to Address")` (integration)
- `OnAfterCopyEndUserAddressToShipToAddress(var SubscriptionHeader: Record "Subscription Header")` (integration)
- `OnBeforeAssistEdit(var SubscriptionHeader: Record "Subscription Header"; OldSubscriptionHeader: Record "Subscription Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeConfirmBillToContactNoChange(var SubscriptionHeader: Record "Subscription Header"; xSubscriptionHeader: Record "Subscription Header"; CurrentFieldNo: Integer; var Confirmed: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeConfirmEndUserContactNoChange(var SubscriptionHeader: Record "Subscription Header"; xSubscriptionHeader: Record "Subscription Header"; CurrentFieldNo: Integer; var Confirmed: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyShipToCustomerAddressFieldsFromCustomer(var SubscriptionHeader: Record "Subscription Header"; Customer: Record Customer; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyShipToCustomerAddressFieldsFromShipToAddr(var SubscriptionHeader: Record "Subscription Header"; ShipToAddress: Record "Ship-to Address"; var IsHandled: Boolean)` (integration)
- `OnBeforeInitInsert(var SubscriptionHeader: Record "Subscription Header"; xSubscriptionHeader: Record "Subscription Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeLookupBillToPostCode(var SubscriptionHeader: Record "Subscription Header"; var PostCodeRec: Record "Post Code")` (integration)
- `OnBeforeLookupEndUserPostCode(var SubscriptionHeader: Record "Subscription Header"; var PostCodeRec: Record "Post Code")` (integration)
- `OnBeforeLookupShipToPostCode(var SubscriptionHeader: Record "Subscription Header"; var PostCodeRec: Record "Post Code")` (integration)
- `OnBeforeValidateBillToPostCode(var SubscriptionHeader: Record "Subscription Header"; var PostCodeRec: Record "Post Code")` (integration)
- `OnBeforeValidateEndUserPostCode(var SubscriptionHeader: Record "Subscription Header"; var PostCodeRec: Record "Post Code")` (integration)
- `OnBeforeValidateShipToPostCode(var SubscriptionHeader: Record "Subscription Header"; var PostCodeRec: Record "Post Code")` (integration)
- `OnBeforeUpdateEndUserCust(var SubscriptionHeader: Record "Subscription Header"; var Contact: Record Contact; var Customer: Record Customer; ContactNo: Code[20])` (integration)
- `OnInitFromContactOnAfterInitNoSeries(var SubscriptionHeader: Record "Subscription Header"; var xSubscriptionHeader: Record "Subscription Header")` (integration)
- `OnValidateEndUserCustomerNoAfterInit(var SubscriptionHeader: Record "Subscription Header"; var xSubscriptionHeader: Record "Subscription Header")` (integration)
- `OnAfterUpdateBillToCont(var SubscriptionHeader: Record "Subscription Header"; Customer: Record Customer; Contact: Record Contact)` (integration)
- `OnAfterUpdateBillToCust(var SubscriptionHeader: Record "Subscription Header"; Contact: Record Contact)` (integration)
- `OnAfterUpdateEndUserCont(var SubscriptionHeader: Record "Subscription Header"; Customer: Record Customer; Contact: Record Contact)` (integration)
- `OnAfterUpdateEndUserCust(var SubscriptionHeader: Record "Subscription Header"; Contact: Record Contact)` (integration)
- `OnBeforeValidateBillToCustomerName(var SubscriptionHeader: Record "Subscription Header"; var Customer: Record Customer)` (integration)
- `OnBeforeValidateEndUserCustomerName(var SubscriptionHeader: Record "Subscription Header"; var Customer: Record Customer)` (integration)
- `OnUpdateEndUserCustOnBeforeContactIsNotRelatedToAnyCustomerErr(var SubscriptionHeader: Record "Subscription Header"; Contact: Record Contact; var ContactBusinessRelation: Record "Contact Business Relation"; var IsHandled: Boolean)` (integration)
- `OnUpdateBillToCustOnBeforeContactIsNotRelatedToAnyCustomerErr(var SubscriptionHeader: Record "Subscription Header"; Contact: Record Contact; var ContactBusinessRelation: Record "Contact Business Relation"; var IsHandled: Boolean)` (integration)
- `OnUpdateBillToCustOnBeforeFindContactBusinessRelation(Contact: Record Contact; var ContBusinessRelation: Record "Contact Business Relation"; var ContactBusinessRelationFound: Boolean; var IsHandled: Boolean)` (integration)
- `OnUpdateEndUserCustOnBeforeFindContactBusinessRelation(Cont: Record Contact; var ContBusinessRelation: Record "Contact Business Relation"; var ContactBusinessRelationFound: Boolean; var IsHandled: Boolean)` (integration)
- `OnValidateBillToCustomerNoOnAfterConfirmed(var SubscriptionHeader: Record "Subscription Header")` (integration)
- `OnBeforeUpdateBillToCust(var SubscriptionHeader: Record "Subscription Header"; ContactNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckContactRelatedToCustomerCompany(SubscriptionHeader: Record "Subscription Header"; CurrFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnAfterCalculateShipToBillToOptions(var ShipToOptions: Option "Default (End-User Address)","Alternate Shipping Address","Custom Address"; var BillToOptions: Option "Default (Customer)","Another Customer","Custom Address"; SubscriptionHeader: Record "Subscription Header")` (integration)
- `OnBeforeRecalculateLines(var SubscriptionHeader: Record "Subscription Header"; xSubscriptionHeader: Record "Subscription Header"; ChangedFieldName: Text; var IsHandled: Boolean)` (integration)
- `OnRecalculateLinesOnBeforeConfirm(var SubscriptionHeader: Record "Subscription Header"; xSubscriptionHeader: Record "Subscription Header"; ChangedFieldName: Text; HideValidationDialog: Boolean; var Confirmed: Boolean; var IsHandled: Boolean)` (integration)
- `OnAfterDatesCalculatedOnInsertSubscriptionLinesFromSubscriptionPackage(var SubscriptionLine: Record "Subscription Line"; SubscriptionPackageLine: Record "Subscription Package Line")` (integration)
- `OnBeforeInsertSubscriptionLineFromSubscriptionPackageLine(var SubscriptionLine: Record "Subscription Line"; SubscriptionPackageLine: Record "Subscription Package Line")` (integration)
- `OnAfterInsertSubscriptionLineFromSubscriptionPackage(var SubscriptionLine: Record "Subscription Line"; SubscriptionPackage: Record "Subscription Package"; SubscriptionPackageLine: Record "Subscription Package Line")` (integration)
- `OnAfterInsertFromItemNoAndCustomerContract(var SubscriptionHeader: Record "Subscription Header"; CustomerSubscriptionContract: Record "Customer Subscription Contract")` (integration)

## Procedures

- `DeleteServiceObjectFromContract()` (internal)
- `InitForSourceNo(ContractLineType: enum "Contract Line Type"; SourceNo: Code[20])` (internal)
- `UpdateCustomerDataFromCustomerContract(CustomerContract: Record "Customer Subscription Contract")` (internal)
- `SetHideValidationDialog(NewHideValidationDialog: Boolean)`
- `AssistEdit(OldServiceObject: Record "Subscription Header"): Boolean` (internal)
- `CopyEndUserAddressToShipToAddress()` (internal)
- `CopyEndUserAddressToBillToAddress()` (internal)
- `RecallModifyAddressNotification(NotificationID: Guid)` (internal)
- `GetModifyBillToCustomerAddressNotificationId(): Guid` (internal)
- `DontNotifyCurrentUserAgain(NotificationID: Guid)` (internal)
- `LookupEndUserCustomerName(): Boolean` (internal)
- `CalculateShipToBillToOptions(var ShipToOptions: Option "Default (End-User Address)","Alternate Shipping Address","Custom Address"; var BillToOptions: Option "Default (Customer)","Another Customer","Custom Address"; ServiceObject: Record "Subscription Header")` (internal)
- `InsertServiceCommitmentsFromStandardServCommPackages()`
- `InsertServiceCommitmentsFromStandardServCommPackages(ServiceAndCalculationStartDate: Date)`
- `InsertServiceCommitmentsFromServCommPackage(ServiceAndCalculationStartDate: Date; var ServiceCommitmentPackage: Record "Subscription Package")`
- `InsertServiceCommitmentsFromServCommPackage(ServiceAndCalculationStartDate: Date; ServiceEndDate: Date; var ServiceCommitmentPackage: Record "Subscription Package"; UsageBasedBillingPackageLinesOnly: Boolean)`
- `OpenServiceObjectCard(ServiceObjectNo: Code[20])` (internal)
- `UpdateServicesDates()` (internal)
- `UpdateAmountsOnServiceCommitmentsBasedOnExchangeRates()` (internal)
- `GetCurrencyCodeFromCustomerServiceCommitment(): Code[10]` (internal)
- `FilterServiceCommitmentsWithoutContract(var ServiceCommitment: Record "Subscription Line")` (internal)
- `FilterOnItemNo(ItemNo: Code[20])` (internal)
- `InsertFromItemNoAndCustomerContract(var ServiceObject: Record "Subscription Header"; ItemNo: Code[20]; VariantCode: Code[10]; SourceQuantity: Decimal; ProvisionStartDate: Date; CustomerContract: Record "Customer Subscription Contract")`
- `SetUnitPriceAndUnitCostFromExtendContract(NewUnitPrice: Decimal; NewUnitCost: Decimal)` (internal)
- `ResetCalledFromExtendContract()` (internal)
- `ArchiveServiceCommitments()` (internal)
- `GetSerialNoDescription(): Text` (internal)
- `SkipInsertServiceCommitmentsFromStandardServCommPackages(Skip: Boolean)` (internal)
- `GetContractLineTypeFromServiceObject(): Enum "Contract Line Type"` (internal)
- `GetSalesLineType(): Enum "Sales Line Type"` (internal)
- `GetPurchaseLineType(): Enum "Purchase Line Type"` (internal)
- `IsItem(): Boolean` (internal)
- `SetPrimaryAttributeValueAndCaption(var PrimaryAttributeValue: Text[250]; var PrimaryAttributeValueCaption: Text)` (internal)
- `GetPrimaryAttributeValue(): Text[250]` (internal)
- `UpdateVendorAndManufacturerFromItem(Item: Record Item)` (internal)

Plus 49 local procedures.

## Triggers

OnInsert, OnDelete, OnModify

## Relations

- drill-down page [Page 8059 "Service Objects"](../page/8059.md)
- lookup page [Page 8059 "Service Objects"](../page/8059.md)
- Salesperson Code: TableRelation [Table 13 "Salesperson/Purchaser"](../table/13.md)
- Source No.: TableRelation [Table 15 "G/L Account"](../table/15.md) (conditional)
- Bill-to Customer No.: TableRelation [Table 18 "Customer"](../table/18.md)
- End-User Customer No.: TableRelation [Table 18 "Customer"](../table/18.md)
- Unit of Measure: TableRelation [Table 204 "Unit of Measure"](../table/204.md) (conditional)
- Ship-to Code: TableRelation [Table 222 "Ship-to Address"](../table/222.md)
- Bill-to City: TableRelation [Table 225 "Post Code"](../table/225.md) (conditional)
- Bill-to Post Code: TableRelation [Table 225 "Post Code"](../table/225.md)
- End-User City: TableRelation [Table 225 "Post Code"](../table/225.md) (conditional)
- End-User Post Code: TableRelation [Table 225 "Post Code"](../table/225.md) (conditional)
- Ship-to City: TableRelation [Table 225 "Post Code"](../table/225.md) (conditional)
- Ship-to Post Code: TableRelation [Table 225 "Post Code"](../table/225.md) (conditional)
- Vendor No.: TableRelation [Table 23 "Vendor"](../table/23.md)
- Item No.: TableRelation [Table 27 "Item"](../table/27.md)
- Source No.: TableRelation [Table 27 "Item"](../table/27.md) (conditional)
- Item Ledger Entry No.: TableRelation [Table 32 "Item Ledger Entry"](../table/32.md)
- Bill-to Contact No.: TableRelation [Table 5050 "Contact"](../table/5050.md)
- End-User Contact No.: TableRelation [Table 5050 "Contact"](../table/5050.md)
- Variant Code: TableRelation [Table 5401 "Item Variant"](../table/5401.md)
- Unit of Measure: TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md) (conditional)
- Manufacturer Code: TableRelation [Table 5720 "Manufacturer"](../table/5720.md)
- Customer Price Group: TableRelation [Table 6 "Customer Price Group"](../table/6.md)
- Planned Sub. Lines exist: CalcFormula [Table 8002 "Planned Subscription Line"](../table/8002.md)
- Archived Sub. Lines exist: CalcFormula [Table 8073 "Subscription Line Archive"](../table/8073.md)
- Bill-to Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)
- End-User Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)
- Ship-to Country/Region Code: TableRelation [Table 9 "Country/Region"](../table/9.md)

## Referenced by

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

- [Table 8059 "Subscription Line"](../table/8059.md): Item No., Quantity, Source No., Source Type, Sub. Header Customer No., Subscription Description, Variant Code, Subscription Header No.
- [Table 8001 "Sub. Contract Renewal Line"](../table/8001.md): Subscription t Description, Subscription Header No.
- [Table 8002 "Planned Subscription Line"](../table/8002.md): Subscription Customer No., Subscription Header No.
- [Table 8006 "Usage Data Billing"](../table/8006.md): Subscription Description, Subscription Header No.
- [Table 8009 "Imported Subscription Line"](../table/8009.md): Quantity, Subscription Header No.
- [Table 8061 "Billing Line"](../table/8061.md): Subscription Description, Subscription Header No.
- [Table 8062 "Cust. Sub. Contract Line"](../table/8062.md): Service Object Quantity, Subscription Header No.
- [Table 8064 "Billing Line Archive"](../table/8064.md): Subscription Description, Subscription Header No.
- [Table 8065 "Vend. Sub. Contract Line"](../table/8065.md): Service Object Quantity, Subscription Header No.
- [Table 8073 "Subscription Line Archive"](../table/8073.md): Sub. Header Customer No., Subscription Header No.
- [Table 8004 "Sub. Contr. Price Update Line"](../table/8004.md): Subscription Header No.
- [Table 8007 "Overdue Subscription Line"](../table/8007.md): Subscription Header No.
- [Table 8008 "Imported Subscription Header"](../table/8008.md): Subscription Header No.
- [Table 8016 "Usage Data Supp. Subscription"](../table/8016.md): Connect to Sub. Header No.
- [Table 8018 "Usage Data Generic Import"](../table/8018.md): Subscription Header No.
- [Table 8019 "Sub. Contr. Analysis Entry"](../table/8019.md): Subscription Header No.
- [Table 8021 "Usage Data Billing Metadata"](../table/8021.md): Subscription No.
- [Table 8022 "Contract Billing Err. Log"](../table/8022.md): Subscription
- [Table 8068 "Sales Subscription Line"](../table/8068.md): Subscription Header No.
- [Table extension 8000 "Contracts Contact"](../tableextension/8000.md): Subscription Headers
- [Table extension 8001 "Contracts Customer"](../tableextension/8001.md): Subscription Headers

## Pages and codeunits on this table

- [Page 8010 "Serv. Object Attr. Values"](../page/8010.md) (source table)
- [Page 8020 "Service Object API"](../page/8020.md) (source table)
- [Page 8059 "Service Objects"](../page/8059.md) (source table)
- [Page 8060 "Service Object"](../page/8060.md) (source table)

## Recent changes

- 2026-08-27 [#10675 Temporarily suppress AS0072 (ObsoleteTag 29.0) on 10 Base App elements for v30 prep](../../changes/bcapps/10675.md) (main, BC30, fix)

## Across versions

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

## Deprecations

- field Item No.: Pending 26.0 (#if not CLEANSCHEMA29), "Replaced by field Source No."

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 Header")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
