Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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)

...