Discover new features and improvements to Moov.

Issued card Moov Drop

Issued card Moov Drop

The new issued card Moov Drop enables customers to display a previously issued virtual card within a secure, Moov-hosted iframe.


We have added a new underwriting requirement for certain capabilities. See our underwriting guide for more context on when we need to underwrite an account and what we require. A section for underwriting will be added to the Moov Dashboard in the near future.

Bug fixes and improvements

We resolved an issue that was causing some ACH test mode transfers not to complete as scheduled.

We’ve improved visibility by surfacing reasons for failed bank account validation attempts. For example, when micro-deposits expire, the statusReason will be ErrMicroDepositExpired.

Card dispute resolution, failure reasons, and webhook updates

Card disputes

We have updated the status field on disputes objects. Pre-disputes resolved by Visa’s rapid dispute resolution will have the resolved status, while all other disputes have status response-needed status.

We have added the respondBy field added to disputes object. The date in the respondBy field should be must be presented to the merchant as the last day they are able to submit evidence to fight a chargeback. See our disputes guide for more information.

The networkReasonCode field for a dispute in the transfers endpoint will now return an empty string, and will be fully deprecated on January 21, 2023. The network code is still available via the GET dispute endpoint.

Failure reasons

When a transfer fails, we will now communicate the reason for the failure through the failureReason field in API response for a GET transfer. The failureReason field provides context so our platform partners can understand why a transfer failure happened and determine what next steps to take. See our failures guide for more information on the reasons and their corresponding descriptions. Please note, card and ACH specific failure codes are still available under the source and destination objects.

Webhook events

The availableBalance field on the balance.updated webhook event is deprecated. If you need to retrieve the available balance for a wallet, you can use the GET wallet endpoint.

We’ve made some updates that allow us to send webhook events faster. However, because we are prioritizing speed, we can no longer guarantee ordering on the walletTransaction.updated webhook event.

ACH transfer timing in test mode

ACH transfer timing in test mode

Previously, ACH transfers in test mode followed the same processing windows as production mode, taking up to 48 hours to process. However, we’ve updated our platform so that ACH transfers in test mode now complete much faster (within about an hour), since no real money movement is happening.

Changelog style

If you haven’t noticed already, our changelog got a new look. We now include titles in addition to the date timeline so you can get a quick sense of Moov’s latest product updates.

Synchronous transfer creation response

We added a 201 response for synchronous transfer creation. If Moov is unable to get transfer details that are returned in the 200 synchronous response, we’ll return a 201 confirming the transfer was created with the transferID.

Card acceptance

We reduced the potential for latency during periods of high traffic by adding rate limiting to some of our asynchronous processes.

Bug fixes

We resolved a bug in the Dashboard where the list of members were sorted in reverse alphabetical order by last name. We revised this so the list of members are sorted in alphabetical order.

Styling was broken for the card link iframe within the Payment method Drop. The styling has been updated and now works correctly.

Transfer peek previews, bank holiday notices, and more

Transfer peek previews

We’ve added transfer peek previews to allow faster access to transfer details from any list of transfers in the Dashboard. Toggle the preview on and off by tapping Space while on the transfers list. You can also dismiss the preview with the Esc key.

Bank holiday notices

We now have a notice that shows up on in the Dashboard whenever a bank holiday or observed bank holiday is coming up in a few days and stays until the day after. This update lets you know that the upcoming bank holidays may cause delays on pending transfers.

Synchronous refund responses

You can now use the x-wait-for header to wait for the payment rail response on refunds. Stay posted for updates to our documentation that includes detailed information on the responses.

NOCs and returns update bank accounts

A Notification of Change (NOC) is a notification provided by the ACH Network that something about a bank account we are interacting with has changed (i.e., a new account number or routing number). Moov now consumes data from ACH Network’s NOC and automatically revises transfer and bank account records accordingly. The bankAccount.updated webhook will reflect when an NOC change has been made on a bank account.

Wallet transaction and Apple Pay

Wallet transactions

We now provide insight into funds that move in and out of an account’s wallet at a granular level. Every Moov transfer that involves a wallet will also have a corresponding transaction representing how the wallet is impacted. This creates greater visibility into things like fees earned, disputes, and refunds. This record of wallet transactions also enables historical balance tracking. To learn more about this feature and the different transaction types, read our wallet transactions guide.

Apple Pay

Moov now supports Apple Pay as a way to accept card payments. Read our guide on accepting cards with Apple Pay to learn more.


We gave the interface a fresh coat of paint. New colors help shine a light on your accounts and transfers. Reminder that light and dark mode are available and that the Dashboard is a progressive web app that can be used on your phone or nearly any modern web-enabled device.


In order to accommodate longer addresses, we’ve increased the maximum length of an address to 60 characters.

API docs

To help give more context and guidance, we’ve added links to our guides in our API reference endpoint descriptions.

Bug fixes

  • We resolved a bug where an invalid wallet balance.updated webhook events were being generated for some accounts.
  • We’ve updated our platform to fix incorrect reporting of disputes received on pending transfers.
  • Hidden whitespace characters were preventing some micro-deposits from working properly. This has been resolved.

File uploads in Moov Dashboard

File upload

We’ve updated the Moov Dashboard so you can now upload documents for a connected account under the “Documents” section of the Moov account. If you need to upload a file for your facilitator account (vs. connected accounts), you can do this in the “settings” section of the Dashboard. Feel free to refer to our dashboard guide for further guidance.

Account protection

We added and started enforcing password rules for more rigorous account protection.


We consolidated and clarified information about capability requirements for Moov accounts in our documentation. To read more see:

Changelog email newsletter

There’s now a way to subscribe to Moov’s changelog updates and receive them in your email inbox. If you’d like to receive a newsletter with our changelog, feel free to hit the subscribe button.

Card issuing

Card issuing

Behind the scenes, we’ve been working hard on card issuing. Our program is still in a closed beta, so stay tuned for more updates!


The issuing view in the Moov Dashboard includes pagination on the list of issued cards and transaction history. You’ll only see this view if you’re one of our card issuing beta customers.


We added a new clear() method to the Moov Drop for linking a card to clear all user input. This allows you add multiple cards quickly: if you want, you can set up their code to submit card info, then clear out the form to get it ready for the next card.

Refund webhooks

We have renamed two fields in the refund.createdand refund.updated webhook events to match the field naming with our platform. Note that originalTransferID is now transferID and refundTransferID is now refundID. We’ll support the old fields for 1 month before deprecating.

Dispute webhooks

The dispute.created webhook now supports transferID vs. transactionID that previously did not link back to anything in our system.

Bug fixes

  • We resolved an issue where patching an account could unexpectedly fail
  • We fixed a bug where Moov Drops could throw an error in certain situations where a valid JWT was used
  • We addressed some broken links and made some minor improvements to our Node SDK documentation

Document uploading

Dashboard improvements

We got rid of the “load more” button and replaced it with infinite scrolling for a more seamless user experience experience. This update applies to all tables that display entries loaded from the API. In addition, we improved our address field by adding support for suite and apartment numbers.

Document upload

We’ve added a new service that allows clients to upload documents to their own dashboard via API. To learn more, see our files endpoint.

Business verification

We simplified how we define business owners. Previously, business owners had to own 25% or more of the business in order to communicate they are an owner. That limit still exists to technically be counted as a beneficial owner, but we accept any percentage now.

Instant account verification with Plaid

We’ve updated our documentation to clarify a few common sticking points on using Plaid Link with Moov.js.

Partial refunds

Partial refunds

We now support partial refunds on card payments. Use the API or dashboard to process any number of partial refunds summing up to the amount of the original transfer.

Transfer updates

The deprecated fields, createdAt and ach, have been removed from the transfer model. We’ve switched the names of these fields to createdOn and achDetails for clarity.

Fraud prevention

We improved fraud prevention and detection by adding Captcha to the Moov Dashboard.


We made it easier for new clients to complete their business profile in production and ask for help from a team member if necessary.

Verification statuses

We finished adding the new verification statuses to the Dashboard, Moov Drops, and Node SDK.


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