# Update customer data Updates customer data fields. The main use case is correcting information rejected during KYC verification (items with pending_correction status), such as email, phone, or registration data. The cpf and external_id fields cannot be updated after creation. After correction, the KYC analysis resumes automatically and you will receive customer.kyc_updated webhooks with the progress. Endpoint: PATCH /customers/{customer_id} Version: 2026-03-01 Security: bearerAuth ## Path parameters: - `customer_id` (string, required) Example: "cust_550e8400e29b41d4a716446655440000" ## Request fields (application/json): - `email` (string) - `phone` (string) - `name` (string) - `cnpj` (string) - `trading_name` (string) ## Response 200 fields (application/json): - `id` (string, required) - `status` (string, required) Enum: "pending_kyc", "under_review", "active" - `cpf` (string, required) Example: "123.456.789-00" - `cnpj` (string,null, required) Example: "12.345.678/0001-90" - `name` (string, required) Example: "Joao Silva" - `email` (string, required) Example: "joao@example.com" - `phone` (string, required) Example: "+5511999999999" - `trading_name` (string,null, required) Example: "Loja do Joao" - `external_id` (string,null, required) Example: "partner-ref-123" - `kyc` (array, required) - `kyc.kind` (string, required) document for document submissions, data for data field corrections Enum: "document", "data" - `kyc.type` (string, required) Document type key (e.g., ccmei, selfie, identity_card_front) Example: "ccmei" - `kyc.description` (string, required) Human-readable label Example: "Certificado MEI" - `kyc.message` (string,null, required) Present when rejected — from the review feedback - `kyc.uploaded_at` (string,null, required) - `created_at` (string, required) - `updated_at` (string, required) ## Response 400 fields (application/problem+json): - `type` (string, required) URI identifying the error type - `title` (string, required) Short, human-readable summary of the problem type - `status` (integer, required) HTTP status code - `detail` (string, required) Human-readable explanation specific to this occurrence - `instance` (string) URI identifying this specific occurrence - `code` (string) Machine-readable subtype code - `param` (string) The request parameter that caused the error - `errors` (array) Field-level validation errors - `errors.param` (string, required) - `errors.detail` (string, required) - `errors.code` (string) ## Response 401 fields (application/problem+json): - `type` (string, required) URI identifying the error type - `title` (string, required) Short, human-readable summary of the problem type - `status` (integer, required) HTTP status code - `detail` (string, required) Human-readable explanation specific to this occurrence - `instance` (string) URI identifying this specific occurrence - `code` (string) Machine-readable subtype code - `param` (string) The request parameter that caused the error - `errors` (array) Field-level validation errors - `errors.param` (string, required) - `errors.detail` (string, required) - `errors.code` (string) ## Response 404 fields (application/problem+json): - `type` (string, required) URI identifying the error type - `title` (string, required) Short, human-readable summary of the problem type - `status` (integer, required) HTTP status code - `detail` (string, required) Human-readable explanation specific to this occurrence - `instance` (string) URI identifying this specific occurrence - `code` (string) Machine-readable subtype code - `param` (string) The request parameter that caused the error - `errors` (array) Field-level validation errors - `errors.param` (string, required) - `errors.detail` (string, required) - `errors.code` (string) ## Response 422 fields (application/problem+json): - `type` (string, required) URI identifying the error type - `title` (string, required) Short, human-readable summary of the problem type - `status` (integer, required) HTTP status code - `detail` (string, required) Human-readable explanation specific to this occurrence - `instance` (string) URI identifying this specific occurrence - `code` (string) Machine-readable subtype code - `param` (string) The request parameter that caused the error - `errors` (array) Field-level validation errors - `errors.param` (string, required) - `errors.detail` (string, required) - `errors.code` (string) ## Response 429 fields (application/problem+json): - `type` (string, required) URI identifying the error type - `title` (string, required) Short, human-readable summary of the problem type - `status` (integer, required) HTTP status code - `detail` (string, required) Human-readable explanation specific to this occurrence - `instance` (string) URI identifying this specific occurrence - `code` (string) Machine-readable subtype code - `param` (string) The request parameter that caused the error - `errors` (array) Field-level validation errors - `errors.param` (string, required) - `errors.detail` (string, required) - `errors.code` (string) ## Response 500 fields (application/problem+json): - `type` (string, required) URI identifying the error type - `title` (string, required) Short, human-readable summary of the problem type - `status` (integer, required) HTTP status code - `detail` (string, required) Human-readable explanation specific to this occurrence - `instance` (string) URI identifying this specific occurrence - `code` (string) Machine-readable subtype code - `param` (string) The request parameter that caused the error - `errors` (array) Field-level validation errors - `errors.param` (string, required) - `errors.detail` (string, required) - `errors.code` (string)