pub struct CustomerWriteBase {
pub capabilities: Option<CapabilitiesMapInput>,
pub compliance: Option<Compliance>,
pub individual: Option<IndividualInput>,
pub project_ids: Vec<ProjectId>,
pub tax_attestations: Vec<TaxAttestation>,
pub tos_acceptances: Vec<TosAcceptance>,
pub type_: Option<CustomerType>,
}Expand description
Fields accepted on customer create and update requests. Shared by
CreateCustomerRequest and UpdateCustomerRequest; excludes the
server-managed response-only fields that appear on Customer.
JSON schema
{
"description": "Fields accepted on customer create and update requests. Shared by\n`CreateCustomerRequest` and `UpdateCustomerRequest`; excludes the\nserver-managed response-only fields that appear on `Customer`.\n",
"type": "object",
"properties": {
"capabilities": {
"description": "Capabilities to request for the customer.",
"examples": [
{}
],
"allOf": [
{
"$ref": "#/components/schemas/CapabilitiesMapInput"
}
]
},
"compliance": {
"$ref": "#/components/schemas/Compliance"
},
"individual": {
"description": "Information about an Individual customer. Not all fields are required\nfor all customers; the requirements depend on which capabilities are\nrequested. Submit only fields that are required by the capabilities\nthat have been requested.\n",
"examples": [
{
"firstName": "Jane",
"lastName": "Doe"
}
],
"allOf": [
{
"$ref": "#/components/schemas/IndividualInput"
}
]
},
"projectIds": {
"description": "The project IDs that this customer is associated with.",
"examples": [
[]
],
"type": "array",
"items": {
"$ref": "#/components/schemas/ProjectId"
}
},
"taxAttestations": {
"description": "Tax attestations to record on the customer. Submit one entry per\nrequired form surfaced inline on\n`requirements.taxAttestation.taxForms[]` (returned by `Get Customer`,\n`Create Customer`, and `Update Customer` whenever a `taxAttestation`\nrequirement is unsatisfied). The required fields per entry depend on\n`form`; see `TaxAttestation`. This field is ingestion-only and is\nnever returned on read.\n\nOmit `taxAttestations` on a partial update to leave previously\nrecorded attestations unchanged. Sending `taxAttestations: []` is\ninvalid (`errorType: \"invalid_request\"`) because it would clear all\nattestations without replacing them; omit the field entirely when you\nare not updating tax attestations.\n",
"writeOnly": true,
"examples": [
[
{
"acceptedAt": "2026-04-17T20:00:00Z",
"edeliveryConsent": true,
"form": "us_w9",
"isExemptBackupWithholding": true
}
]
],
"type": "array",
"items": {
"$ref": "#/components/schemas/TaxAttestation"
}
},
"tosAcceptances": {
"description": "Terms of Service acceptances to record on the customer. Submit one\nentry per required version surfaced inline on\n`requirements.tos.tosVersions[]` (returned by `Get Customer`,\n`Create Customer`, and `Update Customer` whenever a `tos` requirement\nis unsatisfied). The server rejects each acceptance whose `language`\nis not listed under `languages` on the matching required version with\n`errorType: \"unsupported_tos_language\"`.\n\nWhen new required Terms of Service versions are published, only the\nnew `versionId`s appear in `requirements.tos.tosVersions[]`; submit\nacceptances for only those new version(s).\n\nOmit `tosAcceptances` on a partial update to leave previously recorded\nacceptances unchanged. Sending `tosAcceptances: []` is invalid\n(`errorType: \"invalid_request\"`) because it would clear all acceptances\nwithout replacing them; omit the field entirely when you are not\nupdating Terms of Service acceptances.\n",
"examples": [
[
{
"acceptedAt": "2026-04-10T12:00:00Z",
"language": "en",
"versionId": "us_individual_2026-05-29"
}
]
],
"type": "array",
"items": {
"$ref": "#/components/schemas/TosAcceptance"
}
},
"type": {
"description": "The type of the customer. Required on create; accepted but ignored on\nupdate.\n",
"examples": [
"individual"
],
"allOf": [
{
"$ref": "#/components/schemas/CustomerType"
}
]
}
},
"additionalProperties": false
}Fields§
§capabilities: Option<CapabilitiesMapInput>Capabilities to request for the customer.
compliance: Option<Compliance>§individual: Option<IndividualInput>Information about an Individual customer. Not all fields are required for all customers; the requirements depend on which capabilities are requested. Submit only fields that are required by the capabilities that have been requested.
project_ids: Vec<ProjectId>The project IDs that this customer is associated with.
tax_attestations: Vec<TaxAttestation>Tax attestations to record on the customer. Submit one entry per
required form surfaced inline on
requirements.taxAttestation.taxForms[] (returned by Get Customer,
Create Customer, and Update Customer whenever a taxAttestation
requirement is unsatisfied). The required fields per entry depend on
form; see TaxAttestation. This field is ingestion-only and is
never returned on read.
Omit `taxAttestations` on a partial update to leave previously
recorded attestations unchanged. Sending `taxAttestations: []` is
invalid (`errorType: "invalid_request"`) because it would clear all
attestations without replacing them; omit the field entirely when you
are not updating tax attestations.tos_acceptances: Vec<TosAcceptance>Terms of Service acceptances to record on the customer. Submit one
entry per required version surfaced inline on
requirements.tos.tosVersions[] (returned by Get Customer,
Create Customer, and Update Customer whenever a tos requirement
is unsatisfied). The server rejects each acceptance whose language
is not listed under languages on the matching required version with
errorType: "unsupported_tos_language".
When new required Terms of Service versions are published, only the
new `versionId`s appear in `requirements.tos.tosVersions[]`; submit
acceptances for only those new version(s).
Omit `tosAcceptances` on a partial update to leave previously recorded
acceptances unchanged. Sending `tosAcceptances: []` is invalid
(`errorType: "invalid_request"`) because it would clear all acceptances
without replacing them; omit the field entirely when you are not
updating Terms of Service acceptances.type_: Option<CustomerType>The type of the customer. Required on create; accepted but ignored on update.