Changelog

Discover new features and improvements to Moov.

Cards, wallets, disputes & more

International card acquiring support

To support international card acquiring, a card’s billing address now supports postal codes up to 10 characters. Additionally, the card’s issuing country will be included when retrieving information about card transactions.

Wallet adjustments

Scenarios occur where Moov may make an immediate adjustment to a wallet’s balance, such as partial chargebacks, fee adjustments, or corrections from transaction processing. Upon adjustment, you’ll get a walletTransaction.updated webhook notification and can find the adjustment reason in the wallet transaction memo. Two endpoints have been added to retrieve further details about wallet adjustments:

See our wallet documentation for more information.

Updated dispute paths

The paths for all dispute endpoints have been prefixed with /accounts/{accountID} to scope permissions to the specified account. For example, to retrieve a list of all disputes: /disputes has become /accounts/{accountID}/disputes

We suggest updating all endpoints in your application as soon as possible. See our disputes API for more information.

Updated velocity limits

Velocity limits for Visa and Mastercard push to card transactions are now the following:

Limit type Maximum limit
Amount $25,000
1-day velocity 150 transactions or $100,000
7-day velocity 250 transactions or $250,000
30-day velocity 750 transactions or 500,000

Updated Apple Pay scopes

Apple Pay scopes have been updated from apple-pay.write and apple-pay.read to the following:

  • apple-pay-merchant.write
  • apple-pay-merchant.write

Bug fixes

  • Fixed an account linking bug in the payment method Drop
  • Added missing 400 responses to the cards and accounts endpoint documentation

Drops improvements

Onboarding Drop

We’ve improved the onboarding Drop experience. The business representative steps will now be skipped if only the transfer capability is requested.

We’ve fixed an issue in the card link Drop where the error icon was not honoring the fill opacity.

Updates to branding options, Moov.js & more

Branding options

Business accounts now have the ability to set brand colors for light and dark modes. You can choose and set brand colors in the Dashboard settings or with the enrichment API. Brand colors help your customers identify your brand throughout Moov’s hosted onboarding process.

Moov.js

Linking a bank account will now send a request with the x-wait-for: payment-method header, allowing for client apps to use the paymentMethodID that comes back in the response.

Moov.js now includes methods for using Moov’s new [instant bank account verification](moov.accounts.bankAccounts.startMicroDepositVerification({accountID, bankAccountID})) flow.

  • moov.accounts.bankAccounts.startVerification({accountID, bankAccountID})
  • moov.accounts.bankAccounts.getVerification({accountID, bankAccountID})
  • moov.accounts.bankAccounts.completeVerification({accountID, bankccountID, code})

See the Moov.js docs for more information.

General improvements

  • Improved the success rate of auto-fetching images for Moov accounts and financial institutions on linked bank accounts.
  • Added EIN as an available field for use with Data Sync.
  • Dashboard sign in verification codes are delivered faster.

Bug fixes

  • Fixed a bug with card fee assessments.
  • Fixed a bug with American Express chargeback inquiry processing.
  • Fixed a bug preventing date of birth from being entered in the Dashboard onboarding process.
  • Fixed an issue where Moov account capabilities could be in a pending status without requirements.

Transfer, Dashboard & card brand updates

Transfer updates

The following IDs have all been added to the transfer model:

  • sweepID
  • occurrenceID
  • scheduleID

The sweep ID is present when the transfer represents a sweep generated by Moov from the wallet. The schedule ID provides a reference to the schedule the transfer was automatically created from. The occurrence ID provides a reference to the specific occurrence of that schedule.

Moov recently released a scheduled transfers beta. The new schedule ID and occurrence ID make it easier to filter and find scheduled transfers. See our scheduling API for more details.

In addition, the default statement descriptor on a sweep is now in the following format: swp_6d72dh. The default sweep statement descriptor can be overwritten by setting your own statement descriptor when initiating a sweep. See the API reference for details.

Mastercard settlement timing

Mastercard has updated their cutoff time for processing card payments. The cutoff is now 2 AM ET instead of 6 PM ET. Transfers created before the cutoff time are typically credited to a merchant’s Moov wallet the next banking day.

See our settlement timing guide for more information.

Dashboard bug fixes

  • Fixed an issue where the capability status would be shown as “In Review” instead of “Pending” in certain situations.
  • Fixed an issue where the search bar would be hidden if the search request by ID had no results.
  • Fixed an issue where an error would appear instead of an empty result when searching for accounts.

Card brand updates

We’ve implemented the standard fall updates for card brands, including new interchange calculation tables.

American Express

We’ve implemented American Express’s new discount fees for utility merchants:

Pricing Threshold Discount fees
Tier 1 ≤$1,000.00 0.00% + $0.75
Tier 2 $1,000.01 - $5,000.00 0.00% + $1.50
Tier 3 >$5,000.01 2.30%

Visa

We’ve implemented Visa’s interchange changes for the following programs:

New installment credential standard credit product for AP region:

Interchange program Fee
Premium Card - Base Fee 1.85%

Changes for corporate & purchasing fee programs for transactions from fleet & fuel merchants:

Interchange program Fee
Commercial Fuel Level 2 Data 2.20% + $0.10
Commercial Fuel Level 3 Data 1.90% + $0.10

Two fee programs will no longer be supported:

Interchange program Fee
X Corporate Card Fuel Level 2 2.20% + $0.10
X Purchasing Card Fuel Level 2 2.20% + $0.10

Moov Drop enhancements, sweep statement descriptor, & more

Moov Drops

We freshened up the design of the onboarding, payment method, and file upload Moov Drops, improving behavior on small screens and increasing color contrast and legibility.

You can now customize the border radius of elements within the onboarding, payment method, and file upload Moov Drops. Use --moov-radius-large and --moov-radius-small in your theme to change them from the default.

Show your business’ avatar on the start page of the onboarding Drop by adding the showLogo property to the component or setting the show-logo attribute to true.

1
2
3
4
5
6
7
<moov-onboarding show-logo="true"></moov-onboarding>

<!-- or -->
<script>
  const onboardingDrop = document.querySelector('moov-onboarding');
  onboardingDrop.showLogo = true;
</script>
  • Financial institutions will be asked for their primary regulator from the onboarding Drop.
  • Loan linked bank account type can be added from the payment method and onboarding Drops.

Wallets

Now by default, transfers created by sweeps include a short, unique identifier used in company entry descriptions which appear on the recipient’s bank statement. On each sweep, you can view this descriptor in the statementDescriptor field.

Accounts

The transfers capability no longer requires a website or description for businesses.

Bug fixes

  • Improved error handling for the add funds flow.
  • Fixed a bug in which disabled payment options were being returned as transfer options.
  • Fixed a bug where the status reason for RTP credit failure was not appearing.
  • Fixed a bug where transfer details stopped loading when viewing multiple transfers back to back.
  • Fixed a bug where RTP transactions were showing 0000 as the transactionID instead of MOOV.
  • Fixed a bug where the account selector in the Dashboard eventually stops working.
  • Fixed a bug where ACH credit failures were not producing the correct failure response.
  • Fixed a bug where accounts were receiving a message that a website or description was missing even though the requirement has been removed.
  • Fixed misspelling of “website” in an error message in the onboarding Drop.
  • Fixed an issue that prevented Moov Drop dialogs from scrolling vertically on small screens.
  • Fixed an issue where the representative avatar was loading the main Moov account avatar instead in the onboarding Drop.

Updates to test mode, API, Go SDK, Dashboard & more

Account name inquiry in test mode

Test mode now supports name verification with Visa’s ANI verification. You can test various results by entering in different name combinations.

View our test mode guide for more information.

New transfer history endpoints

Two new endpoints have been added to the accounts API:

  • /accounts/{accountID}/transfers/{transferID}
  • /accounts/{accountID}/transfers

These endpoints allow you to retrieve an account transfer or list account transfers using query parameters. Moving forward, we suggest using the new list account transfers endpoint over the existing list transfers endpoint.

Go SDK updates

Webhook support for sweeps has been added to the Go SDK.

Additionally, the verifyName field has been added on POST /cards and the verifyName and holderName fields have been added on PATCH /cards/{cardID} to support ANI verification.

API updates

We’ve relaxed the validation for the website field within a business profile to allow paths.

Dashboard updates

We added the ability to search by sweepID in the wallet view of the Moov Dashboard (previously this was only available via the API).

Bug fix

We fixed a bug where an account’s capabilities could show a pending status with no listed requirements.

Additional linked bank account types

Additional linked bank account types

Moov now supports general ledger and loan linked bank account types. Loan accounts allow sending credits to external loan accounts for repayment. General ledger accounts allow financial institution users to link their general ledger accounts.

See our bank account guide for more information.

Test card updates

The data for cardCategory, regulated, and commercial has been updated for test mode cards.

For the test card starting with number 411111:

  • cardCategory is “PERSONAL”
  • regulated is true

For the test card starting with number 601111:

  • cardCategory is “TRADITIONAL REWARDS”
  • commercial is true

Sweeps & scheduling betas

Sweeps (beta)

You can now set up sweeps, which work on autopilot, sending daily transfers to external bank accounts. A sweep will payout funds from a wallet, or pull funds to cover fees and chargebacks. Contact us if you’d like to try out sweeps.

See our sweeps guide and API documentation for more information.

Scheduled transfers (beta)

We’re making it easier to create future-dated transfers through scheduling. Moov is looking for early adopters to test scheduling in beta and provide feedback.

View our new guide on scheduling transfers for more information, or contact our team if you’re interested in participating.

End-to-end encryption

You can now use our API to generate a public key for passing secure authentication data through non-PCI compliant intermediaries, or create a JWE test token to ensure it’s acceptable by Moov.

See our API documentation for more information.

Drops pseudo-class support & bug fix

All input pseudo-classes are now supported on Moov’s composable Drops. You can style Drops based on form validity, user input interaction, and input value. Visit our Drops documentation for more information.

An issue with input validity has been fixed.

Instant micro-deposit verification

Instant micro-deposit verification

Instant micro-deposit verification introduces a faster and easier way to verify bank account ownership. This feature enables instant account verification for RTP-enabled bank accounts, allowing users to complete the process in seconds — an improvement over the traditional, multi-day, micro-deposit method. For accounts not yet RTP-enabled, the code is sent via same-day ACH.

Use instant micro-deposit verification to:

  • Instantly verify accounts for RTP-enabled banks in a single session
  • Ensure broad compatibility with automatic fallback to same-day ACH for other institutions
  • Meet Nacha account validation requirements
  • Enhance user experience with a quick, easy verification process

How it works:

  1. Moov sends a $0.01 credit to the user’s bank account
  2. This credit contains a unique verification code
  3. Users retrieve and enter the code to verify their account instantly (for RTP) or later that day (for same-day ACH)

See our documentation for more information.

Cards API response updates

New fields, commercial and regulated, will now be included in successful responses for the link a card, update a card, retrieve a card, and list cards endpoints. Both of these fields provide additional details for a card:

  • commercial indicates whether the card is for commercial or personal use
  • regulated indicates whether the card’s issuing bank is subject to capped debit interchange rates under the Durbin Amendment. This is determined by the asset size of the issuing bank. A value of true means the issuing bank’s asset size qualifies for the cap on interchange fees.
Subscribe

Moov is constantly improving. Subscribe to our changelog email to receive a summary of changes twice a month.