Import Billing Schedules

The following tables provide information on the file formats for importing data entities. All data entities in Subscription Billing start with SB.

Tip: To save time and work more efficiently, use the sample import files (SB_ImportTemplates-YYYYMMDD.zip) that are provided with Subscription Billing installation download file. If a sample file does not exist, you can export the data entities.

When importing data entities from a Microsoft Excel file, set Skip staging to No. When data is imported with the staging, all Subscription Billing validations are performed on the data being imported. If any errors occur during import, you can review the staging data to check for data import issues.

Billing Schedule Header

  • Target entity: BssiArcbBillingScheduleTableEntity
  • Sample template: SB_ARCB_billing_schedule_header.xlsx

When importing data to update billing schedule header, note the following: 

  • Charges are not rolled down to the lines within the billing schedule.
  • The following data values are not updated: Billing schedule group, Billing schedule number, Customer account, Currency code, and End user account.
Column Name Data Type Required Description
SCHEDULENUMBER String Required  
ALIGNTOMONTH Enum   Yes/No
BILLINGADDRESSNAME String  

The bill-to address for the billing schedule header.

If this value is empty, the default value is from the invoice account specified (when the Invoice address option is set to Invoice account for the specified customer account number).

BillingAddressRecId RecId  

When a value is specified, the BILLINGADDRESSNAME is ignored and the related bill to address information is updated on the Address FastTab on the Billing Schedules page based on the setting of Invoice address option:

  • For Invoice account, the address is from the specified Invoice account.
  • For Order account, the address is from the specified Customer account.
BILLINGCLASSIFICATION String    
BILLINGENDDATE Date    
BILLINGFREQUENCY Enum Required

0 =One time

1 = Daily

2 = Monthly

3 = Quarterly

4 = Semiannually

5 = Annually

BILLINGINTERVAL Integer    
BILLINGSCHEDULEGROUP String Required  
BILLINGSTARTDATE Date Required  
CONTACTPERSON String    
CONTACTPERSONID String    
CONTRACTCOMPLETIONDATE Date    
CONTRACTSTARTDATE Date    
CURRENCYCODE String    
CUSTOMERACCOUNT String Required  
CUSTOMERREF String    
CUSTOMERREQUISITION String    
DEFERREDCONTRACTREVENUEACCOUNT String    
DELIVERYCITY String    
DELIVERYCOUNTRYREGIONID String    
DELIVERYNAME String   Required when ISONETIMEDELIVERYADDRESS is Yes.
DELIVERYSTATE String    
DELIVERYSTREET String    
DELIVERYZIPCODE String    
DESCRIPTION String    
EMAIL String    
ENDUSERACCOUNT String    
INVOICESEPARATELY Enum   Yes/No
INVOICEACCOUNT String    
INVOICETRANSACTIONTYPE Enum  

0 = Sales Order

1 = Free Text Invoice

ISONETIMEDELIVERYADDRESS Enum  

Yes/No

When a one-time delivery address is updated, the new delivery address information overwrites the existing delivery address information.

MEANUMBER String    
MEATYPE Enum  
METHODOFPAYMENT String  

Remove this column to use the value from the customer record.

If this column is included in the import file, the specified value is used. If the value is empty, the imported value is empty, and no method of payment is specified on the billing schedule.

If this value is empty, the default value is from the invoice account specified (when the Invoice address option is set to Invoice account for the specified customer account number).

MILESTONETEMPLATE String    
NUMBEROFPERIODS Integer    
PARTNERACCOUNT String    
PAYMENTSCHEDULE String  

Remove this column to use the value from the customer record.

If this column is included in the import file, the specified value is used. If the value is empty, the imported value is empty, and no payment schedule is specified on the billing schedule.

If this value is empty, the default value is from the invoice account specified (when the Invoice address option is set to Invoice account for the specified customer account number).

PROJID String    
PRORATEPARTIALPERIODS Enum  

Yes/No

If no value is specified on the Billing Schedule Lines, this header value is used as the default.

SCHEDULESTATUS String    

TERMSOFPAYMENT

String  

Remove this column to use the value from the customer record.

If this column is included in the import file, the specified value is used. If the value is empty, the imported value is empty, and no terms of payment is specified on the billing schedule.

If this value is empty, the default value is from the invoice account specified (when the Invoice address option is set to Invoice account for the specified customer account number).

URL String    

Billing Schedule Lines

  • Target entity: BssiArcbBillingScheduleLineEntity
  • Sample template: SB_ARCB_billing_schedule_line.xlsx

When importing data to update billing schedule lines, only the following values are updated: 

  • Quantity
  • Unit price (only for lines that have the Pricing method set to Flat)
  • Alignment date
  • Billing end date
  • Auto renew
  • Main deferral account
Column Name Data Type Required Description
SCHEDULENUMBER String    
LINENUM Real    
ALIGNMENTDATE Date   For existing billing schedules can be updated through data import.
AUTORENEW Enum   Yes/No
BATCHNUMBER String   Batch number for the tracking dimension.
BILLINGADDRESSNAME String  

The bill-to address for the billing schedule line item.

If this value is empty, the default value is from the invoice account specified (when the Invoice address option is set to Invoice account for the specified customer account number).

BillingAddressRecId RecId  

When a value is specified, the BILLINGADDRESSNAME is ignored and the related bill to address information is updated on the Address tab of the Line Details FastTab on the Billing Schedules page based on the setting of Invoice address option:

  • For Invoice account, the address is from the specified Invoice account.
  • For Order account, the address is from the specified Customer account.
BILLINGCODE String    
BILLINGENDDATE Date   For existing billing schedules can be updated through data import.
BILLINGFREQUENCY Enum Required

0 =One time

1 = Daily

2 = Monthly

3 = Quarterly

4 = Semiannually

5 = Annually

BILLINGINTERVAL Integer    
BILLINGSTARTDATE Date Required  
CONTRACTPRICE Real   To be able to use the Calculate Unit Price functionality, this value is required.
CUSTOMERREF String    
CUSTOMERREQUISITION String    
DEFAULTDIMENSIONDISPLAYVALUE String    
DEFERRALENDDATE Date    
DEFERRALEVENTTEMPLATE String    
DEFERRALRECOGNITIONACCOUNT String    
DEFERRALSCHEDULETYPE Enum    
DEFERRALSTARTDATE Date    
DEFERRALSTRAIGHTLINETEMPLATE String    
DEFERRED Enum   Yes/No
DEFERREDCONTRACTREVENUEACCOUNT String    
DELIVERYCOUNTRYREGIONID String    
DELIVERYNAME String  

Required when ISONETIMEDELIVERYADDRESS is Yes.

DELIVERYSTATE String    
DELIVERYSTREET String    
DELIVERYZIPCODE String    
DELIVERYNAME String    
DELIVERYSTATE String    
ESCALATION Enum    
EXTERNAL String    
EXTERNALLINENUMBER String    
FREEQUANTITY Real    
FREEQUANTITYRESETNUMBEROFPERIODS Real    
INITIALRECOGNITIONACCOUNT String    
ISONETIMEDELIVERYADDRESS Enum  

Yes/No

When a one-time delivery address is updated, the new delivery address information overwrites the existing delivery address information.

ITEMNUMBER String    
ITEMTYPE Enum  

0 = Standard

1 = Usage

2 = Milestone

LINESTOADDPERRENEWAL Integer    
LINETEXT String    
MAINACCOUNT String   For existing billing schedules can be updated through data import.
MAXIMUMBILLINGAMOUNT Real    
MAXIMUMBILLINGQUANTITY Real    
MEANUMBER String    
MINIMUMBILLINGAMOUNT Real    
MINIMUMBILLINGQUANTITY Real    
MINMAXRESETNUMBEROFPERIODS Real    
MINMAXTYPE Enum  

0 = By Amount

1 = By Quantity

NETAMOUNT Real    
ORIGINALNETAMOUNT Real    
ORIGINALRENEWALAMOUNT Real    
ORIGINALRENEWALPERCENTAGE Real    
ORIGINALSALESITEM String    
ORIGINALSALESORDER String    
ORIGINALSUPPORTLEVEL String    
OWNER String   Owner identifier for the tracking dimension.
PARENTAMOUNT Real    
POSTALADDRESS Int64    
PRICEFREQUENCY Enum  

Daily

Monthly

Quarterly

Semiannual

Annually

Term

To be able to use the Calculate Unit Price functionality, this value is required.

PRICINGMETHOD Enum  

0 = Standard

1 = Flat

2= Tier

3= Flat Tier

PRORATEPARTIALPERIODS Enum  

Yes/No

If no value is specified, the default values is from the Billing Schedule Header.

QUANTITY Real    
RECOGNITIONOFFSETACCOUNT String    
RENEWALAMOUNT Real    
RENEWALPERCENTAGE Real    
REVENUESPLIT Enum   Yes/No
SERIALNUMBER String    
SHORTTERMACCOUNT String    
SITE String    
SSPORIGIN Enum  
STANDALONESELLINGPRICE Real    
STATUS String    
STUBBINGCUTOFFDATE Date    
SUPPORTLEVEL String    
UNBILLEDDISCOUNTACCOUNT String    
UNBILLEDREVENUE Enum   Yes/No
UNBILLEDREVENUEACCOUNT String    
UNIT String    
UNITPRICE Real   When this value is non-zero, the values in the CONTRACTPRICE AND PRICEFREQUENCY are ignored.
USAGEIDENTIFIER String    
USAGEREADINGOPTION Enum  

0 = Reading

1 = Consumption

VARIANTID String    
WAREHOUSE String    
REVENUEACCOUNT String    
REVENUEDEFERREDACCOUNT String    
UNBILLEDREVENUEACCOUNT String    

Billing Schedule Lines (Update)

Use the data entity for updating the quantity or unit price of child items of a revenue split in a billing schedule.

  • Data entity: BssiArcbBillingScheduleLineRevenueSplitUpdate
  • Sample template: SB_ARCB_billing_schedule_line_update.xlsx

The format for the required data is as follows: 

Column Name Data
Type
Required Description
BillingScheduleNumber String Required.

Billing schedule number.

ParentLineNum Int64 Required.

Line number of the parent item.

ChildItemId String Required.

Item ID of the child item.

ChildQuantity Real

If the ChildUnitPrice is entered, this value is optional.

One of ChildQuantity or ChildUnitPrice must be provided.

Quantity of the child item. An empty value is considered to be zero (0).

ChildUnitPrice Real

If the ChildQuantity is entered, this value is optional.

One of ChildQuantity or ChildUnitPrice must be provided.

Unit price of the child item. An empty value is considered to be zero (0).

DEFAULTDIMENSIONDISPLAYVALUE String  

Imports financial dimension values. If specified, the values must be valid and already exist in Microsoft Dynamics 365 for Finance and Operations.

If empty, the items use the default financial dimension values from the customer and item records.

Notes:

  • You can remove the ChildQuantity or ChildUnitPrice column, but not both. When the column is not in the import file, it is assumed that the value for all lines for the column is zero.
  • Only lines that use the flat pricing method are imported.

Billing Usage

Target entity: BssiArcbBillingDetailLine

Column Name Data Type Required Description
BILLINGENDDATE Date    
BILLINGSTARTDATE Date    
COMMENTS String    
CONSUMEDQUANTITY Real   If the usage reading option for the line is consumption, imports the specified value.
CURRENTREADING Real   If the usage reading option for the line is reading, imports the specified value.
ESTIMATEDQUANTITY Real  

Imported when a value is specified and both the current reading or consumed quantity are empty.

When a value for current reading or consumed quantity is specified, the estimated quantity is not imported.

ITEMNUMBER String Required  
SCHEDULENUMBER String Required  
USAGEIDENTIFIER String    

Unbilled Revenue Transaction Line

Target entity: BssiArcbUnbilledRevenueTransactionLineEntity

Column Name Data Type Required Description
LINENUM Real    
REVENUEACCOUNT String    
REVENUEDEFERREDACCOUNT String    
SCHEDULENUMBER String    
UNBILLEDDISCOUNTACCOUNT String    
UNBILLEDREVENUE Enum   Yes/No
UNBILLEDREVENUEACCOUNT String    

Escalation Lines

  • Target entity: BssiArcbEscalationTableEntity
  • Sample template: SB_ARCB_escalation_line.xlsx

Data can be imported to update the escalation and discount values.

Column Name Data Type Required Description
SCHEDULENUMBER String    
ScheduleLineNum Real   0 if the imported record is Billing Schedule header, otherwise, the record is Billing Schedule Line.
ESCALATIONLINENUM Real    
STARTDATE Date    
DISCOUNT Enum   Yes/No
FREQUENCY Enum  

0 = Monthly

1 = Quarterly

2 = Semiannually

3 = Annually

4 = None

PERCENT Real    
AMOUNT Real    
CPISCHEDULE String    
ENDDATE Date    

Put Line on Hold

The following data entity allows holds to be put on billing schedules lines.

  • Target entity: BssiArcbHoldLine
Column Name Data Type Required Description
Billing Schedule Number String Required  
LineNum Integer    
Adjust schedule Enum   0/1
Hold date Date   When Adjust schedule is Yes, this value is required.
Reason code String   Only existing reason codes are valid.
Hold notes String    

Remove Hold from Line

The following data entity allows holds to be removed from billing schedules lines.

  • Target entity: BssiArcbUnholdLine
Column Name Data Type Required Description
Billing Schedule Number String Required  
LineNum Integer    
Remove date Date   Remove date must be after hold date
Resume date Date   Resume date must be after hold date
Deferral date Date    

Mass Termination Header

The following data entity is also referred to as the termination setup for the termination process via the data entity. The user will need to import this data entity first, and then use the BssiArcbMassTerminationLineEntity entity to terminate the lines. The BssiArcbMassTerminationLineEntity entity should refer to the same TERMINATIONPROCESSID imported in the header entity. These values are saved temporarily and cleared after each import process.

  • Target entity: BssiArcbMassTerminationTableEntity
  • Sample template: SB_ARCB_mass_termination_table.xlsx
Column Name Data Type Required Description
TERMINATIONPROCESSID String Required  
CONSOLIDATEBYCUSTOMER Enum   Yes/No
CREDITOPTION Enum  

Required if ISSUECREDIT is Yes.

0 = Issue credit

1 = Credit adjustment

DEFERRALADJUSTMENTMETHOD Enum  

0 = Unrecognized Periods

1 = Entire Schedule

INVOICEDATE Date    
INVOICETRANSACTIONTYPE Enum  

0 = Sales Order

1 = Free Text Invoice

ISSUECREDIT Enum  

Indicates whether a return is created: 

  • Yes: When a billing schedule line is terminated, a return is created and the deferral schedule is adjusted.
  • No: When a billing schedule line is terminated, no return is created, and the deferral schedule remains as is.
POSTINGOPTION Enum  

0 = Create Sales Order

1 = Create Sales Order With Invoice Form

2 = Create Free Text Invoice

3 = Post Invoice Automatically

PRORATEDAILY Enum  

Specify whether the prorate daily rate is used to calculate the refund: 

  • Yes: The prorate daily rate is used to calculate the refund.
  • No: The default calculation method is used to calculate the refund.
REASONCODE String Required The reason for terminating the billing schedule.
TERMINATIONDATE Date Required Date on which the billing schedule line or contract is terminated.
TERMINATIONTYPE Enum Required

0 = Default

1 = Adjust schedule

2 = Bill remaining

3 = No adjustment

TERMINATIONNOTES String    

Mass Termination Line

The following data entity allows lines within one or more billing schedules to be terminated. These values are saved temporarily and cleared after each import process.

Target entity: BssiArcbMassTerminationLineEntity

Sample template: SB_ARCB_mass_termination_line.xlsx

Column Name Data Type Required Description
TERMINATIONPROCESSID String Required  
CUSTOMERACCOUNT String    
ITEMID String  

If the value is empty, the entire billing schedule is terminated. Otherwise, only the specified value is terminated.

BILLINGSCHEDULENUMBER String  

If this value is empty, all billing schedules that match the customer and/or item number are terminated.

LINENUM Real    

Only whole billing schedules or lines that have an Active status can be terminated. During the termination process, the following checks occur: 

  • Billing schedule number (if set)
  • Customer
  • Item number (if set)
  • Termination reason code
  • The customer and item number must match with at least one billing schedule.

Mass Termination Composite

Target entity: BssiArcbMassTerminationLineEntity

Sample template: SB_ARCB_Mass_termination_composite.xml

Column Name Data Type Required Description
BSSIARCBMASSTERMINATIONTABLEENTITY      
TERMINATIONPROCESSID String Required  
CONSOLIDATEBYCUSTOMER Enum    
DEFERRALADJUSTMENTMETHOD Enum    
INVOICEDATE Date    
INVOICETRANSACTIONTYPE Enum    
ISSUECREDIT Enum    
POSTINGOPTION Enum    
PRORATEDAILY Enum    
REASONCODE String Required  
TERMINATIONDATE Date Required  
BSSIARCBMASSTERMINATIONLINEENTITY      
TERMINATIONPROCESSID String Required  
CUSTOMERACCOUNT String    
ITEM String    
BILLINGSCHEDULENUMBER String    
LINENUM Real    

Support and Renewal Entities

Review the information for the data entities when you import support and renewal data.

Data Entities - Sales Line Join

For the sales line entity (SalesOrderLineV2Entity), the primary key is InventoryLotId, which maps to InventTransId on the table. This mapping is used to update existing sales order lines.

To be able to correctly import the support and renewal data, the InventoryLotId will be added on the data entity. With this addition, the SalesId and LineNumber as the primary keys on the table. These primary keys are automatically populated from the sales line determined by InventoryLotId.

Optionally, when importing data, InventoryLotId can be left empty, with the SalesId and LineNumber containing values. If all three keys have values, InventoryLotId takes precedence over SalesId and LineNumber.

Data Entities - Line without Header

When support and renewal lines are imported without any header information, the header values from the corresponding Support and Renewal Process page and billing schedule are used.

Data Entities - Line Fields

Any support and renewal line data that is available in the page for must be provided for the data import.

  • The value for amount or percentage is set at the line level. For example, the support and renewal level is percentage for a support item, the amount value must be zero (0) or empty and the percentage value is required.
  • Optionally, the support and renewal level can be left empty. In this case, only one of the amount or percentage requires a value.
  • On the Advanced Recurring Contract Billing Parameters page, the Unique schedule type option is Customer: When the billing schedule number is empty, it is automatically updated when the data is imported.

Support and Renewal Header

Target entity: BssiArcbSupportRenewalProcessTableEntity

Sample template: SB_ARCB_support_and_renewal_header.xlsx

Column Name Data Type Required Description
ALIGNMENTDATE Date    
ALIGNTOMONTH Enum   Yes/No
BILLINGFREQUENCYRENEWAL Enum  

0 = Monthly

1 = Quarterly

2 = Semiannually

3 = Annually

4 = Daily

BILLINGFREQUENCYSUPPORT Enum  

0 = Monthly

1 = Quarterly

2 = Semiannually

3 = Annually

4 = Daily

BILLINGINTERVALRENEWAL Integer    
BILLINGINTERVALSUPPORT Integer    
BILLINGSCHEDULENUMBER String    
ENDUSERACCOUNT String    
INCLUDEDISCOUNTRENEWAL Enum   Yes/No
INCLUDEDISCOUNTSUPPORT Enum   Yes/No
OVERRIDESTARTDATE Date    
RENEWALENDDATE Date    
RENEWALSTARTDATE Date    
SalesId String    
SALESTABLERECID Int64    
SUPPORTANDRENEWALQUANTITY Enum  

0 = One

1 = Invoice Quantity

SUPPORTENDDATE Date    
SUPPORTLEVEL String    
SUPPORTSTARTDATE Date    

Support and Renewal Lines

Target entity: BssiArcbSupportRenewalProcessLineEntity

Sample template: SB_ARCB_support_and_renewal_lines.xlsx

Column Name Data Type Required Description
ALIGNMENTDATE Date    
BILLINGSCHEDULENUMBER String    
HEADERRECID Int64    
InventoryLotId String Required  
LINENUMBER Real    
RENEWAL Enum   Yes/No
RENEWALAMOUNT Real    
RENEWALCALCULATIONMETHOD Enum  

0 = Percentage

1 = Standard Amount

RENEWALENDDATE Date    
RENEWALITEM String    
RENEWALPERCENT Real    
RENEWALSTARTDATE Date    
SalesId String    
SUPPORT Enum   Yes/No
SUPPORTAMOUNT Real    
SUPPORTCALCULATIONMETHOD Enum  

0 = Percentage

1 = Standard Amount

SUPPORTENDDATE Date    
SUPPORTITEM String    
SUPPORTLEVEL String    
SUPPORTPERCENTAGE Real    
SUPPORTSTARTDATE Date    

Sales Order Lines

Target entity: SalesOrderLineV2Entity

Sample template: Sales_order_lines_V2.xlsx

Column Name Data Type Required Description
RevenueSplit Enum   Yes/No
INVENTORYLOTID      
ITEMNUMBER      
LINEAMOUNT Real    
LINEDESCRIPTION String    
ORDEREDSALESQUANTITY      
SALESORDERNUMBER      
SALESPRICE Real    
SALESPRICEQUANTITY Integer    
SALESUNITSYMBOL      
SHIPPINGSITEID String    
SHIPPINGWAREHOUSEID String    

Sales Line Revenue Split (Update)

Target entity: BssiMeraSalesLineRevenueSplitEntity

Sample template: SB_MERA_sales_line_revenue_split_update.xlsx

Use the data entity for updating the financial dimensions, quantity, or unit price of revenue split child items in a sales order. When importing data, keep in mind the following: 

  • ChildQuantity and net amount must both be the same sign (positive or negative).
  • Only one of the ChildQuantity or ChildUnitPrice columns can be removed, not both. When the column is not in the import file, the value for all lines of the column is zero (0).
Column Name Data Type Required Description
SALESORDERNUMBER

String

Required

Sales order number.

PARENTLINENUM

Int64

Required

Line number of the parent item.

CHILDITEMID

String

Required

Item ID of the child item.

CHILDQUANTITY

Real

If ChildUnitPrice is empty, required.

Quantity of the child item. An empty value is considered to be zero (0).

If the ChildUnitPrice has a value, this value is optional.

CHILDUNITPRICE

Real

If ChildQuantity is empty, required.

Unit price of the child item. An empty value is considered to be zero (0).

If the ChildQuantity has a value, this value is optional.

DEFAULTDIMENSIONDISPLAYVALUE

String

Imports financial dimension values.

  • If specified, the values must be valid and already exist in Microsoft Dynamics 365 for Finance and Operations.
  • If empty, the items use the default financial dimension values from the customer and item records.

General Journal with Deferrals

Target entity:

Sample template: General_journal_with_SB_ARED_Deferrals.xlsx

Column Name Data Type Required Description
JOURNALBATCHNUMBER      
LINENUMBER      
VOUCHER      
ACCOUNTDISPLAYVALUE      
ACCOUNTTYPE      
OFFSETACCOUNTDISPLAYVALUE      
OFFSETACCOUNTTYPE      
CREDITAMOUNT      
CURRENCYCODE      
DEBITAMOUNT      
TEXT      
CASHDISCOUNT      
CASHDISCOUNTAMOUNT      
CASHDISCOUNTDATE Date    
DESCRIPTION      
DOCUMENT      
DUEDATE Date    
EXCHANGERATE      
EXCHANGERATESECONDARY      
INVOICE      
ISPOSTED      
ITEMSALESTAXGROUP      
JOURNALNAME      
OFFSETDEFAULTDIMENSIONDISPLAYVALUE      
OFFSETTEXT      
PAYMENTID      
PAYMENTMETHOD      
PAYMENTREFERENCE      
POSTINGLAYER      
POSTINGPROFILE      
QUANTITY      
SALESTAXCODE      
SALESTAXGROUP      
TAXEXEMPTNUMBER      
TRANSDATE Date    
OVERRIDESTARTDATE Date