Discover new features and improvements to Moov.

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.

Card acquiring improvements

Moov Drops

If you need to limit which card brands you accept, you can now toggle which brands you support using the allowCardBrands option in the Card link, payment methods, and onboarding Moov Drops.


  • To improve fraud detection and prevention, we integrated with Mastercard’s MATCH service.
  • transactionSource for transfers using a card is now supported on all card brands.


  • Improvements and bug fixes relating to missing account requirements and locking down fields after verification.
  • For clarity, we renamed the “Profile” navigation link within an Account to “Settings”.
  • We now show all fields under your account’s Business details section.
  • Improved our tracking of when a customer has moved to production to prevent multiple employees from having to fill out the same form.

Bug fixes

  • We resolved an error where previous transfers in a transfer group wouldn’t show if they had been refunded.
  • We fixed an issue where some users weren’t able to advance past the initial loading screen.
  • We fixed an issue where the markup fee set on a transfer could be incorrectly calculated.

Simpler onobarding


We rebuilt our entire sign-up and onboarding process to remove as much friction as possible before folks start building. Specifically, we: - Rebuilt our test environment and removed all of the hoops customers previously had to jump through before building. This includes filling out a test business profile, adding test business representatives, and even creating connected accounts and payment methods. All you have to do after signing up is generate test mode API keys and start building. More to come! - Streamlined how we collect required information about your business to get you to production. This historically cumbersome process of inputting data is now seamless. Ensuring that we have all of the necessary information to verify your business up front can shave days off the onboarding timeline.


We improved how we communicate with our clients through their Moov Dashboard by clarifying action items and statuses for your accounts. This includes showing when an account has been verified and therefore can no longer be updated, as well as communicating any verification issues with your accounts and what needs to be corrected to proceed.

Basic authentication

API authentication

You can now use basic authentication to authenticate with the Moov API! It’s important that you only use this for server-to-server communication and not in a browser.

Once you’ve created an API key, within your server-side app set the Authorization header to Basic <credentials> where credentials is the Base64 encoding of public key and private key joined by a single colon :. When using this authentication method you don’t need to set scopes, but keep in mind that your API key will have read and write access to every Moov endpoint within your account.

OAuth 2.0 based authentication with scopes remains the most secure way to communicate with the Moov API from a browser and can still be used to create restricted access tokens for server-to-server communication.

Account capabilities

You no longer need to request the transfers capability after creating an account because it will automatically be requested and enabled as soon as the account is created. This change simplifies the process of creating accounts that will be charged or sent a payout that don’t require verification.

Locked accounts


  • We made it quicker and easier to request capabilities for new accounts by allowing you to create an account and request capabilities in the same API call.
  • In an effort to reduce confusion and accidental overwrites of existing data, we have added PATCH methods and have removed the PUT methods for updating Accounts and Representatives. PUT updates to Accounts and Representatives will no longer be supported.

Account locking

Once a Moov account has been verified, you will be unable to edit most of the business or individual identity details as additional verification may need to take place. If you need to update verified information, requests should be sent to our support team.

Transfer groups in timeline and synchronous transfer responses


We made a handful of dashboard improvements to improve how we communicate the status of your account.

  • Transfer groups are now visible in the Moov Dashboard so you know exactly where your funds are at all times.
  • We made it easier to find and fix capability errors so you know exactly what needs to be fixed before a transfer can be processed.
  • After creating a new account or payment method in the Dashboard, you’ll see sample code snippets that give context on how you can perform those same actions more efficiently using our API.

Node SDK

  • We improved the error messaging in the Node SDK and released the official 1.0 version of the SDK.
  • We’ve added CommonJS support for the Node SDK. You can now use the SDK in ESM and CommonJS projects.


  • We have introduced the X-Wait-For header for use when making a transfer. When you make a transfer today you get an immediate response containing only the transferID to indicate the transfer instructions have been received. With the new X-Wait-For header, you can pass a value of rail-response to tell the service that you want the full transfer payload back after the request has gone out to the payment rail and back. This is useful for handling client-side errors and retries for card transactions that communicate with the card networks in real time.

Test mode

Things don’t always go according to plan—we’ve added a new test card in test mode to help you simulate what happens when a card payment is declined.

Facilitator fees

Node SDK

We made a number of additions to the Node SDK, including the following:


  • We streamlined our onboarding process to help prospects start learning what Moov can do for them as quickly as possible.
  • We edited test mode so that there is no need to spend any time adding business data or creating accounts and payment methods before you’ve decided to use Moov. Test mode now pre-populates sample business information so you can focus on exploring the platform.


  • You can now monetize your transfers with facilitator fees. When you set a facilitator fee on a transfer the amount of the fee will be moved to your Moov wallet.
  • Transfer groups can now include wallet-to-bank transfers to end the chain.

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