For greater transparency, GET and LIST transfer endpoint responses now include the interchangeQualification field under cardDetails, surfacing the card network program that determines the interchange rate.
Passthrough network fees
Moov now provides additional granularity on the moovFee in the API. You can now view the various passthrough network fees charged once a transfer moves to a completed status. The moovFee will be broken out into three buckets:
interchange
cardScheme
moovProcessing
You can read more about the breakdown of card processing fees in our passthrough fees guide.
Higher precision, account creation, and more
Higher precision
We’ve updated transfers, wallet transactions, and wallet endpoints with new decimal fields that support up to 9 decimal places.
You can now also input facilitator fees with higher precision. In the POST create transfer endpoint, you’ll find two new optional fields: totalDecimal and markupDecimal. We will still support the pre-existing fields (total and markup), but only one field is required in the payload.
We have updated the GET transfer endpoint to include moovFeeDetails showing each category of fees charged, with the existing total moovFee that sums all line items. moovFeeDecimal will be the precise fee charged, where the pre-existing moovFee will round to the nearest cent.
We will continue to support the pre-existing fields and will display rounded values to the nearest cent. Moov will apply standard rounding on all existing amount fields with the exception of the wallet and wallet transactions availableBalance, which will round down to the nearest cent. This will prevent transfers being created from a wallet where the amounts may exceed the precise balance available.
The walletTransaction.updated webhook event has been updated with a new valueDecimal field to support the same level of precision.
Creating accounts
We’ve refreshed the account creation flow in the Moov Dashboard for greater speed and clarity. When creating accounts in the Dashboard, you will now go through a customized flow based on the capabilities you’ve requested.
ToS acceptance for server-side integrations
For those developing server-side integrations, Moov now lets you manually pass the required terms of service information to us via the account POST and PATCHendpoints.
Closed cards
Cards that have received an account-closed update will have card_on_file set to false and no longer receive updates. Merchants should disable these closed cards.
Platform improvements
Speed and stability
Moov engineers are always working to make our system both fast and stable. We shipped a series of backend enhancements that reduced the mean response time of all API endpoints, particularly while under heavy loads.
Dashboard
We improved the process for creating and updating accounts and representatives. You can now enter the information you have on hand and come back to input more information later.
Alphanumeric character support for bank accounts
We now support alphanumeric characters for bank account numbers over ACH.
Improvements and bug fixes
Improvements
We’ve enhanced our Apple Pay solution to obtain the cardholder’s billing address so that it can be submitted for an AVS check. AVS (Address Verification System) is a fraud prevention tool that verifies that the billing address matches the address of the cardholder. See our Apple Pay docs for more information.
For those looking to implement this update, please note:
We strongly recommended setting postalAddress as a required billing contact field in the Apple Pay client-side implementation so that the cardholder’s information is sent to your app. Read the Apple documentation on requiredBillingContactFields for more details.
Bug fixes
We fixed a few minor bugs in the Moov Dashboard:
When a card on file is activated in the payment methods list, the new status now appears immediately rather than after a user refreshes
The documents page communicates the correct maximum number of documents you can upload for an account
Card account updater
Card account updater
With Moov’s card account updater, you can set up cards to automatically receive updates. Sensitive card information is securely sent to Moov and updated on your behalf, eliminating the need for you to contact cardholders for card updates.
You now have the ability to simulate various ACH return scenarios in test mode. You can initiate test returns occurring at different transfer stages to gain better insight into cashflow management.
New Moov Drops allow users to add and update card information through your application, with data sent directly and securely to Moov. The new composable Drops make it easier to embed and style form fields to match your brand.
We’re also introducing low-level components for securely capturing any information that gets sent to Moov, not just card data.
See our Moov.js Drops documentation for more information.
Rail status for refunds
Refunds now include a rail specific status in the cardDetails object, allowing further visibility into refund timing. You will be able to see whether a refund has been initiated, confirmed, settled, completed, or failed.
If an account’s wallet capability is disabled, the wallet’s transaction history will still be accessible through the Dashboard.
Bug fixes
Fixed a timeout issue on card payment reversals in test mode.
Fixed a timeout on listing wallet transactions when filtering by source ID.
Fixed a bug in the Dashboard where the last four numbers of Apple Pay payment methods were inconsistently displaying.
Fixed a bug in the Dashboard where account search criteria was removed when going from an account back to the list.
Fixed a bug in the Dashboard where the wrong account ID was copied from the destination transfer.
Card linking merchant parameter
Card linking merchant parameter
A new merchantAccountID parameter can be used to pass merchant information with the $0 authorization transaction Moov creates when a card is linked. While these $0 transactions don’t typically show on a statement, they can show up in a cardholder’s fraud alerts. If you don’t supply a merchantAccountID, your platform’s account information will be used.
The merchantAccountID can also signify which merchant the cardholder has consented to save their information, which allows you to save a card for future use.