Skip to main content
Vindicia Knowledge Center

CashBox Release Notes 12.0.0

CashBox Release Notes 12.0.0

Features and Enhancements

This release includes the following new features and enhancements:

New SOAP API method fetchCreatedSince for Account object  

A new SOAP API method, Account.fetchCreatedSince, is introduced to detect Accounts based on creation date. fetchCreatedSince returns Account objects created between a specified time window. For more information, see Account Methods in the CashBox API Reference Guide.

Ticket: CB-8934 

Disallow Refunds on Transactions with Associated Chargebacks

As of this release, CashBox will no longer allow refunds against transactions that have Chargbacks against them. In the GUI, this is achieved on the Transaction View page, by not showing the Issue Refund link when the Transaction already has a Chargeback against it. On the Transaction Search Results page, the checkbox for transactions with a Chargeback against them is not shown. In the API, CashBox returns an error for a Refund.perform() call on a transaction with a Chargeback against it.

Ticket: CB-9691 

Transaction SOAP API Methods auth and authCapture No Longer Require Defined Payment Method for Dry Runs

The Transaction.auth() and Transaction.authCapture() methods have been enhanced so that they do not require a payment method to be specified if dryrun=true.

Ticket: CB-14830 

Enhancement to Transaction.authCapture() SOAP API Method to Support Intentional Use of Credits Without a Predefined Payment Method

Previously, customers could pay for a transaction with currency credits present in their accounts, provided that a sourcePaymentMethod was specified. In that case, if there were insufficient credits available to cover the cost of the transaction, the remainder was charged against the sourcePaymentMethod.

In the current release, Transaction.authCapture() has been enhanced to allow customers to pay for a transaction with the currency credits present in their accounts, even when there is no sourcePaymentMethod specified, provided there is sufficient credit to cover the cost of the transaction. However, if there is insufficient credit in the account to pay for the transaction, and no sourcePaymentMethod is specified, the transaction is declined.

Ticket: CB-17914

Provide Key "Original Activity" Information to Transaction Object (Relevant to Retries)

In the 12.0.0 SOAP API, four new fields are added to the Transaction object, allowing for easy association of a retry transaction to its original transaction. The fields are accessible directly from the object or, additionally, the name-value pair subobjects that matched this data, which are still present for backwards compatibility.

  • Original Activity Date—The date of the original transaction attempt for this billing period; for one-time transactions this is null.
    • [Vindicia Support/Partners—this is the date of the original_activity for the governing transaction_billing that spawned the transaction (null for one-time transactions or any transaction not part of an AutoBill.]
  • Retry Number—The number indicating which attempt this transaction represents for a single billing period (also known as the Retry Count.)
    • [Vindicia Support/Partners—​​​​​​​the index that counts the attempt of the particular transaction_billing represented by this transaction.]
  • AutoBill VID—The Vindicia Record ID (also known as the VID) of the AutoBill that owns the transaction. Null for one-time transactions or any transaction not associated with an AutoBill.
  • ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​Merchant AutoBill Identifier—The merchant-specified identifier for the AutoBill that owns the transaction.
    • [Vindicia Support/Partners—​​​​​​​This is the product_serial of the AutoBill that “owns” the transaction. Null for one-time transactions.]

Ticket: CB-19168

Unique ID for Transaction Items Exposed Via CashBox Portal and SOAP API

A Transaction item’s INDEX field will now uniquely identify that item within its transaction. When concatenated or combined with any of the transaction's unique identifiers, the INDEX also provides a globally unique identifier for each item.

Ticket: CB-19197

Original Activity Date Added to Transaction Search

A Transaction Search in the CashBox Portal now includes an optional Original Activity column in the search results, which indicates the date of the original transaction attempt for this billing period.

Ticket: CB-19761

Upgraded the FirstData Processor, Adding CashBox Select and Account Updater Support

CashBox supports First Data Merchant Services' (FDMS) latest integration platform, Compass. Current customers who wish to upgrade to this latest integration (to add Account Updater and/or Select features) need to obtain new Merchant IDs from FDMS and provide this to Vindicia.

Ticket: CB-19763

Bug Fixes

The following Bugs were fixed in 12.0.0:

Ticket No. Summary Description


500 Internal Server Error returned for AutoBill.update() when an invalid Campaign Code is applied.

The AutoBill Update call was returning a Process failed (Internal) error response for a misapplied coupon code instead of the expected return string: Given coupon or promotion code is not applicable to the products in this AutoBill. The error response now returns the proper 400 code with explanatory message.


Autobill.cancel() with Settlement refund potentially inaccurate when last transaction is a migrated transaction.

When an AutoBill is cancelled with the Settlement option set to true, where the most recent transaction was migrated into CashBox rather than generated by the system, the calculated refund could be based upon the defined pricing of the AutoBill (including any discounts applied, etc., for that particular billing period.) However, as a migrated transaction, it could have been priced differently than expected. This could lead to prorated refunds based on a different amount than the consumer actually paid previously. This issue is limited to migrated transactions for AutoBills cancelled within the first post-migration period, where pricing on the transaction was customized. The behavior in CashBox has been enhanced to ensure that that actual pricing on the most recent transaction is used in these cases rather than relying upon the defined pricing of the AutoBill.


Updates made to Payment Methods on the last day of entitlement for associated AutoBills were not triggering a final Save attempt.

When an AutoBill was in Hard Error status, after a last configured retry attempt, only an update to its Payment Method could lead to another charge attempt before the AutoBill was permanently suspended for non-payment. When these updates were made on the last day of entitlement, after the payment processing of batches for that day, a final attempt was not being initiated. The behavior has been adjusted so that updates made up until midnight (effectively, 23:59:59) of that last day will trigger a final Save attempt.


Authorization transactions from dryruns (as a result of the Transaction.auth SOAP API method call) were visible in the Portal and transaction fetch results.

The Authorization-only call simulated transactions from Transaction.auth() when dryrun=true that were showing in the portal and related API results as if they were real transactions. This behavior has been corrected, and the simulated transactions are no longer visible outside of the specific dry run call that created them.


CashBox Portal displaying discounted Free Plan/Products as a negative.

When a particular AutoBill’s billing period had no charges (free or $0 plan and product-based items) and had an active discount Campaign applied, the portal displayed the billing amount as a negative equivalent to the discount. This did not affect actual billing but led to confusing portal display. This behavior has been corrected to indicate the actual and intended pricing of 0.00 for that period.


The AutoBill.modify() SOAP API method did not support removal of items with the same product ID, even when only one of them was currently active.

AutoBill.modify() now supports removal of an item by product ID even if another item with that product has previously been removed.


Transaction.auth() SOAP API calls made with dryrun=true could still debit Account Credits.

Dry Run methods should not create lasting impact on the related Accounts, AutoBills, or Transactions. Transaction.auth() calls made with dryrun=true could lead to permanently debited credits from the Account-level credit balance under the same conditions resolved with CB-15234 – that fix will also prevent Account credits from ever being debited by a dry run authorization.


AutoBill.update calls with dryrun set and no merchantAccountId passed in were incorrectly returning an ORA-01400 instead of a 400 error response.

The AutoBill.update call, when dryrun is set to true and no merchantAccountId and VID is provided, now returns a 400 with the error message: Need to specify merchantAccountId or VID.


When a nonexistent AutoBill was passed in to AutoBill.delayBillingToDate, the system responded with an incorrect 500 error response. It should return a 400 error response stating that the AutoBill was not found.

The expected 400 error response will now be returned.


AutoBill.modify() Incorrect Debit Calculation on migrated AutoBill with a MigrationTransaction item.

No Change. Clients reporting this condition were advised to make a code change for their integration, whereby they set the billingDate to the same value as servicePeriodStartDate to resolve the unexpected condition.


AutoBill.finalizePayPalAuth() was incorrectly returning a 500 error response (Internal server error) for billing plans with no billing periods defined.

AutoBill.finalizePayPalAuth() now correctly returns a 400 error response with BillingPlan has no billing periods error message for billing plans with no billing periods defined.


Failure of Electronic Check Payment (ECP) billing after or on the specified wait period was not adjusting AutoBill status

The standard six (6) day wait period before CashBox marks ECP transactions as Captured if there has been no negative file response has been increased to include the whole calendar day of the last day (until 23:59:59) to allow more chance for receiving a negative response within the period (so CashBox never has to cancel a transaction reported as captured).

Also—Additional validation code has been put in place to ensure that hard fail negative responses properly update the AutoBill status after cancelling the attempted transaction.


AutoBill.update calls that incorrectly specified an existing AutoBill ID were returning a 400 error response and mentioning the addProduct and removeProduct method calls.

The error response being returned only applied to pre-5.0 SOAP API. For this error condition on calls made with the 5.0 or greater SOAP API, the error message text description has been updated to reference the AutoBill.modify() call that should be used in these conditions.

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