pub struct Requirement {
pub deadline: Option<DateTime<Utc>>,
pub impact: Vec<CapabilityName>,
pub status: RequirementStatus,
pub tax_forms: Vec<TaxForm>,
pub tos_versions: Vec<TermsOfService>,
}Expand description
A single requirement that a customer must submit to enable capabilities. Requirements are only shown for requested capabilities.
JSON schema
{
"description": "A single requirement that a customer must submit to enable capabilities.\nRequirements are only shown for requested capabilities.\n",
"examples": [
{
"impact": [
"custodyCrypto",
"transferCrypto"
],
"status": "due"
}
],
"type": "object",
"required": [
"status"
],
"properties": {
"deadline": {
"description": "Optional aggregate deadline by which this requirement must be satisfied.\n\nFor the `tos` requirement, this is the earliest set deadline among the\nunaccepted required Terms of Service versions listed in `tosVersions`.\nIt is omitted only when none of the unaccepted versions has a deadline.\nDo not infer `past_due` or whether the requirement blocks from this\naggregate field alone; inspect each version's deadline.\n",
"type": "string",
"format": "date-time"
},
"impact": {
"description": "List of capabilities affected by this requirement, sorted alphabetically.\nOnly present for `due`, `past_due`, `pending`, or `rejected` statuses.\n",
"examples": [
[
"custodyCrypto",
"transferCrypto"
]
],
"type": "array",
"items": {
"$ref": "#/components/schemas/CapabilityName"
}
},
"status": {
"$ref": "#/components/schemas/RequirementStatus"
},
"taxForms": {
"description": "Required tax attestation forms the Customer has not yet completed.\nThis field appears only under the requirement key `taxAttestation`.\nSubmit each `form` back via `taxAttestations[].form` on\n`Update Customer` (or `Create Customer`) together with the other\nfields required for that form to clear the requirement.\n",
"examples": [
[
"us_w9"
]
],
"type": "array",
"items": {
"$ref": "#/components/schemas/TaxForm"
}
},
"tosVersions": {
"description": "Required Terms of Service versions the Customer has not yet\naccepted, with the metadata needed to render an acceptance UI\n(each entry carries a stable `versionId`, the BCP 47\n`languages` the version is published in, an optional per-version\n`deadline`, and a language-agnostic `url`). A missing deadline means\nacceptance is required immediately while the requirement status remains\n`due`; only a set deadline in the past produces `past_due`. This field\nappears only under the requirement key `tos`; do not infer meaning from\n`tosVersions` on other requirement keys. Only populated for the `tos`\nrequirement; omitted on every other requirement key. Submit each\n`versionId` back via `tosAcceptances[].versionId` on `Update Customer`\n(or `Create Customer`) together with `language` and `acceptedAt` to\nclear the requirement.\n",
"examples": [
[
{
"languages": [
"en"
],
"url": "https://www.coinbase.com/legal/user-agreements-third-party-provider",
"versionId": "us_individual_2026-05-29"
}
]
],
"type": "array",
"items": {
"$ref": "#/components/schemas/TermsOfService"
}
}
}
}Fields§
§deadline: Option<DateTime<Utc>>Optional aggregate deadline by which this requirement must be satisfied.
For the `tos` requirement, this is the earliest set deadline among the
unaccepted required Terms of Service versions listed in `tosVersions`.
It is omitted only when none of the unaccepted versions has a deadline.
Do not infer `past_due` or whether the requirement blocks from this
aggregate field alone; inspect each version's deadline.impact: Vec<CapabilityName>List of capabilities affected by this requirement, sorted alphabetically.
Only present for due, past_due, pending, or rejected statuses.
status: RequirementStatus§tax_forms: Vec<TaxForm>Required tax attestation forms the Customer has not yet completed.
This field appears only under the requirement key taxAttestation.
Submit each form back via taxAttestations[].form on
Update Customer (or Create Customer) together with the other
fields required for that form to clear the requirement.
tos_versions: Vec<TermsOfService>Required Terms of Service versions the Customer has not yet
accepted, with the metadata needed to render an acceptance UI
(each entry carries a stable versionId, the BCP 47
languages the version is published in, an optional per-version
deadline, and a language-agnostic url). A missing deadline means
acceptance is required immediately while the requirement status remains
due; only a set deadline in the past produces past_due. This field
appears only under the requirement key tos; do not infer meaning from
tosVersions on other requirement keys. Only populated for the tos
requirement; omitted on every other requirement key. Submit each
versionId back via tosAcceptances[].versionId on Update Customer
(or Create Customer) together with language and acceptedAt to
clear the requirement.