...
Moved the Branding configuration into a new ‘Owner Information’ tab
Added the following new fields to the Owner Information tab which can referenced with new Invoice tokens and are shown in some reports
Owner Name (required)
Owner Display Name
Country and Address
Owner VAT#
Owner Banking Reference ID
Owner Registration ID
Owner eInvoice Endpoint ID
Added a 'Bill Prepaid Adjustments' option to the Owner Configuration screen which provides control on how prepaid periods are billed
If this setting is disabled then only the initial prepaid package charges will be applied each billing period when the prepaid account-package becomes effective on an account. Changes made after the account-package effective date/time is billed. Additional charges that are applicable after that based on changes made (service/package status changes, upcoming cancellations, refunds, etc.) will not be billed until the next billing period
If this setting is left enabled then existing system behavior will still apply
A Reporting tab has been added which indicates if a reporting database has been configured. When a reporting DB is enabled reporting data in LogiSense Billing can be synced to a replica database. For more information on this feature please contact us
...
Moved Invoice and Credit Note Template files into AWS S3 buckets allowing template updates to be made without the need to log into the LogiSense Billing AdminPortal
Added a new Invoice Template Type XML eInvoice which stores the template as a text document instead of a Word Mail Merge template
An Invoice Delivery can be setup to use the eInvoice template which renders the XML text document during billing
The XML text document can be exported to an external transfer location using the Offline Delivery option
Added the fields ‘Added VAT #’, ‘eInvoice Scheme ID’ and ‘eInvoice Endpoint’ fields to the Account / Settings screen Account tab
Modified Invoicing logic to adjust invoices with a negative balance to a zero balance value as new invoices are created and the negative balance is applied to the next invoice. This approach addresses issues with aged invoice balance reports
Added a new Account Id invoice token
Added a currency 'Format' field when configuring invoice or credit note templates. This setting allows the default formatting for tokens of type 'Money' to be overridden on invoices/credit notes
Adjusted validation to allow using the same Alias name when adding custom reports to invoice templates
...
Many UI and API validation fixes and improvements
Billing and rating performance and resiliency improvements
Security improvements
Improved performance when loading large reports
Removed the total count value from the paging controls of many screens to address performance issues
Modified package contracts to permit them to be added to an account-package with any start date, even a date that precedes the effective date of the account-package
Modified general ledger names to support up to 255 characters
Updated several screens to adhere to the standard left hand side menu format
Moved the Rating Exceptions and Import History screens into the Operations / Monitor menu
Added LogiSense Billing Entity ID, Single Sign-On URL and Billing Tenant URL details to the Owner Configuration SAML Setting tab
Fixed an SSO issue where SCIM users would remain in the SCIM default role group after a new group was configured on the user
Removed the option to add a new default account service status from the Services screen
Removed the field type 'Text' when creating custom fields to address performance issues. Existing custom fields setup with the Text field type will still be able to use this type
Fixed an issue where an account-package with an effective date time value of 00:00:00.000 could result in an extra charge for a prepaid, charge full period account package
Fixed an issue where voiding an invoice could result in an incorrect next bill date being set on prepaid account-packages with non-recurring charged services
Fixed an issue with prepaid packages where an account-service status could not be changed from a suspended status to a billable status in some scenarios
Fixed an issue that prevented the reversal of a remaining partial transaction on a sub-account if the sub-account was configured with a different currency than its invoicer account
Fixed an issue that prevented a partial reversal of a previously reversed transaction that was voided
Fixed an issue that could cause invoice re-rendering to fail
Fixed an issue where a package configured to bill on its own bill day would be set with a bill day of the 28th instead of the 1st when the account-package was added on the 29th, 30th or 31st day of the month
Fixed an issue that could generate an unexpected API error response when attempting to select a product code while creating an order
Fixed an issue where re-rating might not be triggered when an account in overage had an account-service added containing a shared bucket and the account-service was later cancelled
Fixed an issue that could cause email template tokens to fail to resolve
Added a BillAccount permission to the Account Profile permissions list to control if a user has permissions to bill an account or not
Fixed a permission issue that prevented a user with valid permissions from creating a sales order
Fixed a permission issue that prevented a user with read-only permission from accessing the package frequencies screen
Fixed several issues with data imports and the Data Import screen
Added a totalCount property to child embedded datasets for use in invoice templates
Modified the Developer / Server / API screen not to display deprecated API versions in the Version drop down list
Modified the CompanyIdentifier field to support only 20 characters to match the Avalara character limit
Modified customer portal UI to clearly indicate which payment methods are active on an account
...
API Enhancements:
API error handling fixes and improvements
Added the ability to specify a Idempotency Key which can be optionally sent in with a non-GET API request
Added a new Client ID/Secret Authentication Type for API Users (configured on the Setup / Users & Accounts / Users screen). Instead of authenticating with a username/password, with the password following password expiry rules, the user will authenticate with a Client ID (the username) and client secret (an API key), which does not expire
Deprecated APIs:
U
RAccount/Summary (all versions)
Account/Summary/Paged (all versions)
Udr/Aggregate/UsageRate (all versions)
Udr/Aggregate/UsageRate/Paged (all versions)
Udr/Aggregate/UsageRate/<id> (all versions)
v9/BillRun/Schedule//Recurring (v5-v8 versions still available)
v9/Account/Summary/{id:int} (v5-v8 versions still available)
Updated APIs:
v9/Account/Package/FromCatalog: added nonBillableServiceStatusTypeName to AccountPackageFromCatalogServiceDTO, added ImportLastUsageBilled to AccountService (but not on AccountServiceDTO)
v5-v8/Package/Frequency/id/Detail: PriceBookId is now included in the usageBucketTiers, moneyBuckets detail sections
v9/Package/Frequency/id/Detail (Get): usageBucketTiers, moneyBuckets, defaultUsageBucketTiers, defaultMoneyBuckets are no longer returned in the detail section
v5-v8/Package/Frequency/id/Detail (Get): PackageFrequencyDetail.usageBucketTiers, PackageFrequencyDetail.defaultUsageBucketTiers to use new DTO UsageUnitsBucketTierDTO PackageFrequencyDetail.moneyBuckets, PackageFrequencyDetail.defaultMoneyBucketTiers to use new DTO MoneyUnitsBucketTierDTO
v9/Package/Frequency/id/Detail (Post, Put): PackageFrequencyDetail.usageBucketTiers, PackageFrequencyDetail.defaultUsageBucketTiers to use new DTO UsageUnitsBucketTierDTO PackageFrequencyDetail.moneyBuckets, PackageFrequencyDetail.defaultMoneyBucketTiers to use new DTO MoneyUnitsBucketTierDTO
v9/Template (Get): made public
v9/Template/{id} (Get): made public
V9//Invoice/Item (Get): Added public int InvoicerAccountId { get; set; }, public string InvoicerAccountName { get; set; }
V9//Invoice/Item/Paged (Get): Added public int InvoicerAccountId { get; set; }, public string InvoicerAccountName { get; set; }
V9//Invoice/Item/Paged/Detail (Get): Added public int InvoicerAccountId { get; set; }, public string InvoicerAccountName { get; set; }
V9//Invoice/Item/{id} (Get): Added public int InvoicerAccountId { get; set; }, public string InvoicerAccountName { get; set; }
V9//Invoice/Item/{id}/Detail (Get): Added public int InvoicerAccountId { get; set; }, public string InvoicerAccountName { get; set; }
v9/Payment (Get, Post): Added public int PaymentStatusTypeId { get; set; }
v9/EventSubscription/Webhook (Post, Patch): Added public string OAuthClientSecret { get; set; }
Account/Package/{id}/Detail (Get, Post, Patch): Removed AccountService CurrentRatePlan from accountServices Detail and removed AccountPackageRecurringPriceTier CurrentRatePlan from AccountPackageRecurringPriceTier Detail
Account/Package/Paged/Detail (Get, Post, Patch): Removed AccountService CurrentRatePlan from accountServices Detail and removed AccountPackageRecurringPriceTier CurrentRatePlan from AccountPackageRecurringPriceTier Detail
Account/Service/{id}/Detail (Get, Post, Patch): Removed AccountService CurrentRatePlan from Detail
Account/PricePlan/{id}/Detail (Get, Post, Patch): Removed AccountPricePlan CurrentRatePlan from Detail
Account/PricePlan/Paged/Detail (Get, Post, Patch): Removed AccountPricePlan CurrentRatePlan from Detail
Package/Service/PricePlan (Get, Post, Patch): Removed RecurringPriceTier CurrentRatePlan from RecurringPriceTier Detail
v9/Owner (Get): Added public bool IsReportingDatabaseEnabled { get; set; }
v9/ReportDefinition (Get, Post, Put, Patch): Added public bool UseReportingDatabase { get; set; }
AuthorizationServer/api/V9/Access/Login (Post): Added public string client_secret { get; set; }
v9/Account/Detail (Get, Post, Put, Patch): Added public ListResultsDTO<AccountTaxExemptionDTO> AccountTaxExemptions { get; set; }, removed public ListResultsDTO<AccountTaxExemptLevelDTO> AccountTaxExemptLevels { get; set; }
v9/ReportDefinition/{reportDefinitionId}/Render (Post): ReportRequest Header Updated:
Added “onDemandFilters” as of v9
Supports dataSourceName and dataSourceColumnName
filterId removed
Deprecated “filters” (can use in API version v8 and below)
v9/Usage/Rate (Get, Post, Put, Patch): Added GeneralLedgeId and ServiceTaxCategoryId
v9/Owner (Get, Patch): Added public bool BillPrepaidAdjustments { get; set; }
v9/Account/Package/FromCatalog (Post): Added public int? discountPromoCodeId { get; set; } and
public string discountPromoCodeName { get; set; }v9/Order (Get, Post, Put, Patch): Added public int discountPromoCodeId { get; set; }
v9/Usage/Rate/Group (Get, Post, Put, Patch): Added public int GeneralLedgerId { get; set; }
and public string GeneralLedgerName { get; set; }v9/Usage/Rate/Group (Post, Get): Added public bool IsTaxInclusive { get; set; }
v9/Account (Get, Post, Put, Patch): public bool ZeroInclusiveTaxWhenExempt{ get; set; }
v9/Account (Post, Put, Patch, Delete):
Added optional custom taxAddresses to details
public ListResultsDTO<TaxAddressDTO> TaxAddresses { get; set; }
and TaxAddressDTO:
public string Name { get; set; }
public bool IsShared { get; set; }
public int? AccountId { get; set; }
public string AccountName { get; set; }\
public int AddressId { get; set; }
public bool SaveTaxAddressOnInvoicer { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public int? StateId { get; set; }
public string StateName { get; set; }
public string StateCode { get; set; }
public int? CountryId { get; set; }
public string CountryName { get; set; }
public string CountryCode { get; set; }
public string ZipCode { get; set; }
public long? TaxJurisdictionCode { get; set; }
public string CityName { get; set; }
public DateTime? TaxJurisdictionCodeUpdated { get; set; }
public long? TaxJurisdictionCodeOverride { get; set; }
public bool? IsIncorporated { get; set; }
v9/Account/Package (Get, Post, Put, Patch, Delete): Added ability to set optional shared taxAddressId or custom taxAddress in details
v9/Account/Package/FromCatalog (Post): Added ability to set optional shared taxAddressId or custom taxAddress
v9/Order (Get, Post, Put, Patch, Delete): Added ability to set optional shared taxAddressId or custom taxAddress in OrderPackage
v9/Rerate (Get, Post, Put, Delete): public in v5, internal in v6 onwards
v9/Account/Package (Post, Patch): Added int IsFreeTrial { get; set; }
v9/PaymentMethod/CreditCard (Post): Added int PaymentGatewayId and string PaymentGatewayName
NOTE: this is a Breaking Change as more than one PaymentType is now permitted to use the same CardType on different PaymentGateways. Prior to this change a CardType could only be used once, so a PaymentType was unique
This does not affect Adyen integrations since only one Adyen PaymentGateway is allowed
For Spreedly, if a CardType is used multiple times, then the PaymentGateway MUST be provided for these API routes, or an error will be returned
v9/PaymentMethod/BankAccount (Post): Added int PaymentGatewayId and string PaymentGatewayName
NOTE: this is a Breaking Change as more than one PaymentType is now permitted to use the same CardType on different PaymentGateways. Prior to this change a CardType could only be used once, so a PaymentType was unique
This does not affect Adyen integrations since only one Adyen PaymentGateway is allowed
For Spreedly, if a CardType is used multiple times, then the PaymentGateway MUST be provided for these API routes, or an error will be returned
v9/PaymentMethod (Get): Added int PaymentGatewayId and string PaymentGatewayName
New APIs:
v9/
Updated APIs:
For additional API documentation please see the API Reference documentation on logisense.com.