# Resolution links

Resolution links are temporary, secure links you can send to businesses to resolve requirement errors surfaced during verification.

A business account must have fulfilled initial data requirements (via the [onboarding API](/api/moov-accounts/onboarding/), [hosted onboarding](/guides/dashboard/accounts/onboarding-links/), or the [Moov Drop](/moovjs/drops/onboarding/)) before verification can begin. When Moov cannot verify certain elements of the data provided, requirement errors and document requirements may be returned. Resolution links let end users self-serve by correcting or providing the additional information needed to resolve these errors and enable the capability.

![Resolution link notice](./resolution-link.png)

Requirement errors may involve [KYC-related](/guides/accounts/requirements/identity-verification/) information such as the business profile details and the identities of all business representatives.

Resolution links automatically expire after 30 days, or you can manually [disable](#disable-resolution-links) them at any time. An account can only have one active resolution link at a time.

## [Check for requirement errors](#check-for-requirement-errors)

Once an account has fulfilled its initial currently due requirements for a capability, Moov attempts to verify the data provided. If verification is unsuccessful, requirement errors will be returned. You can check for requirement errors in the Moov Dashboard or with the API. In the Dashboard, an action required alert displays in the account row. When you open the account's page, a list of what needs to be resolved appears under the account name.

![Alert for due items in Dashboard](../../shared-images/dashboard-resolution-alert.png)

Additionally, you can use the [retrieve a capability](/api/moov-accounts/capabilities/get/) or [list capabilities](/api/moov-accounts/capabilities/list/) endpoints to get `requirements.currentlyDue`.

### [Get requirement errors](#get-requirement-errors)

Log in to the Dashboard to view an account, or use the API to get requirement errors.

```zsh
curl -X GET "https://api.moov.io/accounts/{accountID}/capabilities/" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2026.04.00" \
```

```
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
```

```json
[
  {
    "capability": "transfers",
    "accountID": "string",
    "status": "enabled",
    "requirements": {
      "currentlyDue": [
        "account.tos-acceptance"
      ],
      "errors": [
        {
          "requirement": "account.tos-acceptance",
          "errorCode": "invalid-value"
        }
      ]
    },
    "disabledReason": "string",
    "createdOn": "2019-08-24T14:15:22Z",
    "updatedOn": "2019-08-24T14:15:22Z",
    "disabledOn": "2019-08-24T14:15:22Z"
  }
]
```

### [Create a resolution link](#create-a-resolution-link)

Create a resolution link to send to the end user resolve verification exceptions. The response includes the URL and the expiration date, which is automatically set to 30 days.

Once the link is sent, Moov will send the user an MFA code to access the link.

[Request](#tab-783526194-0-0) [Response](#tab-783526194-0-1)

```zsh
curl -X POST "https://api.moov.io/accounts/{accountID}/resolution-links" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2026.04.00" \
  --data-raw '{
    "recipient": {
      "phone": { 
        "number": "5555555555", 
        "countryCode": "1" 
      }
    }
  }'
```

```
1
2
3
4
5
6
7
8
9
```

```json
{
  "accountID": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "code": "bwebMOhZ85",
  "createdOn": "2026-07-01T12:00:00Z",
  "expiresOn": "2026-07-30T12:00:00Z",
  "partnerAccountID": "0d8e0d6e-e4a2-4f1b-8c3d-1b9e0f5a7c2d",
  "recipient": "15555555555",
  "url": "https://moov.link/r/bwebMOhZ85"
}
```

### [Get resolution links](#get-resolution-links)

Retrieve a specific resolution link or get a list of all resolution links.

[Get resolution link](#tab-859132467-0-0) [List resolution links](#tab-859132467-0-1)

```zsh
curl -X GET "https://api.moov.io/accounts/{accountID}/resolution-links/{resolutionLinkCode}" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2026.04.00" \
```

```zsh
curl -X GET "https://api.moov.io/accounts/{accountID}/resolution-links" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2026.04.00" \
```

### [Disable a resolution link](#disable-a-resolution-link)

If needed, you can disable a resolution link. Once a link has been disabled, the recipient will no longer be able to access it.

```zsh
curl -X DELETE "https://api.moov.io/accounts/{accountID}/resolution-links/{resolutionLinkCode}" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2026.04.00" \
```
