Enable capabilities

Request capabilities for accounts, fulfill requirements, and track the enablement lifecycle.

Capabilities move through a lifecycle from pending to enabled. Each capability has requirements that must be fulfilled before it can be enabled. These include account profile data, identity verification, and underwriting.

Every payment method requires certain capabilities. Visit the payment methods guide for details.

Request capabilities

You can request capabilities when creating an account or at any point after. The capabilities reference lists all available capabilities and their use cases.

Request via API

The following examples demonstrate how to request capabilities after an account has been created.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
curl -X POST "https://api.moov.io/accounts/{accountID}/capabilities" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2024.01.00" \
  --data-raw '{
    "capabilities": [
      "transfers", 
      "send-funds.ach", 
      "collect-funds.ach", 
      "wallet.balance"
    ]
  }'\
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
mc, _ := moov.NewClient()

var accountID string

mc.RequestCapabilities(ctx, accountID,
  []moov.CapabilityName{
    moov.CapabilityName_Transfers,
    moov.CapabilityName_SendFundsACH,
    moov.CapabilityName_CollectFundsACH,
    moov.Capability_NameWalletBalance,
  },
)
1
2
3
4
5
6
7
8
9
const moov = Moov(token);

const accountID = "accountID";
const capabilities = [
  "send-funds.ach", 
  "collect-funds.ach"
];

moov.accounts.capabilities.request({accountID, capabilities});

Requirements

After requesting a capability, Moov determines what requirements must be fulfilled based on the capability type and whether the account is an individual or business.

Requirements fall into two categories:

  • Verification: Confirms the account holder's identity. This includes basic account data (name, address, tax ID) and may require document uploads. See the identity verification guide.
  • Underwriting: Assesses the account's risk profile and expected transaction volume. Required for most payment capabilities. See the underwriting guide.

The transfers capability is automatically enabled with no additional requirements. The wallet.balance capability only requires verification.

Capability lifecycle

Each capability moves through statuses based on whether its requirements have been fulfilled and verified.

Status Description
pending Capability requested but requirements not yet met. Required information may be missing or verification failed.
in-review All requirements fulfilled. Moov is verifying the information through compliance checks.
enabled All requirements satisfied and verified. The capability is active and can be used in production.
disabled Capability turned off. May be due to a Moov compliance action or disabled via API/Dashboard.

Manage capabilities

Track the status of each capability and its requirements with the capabilities API or Dashboard.

Get capability details

Use the capabilities GET endpoint to retrieve capabilities for an account.

Field Description
capability The capability key (for example, collect-funds.ach)
status Current status (pending, in-review, enabled, disabled)
requirements.currentlyDue List of outstanding requirements
requirements.errors Array of errors encountered during verification
disabledReason If disabled, the reason (for example, risk action)
createdOn, updatedOn, disabledOn Lifecycle timestamps
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
{
  "capability": "collect-funds.ach",
  "accountID": "670356c4-bd3c-414b-9709-c4dc84752902",
  "status": "pending",
  "requirements": {
    "currentlyDue": [
      "document.business.verification"
    ],
    "errors": [
      {
        "requirement": "business.legalname",
        "errorCode": "failed-automatic-verification"
      }
    ]
  },
  "createdOn": "2025-05-13T19:46:53Z",
  "updatedOn": "2025-05-13T19:50:58Z"
}
After requesting capabilities, certain business types must provide Moov with a list of beneficial owners.

Webhooks

Set up a capability.updated webhook to listen for capability status changes. Webhooks enable real-time UI updates or automated handling, such as prompting users to provide missing information.

The Dashboard also displays notices when an account has outstanding requirements.

Summary Beta