Release Notes

Important updates to the O Series REST APIs

For SaaS solutions, Vertex Release Notes communicate changes in behavior, enhancements, and features. In each release, Vertex also improves performance and quality and remediates security vulnerabilities. Release Notes are available on the Vertex Developer Network for all customers regardless of license. For specific information about a specific case, visit the Support section of Vertex Community or contact Customer Support.


O Series SR22 API Changes

New Tax Calculation API version

The Tax Calculation and Tax GIS RESTful API is updated to version 2.7.0.


JSON in the O Series Transaction Tester

In O Series, the Payload tab replaces the former XML tab in Transaction Tester and supports viewing calculation requests and responses in JSON (REST) format, alongside the existing XML (SOAP) option. You can now quickly access and share JSON payloads for REST API integrations, reducing manual effort and providing more precise results when testing transactions.


JSON support logging for the Tax Calculation API

The Tax Calculation and Tax GIS RESTful API now supports support logging for calculation requests. If you provide this attribute as part of your calculation requests, the API returns detailed logging results in your calculation request:

"applicationData": {
        "messageLogging": {
            "overrideLoggingThresholds": [
                {
                    "logLevel": "SUPPORT"
                }
            ],
            "returnLogEntries": true
        },

Logging results include full calculation details, situs logic, and response times. See Calculation API Requests for details.

New calculation fields

New fields and response values are added to calculation requests and responses in the Tax Calculation and Tax GIS RESTful API to support Conditional Procurement, Support logging for REST transactions, and tax calculation for Brazil. These changes impact tax calculation API requests and/or responses for sellers, buyers, and owners.

Calculation API fieldCalculation API field DescriptionCalculation API changes
basisReductionPercentageOverridedouble

If basis reduction applies, this value (as a percentage) replaces the percentage of the original basis amount on which to calculate tax. This value must be between 0 and 100.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
considerDiscountOnTaxableboolean

Indicates to calculate tax based on the reduced basis amount.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
destinationRateOverrideboolean

Adjusts the rate to the destination rate. When selected, the tax is calculated using the regular markup rate (MVA).
Added to the overrides
array in the pautaOverrides
object for requests and responses.
icmsStLogicComparisonstring

The ICMS-ST Logic Comparison to use in Pauta calculations related to this imposition type. Applicable only when a Pauta Override is referencing the ICMS-ST imposition type.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
overridesarray of objects

An array of override objects.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
pautaAmountdouble

The Pauta Amount to use in Pauta calculations related to this imposition type.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
pautaAdjustmentPercentagedouble

The percentage by which to change the Pauta value. This value must be between 0 and 100.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
pautaLockPercentagedouble

The maximum percentage allowed when changing the Pauta value, so changes do not exceed this cap. This value must be between 0 and 100.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
pautaOverrideThe response object when a pautaOverride is applied to a calculation.Added to the taxes element for responses.
pautaOverridesobject

One or more override arrays for Pauta calculation.
Added to the lineItems array for requests and responses
pautaPmcAmountdouble

Specifies the Pauta PMC (Preço Médio ao Consumidor or Weighted Average Price to the Consumer), the maximum price to the final consumer set by the manufacturer and published in the CMED (Câmara de Regulação do Mercado de Medicamentos) list.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
pautaPmpfAmountdouble

Specifies the maximum price or Pauta PMPF (Preço Médio Ponderado ao Consumidor Final or Weighted Average Price to the Final Consumer) defined by the Brazilian tax authorities.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
quantityTypestring enum

- VOL
- COMThe quantity type for a Pauta override. Pass VOL to calculate with quantity by volume. Pass COM to calculate with quantity by the number of units.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
strictPautaOverrideboolean

Indicates whether the pautaAmount is a strict override. This will circumvent more complex Pauta calculations and use the provided amount directly in Pauta determination.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
taxableWithoutIPIboolean

Indicates whether the current pautaOverride is taxable without IPI. This can have an impact during Pauta determination for the associated imposition type.
Added to the overrides
array in the pautaOverrides
object for requests and responses.
taxEvaluationActionResultThe action returned by the tax evaluation for a Conditional Procurement calculation.Added at the transaction-level and to lineItems for calculation responses.
taxEvaluationHoldReasonThe reason returned why a Conditional Procurement calculation was flagged as HOLD.Added at the transaction-level and to lineItems for calculation responses.
taxEvaluationHoldFlagIndicates whether the tax evaluation for a Conditional Procurement exceeds the hold threshold. Added at the transaction-level and to lineItems for calculation responses.
taxEvaluationResultThe results of a tax evaluation for a Conditional Procurement calculation.

Possible values include:

- Match
- Undercharge
- Overcharge
- Zero Charged Tax
- Delivered Duty Paid (DDP)
- Reverse Charge (for Canada only)
Added at the transaction-level and to lineItems for calculation responses.

Conditional Procurement message type

📘

Note:

Conditional Procurement calculation is released for O Series calculation APIs. Additional configuration enhancements are planned for this feature in future releases. For O Series On-Premise deployments, Monthly Data Update (MDU) 266 or higher is required for Conditional Procurement calculation.

The Conditional Procurement message type is added to calculation requests and responses for buyers (Procurement) in the Tax Calculation and Tax GIS RESTful API. This new financial event allows you to process invoice verification and accrual in a single API call, eliminating the need for multiple calls with different message types.

A Conditional Procurement calculation evaluates the difference between Vendor Charged Tax (VCT) and O Series Calculated Tax (OCT), then it applies preconfigured decision rules to determine whether to accrue or distribute tax.

See Calculate Tax as a Buyer for details, including calculation scenarios.

Vertex Validator

New Tax Calculation API version

The Tax Calculation and Tax GIS RESTful API is updated to version 2.6.0.

New request fields to support Vertex Validator

📘

Note

These fields are available only for Vertex Validator deployments.

New fields are added to calculation requests in the Tax Calculation and Tax GIS RESTful API to support Vertex Validator. These changes impact tax calculation API requests for sellers.

Calculation API fieldCalculation API field descriptionCalculation API changes
cachedbKDx+bDnkcg=boolean

Boolean that indicates whether a cached validation was used or not.
Added to the validationResult
object
cacheTimestampstring

If a cached value is returned, this field shows the time that the initial request was sent to the external service.
Added to the validationResult
object
customerNamestring

A customer's name needs to be captured to be displayed on the invoice (when generated). It may also be required by an external validation service when validating tax registration.
Added to the customer
object
isSyntaxValidboolean

Boolean that indicates whether the syntax is correct.
Added to the validationResult
object
isValidboolean

Boolean that indicates if the Tax ID is valid or not.
Added to the validationResult
object
taxNumberServicestring

An identifier for an external service responsible for validating the registration number.
Added to the validationResult
object
taxRegistrationNumberNormalizedstring

The tax registration number in a normalized form that reflects the expected syntax.
Added to the validationResult
object
validationInfostring enum

More detailed information about the processing.

Enum:

- TAX_NUMBER_SERVICE_TEMPORARILY_UNAVAILABLE
- TAX_NUMBER_VALIDATION_NOT_AVAILABLE
- TAX_NUMBER_SYNTAX_VALID
- TAX_NUMBER_SYNTAX_INVALID
- TAX_NUMBER_SYNTAX_CONSIDERED_VALID_BUT_NOT_VERIFIED
- TAX_NUMBER_VALID_ACCORDING_TO_EXTERNAL_SERVICE
- TAX_NUMBER_INVALID_ACCORDING_TO_EXTERNAL_SERVICE
Added to the validationResult
object
validationResultobject

- isValid
- isSyntaxValid
- validationInfo
- taxRegistrationNumberNormalized
- cacheTimestamp
- cached
- taxNumberService
Added to the taxRegistrations array

New response values to support Vertex Validator

New fields and response values are added to calculation responses in the Tax Calculation and Tax GIS RESTful API to support validation responses for Vertex Validator deployments. The changes impact tax calculation API responses for sellers.

O Series SR21 API Changes

New Tax Calculation API version

The Tax Calculation and Tax GIS RESTful API is updated to version 2.5.0.

Increased lookup range for coordinates

Lookups for Tax Area IDs using latitude and longitude coordinates are improved by increasing the date range of the lookups. The lookups now use data reaching back two years. O Series no longer returns Tax Area IDs that are not yet effective, avoiding associated calculation errors.

Jurisdiction ID added to override objects

To allow for more granularity when applying overrides to tax calculations, the Jurisdiction ID (jurisdictionId) field is added to override object arrays in the Tax Calculation and Tax GIS RESTful API. This change allows an override to be configured so it applies to a specific jurisdiction in O Series, while not applying to similar jurisdictions of the same Jurisdiction Level (jurisdictionType).

These override arrays now include the Jurisdiction ID (jurisdictionId) field:

  • Citation Overrides (citationOverrides)
  • Exemption Overrides (exemptOverrides)
  • Imposition Types to Process (impositionInclusions)
  • Nontaxable Overrides (nonTaxableOverrides)
  • Rate Overrides (rateOverrides)
  • Tax Deferred Percentage Overrides (taxDeferredOverrides)

This change impacts calculation requests and responses for sellers, buyers, and owners.


New calculation fields to support Brazil calculations

New fields and response values are added to calculation requests and responses in the Tax Calculation and Tax GIS RESTful API to support tax calculation for Brazil. These changes impact tax calculation API requests and/or responses for sellers, buyers, and owners.

Calculation API fieldCalculation API field DescriptionCalculation API changes
cfopTaxCodeThe CFOP code returned by the Calculation Engine.

Object

- value
- resultSource
Added to the taxes element for responses.
cfopTaxCodeOverrideint32 0 to 9999

Optional CFOP code at the line item level. When present, it overrides the Calculation Engine CFOP determination.
Added to the lineItems array for requests and responses.
citationstring length between 1 and 512

The citation value. This value references the legal document used to determine a tax rate.
Added for requests and responses:

- To the transaction-level citationOverrides array
- To the citationOverrides array in the lineItems array
- To the taxes element for responses.
citationOverridesThe array used to override the citation returned for an imposition during tax calculation. A citation references the legal document used to determine a tax rate.

Array of objects
[

- impositionType
- jurisdictionType
- citation
- jurisdictionId
]
Added as a transaction-level field and to the lineItems array for requests and responses.
deferredTaxThe deferred tax total returned for a transaction line. Added to the taxes element for responses.
informationOnly

⚠️O Series On-Premise deployments must apply Monthly Data Update (MDU) 263 or later to configure the Information Only option for imposition types.
boolean

Indicates whether the imposition type is information only. If true, the imposition type is not used to calculate tax totals, but is included to provide information about the transaction.
Added to theimpositionType
array for requests and responses.
resultSourceThe source for the CFOP tax code value returned for a transaction line.Added to the cfopTaxCode element for responses.
taxDeferredFactordouble

The factor that is used to calculate the deferred tax amount. The value is a decimal value that ranges from 0 to 1. For example, a value of 0.25 represents 25 percent.
Added for requests and responses:

- To the taxDeferredOverrides array at the transaction level
- To the taxDeferredOverrides array in the lineItems array
taxDeferredOverridesThe array used to override deferred tax. Deferred tax is shown for informational purposes only and does not impact calculations.

Array of objects
[

- impositionType
- jurisdictionType
- taxDeferredFactor
- jurisdictionId
]
Added as a transaction-level field and to the lineItems array for requests and responses.
taxDeferredPercentageThe percentage used to determine tax deferred totals that is returned by the Calculation Engine.Added to the taxes element for responses.
taxGovernRateReductionPercentageThe percentage value for the Govern Rate Reduction returned for a transaction line. Added to the lineItems array for responses.
totalDeferredTaxThe total of deferred taxes returned for a calculation. Added to responses.

O Series SR20 API Changes

New Tax Calculation API version

The Tax Calculation and Tax GIS RESTful API is updated to version 2.4.0.

New message types and request for synchronization services

New message types and a new request are added to the Tax Calculation and Tax GIS RESTful API to initiate synchronization services for transactions. Synchronization services trigger financial events that modify your transactions in O Series so your financial host system and O Series show identical results.

⚠️

Caution

Triggering synchronization services outside of the suggested time period can result in calculation errors or duplicate transactions:

  • For On-Premise and On-Demand deployments, synchronization services must be triggered prior to initiating a Tax Journal Purge that includes impacted transactions.
  • For Cloud deployments, synchronization services must be triggered within 90 days of tax calculation for impacted transactions.

This change impacts calculation requests and responses for sellers (Supplies) and buyers (Procurement).

Message type or requestEndpointPurpose
ARBillingSync message type/suppliesModify existing Accounts Receivable transactions
APInvoiceSync message type/procurementModify existing Accounts Payable transactions
APInvoiceSync message type/procurementModify existing Accrual transactions
Rollback request/transactionsRevert changes from previous synchronization events, restoring a transaction to its original state, prior to being modified

New calculation fields to support 2026 Brazil tax reform

New fields and response values are added to calculation requests and responses in the Tax Calculation and Tax GIS RESTful API to support tax calculation for 2026 Brazil tax reform. These changes impact tax calculation API requests and/or responses for sellers, buyers, and owners.

FieldDescriptionChanges
additionalCommodityCodeobject (CommodityCode)

A standardized, unique code for the product or service. The commodityCodeType of this object must be different from the commodityCodeType of the CommodityCode object.
Added to thelineItems
array for requests and responses
buyerConditionstring [ 1 .. 40 ] characters

The Buyer Condition is mandatory information for calculating taxes in Brazil. It represents the behavior of the entity that impacts tax calculation when buying goods or services.
Added for requests and responses:

- As a transaction-level field
- To the buyer object at the transaction level
- To the buyer object in the lineItems array
buyerCNAEstring [ 1 .. 40 ] characters

The CNAE (National Classification of Economic Activities) five-digit numeric code that identifies optional information for calculating taxes in Brazil. This code:
-Identifies what is being purchased by whom
-Provides more granular information as compared to the Buyer Condition
Added for requests and responses:

- As a transaction-level field
- To the buyer object at the transaction level
- To the buyer object in the lineItems array
invoiceTextTypeThe text type of the invoice text applied to a transaction.Added to the <InvoiceTexts> element in calculation responses for transactions with invoice text.
InvoiceTotalThe sum of the Total Tax Included and Extended Price, which is the amount reported for the sale of services. This response value supports future functionality for tax calculation in Brazil.Added to responses for the Quotation, Invoice, Purchase Order, and Invoice Verification message types.
natureOfFiscalOperationstring [ 1 .. 40 ] characters

NatureOfFiscalOperation is mandatory information for calculating taxes in Brazil. A two-character alphabetical code that identifies the transaction type.
Added as a transaction-level field and to the lineItems array for requests and responses.
sellerConditionstring [ 1 .. 40 ] characters

The Seller Condition is mandatory information for calculating taxes in Brazil. It represents the behavior of the entity that impacts tax calculation when selling goods or services.
Added for requests and responses:

- As a transaction-level field
- To the seller object at the transaction level
-To the seller object in the lineItems array
sellerCNAEstring [ 1 .. 40 ] characters

The CNAE (National Classification of Economic Activities) five-digit numeric code that identifies optional information for calculating taxes in Brazil. This code:
-Identifies what is being sold by whom
-Provides more granular information as compared to the Seller Condition
Added for requests and responses:

- As a transaction-level field
- To the seller object at the transaction level
- To the seller object in the lineItems array
taxCollectedFromPartyIdentifies whether the buyer (BUYER) or the seller (SELLER) is responsible for tax collection. This response value supports future functionality for tax calculation in Brazil.Added to the line-level Taxes element in responses for the Purchase Order message type.
TaxRateReductionExemptThe amount of tax exempted by way of a Single Rate calculation tax rule with a rate reduction value.Added to responses for calculations impacted by calculation tax rules with a Calculation Method set to Single Rate.
TaxRateReductionPercentageThe rate reduction applied to a calculation via a Single Rate calculation tax rule.Added to responses for calculations impacted by calculation tax rules with a Calculation Method set to Single Rate.
TotalAcctPayAcctReceiveThe Invoice Total less the Total Withheld, which is the amount paid to the supplier by the buyer. This response value supports future functionality for tax calculation in Brazil.Added to responses for the Quotation, Invoice, Purchase Order, and Invoice Verification message types.
TotalIncludedTaxThe sum of all non-withholding (WHT) taxes, which is the amount the seller pays to the tax authorities. This response value supports future functionality for tax calculation in Brazil.Added to responses for the Quotation, Invoice, Purchase Order, and Invoice Verification message types.
TotalWHTThe sum of all withholding (WHT) taxes, which is the amount the buyer pays to the tax authorities. This response value supports future functionality for tax calculation in Brazil.Added to responses for the Quotation, Invoice, Purchase Order, and Invoice Verification message types.

Brazil Drivers added to Tax Configuration API

The O Series Tax Configuration API is updated with new Brazil Drivers. Requests and responses available via the /taxability-drivers endpoint are updated to support new taxability driver types for Brazil. These changes impact configuration requests and responses that:

Correction - Audience for O Series Cloud authorization

The Audience parameter when authenticating O Series Cloud with the VERX IDP identity provider is verx://migration-api . This value is corrected for Authenticate O Series Cloud .


O Series SR19 API Changes

New field in the Calculation REST API

The Franchise Area Id (franchiseAreaId) field is added to Calculation API Requests and Responses in the Tax Calculation and Tax GIS RESTful API.

This change impacts calculation requests and responses for sellers, buyers, and owners. The new field is added at both the invoice level and the line level.