...
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:
Account/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:
v9Package/Frequency/{id}/PriceBook/{id}/Currency/{id}/UsageBucketTier (Get)
v9/Package/Frequency/{id}/PriceBook/{id}/Currency/{CurrencyCode}/UsageBucketTier (Get)
v9/Template/CreditNote (Post)
v9/Template/Invoice (Post)
v9/Template/CreditNote/{id} (Put)
v9/Template/Invoice/{id} (Put)
v9/JsonApi/ApiVersion/Available (Get)
v9/UsageRatedExceptionSchedule/Reprocess (Post)
v9/UsageRatedExceptionType (Get)
v9/Administration/User/* (Get, Post, Patch)
v9/PaymentMethod/Import/Sync (Post)
V9/CustomDataSource/ByConnection/{id:int}/Paged?useReportingDatabase=(true/false) (Get)
V9/CustomDataSource/ByConnection/{id:int}?useReportingDatabase=(true/false) (Get)
v9/Account/ByName/Search (Post)
v9/Account/ByHierarchy/Search (Post)
v9/Account/[id]/Balance?asOf=[Date] (Get)
v9/ResourceServer/api/Ping (Get)
v9/AuthorizationServer/api/Ping (Get)
v9/UsageIdentifier/ByIdentifier/Search (Post)
v9/Account/{id}/TaxAddress/Search (Post)
v9/Account/{id}/TaxAddress/AvailableFor/Search (Post)
v9/Account/Package/ByExtension/Search (Post)
...