The new issued card Moov Drop enables customers to display a previously issued virtual card within a secure, Moov-hosted iframe.
Underwriting
We have added a new underwriting requirement for certain capabilities. Read 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 sandbox 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. Read more for timing details on contesting a dispute.
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. To see more information on the reasons and descriptions, view our guide on failures. 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.
Dashboard
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.
Onboarding
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.
Onboarding
We consolidated and clarified information about capability requirements for Moov accounts in our documentation. To read more see:
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!
Dashboard
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.
Cards
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.
Onboarding
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.