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, hosted onboarding, or the Moov Drop) 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

Requirement errors may involve KYC-related 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 them at any time. An account can only have one active resolution link at a time.

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

Additionally, you can use the retrieve a capability or list capabilities endpoints to get requirements.currentlyDue.

Get requirement errors

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

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
[
  {
    "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 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.

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
{
  "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"
}

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

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

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

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