Transfer groups are now available via the Moov API. Transfer groups provide a way to associate multiple transfers together by a shared ID of the parent transfer. Use the transferID of a to-wallet transfer as the source of a transfer to group them. The subsequent transfer will be queued until its parent completes, and you can choose to make it visible to the recipient. Support for transfer groups will be coming soon to the Moov Dashboard.
Bug fixes
We fixed an issue with Dashboard metrics being incorrectly calculated.
We have consolidated the Moov Onboarding Drop to further streamline the client experience.
Improvements
For all new accounts, we will auto-populate your test account data so you can start exploring and learning right away.
We clarified business requirements in our docs and the Moov Dashboard.
We updated our SSN requirements to toggle between requiring only the last four of a client’s SSN or requiring their full SSN.
Introducing Moov Drops
Moov Drops
We’ve released three pre-built user interfaces for embedding payments quickly and securely.
Onboarding: implements a flow for onboarding and verifying customers
Payment methods: an interface for helping users set up and manage their linked bank accounts and cards
Card Link: a web component for adding credit card information securely
All Moov Drops:
Leverage Moov.js, ensuring that sensitive data never hits your servers
Optimize for a seamless user experience through form-shortening, error handling, and accessibility features
Are customizable to match your brand (see our theming guide)
Refunds and other improvements
Cards
You can now refund card payments in the Moov Dashboard. You can issue a full refund from a transfer with card-payment as the source.
We now include card type and issuer information on linked cards in the Dashboard.
We added a new cardDetails object for setting a dynamic statement descriptor and recurring flag for card payments.
Fees will be shown in the Dashboard. Fee support in the API will be generally available soon.
Node SDK
We launched documentation for our Node SDK. You can now quickly generate OAuth tokens with the proper scopes to use in Moov.js, add new accounts from the server, and initiate a new transfer. This reduces the lines of code needed to interact with our platform (compared to making the API call directly), saving time and allowing you to move money faster.
Listing industries
We added a new endpoint for listing accepted industries, including their name, MCC, NAICS, and SIC codes. Use the API or Moov.js to list industries.
Autocompleting addresses
We have a new endpoint for auto-completing addresses, creating a better user experience with less timing and better accuracy for KYC verifications.
Improvements
Plaid customers using the Moov processor token will now receive a canned response when using a Moov test account.
We improved the display of bank accounts, cards, and their payment methods in the Dashboard.
Dashboard metrics
Dashboard
We’ve released Dashboard metrics. You can now view new accounts (by type and overall), transfer count (by status and overall), and transfer volume over time on the Moov Dashboard. See our Dashboard overview guide for more information.
Server-side SDK
We started work on Moov’s first server side library to make interacting with our API even easier.
- If you have a Node backend you can npm i @moovio/node to install the early version of the API. The first feature is a way to generate OAuth scopes, which you can pass back to the client to initiate Moov.js with. Additional features, and robust documentation are coming soon. View the NPM page for basic documentation.
Collect-funds capability
In preparation for the release of our card acquiring beta program, we wanted to simplify the onboarding process for our customers that intend to accept card payments. Part of this preparation is to only allow businesses to have the collect-funds capability.
Wallets
Utilizing a Moov wallet can be a great way to simplify and expedite many payment use cases. Starting now, any Moov account with the send-funds or collect-funds capabilities enabled will automatically get a wallet. This wallet may be used for payment exception use cases.
MX Integration
Moov has partnered with MX to offer our clients another seamless way to perform instant account verification. Our clients that have an existing MX relationship can now connect their MX account directly to their Moov account so their clients have the ability to link their bank accounts instantly. See our MX integration guide for more information.
Transfer status webhooks
The transfer.updated webhook event now includes the rail-specific statuses that correspond to each leg of the transfer. The breakdown of statuses can be found here. This provides a more granular level of transparency on a transfer and will notify you (if subscribed) of transaction completion or any rail-specific issues that arise when we hear about them.
Test mode
Test mode
We’ve enabled test accounts so you can interact with Moov’s platform without sending real money or waiting on account verification.
API key creation for test accounts
Simulate micro-deposits by inputting $0.00
Simulate successful transfers
Transfers metadata
We now allow our customers to store free-form data on transfers. As a customer, you can store any type of data that suits your needs, for example: invoice numbers, correlation IDs, SKU data, etc.
Bug fixes
We resolved a bug that was preventing 2FA codes from being emailed out for a brief period of time.
Improvements
We made small text updates to improve the consistency of member role names (i.e., “Administrator” instead of “Administrators”).
We improved internal logging across session refreshes to continue to monitor, track, and prevent fraudulent activity.
We updated the UX for adding multiple domains on an API key.
Plaid integration
Plaid integration
Moov-managed Plaid integration allows our customers to offer instant account verification and launch the Plaid experience from Moov.js.
Webhooks
We finished a project this cycle to ensure all the required information is included on all the webhooks so developers can pull the information that is needed. We also updated our documentation to include a list of the schemas for all the webhook events.
Added the accountID and status to the bankAccount.created, .updated, and .disabled events.
The transfer.created and transfer.updated now include the accountID for the account facilitating the transfer along with the status of the transfer.
We are now sending events for the transfer.updated event when a transfer fails or is reversed, since sometimes things don’t go as planned.
We added the accountID to the balance.updated webhook to allow developers to get additional information about the wallet if needed.
The paymentMethod webhook events now include the accountID and the sourceID to allow developers to more quickly get information about that payment method.
The representative.created and representative.updated webhooks now include the accountID for the account the representative belongs to.
Permissions
For users with “Developer,” “Support,” or “View only” permissions, the dashboard will now reflect what actions they can or cannot perform instead of getting an error message when they attempt to perform that action. If the user isn’t able to perform an action, the button will be disabled, hidden, and in some cases, the entire section won’t be visible.
Dashboard
We added verification status to the accounts list and account details.
Improved usability of date of birth, tax ID, and phone number fields.
Bug fixes
We resolved an issue where a warning banner was being shown when it wasn’t supposed to be when trying to add a new member.
We resolved a bug that was temporarily preventing you from switching the role of a user in the dashboard.
Introducing wallets
Wallets
Moov Wallets are now available. Every application has wallet provisioned for its account, and you can request the wallet capability for any Moov account.
Faster transfers
Moov now processes all ACH debits with same-day processing by default. This means your bank-to-bank or bank-to-wallet transfers will happen a day faster if we receive the request before the 4:15pm ET cutoff window.
Authentication
You can now generate an OAuth2 token by passing data as application/json in addition to passing as application/x-www-form-urlencoded when making a request to oauth2/token endpoint.
Added a confirmation when requesting a new two-factor code be sent to your email.
If you are inactive for a period of time, you will be warned a minute prior to being signed out.
Added cards.read and cards.write to the list of allowed scopes in preparation for allowing card transfers.
After a period of time, you will be signed out. We added the ability to reenter your password to stay signed in.
Webhooks
Updated the Webhook keys to use a consistent camel case format. TransferID → transferID.
Added the accountID and status to the capability.updated webhook event. This will allow you to get additional information about the capability that was updated.
Added the status to the transfer.updated webhook.
Member management
You can now search for Members that have access to your account on the members page.
You will now be notified if you try to send an invite to someone who is already a member of that account.
If a member invitation has expired you will now see that the status of that invitation in the member list.
Account verification
Moov account verification is now automated. When you request capabilities like send-funds that require verification, the process will kick off as soon as all the data requirements outlined in the capability are satisfied for the individual or business. For any account that isn’t instantly verified, you can view outstanding requirement errors or the overall status from the API and from the Moov Dashboard.
Plaid integration
We updated our Plaid processor integration to not require Plaid’s identity product.
Transfer statuses
There are two new transfer statuses: failed and reversed. Receiving an ACH return will update the transfer status and send a transfer.updated event based on the transfer status:
- failed - transfer returned/failed during clearing period or before funds movement
- reversed - transfer returned/failed after clearing period or marked completed
Improvements
Improved the experience of using the Moov app from a phone, particularly phones with notches.
The account ID for your account is now included on the Business Details page to help with troubleshooting and creating tokens.
Bug fixes
Some Moov Dashboard users experienced aggressive caching that caused them to see an older version of the app. We implemented new cache-busting to keep the app as fast as ever while serving new updates.
Resolved an issue that was preventing the capability.updated event when it should have been.
We fixed some typos and updated the wording for sign-in error messages to increase clarity.
Resolved an issue that prevented you from sending an invite to a member who had been previously removed from your account.
We updated our open source Slack application to properly format numbers and removed some typos.
OSS Slack app, Dashboard authentiation, and developer tooling
Slack application
Realtime insights into money movement activity are vital to help prevent fraud and resolve errors quickly. We launched a new open-source project that allows you to host a Slack app and get updates when transactions are created and completed. You can find the open source project on the Moov Financial Github. The Readme includes a guide for getting it up and running.
Authentication
After a period of inactivity, you are automatically signed out. When you sign back in after you are automatically signed out, you’ll now return to the last page you were on in.
You will now see a notice on the login page letting you know you have been signed out automatically.
Invite, two factor, and signup emails will now be sent from you from “Moov” instead of “noreply”
New users who sign up on the dashboard who are not part of the beta will now be giving a chance to request early access right from the dashboard.
We now prevent you from removing the last Admin on the account, ensuring you don’t accidentally lose access to your account.
We updated the member’s invite page to include the role, email address, and when they were invited.
If you get an error when signing in, those messages will now appear inline.
Redesigned the look of all our automated emails to ensure they have a consitent look.
Developer tools
On the edit API key modal, when you submit the form by pressing enter, it will now save your updates instead of prompting you to delete.
Added the ability to restrict which domains you can call our API for each API key.
Our scope list now includes transfers.read, which is needed to read the information about a specific transfer via our API.
Added the scope for /profile-enrichment.read to allow you to autofill information about companies that sign up for your platform.
We added the ability to revoke an access token that you no longer need. A token that has been revoke will cause any follow up requests signed with that access token to fail.
When creating a new access token, you will receive a refresh token which you can use to generate a new token with the same scopes.
Improvements
Adjusted our sanctions screening to reduce the possibility of false positives.
Our first public changelog
Payments
ACH transfers for multi-party payouts, collecting funds, and account-to-account transfers
Bank account linking with micro-deposits and Plaid support
Opting in to capabilities for informing on data requirements
Every transfer is captured in a ledger and broken down into the primitive money movement, with transparent details
Listen for key Moov events by creating and managing webhooks in the dashboard
Wallets for storing funds or use as a payment source
Administrative
Moov Dashboard (including dark mode)
Mobile friendly version of the Moov Dashboard
Inviting others to your account in the Moov Dashboard
Multi-factor authentication for Moov Dashboard sign-ins
Fast customer onboarding
OFAC/sanctions checks
Profile photos magically appear
Business information magically appears letting you change it or simply confirm it
Developer
Create and manage API keys restricted to your domains
Moov.js SDK for interacting with the Moov API in a browser
Restrict access of people with roles and access tokens based on Oauth