## Disputes updates

When a merchant receives a dispute, they can now accept or challenge the dispute through the disputes response endpoint in the API. We’ve also added a new `dispute.updated` [webhook](https://docs.moov.io/guides/webhooks/webhook-events/#disputes) that will generate if there is a change to a dispute’s `status` or `phase`.

[Disputes guide](https://docs.moov.io/guides/money-movement/accept-payments/card-acceptance/disputes/#respond-to-disputes) [Disputes endpoints](https://docs.moov.io/api/money-movement/disputes/)

## Dashboard bug fix

We resolved an issue in the Dashboard where business address details weren’t carried over from the autofill form field to the manual address entry fields.

## Reminder: API field updates

This is a final reminder to review your app to determine if you’re still using the deprecated fields listed below, or if the new `in-review` capability status will negatively impact your system. Read more for context below.

A few weeks ago, we announced new deprecated fields:

- [Account](https://docs.moov.io/api/moov-accounts/accounts/) `verificationStatus`
- [Underwriting](https://docs.moov.io/api/moov-accounts/underwriting/) `status`

We also announced the `in-review` capability status, which communicates when Moov is manually reviewing account details to enable a capability — you don’t need to take any further action. The existing `pending` status will notify you if further action is needed, for example, providing any missing capability requirements.

## Pull from card available in test mode

You can now use test card numbers for both `pull-from-card` and `push-to-card` payment methods. You can use these payment methods in test mode to simulate completed and failed Visa and Mastercard transfers.

To use these payment methods in test mode, you'll need to remove existing test card numbers. This includes `4111111111111111` for transfers and/or `4000020000000000` for declines.

Find more information and instructions in the [test mode](https://docs.moov.io/guides/get-started/test-mode/#push-to-card--pull-from-card) guide.

## Disputes available in test mode

Test card numbers are also now available to simulate disputes for Visa, Mastercard, Discover, and American Express. You can simulate chargebacks, as well as American Express inquiry disputes.

Find more information and instructions in the [test mode](https://docs.moov.io/get-started/test-mode/#disputes) guide.

## Reminder: API field updates

Last week, we announced new deprecated fields:

Review your app to determine if you’re still using the deprecated fields.

We also announced a new `in-review` capability status. The `in-review` status communicates when Moov is manually reviewing account details to enable a capability — you don't need to take any further action. The existing `pending` status will notify you if further action is needed, for example, providing any missing capability requirements.

Review your app to determine if the new `in-review` capability status will negatively impact your system.

## Debt repayment transfers

Merchants that service loans or other debt payments may be eligible for lower interchange fees by enabling debt repayment for their account. See our [debt repayment](https://docs.moov.io/guides/money-movement/card-acceptance/debt-repayment/) guide for more information, or [contact us](/content/contact/index.html) if you have a debt repayment use case.

## American Express

Moov now supports American Express card processing. If you're interested in processing Amex, please [contact support](https://support.moov.io/).

## SEC codes

You now have the option of specifying an SEC code in certain ACH transfer request scenarios. The following SEC codes are available to set: `CCD`, `PPD`, `WEB`, and `TEL`. See our [ACH transfer](https://docs.moov.io/guides/money-movement/ach/#sec-codes) guide for more information.

## API updates

**Deprecation notice**

The following two fields related to accounts have been deprecated:

To determine if an account is able to perform a given action, look for changes in the status of the [requested capabilities](https://docs.moov.io/api/moov-accounts/capabilities/list/) for an account.

**New capability status**

The new `in-review` capability status communicates when Moov is manually reviewing account details to enable a capability - you don't need to take any further action. The existing `pending` status will notify you if further action is needed, for example, providing any missing capability requirements.

Please review your app to determine if you’re making use of the deprecated fields, or if the addition of the new `in-review` capability status will negatively impact your system.

## Instant disbursements with push to card and RTP

Moov has enabled immediate payouts to linked debit cards and bank accounts via Visa Direct, Mastercard Send, and RTP. This feature is now fully available in [test mode](https://docs.moov.io/guides/get-started/test-mode/) and to early adopters in production, with use cases for loan disbursements, gig payouts, and ecommerce settlements.

### Instant disbursements unlocked

- **Around-the-clock availability**: Execute payments to debit cards or bank accounts any time, including weekends and holidays.
- **Create new revenue streams**: Offer end users the option for faster payments and leverage facilitator fees to unlock new revenue opportunities.

### Push-to-card: Quick funds for debit card users

For enabled [push to card](https://docs.moov.io/guides/money-movement/send-payments/push-to-card/) customers, a new **`push-to-card`** payment method is automatically generated when an eligible debit card is linked to a Moov account. Transfer funds between a **`moov-wallet`** and **`push-to-card`** payment method and see them credited within 30 minutes or less.

### RTP: Real-time bank transfers

With [RTP](https://docs.moov.io/guides/money-movement/send-payments/instant-payments/), you can instantly transfer funds from a Moov wallet to eligible bank accounts. The **`rtp-credit`** payment method is automatically generated for eligible bank accounts and will automatically update as additional banks join the RTP network.

### Available in test mode

View the [push to card](https://docs.moov.io/guides/get-started/test-mode/#push-to-card--pull-from-card) and [RTP](https://docs.moov.io/guides/get-started/test-mode/#rtp) test mode guides to see how you can experience the full capabilities of instant disbursements on test accounts with pre-populated sample data.

### Enable in production

To use instant disbursements in a production environment, [contact us](/content/contact/index.html).

## Terms of service Moov Drop

Our new, pre-built [terms of service Drop](https://docs.moov.io/moovjs/drops/terms-of-service/) provides users links to our privacy policy and terms of service agreement. We’ll generate a token in the background that you can use to update the account to be compliant with Moov’s terms of service.

## Disconnect accounts with the API

We’ve added a new `DEL` endpoint in the `/accounts` API. Provide the account and bank account IDs to disconnect an account. See the [API reference](https://docs.moov.io/api/sources/bank-accounts/delete/) for more information.

## Updated link card response

We’ve updated the link a card `POST` [endpoint](https://docs.moov.io/api/sources/cards/create/) to save you time by including the payment method IDs for the card in the response. You’ll no longer need to make a separate call to retrieve them when immediately making a transfer after linking a card.

## Failed transfer status update

If money fails to reach the destination in a wallet-to-bank transfer, the status will now appear as `failed` to align with our status definitions (previously, the status would appear as `reversed`). Historical transfer statuses will not be changed.

## Payment methods query parameter

The list payment methods [endpoint](https://docs.moov.io/api/sources/payment-methods/list/) includes a new query parameter, `paymentMethodType`, which fetches payment methods by type. In practice, this means you could combine `paymentMethodType` with the existing `sourceID` parameter to find the `push-to-card` payment method for a particular card ID, or the `rtp-credit` payment method for a particular bank account.

## Moov fees on completed transfers

Moov fees (`moovFeeDetails`, `moovFee`, `moovFeeDecimal`) will now populate once when a transfer completes with final fee amounts. Previously, fees would be populated after authorization and then updated with final amounts on transfer completion.

## Facilitator fees in the Dashboard

You can now add a facilitator fee when creating a transfer in the Dashboard.

## Ask Moov

Ask Moov is a new generative AI search tool within [docs.moov.io](https://docs.moov.io/) that makes searching for answers easy. Use the search field at the top of the page to type your question and press return. You'll get a summarized answer, plus links to sources within Moov documentation with more information.

## Updated bank account response

The bank account response model now includes a new `statusReason`, which explains why a status has changed. If the change was caused by an ACH return, you will also now see `achReturnCode` and `exceptionDetails` fields.

We’ve also added a new `updatedOn` field to show when a status update occurred. This field has been retroactively added to all updates, however, all updates prior to 2024 should expect to see a timestamp in December of 2023.

The new fields are viewable within the `bankAccount.updated` webhook, the bank account `GET` [endpoints](https://docs.moov.io/api/sources/bank-accounts/), and within the Moov Dashboard.

## Business representative requirements

As of January 8th, we'll be requiring the full social security number for business representatives and individuals that need to be verified. We'll be reaching out and asking for this information if it's missing from current representatives.

## Payment method IDs in the Dashboard

It’s now easier to find payment method IDs in the Dashboard. These IDs can easily be copied when viewing any wallet, and on the bank account and card detail views.

## Design

We gave the Dashboard a fresh coat of paint for the new year, but don't worry, your workflow is not impacted. We improved the contrast on buttons, made better use of available space, and added other design-related improvements. Moov is a progressive web app, so we're constantly looking at how we can improve the look and functionality on every device.

Our [documentation](https://docs.moov.io/) now supports both light mode and dark mode. The site will update per your OS settings.

## API reference redesign

We’ve redesigned the [Moov API reference](https://docs.moov.io/api) so that it’s now easier to read and understand each endpoint. Every endpoint now has its own page for enhanced clarity.

## Mobile search for Moov docs

We have improved the mobile experience for interacting with Moov's docs. You can now search [docs.moov.io](https://docs.moov.io/) on mobile browsers.

## American Express network discount fee property

The transfer response model now contains a new `discount` property within the `moovFeeDetails` object. The value represents the network discount fee for American Express transactions only. Note the `interchange` property within `moovFeeDetails` applies to fees for Visa, Mastercard, and Discover transactions.

## Document requirements for capabilities

The retrieve capability `GET` [endpoint](https://docs.moov.io/api/moov-accounts/capabilities/get/) and list capabilities `GET` [endpoint](https://docs.moov.io/api/moov-accounts/capabilities/list/) now communicate when Moov requires a document to complete verification and enable capabilities for an account. The same information is also communicated via the Moov Dashboard.

We recommend subscribing to the [capabilities webhook](https://docs.moov.io/guides/webhooks/webhook-events/#capabilities) for any changes to account requirements, then using the list capabilities `GET` [endpoint](https://docs.moov.io/api/moov-accounts/capabilities/list/) to determine what documentation is needed.

## Outstanding pending capabilities

We started cleaning up old requested capabilities for accounts. If a capability is pending and has missing requirements for 90 days, we will automatically un-request it. Capabilities that are un-requested can be re-requested at any time.

## Bug fix

We resolved a bug in the Dashboard where acceptable websites were previously flagged as invalid.

## New transfer creation flow

We’ve released a new transfer creation flow in the Moov Dashboard to simplify the end-to-end experience. You will now see a dedicated page to create a transfer versus the previous modal. More features for this flow are coming soon.

## Interchange qualification

We have deprecated the `interchangeQualification` field on the `GET` and `LIST` transfers [endpoints](https://docs.moov.io/api/money-movement/transfers/get/). We will now surface the card network program that determines the interchange rate in the `feeProgram` field.

## Transfer timestamps

The timestamps in the transfers `statusUpdates` object have moved to the existing objects `achDetails` and `cardDetails` on the transfers and refunds `GET` endpoints. The `statusUpdates` object will be deprecated.

Along with this change, we've updated transfer details to include an improved timeline in the Dashboard. You will now see progress bars with clickable steps to view the timestamps associated with each stage of the transfer.

## Improvements

- For account onboarding and adding a representative, we have updated the address fields to show the full zip code in the Dashboard.
- When providing a website for a business profile in the Dashboard, you are no longer limited to sites that start with `https://`.

## Bug fixes

- Previously, our warning copy would incorrectly mark a failed verification as missing information in the Dashboard. We've updated the warning copy to indicate an error could be due to missing information or failed verification.
- We also fixed an issue in the Dashboard where the account list was not properly filtering by verification state.
- We updated the [underwriting](https://docs.moov.io/api/moov-accounts/underwriting/) endpoint so that when you pass an invalid dollar amount with decimals, you receive a `422` response (indicating unprocessable content) rather than a generic `500` internal server error response.
