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,
},
)
using Moov.Sdk;
using Moov.Sdk.Models.Components;
using System.Collections.Generic;
var sdk = new MoovClient(xMoovVersion: "<value>");
var res = await sdk.Capabilities.RequestAsync(
accountID: "de140d5c-c78e-4ebb-a001-f51aaf6c814a",
body: new AddCapabilities() {
Capabilities = new List<CapabilityID>() {
CapabilityID.CollectFunds,
},
}
);
// handle responsepackage hello.world;
import io.moov.sdk.Moov;
import io.moov.sdk.models.components.*;
import io.moov.sdk.models.errors.AddCapabilitiesError;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.operations.RequestCapabilitiesResponse;
import java.lang.Exception;
import java.util.List;
public class Application {
public static void main(String[] args) throws GenericError, AddCapabilitiesError, Exception {
Moov sdk = Moov.builder()
.xMoovVersion("v2024.01.00")
.security(Security.builder()
.username("")
.password("")
.build())
.build();
RequestCapabilitiesResponse res = sdk.capabilities().request()
.accountID("0de140d5-cc78-4eeb-ab00-1f51aaf6c814")
.addCapabilities(AddCapabilities.builder()
.capabilities(List.of(
CapabilityID.COLLECT_FUNDS))
.build())
.call();
if (res.capabilities().isPresent()) {
// handle response
}
}
}require 'moov_ruby'
Models = ::Moov::Models
s = ::Moov::Client.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
endimport { Moov } from "@moovio/sdk";
const moov = new Moov({
xMoovVersion: "v2024.01.00",
security: {
username: "",
password: "",
},
});
async function run() {
const result = await moov.capabilities.request({
accountID: "0de140d5-cc78-4eeb-ab00-1f51aaf6c814",
addCapabilities: {
capabilities: [
"collect-funds",
],
},
});
console.log(result);
}
run();declare(strict_types=1);
require 'vendor/autoload.php';
use Moov\MoovPhp;
use Moov\MoovPhp\Models\Components;
$sdk = MoovPhp\Moov::builder()
->setXMoovVersion('v2024.01.00')
->setSecurity(
new Components\Security(
username: '',
password: '',
)
)
->build();
$addCapabilities = new Components\AddCapabilities(
capabilities: [
Components\CapabilityID::CollectFunds,
],
);
$response = $sdk->capabilities->request(
accountID: '0de140d5-cc78-4eeb-ab00-1f51aaf6c814',
addCapabilities: $addCapabilities
);
if ($response->capabilities !== null) {
// handle response
}from moovio_sdk import Moov
from moovio_sdk.models import components
with Moov(
x_moov_version="v2024.01.00",
security=components.Security(
username="",
password="",
),
) as moov:
res = moov.capabilities.request(account_id="0de140d5-cc78-4eeb-ab00-1f51aaf6c814", capabilities=[
components.CapabilityID.COLLECT_FUNDS,
])
# Handle response
print(res)[
{
"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 latest 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,
send-funds.push-to-card,
money-transfer.push-to-card,
send-funds.ach,
send-funds.rtp,
send-funds.instant-bank,
collect-funds,
collect-funds.card-payments,
money-transfer.pull-from-card,
collect-funds.ach,
wallet,
wallet.balance,
card-issuing,
platform.production-app,
platform.wallet-transfers
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,
send-funds.push-to-card,
money-transfer.push-to-card,
send-funds.ach,
send-funds.rtp,
send-funds.instant-bank,
collect-funds,
collect-funds.card-payments,
money-transfer.pull-from-card,
collect-funds.ach,
wallet,
wallet.balance,
card-issuing,
platform.production-app,
platform.wallet-transfers
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},
underwriting.businessPresence,
underwriting.geographicReach,
underwriting.volumeShareByCustomerType,
underwriting.pendingLitigation,
underwriting.documents.processingStatementsPast3Months,
underwriting.collectFunds.cardPayments.cardAcceptanceMethods,
underwriting.collectFunds.cardPayments.currentlyAcceptsCards,
underwriting.collectFunds.cardPayments.estimatedActivity.averageTransactionAmount,
underwriting.collectFunds.cardPayments.estimatedActivity.maximumTransactionAmount,
underwriting.collectFunds.cardPayments.estimatedActivity.monthlyVolumeRange,
underwriting.collectFunds.cardPayments.fulfillment,
underwriting.collectFunds.cardPayments.refundPolicy,
underwriting.collectFunds.ach.cardAcceptanceMethods,
underwriting.collectFunds.ach.currentlyAcceptsCards,
underwriting.collectFunds.ach.estimatedActivity.averageTransactionAmount,
underwriting.collectFunds.ach.estimatedActivity.maximumTransactionAmount,
underwriting.collectFunds.ach.estimatedActivity.monthlyVolumeRange,
underwriting.collectFunds.ach.fulfillment,
underwriting.collectFunds.ach.refundPolicy,
underwriting.sendFunds.ach.cardAcceptanceMethods,
underwriting.sendFunds.ach.currentlyAcceptsCards,
underwriting.sendFunds.ach.estimatedActivity.averageTransactionAmount,
underwriting.sendFunds.ach.estimatedActivity.maximumTransactionAmount,
underwriting.sendFunds.ach.estimatedActivity.monthlyVolumeRange,
underwriting.sendFunds.ach.fulfillment,
underwriting.sendFunds.ach.refundPolicy,
underwriting.sendFunds.rtp.cardAcceptanceMethods,
underwriting.sendFunds.rtp.currentlyAcceptsCards,
underwriting.sendFunds.rtp.estimatedActivity.averageTransactionAmount,
underwriting.sendFunds.rtp.estimatedActivity.maximumTransactionAmount,
underwriting.sendFunds.rtp.estimatedActivity.monthlyVolumeRange,
underwriting.sendFunds.rtp.fulfillment,
underwriting.sendFunds.rtp.refundPolicy,
underwriting.sendFunds.pushToCard.cardAcceptanceMethods,
underwriting.sendFunds.pushToCard.currentlyAcceptsCards,
underwriting.sendFunds.pushToCard.estimatedActivity.averageTransactionAmount,
underwriting.sendFunds.pushToCard.estimatedActivity.maximumTransactionAmount,
underwriting.sendFunds.pushToCard.estimatedActivity.monthlyVolumeRange,
underwriting.sendFunds.pushToCard.fulfillment,
underwriting.sendFunds.pushToCard.refundPolicy,
underwriting.moneyTransfer.pullFromCard.cardAcceptanceMethods,
underwriting.moneyTransfer.pullFromCard.currentlyAcceptsCards,
underwriting.moneyTransfer.pullFromCard.estimatedActivity.averageTransactionAmount,
underwriting.moneyTransfer.pullFromCard.estimatedActivity.maximumTransactionAmount,
underwriting.moneyTransfer.pullFromCard.estimatedActivity.monthlyVolumeRange,
underwriting.moneyTransfer.pullFromCard.fulfillment,
underwriting.moneyTransfer.pullFromCard.refundPolicy,
underwriting.moneyTransfer.pushToCard.cardAcceptanceMethods,
underwriting.moneyTransfer.pushToCard.currentlyAcceptsCards,
underwriting.moneyTransfer.pushToCard.estimatedActivity.averageTransactionAmount,
underwriting.moneyTransfer.pushToCard.estimatedActivity.maximumTransactionAmount,
underwriting.moneyTransfer.pushToCard.estimatedActivity.monthlyVolumeRange,
underwriting.moneyTransfer.pushToCard.fulfillment,
underwriting.moneyTransfer.pushToCard.refundPolicy
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>
status
string<enum>
enabled,
disabled,
pending,
in-review
updatedOn
string<date-time>