Changelog

Discover new features and improvements to Moov.

Improvements and bug fixes

Improvements

  • For account onboarding and adding a representative, we have updated the address fields to show the full zip code in the Dashboard.
  • When providing a website for a business profile in the Dashboard, you are no longer limited to sites that start with https://.

Bug fixes

  • Previously, our warning copy would incorrectly mark a failed verification as missing information in the Dashboard. We’ve updated the warning copy to indicate an error could be due to missing information or failed verification.
  • We also fixed an issue in the Dashboard where the account list was not properly filtering by verification state.
  • We updated the underwriting endpoint so that when you pass an invalid dollar amount with decimals, you receive a 422 response (indicating unprocessable content) rather than a generic 500 internal server error response.

Transfer timestamps

Moov has updated transfer timestamps to appear under the new railDetails object. The statusUpdates object is now deprecated.

Transfer timestamps

Moov now provides an additional layer of transparency on transfer status changes to provide customers with as much data as possible on where funds are at any given moment. Transfer timestamps are now available in the API and are coming to the Dashboard soon. These timestamps are helpful for those looking to:

  • Automate money movement flows based on when a transfer is originated
  • Know when a transfer completed to understand when the destination received the funds

When you use the transfer GET endpoint, we now provide a statusUpdates object where you can view a transfer’s status. Specifically:

source.cardDetails.statusUpdates now contains the following timestamps:

  • initiated
  • confirmed
  • settled
  • completed
  • canceled
  • failed

source.achDetails.statusUpdates and destination.achDetails.statusUpdates now contain the following timestamps:

  • initiated
  • originated
  • completed
  • corrected
  • returned

If a transfer has completed, the top-level response on the transfer GET endpoint will include a completedOn timestamp field. If the transfer has not completed, the completedOn timestamp will not appear.

Interchange qualification and passthrough fees


Interchange qualification

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 PATCH endpoints.

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 made a new billingContact object available within Moov’s Link Apple Pay token request
  • 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.

See our documentation for more information.

ACH returns in test mode

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.

See our documentation for more information.

Composable Drops

Composable Drops

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.

See our documentation for an example.

Subscribe

Moov is constantly improving. Subscribe to our changelog to find out what's new every two weeks.