- CashBox Release Notes 21.0.1
- CashBox Release Notes 18.104.22.168
- CashBox Release Notes 22.214.171.124
- CashBox Release Notes 21.0.0
- CashBox Release Notes 126.96.36.199
- CashBox Release Notes 20.0.5
- CashBox Release Notes 20.0.4
- CashBox Release Notes 20.0.3
- CashBox Release Notes 20.0.2
- CashBox Release Notes 20.0.1
- CashBox Release Notes 20.0.0
- CashBox Release Notes 19.0.1
- CashBox Release Notes 19.0.0
- CashBox Release Notes 188.8.131.52
- CashBox Release Notes 184.108.40.206
- CashBox Release Notes 18.0.0
- CashBox Release Notes 17.0.2
- CashBox Release Notes 17.0.1
- CashBox Release Notes 17.0.0
- CashBox Release Notes 16.0.6
- CashBox Release Notes 16.0.5
- CashBox Release Notes 16.0.4
- CashBox Release Notes 16.0.3
- CashBox Release Notes 16.0.2
- CashBox Release Notes 16.0.0
- CashBox Release Notes 15.0.1
- CashBox Release Notes 15.0.0
- CashBox Release Notes 14.0.0
- CashBox Release Notes 13.0.0
- CashBox Release Notes 12.0.0
- CashBox Release Notes 11.0.0
- CashBox Release Notes 10.0.0
- CashBox Release Notes 9.0.1
- CashBox Release Notes 9.0.0
- CashBox Release Notes 8.0.2
- CashBox Release Notes 8.0.0
- CashBox Release Notes 7.0.2
- CashBox Release Notes 7.0.1
- CashBox Release Notes 7.0.0
- CashBox Release Notes 6.0.0
- CashBox Release Notes 5.0.1
- CashBox Release Notes 5.0.0
CashBox Release Notes 21.0.0
Note: These release notes also include the issues from the CashBox 220.127.116.11 patch, which has been folded into the 21.0.0 release.
New Features and Enhancements
This release contains the following new features, enhancements, and improvements.
Add an option to prevent billing before specified start date (when creating AutoBills within 25-hours)
By default, when a new AutoBill creation or modification requires billing within 25-hours, CashBox does an immediate billing with full authorization to minimize merchant fees and maximize potential for dealing with payment failures while the end customer is "on line."
In support of merchants who offer a one-day initial cycle, or who require that the initial transaction date be "tomorrow" rather than "today," the 21.0 SOAP API adds a new option to AutoBill.update(), named DelayFullAuthToInitialBillingDate, allowing you to prevent immediate billing when an AutoBill is created within 25 hours of a specified Start or Bill date—forcing the billing to occur on the specified start/effective date of your change (meaning tomorrow in these cases). The new option default is "false"—but setting "true" will force a billing scheduled for tomorrow to occur then (possibly leading to an auth/validation fee tonight and another tomorrow but guaranteeing the billing date of the transaction is tomorrow).
Parallelize Catchup Billing
In 21.0 (and forward) Account.updatePaymentMethod() has been improved to reduce the time required to bill multiple AutoBills associated with an Account during an account.updatePaymentMethod()call with catchup billing behavior enabled.
In addition, Account.updatePaymentMethod() has been modified to provide a range of options when updating a payment method. The input field, replaceOnAllAutoBills, has been replaced by two new input fields:
- updateScopeOnAccount—Enumerated options controlling whether and when to replace the payment method on associated AutoBills belonging to the specified account
- updateScopeOnChildren—Enumerated options controlling whether and when to replace the payment method on associated AutoBills belonging to the child accounts of the specified account
With these fields you can now specify, separately for AutoBills associated with the Account and AutoBills associated with the account's child accounts, whether to:
- not bill on any AutoBill for the associated account(s). Do not replace the payment method on the associated account(s).
- bill only on those ready AutoBills whose payment method matches the default payment method on the specified account. Replace the payment method only on those AutoBills whose payment method matches the default payment method on the specified account.
- bill all (account/child) AutoBills with payment methods belonging to the specified account that have invoices in a Due status (billings in retry, due, overdue, and so on) and are ready to bill. The payment method is replaced on those billed.
- bill all (account/child) AutoBills with payment methods belonging to the specified account that have invoices in a Due status (billings in retry, due, overdue, and so on) and are ready to bill. The payment method is replaced on those billed as well as on any related AutoBills with a payment method matching the specified account's default payment method.
- bill all (account/child) AutoBills with payment methods belonging to the specified account that have invoices in a Due status (billings in retry, due, overdue, and so on) and are ready to bill. The payment method is replaced on any Active related AutoBills.
Account.updatePaymentMethod() also now returns successes and failures by invoiceID. See the 21.0 API Guide for details
Support Edgil Payment Processor for CashBox (tokenized CC processing) + Select Level 1
CashBox now supports processing credit cards and tokens for credit cards via the Edgil Payment Gateway.
AutoBill subscription balance calculation enhanced
The AutoBill.subscriptionBalance calculation has been enhanced to include the amounts from advance and arrears billing scenarios. This will support including the balance from invoices that have been billed/posted, but whose service period has not yet begun—giving merchants the most accurate picture of the AR/Outstanding balance for a given invoice and subscription.
Additional Tax Item detail (sourced from external tax engines)
Four additional tax detail fields have been added to the Transaction item's tax item detail in the API (effective version 21.0 and later). These fields will be populated by what is provided by the merchant's chosen tax engine for each returned tax/fee. Field definitions and existing mappings include the following:
- externalTaxName—The name for the tax or fee as provided by the tax service; Corresponds to “Imposition” in Vertex and “TaxName” in Avatax.
- externalTaxCategory—The category of tax or fee as provided by the tax service; Corresponds to “ImpositionType” in Vertex and “TaxGroup” in Avatax
- taxRate—The effective rate used to calculate this tax as provided by the tax service; Corresponds to “EffectiveRate” in Vertex and “Rate” in Avatax
- externalJurisdictionName—The name of the tax jurisdiction for this tax or fee as provided by the tax service; Corresponds to “Jurisdiction” in Vertex and “JurisName” in Avatax
The following bugs were fixed in this release.
|CB-25818||AutoBill.cancel() causing duplicate payments when called on AutoBill's bill day while a recurring transaction is in flight
When calling AutoBill.cancel() on an AutoBill's bill day while that day's recurring billing was still in flight, the following conditions prevailed:
These two bugs have been fixed.
|CB-26568||Create New Billing Plan in the Portal fails due to number of Entitlements||When creating a Billing Plan in the Portal, a large list of entitlements could slow the load time of the page or cause it to fail. The CashBox Portal can now handle large entitlement lists that prevented the page from loading.|
|CB-26808||Refund amount display bug in Cashbox Portal (TBS_OTT)||In the Portal, under Payment History, the amounts displayed for some refunds were inaccurate. This has been fixed. All refund amounts displayed now accurately reflect amounts refunded.|
|CB-27401||CashBox validating inactive promotion codes||Previously campaign.validateCode() accepted promotion codes as valid by default. This has been fixed. Given a promotion code, campaign.validateCode() now verifies that the code is active and that the current date is within the date range of the promotion.|
|CB-27513||Portal Account page Payment History Transaction Amount is displayed incorrectly||
Payment History in the Portal was showing the correct amount refunded for a purchase of mulitple identical items, but was not breaking out the price of the individual items. This has been corrected. The Amount column in Payment History now displays the number of items purchased at a given price, and the Refund column displays the total amount refunded for those items.
|CB-27572||Unable to change Product Plan||When calling AutoBill.modify() to downgrade a customer from a taxable product to a tax exempt product, sometimes this could result in a 400 with an error similar to the following: Refund Item amount exceeds amount available for refunding. This has been fixed to create a refund and return a 200.|
|CB-27672||Account.grantEntitlement() does not return a populated description data member||
The stripped down Entitlement object was returning from an Account grantEntitlement call with the description member unpopulated. This has been fixed. The Entitlement object now correctly populates the description data member.
|CB-27749||HOA2 expMonth & expYear show valid CSS when expDate not valid (ProdTest)||Expiration month and expiration year input boxes were showing a valid CSS value (green) when the expiration date was not valid. This has been fixed. expirationMonth and expirationYear fields now show correct CSS value (red) when the date is invalid, and correct CSS value (green) when the date is valid.|
|CB-27758||AutoBill.modify() fails with return return code 500 Process Failed when there is a net refund for an advance-billing AutoBill in Settlement||
AutoBill.modify() was failing with a 500 return code in certain cases where, either because the AutoBill was MAP (pay by invoice) and in settlement or certain other cases pertaining to migrated AutoBills under Advance Billing, CashBox attempted to calculate and display refund information while lacking the necessary transaction information to associate with the refund. CashBox now returns a 400 error when missing the necessary migration transactions, and correctly formats refund information returned in a settlement notification to the merchant.
|CB-27780||fetchDailyInvoiceBillings() returns some invoices twice||
CashBox was returning the same invoice multiple times within a single fetchDailyInvoiceBillings(), and sometimes across multiple pages of the call with the same start and end timestamp parameters. The API logic has been improved to ensure each invoice is represented only once in this method's return.
|Priced Billing Plans sometimes resulted in inaccurate liability calculation||In limited scenarios involving Billing Plans with their own prices, the Portal Liability Snapshot report could fail to include these amounts in the correct liability column. This has been corrected to ensure that all scenarios are properly displayed in this report.|
|CB-28005||Current Liability report not including balances on unpaid Due invoices from past service periods||The Current Liability report was not including Due (in settlement) invoices from two prior service periods. This has been fixed. The Current Liability report now includes all Due invoices from prior service periods in the report.|
|CB-28182||AutoBill.fetchDailyInvoiceBillings() does not return all line items of an invoice that may be partially paid via application of available credits at the time of becoming 'Due'||When a customer over paid on a previous invoice, and the merchant did a AutoBill.fetchDailyInvoiceBillings() call when the next billing cycle came due, the invoice contained just one line item, showing the total amount due. This has been fixed. The invoice returned by the fetchDailyInvoiceBillings() call now correctly contains all line items for the current billing cycle, including the credit for the previous overpayment.|