Skip to main content
Vindicia Knowledge Center

CashBox Release Notes 10.0.0

CashBox Release Notes 10.0.0

Features and Enhancements

This release includes the following new features and enhancements.

Support for Proration on AutoBill Items with License-Based Rated Products When Modified

Previously, when an AutoBill with an item containing a license-based rated product was modified, that item's charges would not support proration. As of this release, changes to license-based item quantities will support full proration via the API (version 10.0 or greater). This will also be supported in the portal (a new Vindicia configuration will support proration via the portal only for merchants configured for 10.0 or greater API use -- merchants predominantly using earlier versions of the API will see legacy behavior in the portal as well). This change results in significant changes to API that can create or modify an AutoBill (see Programming and API guides for 10.0).

Ticket: CB-14657 

Support for UK Direct Debit (via GoCardless)

CashBox now supports UK Direct Debit as a payment method for all transactions with a direct integration to GoCardless. More information on GoCardless and UK Direct Debit is available at - Vindicia will happily make introductions to GoCardless for our merchants.

Ticket: CB-14871 

Support for the Modify AutoBill Functionality in CashBox Portal

Previously, the CashBox Portal supported changes to existing AutoBills using functionality analogous to the API methods upgrade, addProduct, removeProduct, and update. As of this release, the Portal will use the more broadly functional modify approach, which allows advanced changes and transitions to be enacted on AutoBills. This will also be supported in the Portal (a new Vindicia configuration will support proration via the Portal only for merchants configured for modify in the Portal -- merchants predominantly using earlier versions of the API will see legacy behavior in the Portal as well.) 

Ticket: CB-16342 

Billing Plan Cycle Added to Transaction Search Display Field Options

A new field is available as an optional display item for the Transaction search results: billingPlanCycle indicates which cycle of the current billing plan was billed using the particular transaction. If the AutoBill is modified to change billing plans the cycle index will reset. This value is useful for comparing to Billing Cycle to identify when and if a plan change has occurred.

Ticket: CB-17248

Seasonal Billing Support Improvements

Seasonal Billing has been improved to include support for: Pre-Season signups retaining their specified billing schedule once the season starts; using infinitely recurring billing plans with cycles less than the season while automatically preventing billing outside of the season (e.g. monthly evergreen plans for a 6 month season offering month-to-month service); automatic proration for the last month of such an evergreen plan billed seasonally.

Ticket: CB-18154 

Adding Support for Refunding One-Time Transactions Using the Merchant-Accepted Payment Method When the Transaction is 100% Paid by Currency Credits

CashBox will now support issuing refunds against transactions paid using the Merchant-Accepted Payment Method with 100% of the transaction amount covered by currency credits (in which the credits are restored to the AutoBill or Account.) 

Ticket: CB-18309 

The Avalara Tax Engine Will Now Support Non-US/Non-CA Tax Exemptions Managed in the Avalara Portal or via the CashBox Portal

Non-US and Non-CA Tax Exemptions may now be used via either system’s portal.

Ticket: CB-18830

Label on the Sales Tax Detail Report Screens Updated to Avoid Confusion

The Sales Tax Detail HTML option is a summary report aggregated by jurisdiction. The CSV version is a detailed report including all transactions and relevant tax detail. The labels onscreen and in the CashBox guides will be updated to avoid confusion by users who might expect the different versions to contain the exact same content.

Ticket: CB-18997 

PayPal Express Checkout: New Mapping of Billing Statement Identifier to PayPal Billing Agreement Description

PayPal: The CashBox Billing Statement Identifier assigned to the one-time transaction or AutoBill will now be presented to PayPal in the L_BILLINGAGREEMENTDESCRIPTION0 field to allow for descriptive display on the PayPal screens.

Ticket: CB-8635 

Added Support for Forcing Account-Level Tax Exemption Using SOAP API (for AvaTax)

The Account object used in any SOAP method has a new field added with 10.0.0: taxType accepts a text string intended to represent an Account-level forced tax exemption. This does not require a pre-defined exemption. When the value matches either the EntityUseType or CustomerUsageType (in some documents, referred to as Entity Use Code) defined in AvaTax, any transaction belonging to the account will be exempt from taxation regardless of whether individual exemptions are filed or not. This feature requires the use of a tax engine other than the legacy Vindicia Tax service (pre-5.0.) 

Ticket: CB-19162

Bug Fixes

The following Bugs were fixed in 10.0.0:

Ticket No.




CashBox Portal: An already upgraded AutoBill (pre-upgrade version) was editable.

Once an AutoBill is upgraded (using the pre-5.0 AutoBill.upgrade API or Portal method) it is displayed and referenced for historical purposes but should not be editable. The Portal has been fixed to prevent editing the upgraded AutoBill. The new version of the subscription is still editable.


The API method BillingPlan.update() returned a 200 OK result even when changes were not applied.

When updating Billing Plan definition using the update API method, a 200 OK result could be returned when the changes were not applied. This behavior has been corrected to return the accurate response code based upon the results of the update call.


Transaction.fetchDeltaSince() returns 200 OK with no results if the start/end timestamp values passed in are just date without time stamp.

The parameters timestamp and endTimestamp in the API method Transaction.fetchDeltaSince() require both a date and time component. When only dates were specified, the call returns a 200 OK response code with no transaction records in the return. The call will now return a 400 error as intended.


BillingPlan.fetchByMerchantEntitlementId() returns eradicated billing plans.

BillingPlan.fetchByMerchantEntitlementId() is intended to return all relevant Billing Plans (Active or Inactive.) It should not return Plans that have been eradicated (completely deleted before use with an AutoBill.) The API has been updated so that eradicated Billing Plans are not returned.


AutoBill.makePayment() returned internal database ID value.

Additional internal identifiers were included with the returns of the AutoBill.makePayment() API method. The API has been updated so that only the expected merchant defined and external identifiers are returned to avoid confusion.


Product.update API calls that did not specify a valid Product Identifier were returning 500 error response rather than 400.

AutoBill.grantCredit API calls that did not specify a valid Product Identifier were returning 500 error responses. This is an error condition - you must specify the Product to be updated. But the error should be a 400, not a 500. The fix will return the proper 400 error (for all versions of the API.)


AutoBill.upgrade() API method with effectiveDate = today can over credit the customer if prices are on the AutoBill items.

The API method has been fixed to ensure that credits or debits are accurate regardless of the pricing strategy when AutoBill.upgrade() is used.


RatePlan.fetchUnbilledRatedUnitsTotal() is ignoring pagination parameters.

The API method has been fixed to properly react to the specified pagination parameter (pageSize.)


Race condition in creating chargebacks for the same card at the same time render chargeback records unviewable in CashBox Portal.

This has been fixed. In the rare cases where the chargeback or payment methods are created simultaneously they will be properly identified and viewable using the Portal and the API.


When a Billing Plan has no currency defined on it and the Billing Plan currency doesn't match the AutoBill's currency, Portal validation prevented the creation of a plan with a Free billing period.

The Portal validation for Create Billing Plan screen has been updated to not error in this valid but rare condition.


Setting AutoBillItem startDate to a historical date when using AutoBill.migrate() returns an error.

The API (beginning with version 5.0) has been updated to prevent this error.


Three new optional fields added to Transaction Refund Detail Report.

These three fields have been added to the Refund Detail Report:

  • Affiliate ID
  • Sub-Affiliate ID
  • Billing Plan ID


AutoBill.migrate(): Setting MigrationTransaction.billingDate does not set Migration.timeStamp.

The API method has been updated to set the timestamp properly.


Transaction Exception by Affiliate report not limiting results using specified dates.

The report has been updated to ensure that specified date constraints limit the displayed results.


When creating a new Billing Plan in the CashBox Portal with Seasonal Billing and selecting Run the set of Billing Periods every... with Season as the unit, an error prevents saving the plan.

Faulty validation logic in the Portal cause an error when Run the set of Billing Periods every... use unit of Season. This only impacted new Billing Plans. This validation logic has been fixed, allowing this configuration to be properly set and have the billing plan saved when using the Portal.


Account.grantCredit and AutoBill.grantCredit API calls that did not specify a valid amount were returning 500 error response rather than 400.

Both Account.grantCredit and AutoBill.grantCredit API calls that did not specify a valid credit amount were returning 500 error response. This is an error condition - you must specify a non-zero amount to credit. But the error should be a 400, not a 500. The fix will return the proper 400 error (for all versions of the API): 400 Missing or negative amount for one or more currency credits.


Transaction generated as the result of an AutoBill.modify call can include the billingStatementIdentifier of the replaced Product.

Transactions generated from AutoBill.modify will now only include the billingStatementIdentifier of the replacement Product, as expected.


Campaign code applied at the AutoBill level assigned to a zero price item instead of an eligible billing plan.

Merchants (via the API or the CashBox Portal) can directly apply Campaign Codes to the Billing Plan or any of the AutoBill Items.  However, they can also apply the code to the entire AutoBill and allow CashBox to determine where to best apply the discount (allowing for eligibility.) The logic governing the automatic assignment has been corrected to ensure that all discountable and eligible items or plans are considered before an eligible zero-dollar item.


Refund emails sent to the child account, not the parent account.

Refund notifications should be sent to the paying account. In a parent-child relationship, if the parent's payment method is paying for a child accounts purchases, any refund notification should go to the parent account's email address. Email routing has been updated to achieve the proper behavior in these cases.


Failed refunds for some Chase Paymentech Transactions not reverting to Captured status properly.

When a refund fails during some points of the processing cycle for Chase Paymentech, the Transaction is left in Refunded status. Impacted Transactions have been corrected. The process has been fixed to ensure all failed refunds update Transaction status properly.


Campaign IDs on transaction items in Transaction.authCapture are reported back incorrectly.

When multiple different Campaigns are specified for individual items on a submitted transaction, discounts are properly applied but the first Campaign specified is shown as if it was applied to all items. This is a display/presentation error only -- it has been corrected so that the proper Campaign codes are displayed.


Campaign Redemptions Report returns No Data when price is $0.00 or empty.

When an AutoBill's total or net price was 0.00, Campaigns applied to that AutoBill were not showing on the Campaign Redemption Report. With this fix, AutoBills whose post-discount net price is 0.00 will be shown on the report.


Campaign Redemptions Report returns No Data when Campaign is applied only to the Billing Plan level of an AutoBill.

The report has been updated to ensure that all redeemed Campaigns are returned.


Calling AutoBill.cancel() using merchantAutoBillId to identify the AutoBill errors if the AutoBill has been upgraded (using AutoBill.updgrade API method.)

The API method has been updated to accept the merchantAutoBillId for upgraded AutoBills by acting upon the active version of the subscription (the latest AutoBill) as expected.


Transaction.fetchDeltaSince() returns missing Status Log entries when no payment method is present on the Transaction.

All versions of the API have been modified so that complete Status Logs are presented in the return regardless of the presence of a Payment Method.


Multiple modifications to some AutoBills can lead to incorrectly displayed Future Billing amounts (in API and Portal.)

AutoBill.fetchFutureRebills() (and Portal display) incorrectly calculates future billing amount for display in some circumstances, stemming from multiple modifications to the AutoBill during processing.


Account Updater changes not applied to AutoBills on child accounts.

Changes to Credit Card due to Account Updater updated the Payment Method on the owning Account and its AutoBills. However, the change was not being applied to the AutoBills of any child accounts paid by that parent. The update logic has been fixed to apply changes on all AutoBills using the updated Payment Method.


AutoBill.cancel with settle=true not ignoring Pre-Notification Billing Amount when calculating refund.

CashBox enforces pricing promised to customers on Pre-Billing notices automatically - if pricing for a plan or product is changed between the pre-notification being sent and the next scheduled billing, CashBox will adjust the new pricing to match the amount which was promised. This logic is erroneously applying the pre-billing pricing adjustment when the AutoBill is canceled in between the notice and the scheduled billing - leading to an in accurate refund or settled amount in some cases. This behavior has been fixed so that settlement from a canceled AutoBill will ignore the price change and properly refund the prorated amount of the previous billing's charge.


Transaction Search Results with the optional Exceptions field selected were missing data from fields right of this column (BillingCycle and RetryNumber.)

This has been fixed so all data is displayed in the report in all cases.


CashBox portal: Chargeback Summary Report failed to run when no dates were specified.

The report logic has been updated to run without any date constraints. This was a known issue from 9.0, fixed in 10.0.


CashBox Portal: Projections Detail Reports run using the schedule feature shows useless HTML code on the reports list screen.

The list page has been fixed to render properly, hiding the HTML tags. This was a known issue from 9.0, fixed in 10.0.


Sales Tax calculation could result in amounts with decimals for currencies that did not use decimals.

When CashBox calculated sales tax for currencies that do not use decimals, certain calculation and rounding situations could result in a decimal amount being charged - which would lead to rejection by the payment processor. These situations have been identified and fixed so that the resulting amounts align with the currency definition and round accordingly.


Transaction.fetchByAccount for some transactions experienced long return times.

Performance for Transaction.fetchByAccount has been optimized to ensure a faster response in line with service level agreements.


Unable to view certain transactions in CashBox Portal (blank billing addresses.)

The Portal was becoming unresponsive when trying to display transaction detail pages for transactions that had payment methods with blank billing addresses when the Account had a blank shipping address. This has been corrected so that the transactions are properly viewable within CashBox Portal.


Active AutoBills Report not displaying correct columns in CSV download.

When the Download as CSV option was selected for the Active AutoBills Report, the report always included only the default columns, not the columns selected by the user in the report options. This has been corrected so that the requested columns are included in the resulting download.


Transaction data from transactions created with Transaction.migrate in 9.0 missing link to AutoBill.

The Transaction.migrate code has been fixed to ensure that transactions created as part of a migrated AutoBill include the proper identifier for that AutoBill.


AutoBill.modify() calls specifying dryrun = true do not prorate properly if AutoBill status is New due to no pricing on items/billing plan, leading to inaccurate price quotes.

This has been corrected to ensure accurate pricing quotes for changes resulting from AutoBill.modify().


CashBox portal: the ability to issue multiple refunds at once was not working.

In the CashBox Portal, the Issue Multiple Refunds link was not showing in all cases. This has been corrected so that users with the proper permissions may perform this function.


AutoBill.update() with the dryrun flag set to true but specifying an already existing AutoBill returned inconsistent/incomplete AutoBill data.

In the return to AutoBill.update() using 9.0 API, specifying both an existing AutoBill Identifier and dryrun=true would result in incomplete or inconsistent data content for the returned AutoBill object. This has been corrected so that valid calls return the complete AutoBill and invalidly constructed calls error properly.


Email Template tags total_discount and total_before_discounts were not properly populating for one-time transactions.

The real time inbound success template was rendering blank values for tags total_discount and total_before_discounts. This has been fixed and the tags now populate with the proper values.


Editing a Billing Plan in CashBox Portal that has large numbers of AutoBills currently using the plan could cause the Portal page to become unresponsive.

CashBox prevents certain changes to the definition of a Billing Plan if there are existing AutoBills using that plan. When there are very large numbers of these AutoBills, the validation check can get long and cause the Edit Billing Plan page in the Portal to become unresponsive. The Portal validation has been optimized to handle this situation, and allow the checks to happen without preventing users from editing the plan in the Portal.


Some AutoBill Merchant Data (Name-Value Pairs) are not being inherited by resulting transactions (if created by 9.0 API.)

Some CashBox Name-Value Pairs assigned as Merchant Data to AutoBills created or modified using the 9.0 API were not being inherited on the transactions resulting from that AutoBill. This included vin:ignoreCredits. This has been fixed so that all valid AutoBill merchant data will transfer to the resulting Transactions.


Using the API to create a new AutoBill with license-based rated products and validating the payment method could lead to duplicate initial events being recorded.

When calling for payment method validation and creating a new AutoBill (AutoBill.update API method) with one or more license-based rated products having initial events declared, the initial event may get recorded multiple times. This would artificially inflate event counts and the event history associated with the account or AutoBill. Changes have been made to ensure that only the actual initial event gets recorded for each item when the AutoBill is created.


Email Template tags total_discount and initial_price have been added to the Responsys integration.

Email template tags total_discount and initial_price were missing from the template/notification integration with Responsys. They have been added.


AutoBill.grantCredit API calls that did not specify a valid AutoBill Identifier were returning 500 error response rather than 400.

AutoBill.grantCredit API calls that did not specify a valid AutoBill Identifier were returning 500 error response. This is an error condition - you must specify the AutoBill to which credit is to be granted. But the error should be a 400, not a 500. The fix will return the proper 400 error (for all versions of the API.)


Complex AutoBill Cancels with a mix of taxed pre-paid and post-paid items which request Settlement did not get refunded properly.

When some AutoBills were canceled with the Settle option selected, if it contained both pre-paid and post-paid items with taxes applied, and if the prepaid items were significantly higher priced than the post-paid, the tax calculation complexity could lead to the refund not being calculated which under-credited the overall settle transaction. Note - there have been no reported incidents of this issue -- it was caught by routine QA testing. This is a very rare scenario. The update will fix the problem, ensuring that the post-paid charges being settled are assessed properly when immediate settlement is required.


Transactions using MOLPay Hosted Pages payment method authorized by MOLPay but never finalized by merchant did not get refunded properly.

Transactions using the newly introduced MOLPay Hosted Pages payment method for new one-time orders require that both MOLPay and the merchant front end confirm the successful status. When MOLPay authorizes the charge but the Merchant front end does not, CashBox should refund the transaction at MOLPay. A bug was preventing this refund. The problem has been resolved and will now behave as intended.


Upgrading AutoBills via CashBox Portal erroneously removed entitlement definition for some Billing Plans.

A change introduced in November 2014 (9.0) led to conditions in which an AutoBill that was upgraded (with a Billing Plan change) using the CashBox Portal could unintentionally remove the incoming plan's defined entitlements. This led to any subscription using that Billing Plan losing the intended entitlements. This bug was limited to Billing Plans granting entitlement, which had multiple upgrades (as the incoming or new plan) via the Portal since December 2nd, 2014. The Portal behavior has been corrected so that the plan's defined entitlements are not affected. The upgraded subscription and all users of that Billing Plan will receive entitlements as defined by the merchant.


AutoBill entitlement status inconsistency between AutoBill Search Result and AutoBill View.

In the CashBox portal, the AutoBill search results were displaying the flag, which indicates whether the AutoBill is granting any service entitlements currently, with outdated logic. The accurate indicator is used on the AutoBill detail page and in reports. The search results display has been updated to use the accurate source for Entitled? field.


Diner’s Club Credit Card transactions failing for Global Collect.

Certain ranges of Diner's Club cards were mapped to incorrect GlobalCollect Payment Product ID and failed processing erroneously for certain merchants. The issue was limited to a very small number of transactions. Impacted merchants have been notified. The correct Identifiers have been populated and these particular card types will process normally.


Transaction.fetchDeltaSince() API calls using an invalid timestamp value were erroring with a 500 response rather than 400.

This valid error condition will now return a 400 instead of a 500.


Transactions using the hostedPages payment method with MOLPay were displaying the generic "all" Payment Product ID.

The sub-identifier used to indicate which of the hosted page's payment options were selected and used by the user were being identified by the generic MOLPay value "all." This has been updated so that the actual product indicator will be populated.


Exactly even dollar amounts with no decimal failing checksum validation for MOLPay transactions.

The validation checksum logic has been updated so that MOLPay transactions process properly.

CashBox for
Salesforce (Basic)

Learn More
CashBox for Salesforce (Basic)


Learn More

CashBox for
Salesforce (Premium)

Learn More
CashBox for Salesforce (Premium)
Back to Top