Capabilities

Returns all capabilities for the given account. Capabilities are permissions attached to accounts that control what verification flows frameOS runs and what payment methods an account can use.

The Capability object

Attributes
idstring

Unique identifier for the capability.

objectstring

Object type identifier. Always capability.

nameenum

The capability type. One of kyc, phone_verification, kyc_prefill, age_verification, address_verification, card_verification, bank_account_verification, creator_shield, geo_compliance, card_send, card_receive, bank_account_send, or bank_account_receive.

account_idstring

ID of the account this capability belongs to.

statusenum

Current status. One of pending, active, or disabled.

disabled_reasonnullable string

Why the capability is disabled. Present only when status is disabled.

currently_duearray

Field keys still required before this capability can activate. Empty when already active.

errorsarray

Errors from failed requirement verifications. Cleared automatically when the requirement is verified or waived.

createdstring

ISO 8601 timestamp of when the capability was created.

updatedstring

ISO 8601 timestamp of when the capability was last updated.

disablednullable string

ISO 8601 timestamp of when the capability was disabled. null if not disabled.

THE CAPABILITY OBJECT
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567891",
  "object": "capability",
  "name": "kyc",
  "account_id": "99c6b0da-2570-42a7-838a-5eaa318b07df",
  "status": "pending",
  "disabled_reason": null,
  "currently_due": [
    "profile.individual.name",
    "profile.individual.address",
    "profile.individual.ssn_last_four"
  ],
  "errors": [],
  "created": "2024-07-15T01:10:05Z",
  "updated": "2024-07-15T01:10:05Z",
  "disabled": null
}

List capabilities

Returns all capabilities for the given account. Capabilities are permissions attached to accounts that control what verification flows frameOS runs and what payment methods an account can use.

Path parameters
account_idstring

The ID of the account.

Returns

A dictionary with a data property containing an array of capability objects.

GET/v1/accounts/{account_id}/capabilities
curl --request GET \
  --url https://api.framepayments.com/v1/accounts/a70cd72f-e74a-40f2-96a2-3f60714aac4a/capabilities \
  --header 'Authorization: Bearer API_KEY'
RESPONSE
{
  "data": [
    {
      "id": "1d05c5bd-c1d9-4ecb-a8be-92fae0e1cd6e",
      "object": "capability",
      "name": "card_send",
      "account_id": "64dfac44-8295-4f12-b38f-f5e7db72b89d",
      "status": "pending",
      "disabled_reason": null,
      "ineligible_reason": null,
      "currently_due": [],
      "errors": [],
      "created": "2026-06-10T18:24:26Z",
      "updated": "2026-06-10T18:24:26Z",
      "disabled": null
    }
  ]
}

Request capabilities

Requests one or more capabilities for an account. Capability dependencies are resolved automatically — for example, requesting kyc_prefill also creates kyc and phone_verification capabilities.

Requesting an already-active capability is a no-op. The endpoint returns 201 when at least one new capability was created, and 200 when all requested capabilities already existed.

Path parameters
account_idstring

The ID of the account.

Body parameters
capabilitiesarray

An array of capability names to request (e.g. ["kyc", "card_receive"]).

Returns

Returns an array of capability objects when all requested capabilities already existed.

POST/v1/accounts/{account_id}/capabilities
curl --request POST \
  --url https://api.framepayments.com/v1/accounts/a70cd72f-e74a-40f2-96a2-3f60714aac4a/capabilities \
  --header 'Authorization: Bearer API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "capabilities": [
    "kyc"
  ]
}'
RESPONSE
[
  {
    "id": "b6d7060e-1fe2-4abe-83fb-20bf29741111",
    "object": "capability",
    "name": "card_send",
    "account_id": "6b03a482-5c46-4fe9-9fa3-7d62e045ad20",
    "status": "pending",
    "disabled_reason": null,
    "ineligible_reason": null,
    "currently_due": [],
    "errors": [],
    "created": "2026-06-10T18:24:26Z",
    "updated": "2026-06-10T18:24:26Z",
    "disabled": null
  }
]

Get capability

Retrieves a single capability by name for the given account. Returns the full capability object including current status, any outstanding requirements, and any errors.

Path parameters
account_idstring

The ID of the account.

nameenum

The name of the capability to retrieve (e.g. kyc). One of kyc, phone_verification, kyc_prefill, age_verification, address_verification, card_verification, bank_account_verification, creator_shield, geo_compliance, card_send, card_receive, bank_account_send, or bank_account_receive.

Returns

Returns the capability object.

GET/v1/accounts/{account_id}/capabilities/{name}
curl --request GET \
  --url https://api.framepayments.com/v1/accounts/a70cd72f-e74a-40f2-96a2-3f60714aac4a/capabilities/<name> \
  --header 'Authorization: Bearer API_KEY'
RESPONSE
{
  "id": "58657156-b3ac-43f3-8e0d-48626a71d15d",
  "object": "capability",
  "name": "card_send",
  "account_id": "620ca80b-fe51-44c8-80f4-0e98c0cee9b3",
  "status": "active",
  "disabled_reason": null,
  "ineligible_reason": null,
  "currently_due": [],
  "errors": [],
  "created": "2026-06-10T18:24:27Z",
  "updated": "2026-06-10T18:24:27Z",
  "disabled": null
}

Disable capability

Disables a capability for an account. If disabling the capability leaves the account with no active capabilities, the account is automatically restricted.

If the capability is already disabled, the request returns 200 with no state change.

Path parameters
account_idstring

The ID of the account.

nameenum

The name of the capability to disable (e.g. kyc). One of kyc, phone_verification, kyc_prefill, age_verification, address_verification, card_verification, bank_account_verification, creator_shield, geo_compliance, card_send, card_receive, bank_account_send, or bank_account_receive.

Returns

Returns the disabled capability object.

DELETE/v1/accounts/{account_id}/capabilities/{name}
curl --request DELETE \
  --url https://api.framepayments.com/v1/accounts/a70cd72f-e74a-40f2-96a2-3f60714aac4a/capabilities/<name> \
  --header 'Authorization: Bearer API_KEY'
RESPONSE
{
  "id": "faeafe90-a6df-4569-92dd-9c9fe73f710f",
  "object": "capability",
  "name": "card_send",
  "account_id": "dc3a4615-d576-4198-91f2-7c8fa4680945",
  "status": "disabled",
  "disabled_reason": null,
  "ineligible_reason": null,
  "currently_due": [],
  "errors": [],
  "created": "2026-06-10T18:24:27Z",
  "updated": "2026-06-10T18:24:27Z",
  "disabled": "2026-06-10T18:24:27Z"
}