Skip to main content
PUT
Contracts / Update

Authorizations

Authorization
string
header
required

OAuth2 Bearer Authorization

Scopes

crm:contracts

Headers

Accept-Language
string

BCP 47 language tag for content negotiation (e.g. en, de-DE).

Example:

"en"

Path Parameters

uuid
string
required

Globally unique identifier of the contract to update.

Maximum string length: 36

Body

application/json

Updates metadata of an existing contract (addresses, external IDs, payment method, attributes, auth flags); lifecycle status changes must use the cancel endpoint instead. Required permission: crm:contracts:update. Available contexts: API Key.

ext_contract_id
string

Contract identifier as known by an external CRM. This is the primary field used to match ChargeCloud contracts to records in upstream systems (EDI feeds, partner integrations, migrations). Max 50 chars.

Maximum string length: 50
external_id
string

Contract-level external identifier (max 15 chars). Use ext_contract_id for longer references.

Maximum string length: 15
customer_group_id
integer<int32>

Customer group the customer is assigned to (pricing tier or reporting cohort). Resolved via the customer's group association; not stored on the contract itself.

campaign_id
integer<int32>

Optional reference to the acquisition or sales campaign linked to this contract.

company_name
string

Registered company name. Required for business customers (business = true).

Maximum string length: 255
salutation
enum<string>

Salutation code for the contract holder. Codes: 1 Mr, 2 Mrs, 3 Family, 4 Mr and Mrs, 5 Mrs and Mrs, 6 Mr and Mr, 7 married couple, 8 Company, 9 none, 10 diverse; 0 is the unset placeholder. New private/business registrations only accept 1, 2, 3 and 8.

Available options:
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
firstname
string

First name of the contract holder. Required for private customers.

Maximum string length: 70
surname
string

Surname (last name) of the contract holder. Required for private customers.

Maximum string length: 70
street
string

Street name of the contract holder's primary address.

Maximum string length: 255
house_number
string

House number of the primary address; may contain letters or suffixes (e.g., "12a").

Maximum string length: 16
zip
string

Postal code of the contract holder's primary address. Length and format are validated against country_id — invalid combinations are rejected.

Maximum string length: 16
city
string

City of the primary address.

Maximum string length: 128
country_id
integer<int32>

Internal country identifier of the primary address.

phone
string

Aggregated contract-level phone number; detailed numbers live on phone_home, phone_mobile, phone_business.

Maximum string length: 255
email
string

Aggregated contract-level email; distinct from email_private and email_business on the customer version.

Maximum string length: 255
reference_field_1
string

Free-text client-configurable reference. Common use cases include TecDoc identifiers, HC (Hauptkunde) numbers, cost centres, purchase-order numbers, and project IDs. No semantic enforcement by the system.

Maximum string length: 255
reference_field_2
string

Second free-text client-configurable reference, parallel to reference_field_1. Same use cases (TecDoc, HC, cost centres, etc.) — provided as a second slot when one reference is not enough.

Maximum string length: 255
billing_company
string

Company name used on invoices when the billing recipient differs from the contract holder.

Maximum string length: 255
billing_salutation
enum<string>

Salutation code for the billing recipient. Same codes and meanings as salutation (0-10).

Available options:
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10
billing_title
string

Academic or honorific title of the billing recipient (Dr., Prof., etc.).

Maximum string length: 70
billing_firstname
string

First name of the billing recipient when different from the contract holder.

Maximum string length: 70
billing_surname
string

Surname of the billing recipient when different from the contract holder.

Maximum string length: 70
billing_street
string

Street name of the billing address when different from the contract address.

Maximum string length: 255
billing_house_number
string

House number of the billing address; may contain letters or suffixes (e.g., "12a").

Maximum string length: 16
billing_zip
string

Postal code of the billing address.

Maximum string length: 16
billing_city
string

City of the billing address.

Maximum string length: 128
billing_country_id
integer<int32>

Internal country identifier of the billing address. Defaults to country_id when omitted on create.

billing_email
string

Email address to which invoices and billing correspondence are sent.

Maximum string length: 128
billing_phone
string

Phone number of the billing recipient.

Maximum string length: 128
disabled
boolean
default:false

True when the contract has been deactivated by an operator; excluded from charging and billing until re-enabled.

auth_enabled
boolean
default:false

True when the contract holder may log into the ChargeCloud customer app.

auth_username
string

Username for the ChargeCloud customer-app login; must be unique per client.

Maximum string length: 255
is_employer
boolean
default:false

True when this emobility contract is managed by an employer on behalf of employees; unlocks employee-reimbursement features.

payment_method_id
integer<int32>

Payment method used to bill this contract (SEPA mandate, credit card, etc.).

attributes
string

JSON-encoded map of contract attributes (e.g. {"attribute_key":"value", ...}). Keys and value types are configured per client — see the Attributes API for the available set. Unknown keys are rejected; optional attributes fall back to their configured default when omitted.

Response

The contract after the edit was applied, carrying the updated field values.

contract
object
required

The contract record. Collections carry the list projection, single-contract responses the full view projection.