---
id: object/table/8060
type: object
title: Table 8060 "Billing Template"
summary: Table 8060 "Billing Template" in Subscription Billing (Microsoft.SubscriptionBilling). 15 fields, 9 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: fc40e6e069c1c148eab9ee2b4edd772e64088f74c3a03ed1f6515e188778c22b
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Subscription%20Billing/app/Billing/Tables/BillingTemplate.Table.al
    title: src/Apps/W1/Subscription Billing/app/Billing/Tables/BillingTemplate.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: 8060
name: Billing Template
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: 15
  procedures: 10
  events: 0
  subscribers: 0
relations:
  out: 3
  referenced_by: 3
  pages: 1
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 0
  implements: 0
---

# Table 8060 "Billing Template"

> Table 8060 "Billing Template" in Subscription Billing (Microsoft.SubscriptionBilling). 15 fields, 9 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/Billing/Tables/BillingTemplate.Table.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Billing Template |
| DataClassification | CustomerContent |
| LookupPageId | Billing Templates |
| DrillDownPageId | Billing Templates |

## 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 | Code | Code[20] | Specifies the unique code of the billing template. <small>via [Page 8066 "Billing Templates"](../page/8066.md)</small> | NotBlank |
| 2 | Description | Text[80] | Specifies the name of the template. <small>via [Page 8066 "Billing Templates"](../page/8066.md)</small> |  |
| 3 | Partner | Enum "Service Partner" | Specifies whether the template applies to customer or Vendor Subscription Contracts. <small>via [Page 8066 "Billing Templates"](../page/8066.md)</small> | enum [Enum 8053 "Service Partner"](../enum/8053.md) |
| 5 | Billing Date Formula | DateFormula | Specifies the formula for the date filter, which is used to filter billable Subscription Lines ("Next Billing Date"). <small>via [Page 8066 "Billing Templates"](../page/8066.md)</small> |  |
| 6 | Billing to Date Formula | DateFormula | Specifies the optional formula for the date filter, for the maximum date up to which the Subscription Lines are to be billed. <small>via [Page 8066 "Billing Templates"](../page/8066.md)</small> |  |
| 7 | My Suggestions Only | Boolean | Specifies whether the Subscription Lines which are to be billed are filtered only for myself. <small>via [Page 8066 "Billing Templates"](../page/8066.md)</small> |  |
| 9 | Group by | Enum "Contract Billing Grouping" | Specifies the option for grouping contract billing lines. <small>via [Page 8066 "Billing Templates"](../page/8066.md)</small> | enum [Enum 8059 "Contract Billing Grouping"](../enum/8059.md) |
| 10 | Filter | Blob | — |  |
| 11 | Posting Date Formula | DateFormula | Specifies the date formula used to calculate the Posting Date. If the field is left empty, the Posting Date is prefilled with workdate, or with today when the process runs automatically. |  |
| 12 | Document Date Formula | DateFormula | Specifies the date formula used to calculate the Document Date. If the field is left empty, the Document Date is prefilled with workdate, or with today when the process runs automatically. |  |
| 13 | Customer Document per | Enum "Customer Rec. Billing Grouping" | Specifies how the Billing lines for customers are grouped in sales documents. | enum [Enum 8057 "Customer Rec. Billing Grouping"](../enum/8057.md) |
| 15 | Automation | Enum "Sub. Billing Automation" | Specifies if the billing process is automated. | enum [Enum 8022 "Sub. Billing Automation"](../enum/8022.md) |
| 17 | Minutes between runs | Integer | Specifies the frequency, in minutes, for running the automation. | DataClassification SystemMetadata |
| 18 | Batch Recurrent Job Id | Guid | Specifies the ID of the job queue entry that runs the billing process in the background. | not editable; DataClassification SystemMetadata |
| 19 | Batch Rec. Job Description | Text[250] | Specifies the description of the job queue entry that runs the billing process in the background. | FlowField: lookup("Job Queue Entry".Description where("ID" = field("Batch Recurrent Job Id"))); not editable |

## Keys

- PK: Code (clustered)

## Procedures

- `EditFilter(FieldNumber: Integer): Boolean` (internal)
- `ReadFilter(FieldNumber: Integer): Text` (internal)
- `WriteFilter(FieldNumber: Integer; FilterText: Text)` (internal)
- `IsPartnerCustomer(): Boolean` (internal)
- `BillContractsAutomatically()` (internal)
- `CalculateBillingDates(var BillingDate: Date; var BillingToDate: Date; BackgroundProcess: Boolean)` (internal)
- `CalculateDocumentDates(var PostingDate: Date; var DocumentDate: Date; BackgroundProcess: Boolean)` (internal)
- `LookupJobEntryQueue()` (internal)
- `ClearAutomationFields()` (internal)

Plus 1 local procedures.

## Triggers

OnModify, OnDelete

## Relations

- drill-down page [Page 8066 "Billing Templates"](../page/8066.md)
- lookup page [Page 8066 "Billing Templates"](../page/8066.md)
- Batch Rec. Job Description: CalcFormula [Table 472 "Job Queue Entry"](../table/472.md)

## Referenced by

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

- [Table 8022 "Contract Billing Err. Log"](../table/8022.md): Billing Template Code
- [Table 8061 "Billing Line"](../table/8061.md): Billing Template Code
- [Table 8064 "Billing Line Archive"](../table/8064.md): Billing Template Code

## Pages and codeunits on this table

- [Page 8066 "Billing Templates"](../page/8066.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: "Billing Template")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
