Discover new features and improvements to Moov.


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 subscribe here.

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.

Faster searching in Moov Dashboard

Dashboard improvements

We’ve made several improvements to the Moov Dashboard for a cleaner, faster user experience:

  • Improved the loading and search speed for accounts
  • Simplified verification statuses (so it’s easier to tell whether any action is needed on your part)
  • Enhanced our autofill address input field by adding support for apartments and suites


We are continuing to improve how Moov handles disputes, with the most recent changes being:

  • GET transfer model now returns the disputedAmount
  • Support for MasterCard disputes

Card statement descriptors

You can now include more information in statement descriptors and receive descriptor information from the transfers API. Specifically:

  • dynamicDescriptor and statementDescriptor character limit increased to 22 characters
  • GET transfer response now returns the dynamicDescriptor

Transfer errors

We investigated and addressed a bug on transfer error responses.

ACH statement descriptors, disputes, and more

Custom ACH statement descriptors

You can now set a customized ACH statement descriptor when creating a transfer. We’ve introduced two new optional fields you can use to adjust the default Nacha file entry:

  • achDetails.companyEntryDescription
  • achDetails.originatingCompanyName

This provides you the opportunity to add more context about what the payment was for, allowing recipients to more easily recognize the transaction.


We made some bug fixes for our verification flow and streamlined the process to account for a few edge cases. We also improved our manual review process by removing errors from client dashboards after a manual review is required.


We now automatically enable the wallet capability if you have the card-issuing capability. Note that our card issuing functionality is currently in a closed beta.

Failure reason codes

We shipped failure reason codes that explain why a card transfer was unsuccessful. You can now see a human-readable code for why the transfer failed in the Moov Dashboard. We’ve also implemented machine-readable failurecode, which you can view when you get a transfer in the API.


We’ve shipped and documented dispute handling for card transfers. You can view dispute information on the transfer objectin the API and in the Dashboard via transfer status. Support for Mastercard is in progress.

Dashboard and API experience improvements


  • You can now quickly find an account by pasting an account ID into the search field on the accounts list.
  • Have a transfer ID that you need to debug? Paste it into the new search bar on the transfers list.
  • You can now filter the transfer list by refunded state.
  • The Dashboard overview now includes your Moov wallet balance.


  • If you’re PCI level 1 and have been using the API to link cards directly, you can now use the base path of instead of The latter is now deprecated and will be removed in the future. This keeps consistency with all other Moov endpoints.


  • We made it easier to identify and fix requirements that need attention.
  • We hardened our capabilities service by reprocessing failures if the account mode was missing.
  • We enhanced our verification service by streamlining manual reviews
  • We added an additional security and fraud prevention measure by running all card acquiring merchants through the Mastercard MATCH database.

Bug fixes

  • We addressed a few issues around account creation and updating:
    • We only require a phone number OR email address but not both.
    • Fixed our process for updating an SSN or ITIN.
  • We addressed an issue with our support contact section that required all of the fields or none of them.