Request capabilities
Request capabilities for a specific account. Read our capabilities guide to learn more.
To access this endpoint using an access token
you'll need to specify the /accounts/{accountID}/capabilities.write scope.
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"
]
}'\
mc, _ := moov.NewClient()
var accountID string
mc.RequestCapabilities(ctx, accountID,
[]moov.CapabilityName{
moov.CapabilityName_Transfers,
moov.CapabilityName_SendFundsACH,
moov.CapabilityName_CollectFundsACH,
moov.Capability_NameWalletBalance,
},
)
import { SDK } from "openapi";
const sdk = new SDK({
xMoovVersion: "v2024.01.00",
});
async function run() {
const result = await sdk.capabilities.request({
accountID: "de140d5c-c78e-4ebb-a001-f51aaf6c814a",
addCapabilities: {
capabilities: [
"collect-funds",
],
},
});
console.log(result);
}
run();declare(strict_types=1);
require 'vendor/autoload.php';
use OpenAPI\OpenAPI;
use OpenAPI\OpenAPI\Models\Components;
$sdk = OpenAPI\SDK::builder()
->setXMoovVersion('v2024.01.00')
->build();
$addCapabilities = new Components\AddCapabilities(
capabilities: [
Components\CapabilityID::CollectFunds,
],
);
$response = $sdk->capabilities->request(
accountID: 'de140d5c-c78e-4ebb-a001-f51aaf6c814a',
addCapabilities: $addCapabilities
);
if ($response->capabilities !== null) {
// handle response
}from openapi import SDK
with SDK(
x_moov_version="v2024.01.00",
) as sdk:
res = sdk.capabilities.request(account_id="de140d5c-c78e-4ebb-a001-f51aaf6c814a", capabilities=[
"collect-funds",
])
# Handle response
print(res)package hello.world;
import java.lang.Exception;
import java.util.List;
import org.openapis.openapi.SDK;
import org.openapis.openapi.models.components.AddCapabilities;
import org.openapis.openapi.models.components.CapabilityID;
import org.openapis.openapi.models.errors.AddCapabilitiesError;
import org.openapis.openapi.models.errors.GenericError;
import org.openapis.openapi.models.operations.RequestCapabilitiesResponse;
public class Application {
public static void main(String[] args) throws GenericError, AddCapabilitiesError, Exception {
SDK sdk = SDK.builder()
.xMoovVersion("v2024.01.00")
.build();
RequestCapabilitiesResponse res = sdk.capabilities().request()
.accountID("de140d5c-c78e-4ebb-a001-f51aaf6c814a")
.addCapabilities(AddCapabilities.builder()
.capabilities(List.of(
CapabilityID.COLLECT_FUNDS))
.build())
.call();
if (res.capabilities().isPresent()) {
// handle response
}
}
}require 'openapi'
Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::SDK.new(
x_moov_version: 'v2024.01.00',
)
res = s.capabilities.request(account_id: 'de140d5c-c78e-4ebb-a001-f51aaf6c814a', add_capabilities: Models::Components::AddCapabilities.new(
capabilities: [
Models::Components::CapabilityID::COLLECT_FUNDS,
],
))
unless res.capabilities.nil?
# handle response
end[
{
"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"
}
]Response headers
x-request-id
string
required
{
"error": "string"
}Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
{
"error": "string"
}Response headers
x-request-id
string
required
{
"error": "string",
"capabilities": {
"property1": "string",
"property2": "string"
}
}Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Response headers
x-request-id
string
required
Headers
X-Moov-Version
string
Specify an API version.
API versioning follows the format vYYYY.QQ.BB, where
YYYYis the yearQQis the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)BBis the build number, starting at.01, for subsequent builds in the same quarter.- For example,
v2024.01.00is the initial release of the first quarter of 2024.
- For example,
The dev version represents the most recent development state. It may include breaking changes and should be treated as a beta release.
When no version is specified, the API defaults to v2024.01.00.
Path parameters
accountID
string
required
Body
capabilities
array<string>
required
transfers,
send-funds,
collect-funds,
wallet,
card-issuing
Response
accountID
string
capability
string<enum>
Moov account capabilities.
The production-app, platform.production-app, and / or platform.wallet-transfers capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
transfers,
send-funds,
collect-funds,
wallet,
card-issuing
createdOn
string<date-time>
disabledOn
string<date-time>
disabledReason
string
requirements
object
Show child attributes
currentlyDue
array<string>
account.tos-acceptance,
individual.mobile,
individual.email,
individual.email-or-mobile,
individual.firstname,
individual.lastname,
individual.address,
individual.ssn-last4,
individual.ssn,
individual.birthdate,
business.legalname,
business.description-or-website,
business.entity-type,
business.business-type,
business.dba,
business.ein,
business.address,
business.phone,
business.admins,
business.controllers,
business.owners,
business.classification,
business.industry-code-mcc,
business.industry,
business.indicate-owners-provided,
business.average-transaction-size,
business.max-transaction-size,
business.average-monthly-transaction-volume,
business.volume-by-customer-type,
business.card-volume-distribution,
business.fulfillment,
business.description,
business.underwriting-documents-tier-one,
bank-accounts.name,
bank-accounts.routing-number,
bank-accounts.account-number,
document.business.verification,
document.individual.tin,
document.individual.verification,
document.representative.{rep-uuid}.tin,
document.representative.{rep-uuid}.verification,
representative.{rep-uuid}.mobile,
representative.{rep-uuid}.email,
representative.{rep-uuid}.email-or-mobile,
representative.{rep-uuid}.firstname,
representative.{rep-uuid}.lastname,
representative.{rep-uuid}.address,
representative.{rep-uuid}.ssn-last4,
representative.{rep-uuid}.ssn,
representative.{rep-uuid}.birthdate,
representative.{rep-uuid}.job-title,
representative.{rep-uuid}.is-controller,
representative.{rep-uuid}.is-owner,
representative.{rep-uuid}.ownership,
document.{doc-uuid}
errors
array<object>
Show child attributes
errorCode
string<enum>
invalid-value,
failed-automatic-verification,
failed-other,
invalid-address,
address-restricted,
tax-id-mismatch,
document-id-mismatch,
document-date-of-birth-mismatch,
document-name-mismatch,
document-address.mismatch,
document-number-mismatch,
document-incomplete,
document-failed-risk,
document-illegible,
document-unsupported,
document-not-uploaded,
document-corrupt,
document-expired
requirement
string<enum>
account.tos-acceptance,
individual.mobile,
individual.email,
individual.email-or-mobile,
individual.firstname,
individual.lastname,
individual.address,
individual.ssn-last4,
individual.ssn,
individual.birthdate,
business.legalname,
business.description-or-website,
business.entity-type,
business.business-type,
business.dba,
business.ein,
business.address,
business.phone,
business.admins,
business.controllers,
business.owners,
business.classification,
business.industry-code-mcc,
business.industry,
business.indicate-owners-provided,
business.average-transaction-size,
business.max-transaction-size,
business.average-monthly-transaction-volume,
business.volume-by-customer-type,
business.card-volume-distribution,
business.fulfillment,
business.description,
business.underwriting-documents-tier-one,
bank-accounts.name,
bank-accounts.routing-number,
bank-accounts.account-number,
document.business.verification,
document.individual.tin,
document.individual.verification,
document.representative.{rep-uuid}.tin,
document.representative.{rep-uuid}.verification,
representative.{rep-uuid}.mobile,
representative.{rep-uuid}.email,
representative.{rep-uuid}.email-or-mobile,
representative.{rep-uuid}.firstname,
representative.{rep-uuid}.lastname,
representative.{rep-uuid}.address,
representative.{rep-uuid}.ssn-last4,
representative.{rep-uuid}.ssn,
representative.{rep-uuid}.birthdate,
representative.{rep-uuid}.job-title,
representative.{rep-uuid}.is-controller,
representative.{rep-uuid}.is-owner,
representative.{rep-uuid}.ownership,
document.{doc-uuid}
status
string<enum>
enabled,
disabled,
pending,
in-review
updatedOn
string<date-time>