Customers
A Customer (often referred to as an "Organization") is the top-level entity in the platform that represents a legal body or an independent division. It serves as the primary container for billing, user management, and resource ownership.
All projects, resources, and costs are ultimately tied to a Customer. Users are granted permissions within the scope of a Customer or one of its child Projects.
Key Concepts
Billing Root: Invoices are generated at the Customer level, aggregating costs from all its projects.
Ownership: A Customer is owned by one or more users who have full administrative control over its properties, team, and projects.
Team Management: Users can be added as team members to a Customer with specific roles (e.g., Owner, Manager), granting them permissions across the entire organization.
Operations Summary
Core CRUD
List customers
Retrieve a list of customers. The list is filtered based on the user's permissions.
HTTPie Python TypeScript Query Parameters Responses
http \
GET \
https://api.example.com/api/customers/ \
Authorization:"Token YOUR_API_TOKEN"
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.customer_field_enum import CustomerFieldEnum # (1)
from waldur_api_client.api.customers import customers_list # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = customers_list . sync ( client = client )
for item in response :
print ( item )
Model Source: CustomerFieldEnum
API Source: customers_list
import { customersList } from 'waldur-js-client' ;
try {
const response = await customersList ({
auth : "Token YOUR_API_TOKEN"
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Description
abbreviation
string
Abbreviation
accounting_is_running
boolean
Filter by whether accounting is running.
agreement_number
string
archived
boolean
backend_id
string
contact_details
string
Contact details
current_user_has_project_create_permission
boolean
Return a list of customers where current user has project create permission.
field
array
has_resources
string
Filter by customers with resources.
is_call_managing_organization
boolean
Filter by customers that are call managing organizations.
is_service_provider
boolean
Filter by customers that are service providers.
name
string
Name
name_exact
string
Name (exact)
native_name
string
Native name
o
string
Which field to use when ordering the results.
organization_group_name
string
Organization group name
organization_group_uuid
array
Organization group UUID
owned_by_current_user
boolean
Return a list of customers where current user is owner.
page
integer
A page number within the paginated result set.
page_size
integer
Number of results to return per page.
query
string
Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number
registration_code
string
service_provider_uuid
string (uuid)
Filter by service provider UUID.
slug
string
Slug
user_uuid
string (uuid)
Filter by user UUID.
200 -
The response body is an array of objects, where each object has the following structure:
Field
Type
Description
url
string (uri)
uuid
string (uuid)
created
string (date-time)
organization_groups
array of objects
Organization groups this customer belongs to
organization_groups.uuid
string (uuid)
organization_groups.url
string (uri)
organization_groups.name
string
organization_groups.parent_uuid
string (uuid)
UUID of the parent organization group
organization_groups.parent_name
string
Name of the parent organization group
organization_groups.parent
string (uri)
organization_groups.customers_count
integer
Number of customers in this organization group
display_name
string
Display name of the organization (includes native name if available)
backend_id
string
Organization identifier in another application.
image
string (uri)
blocked
boolean
archived
boolean
display_billing_info_in_projects
boolean
default_tax_percent
string (decimal)
accounting_start_date
string (date-time)
projects_count
integer
Number of projects in this organization
users_count
integer
Number of users with access to this organization
sponsor_number
integer
External ID of the sponsor covering the costs
country_name
string
Human-readable country name
max_service_accounts
integer
Maximum number of service accounts allowed
project_metadata_checklist
string (uuid)
Checklist to be used for project metadata validation in this organization
grace_period_days
integer
Number of extra days after project end date before resources are terminated
user_email_patterns
any
user_affiliations
any
user_identity_sources
any
List of allowed identity sources (identity providers).
name
string
slug
string
URL-friendly identifier. Only editable by staff users.
native_name
string
abbreviation
string
description
string
contact_details
string
agreement_number
string
email
string (email)
phone_number
string
access_subnets
string
Enter a comma separated list of IPv4 or IPv6 CIDR addresses from where connection to self-service is allowed.
registration_code
string
homepage
string (uri)
domain
string
vat_code
string
VAT number
postal
string
address
string
bank_name
string
latitude
number (double)
longitude
number (double)
bank_account
string
country
any
Country code (ISO 3166-1 alpha-2)
notification_emails
string
Comma-separated list of notification email addresses
city
string
state
string
parish
string
street
string
house_nr
string
apartment_nr
string
household
string
project_slug_template
string
Template for project slugs. Supports: {customer_slug}, {project_name}, {year}, {month}, {counter}, {counter_padded}. Default: slugified project name
payment_profiles
array of objects
payment_profiles.uuid
string (uuid)
payment_profiles.url
string (uri)
payment_profiles.name
string
payment_profiles.organization_uuid
string (uuid)
payment_profiles.organization
string (uri)
payment_profiles.attributes
object
payment_profiles.attributes.end_date
string
payment_profiles.attributes.agreement_number
string
payment_profiles.attributes.contract_sum
integer
payment_profiles.payment_type
string
Enum: fixed_price, invoices, payment_gw_monthly
payment_profiles.payment_type_display
string
payment_profiles.is_active
boolean
customer_credit
number (double)
customer_unallocated_credit
number (double)
is_service_provider
boolean
service_provider
string (uri)
service_provider_uuid
string (uuid)
call_managing_organization_uuid
string
billing_price_estimate
any
Retrieve customer details
Fetch the details of a specific customer by its UUID.
HTTPie Python TypeScript Path Parameters Query Parameters Responses
http \
GET \
https://api.example.com/api/customers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12
13 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.customer_field_enum import CustomerFieldEnum # (1)
from waldur_api_client.api.customers import customers_retrieve # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = customers_retrieve . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client
)
print ( response )
Model Source: CustomerFieldEnum
API Source: customers_retrieve
1
2
3
4
5
6
7
8
9
10
11
12
13 import { customersRetrieve } from 'waldur-js-client' ;
try {
const response = await customersRetrieve ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
200 -
Field
Type
Description
url
string (uri)
uuid
string (uuid)
created
string (date-time)
organization_groups
array of objects
Organization groups this customer belongs to
organization_groups.uuid
string (uuid)
organization_groups.url
string (uri)
organization_groups.name
string
organization_groups.parent_uuid
string (uuid)
UUID of the parent organization group
organization_groups.parent_name
string
Name of the parent organization group
organization_groups.parent
string (uri)
organization_groups.customers_count
integer
Number of customers in this organization group
display_name
string
Display name of the organization (includes native name if available)
backend_id
string
Organization identifier in another application.
image
string (uri)
blocked
boolean
archived
boolean
display_billing_info_in_projects
boolean
default_tax_percent
string (decimal)
accounting_start_date
string (date-time)
projects_count
integer
Number of projects in this organization
users_count
integer
Number of users with access to this organization
sponsor_number
integer
External ID of the sponsor covering the costs
country_name
string
Human-readable country name
max_service_accounts
integer
Maximum number of service accounts allowed
project_metadata_checklist
string (uuid)
Checklist to be used for project metadata validation in this organization
grace_period_days
integer
Number of extra days after project end date before resources are terminated
user_email_patterns
any
user_affiliations
any
user_identity_sources
any
List of allowed identity sources (identity providers).
name
string
slug
string
URL-friendly identifier. Only editable by staff users.
native_name
string
abbreviation
string
description
string
contact_details
string
agreement_number
string
email
string (email)
phone_number
string
access_subnets
string
Enter a comma separated list of IPv4 or IPv6 CIDR addresses from where connection to self-service is allowed.
registration_code
string
homepage
string (uri)
domain
string
vat_code
string
VAT number
postal
string
address
string
bank_name
string
latitude
number (double)
longitude
number (double)
bank_account
string
country
any
Country code (ISO 3166-1 alpha-2)
notification_emails
string
Comma-separated list of notification email addresses
city
string
state
string
parish
string
street
string
house_nr
string
apartment_nr
string
household
string
project_slug_template
string
Template for project slugs. Supports: {customer_slug}, {project_name}, {year}, {month}, {counter}, {counter_padded}. Default: slugified project name
payment_profiles
array of objects
payment_profiles.uuid
string (uuid)
payment_profiles.url
string (uri)
payment_profiles.name
string
payment_profiles.organization_uuid
string (uuid)
payment_profiles.organization
string (uri)
payment_profiles.attributes
object
payment_profiles.attributes.end_date
string
payment_profiles.attributes.agreement_number
string
payment_profiles.attributes.contract_sum
integer
payment_profiles.payment_type
string
Enum: fixed_price, invoices, payment_gw_monthly
payment_profiles.payment_type_display
string
payment_profiles.is_active
boolean
customer_credit
number (double)
customer_unallocated_credit
number (double)
is_service_provider
boolean
service_provider
string (uri)
service_provider_uuid
string (uuid)
call_managing_organization_uuid
string
billing_price_estimate
any
Create a new customer
A new customer can only be created by users with staff privilege.
HTTPie Python TypeScript Request Body (required) Responses
http \
POST \
https://api.example.com/api/customers/ \
Authorization:"Token YOUR_API_TOKEN" \
name = "my-awesome-customer"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.customer_request import CustomerRequest # (1)
from waldur_api_client.api.customers import customers_create # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
body_data = CustomerRequest (
name = "my-awesome-customer"
)
response = customers_create . sync (
client = client ,
body = body_data
)
print ( response )
Model Source: CustomerRequest
API Source: customers_create
1
2
3
4
5
6
7
8
9
10
11
12
13 import { customersCreate } from 'waldur-js-client' ;
try {
const response = await customersCreate ({
auth : "Token YOUR_API_TOKEN" ,
body : {
"name" : "my-awesome-customer"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Field
Type
Required
Description
backend_id
string
Organization identifier in another application.
image
string (binary)
blocked
boolean
archived
boolean
display_billing_info_in_projects
boolean
default_tax_percent
string (decimal)
accounting_start_date
string (date-time)
sponsor_number
integer
External ID of the sponsor covering the costs
max_service_accounts
integer
Maximum number of service accounts allowed
project_metadata_checklist
string (uuid)
Checklist to be used for project metadata validation in this organization
grace_period_days
integer
Number of extra days after project end date before resources are terminated
user_email_patterns
any
user_affiliations
any
user_identity_sources
any
List of allowed identity sources (identity providers).
name
string
✓
slug
string
URL-friendly identifier. Only editable by staff users.
native_name
string
abbreviation
string
description
string
contact_details
string
agreement_number
string
email
string (email)
phone_number
string
access_subnets
string
Enter a comma separated list of IPv4 or IPv6 CIDR addresses from where connection to self-service is allowed.
registration_code
string
homepage
string (uri)
domain
string
vat_code
string
VAT number
postal
string
address
string
bank_name
string
latitude
number (double)
longitude
number (double)
bank_account
string
country
any
Country code (ISO 3166-1 alpha-2)
notification_emails
string
Comma-separated list of notification email addresses
city
string
state
string
parish
string
street
string
house_nr
string
apartment_nr
string
household
string
project_slug_template
string
Template for project slugs. Supports: {customer_slug}, {project_name}, {year}, {month}, {counter}, {counter_padded}. Default: slugified project name
201 -
Field
Type
Description
url
string (uri)
uuid
string (uuid)
created
string (date-time)
organization_groups
array of objects
Organization groups this customer belongs to
organization_groups.uuid
string (uuid)
organization_groups.url
string (uri)
organization_groups.name
string
organization_groups.parent_uuid
string (uuid)
UUID of the parent organization group
organization_groups.parent_name
string
Name of the parent organization group
organization_groups.parent
string (uri)
organization_groups.customers_count
integer
Number of customers in this organization group
display_name
string
Display name of the organization (includes native name if available)
backend_id
string
Organization identifier in another application.
image
string (uri)
blocked
boolean
archived
boolean
display_billing_info_in_projects
boolean
default_tax_percent
string (decimal)
accounting_start_date
string (date-time)
projects_count
integer
Number of projects in this organization
users_count
integer
Number of users with access to this organization
sponsor_number
integer
External ID of the sponsor covering the costs
country_name
string
Human-readable country name
max_service_accounts
integer
Maximum number of service accounts allowed
project_metadata_checklist
string (uuid)
Checklist to be used for project metadata validation in this organization
grace_period_days
integer
Number of extra days after project end date before resources are terminated
user_email_patterns
any
user_affiliations
any
user_identity_sources
any
List of allowed identity sources (identity providers).
name
string
slug
string
URL-friendly identifier. Only editable by staff users.
native_name
string
abbreviation
string
description
string
contact_details
string
agreement_number
string
email
string (email)
phone_number
string
access_subnets
string
Enter a comma separated list of IPv4 or IPv6 CIDR addresses from where connection to self-service is allowed.
registration_code
string
homepage
string (uri)
domain
string
vat_code
string
VAT number
postal
string
address
string
bank_name
string
latitude
number (double)
longitude
number (double)
bank_account
string
country
any
Country code (ISO 3166-1 alpha-2)
notification_emails
string
Comma-separated list of notification email addresses
city
string
state
string
parish
string
street
string
house_nr
string
apartment_nr
string
household
string
project_slug_template
string
Template for project slugs. Supports: {customer_slug}, {project_name}, {year}, {month}, {counter}, {counter_padded}. Default: slugified project name
payment_profiles
array of objects
payment_profiles.uuid
string (uuid)
payment_profiles.url
string (uri)
payment_profiles.name
string
payment_profiles.organization_uuid
string (uuid)
payment_profiles.organization
string (uri)
payment_profiles.attributes
object
payment_profiles.attributes.end_date
string
payment_profiles.attributes.agreement_number
string
payment_profiles.attributes.contract_sum
integer
payment_profiles.payment_type
string
Enum: fixed_price, invoices, payment_gw_monthly
payment_profiles.payment_type_display
string
payment_profiles.is_active
boolean
customer_credit
number (double)
customer_unallocated_credit
number (double)
is_service_provider
boolean
service_provider
string (uri)
service_provider_uuid
string (uuid)
call_managing_organization_uuid
string
billing_price_estimate
any
Update a customer
Update the details of an existing customer. Requires customer owner or staff permissions.
HTTPie Python TypeScript Path Parameters Request Body (required) Responses
http \
PUT \
https://api.example.com/api/customers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
Authorization:"Token YOUR_API_TOKEN" \
name = "my-awesome-customer"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.customer_request import CustomerRequest # (1)
from waldur_api_client.api.customers import customers_update # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
body_data = CustomerRequest (
name = "my-awesome-customer"
)
response = customers_update . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
body = body_data
)
print ( response )
Model Source: CustomerRequest
API Source: customers_update
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import { customersUpdate } from 'waldur-js-client' ;
try {
const response = await customersUpdate ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
body : {
"name" : "my-awesome-customer"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
Field
Type
Required
Description
backend_id
string
Organization identifier in another application.
image
string (binary)
blocked
boolean
archived
boolean
display_billing_info_in_projects
boolean
default_tax_percent
string (decimal)
accounting_start_date
string (date-time)
sponsor_number
integer
External ID of the sponsor covering the costs
max_service_accounts
integer
Maximum number of service accounts allowed
project_metadata_checklist
string (uuid)
Checklist to be used for project metadata validation in this organization
grace_period_days
integer
Number of extra days after project end date before resources are terminated
user_email_patterns
any
user_affiliations
any
user_identity_sources
any
List of allowed identity sources (identity providers).
name
string
✓
slug
string
URL-friendly identifier. Only editable by staff users.
native_name
string
abbreviation
string
description
string
contact_details
string
agreement_number
string
email
string (email)
phone_number
string
access_subnets
string
Enter a comma separated list of IPv4 or IPv6 CIDR addresses from where connection to self-service is allowed.
registration_code
string
homepage
string (uri)
domain
string
vat_code
string
VAT number
postal
string
address
string
bank_name
string
latitude
number (double)
longitude
number (double)
bank_account
string
country
any
Country code (ISO 3166-1 alpha-2)
notification_emails
string
Comma-separated list of notification email addresses
city
string
state
string
parish
string
street
string
house_nr
string
apartment_nr
string
household
string
project_slug_template
string
Template for project slugs. Supports: {customer_slug}, {project_name}, {year}, {month}, {counter}, {counter_padded}. Default: slugified project name
200 -
Field
Type
Description
url
string (uri)
uuid
string (uuid)
created
string (date-time)
organization_groups
array of objects
Organization groups this customer belongs to
organization_groups.uuid
string (uuid)
organization_groups.url
string (uri)
organization_groups.name
string
organization_groups.parent_uuid
string (uuid)
UUID of the parent organization group
organization_groups.parent_name
string
Name of the parent organization group
organization_groups.parent
string (uri)
organization_groups.customers_count
integer
Number of customers in this organization group
display_name
string
Display name of the organization (includes native name if available)
backend_id
string
Organization identifier in another application.
image
string (uri)
blocked
boolean
archived
boolean
display_billing_info_in_projects
boolean
default_tax_percent
string (decimal)
accounting_start_date
string (date-time)
projects_count
integer
Number of projects in this organization
users_count
integer
Number of users with access to this organization
sponsor_number
integer
External ID of the sponsor covering the costs
country_name
string
Human-readable country name
max_service_accounts
integer
Maximum number of service accounts allowed
project_metadata_checklist
string (uuid)
Checklist to be used for project metadata validation in this organization
grace_period_days
integer
Number of extra days after project end date before resources are terminated
user_email_patterns
any
user_affiliations
any
user_identity_sources
any
List of allowed identity sources (identity providers).
name
string
slug
string
URL-friendly identifier. Only editable by staff users.
native_name
string
abbreviation
string
description
string
contact_details
string
agreement_number
string
email
string (email)
phone_number
string
access_subnets
string
Enter a comma separated list of IPv4 or IPv6 CIDR addresses from where connection to self-service is allowed.
registration_code
string
homepage
string (uri)
domain
string
vat_code
string
VAT number
postal
string
address
string
bank_name
string
latitude
number (double)
longitude
number (double)
bank_account
string
country
any
Country code (ISO 3166-1 alpha-2)
notification_emails
string
Comma-separated list of notification email addresses
city
string
state
string
parish
string
street
string
house_nr
string
apartment_nr
string
household
string
project_slug_template
string
Template for project slugs. Supports: {customer_slug}, {project_name}, {year}, {month}, {counter}, {counter_padded}. Default: slugified project name
payment_profiles
array of objects
payment_profiles.uuid
string (uuid)
payment_profiles.url
string (uri)
payment_profiles.name
string
payment_profiles.organization_uuid
string (uuid)
payment_profiles.organization
string (uri)
payment_profiles.attributes
object
payment_profiles.attributes.end_date
string
payment_profiles.attributes.agreement_number
string
payment_profiles.attributes.contract_sum
integer
payment_profiles.payment_type
string
Enum: fixed_price, invoices, payment_gw_monthly
payment_profiles.payment_type_display
string
payment_profiles.is_active
boolean
customer_credit
number (double)
customer_unallocated_credit
number (double)
is_service_provider
boolean
service_provider
string (uri)
service_provider_uuid
string (uuid)
call_managing_organization_uuid
string
billing_price_estimate
any
Update project digest configuration
Update the project digest email configuration for this organization.
HTTPie Python TypeScript Path Parameters Request Body Responses
http \
PUT \
https://api.example.com/api/customers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update-project-digest-config/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.project_digest_config_request import ProjectDigestConfigRequest # (1)
from waldur_api_client.api.customers import customers_update_project_digest_config_update # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
body_data = ProjectDigestConfigRequest ()
response = customers_update_project_digest_config_update . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
body = body_data
)
print ( response )
Model Source: ProjectDigestConfigRequest
API Source: customers_update_project_digest_config_update
1
2
3
4
5
6
7
8
9
10
11
12
13 import { customersUpdateProjectDigestConfigUpdate } from 'waldur-js-client' ;
try {
const response = await customersUpdateProjectDigestConfigUpdate ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
Field
Type
Required
Description
is_enabled
boolean
frequency
string
Enum: weekly, biweekly, monthly
enabled_sections
array of strings
day_of_week
integer
For weekly/biweekly: 0=Sunday..6=Saturday
day_of_month
integer
For monthly: day of month (1-28)
200 -
Field
Type
Description
uuid
string (uuid)
is_enabled
boolean
frequency
string
Enum: weekly, biweekly, monthly
enabled_sections
array of strings
day_of_week
integer
For weekly/biweekly: 0=Sunday..6=Saturday
day_of_month
integer
For monthly: day of month (1-28)
last_sent_at
string (date-time)
available_sections
array of objects
Partially update a customer
Partially update the details of an existing customer. Requires customer owner or staff permissions.
HTTPie Python TypeScript Path Parameters Request Body Responses
http \
PATCH \
https://api.example.com/api/customers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.patched_customer_request import PatchedCustomerRequest # (1)
from waldur_api_client.api.customers import customers_partial_update # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
body_data = PatchedCustomerRequest ()
response = customers_partial_update . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
body = body_data
)
print ( response )
Model Source: PatchedCustomerRequest
API Source: customers_partial_update
1
2
3
4
5
6
7
8
9
10
11
12
13 import { customersPartialUpdate } from 'waldur-js-client' ;
try {
const response = await customersPartialUpdate ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
Field
Type
Required
Description
backend_id
string
Organization identifier in another application.
image
string (binary)
blocked
boolean
archived
boolean
display_billing_info_in_projects
boolean
default_tax_percent
string (decimal)
accounting_start_date
string (date-time)
sponsor_number
integer
External ID of the sponsor covering the costs
max_service_accounts
integer
Maximum number of service accounts allowed
project_metadata_checklist
string (uuid)
Checklist to be used for project metadata validation in this organization
grace_period_days
integer
Number of extra days after project end date before resources are terminated
user_email_patterns
any
user_affiliations
any
user_identity_sources
any
List of allowed identity sources (identity providers).
name
string
slug
string
URL-friendly identifier. Only editable by staff users.
native_name
string
abbreviation
string
description
string
contact_details
string
agreement_number
string
email
string (email)
phone_number
string
access_subnets
string
Enter a comma separated list of IPv4 or IPv6 CIDR addresses from where connection to self-service is allowed.
registration_code
string
homepage
string (uri)
domain
string
vat_code
string
VAT number
postal
string
address
string
bank_name
string
latitude
number (double)
longitude
number (double)
bank_account
string
country
any
Country code (ISO 3166-1 alpha-2)
notification_emails
string
Comma-separated list of notification email addresses
city
string
state
string
parish
string
street
string
house_nr
string
apartment_nr
string
household
string
project_slug_template
string
Template for project slugs. Supports: {customer_slug}, {project_name}, {year}, {month}, {counter}, {counter_padded}. Default: slugified project name
200 -
Field
Type
Description
url
string (uri)
uuid
string (uuid)
created
string (date-time)
organization_groups
array of objects
Organization groups this customer belongs to
organization_groups.uuid
string (uuid)
organization_groups.url
string (uri)
organization_groups.name
string
organization_groups.parent_uuid
string (uuid)
UUID of the parent organization group
organization_groups.parent_name
string
Name of the parent organization group
organization_groups.parent
string (uri)
organization_groups.customers_count
integer
Number of customers in this organization group
display_name
string
Display name of the organization (includes native name if available)
backend_id
string
Organization identifier in another application.
image
string (uri)
blocked
boolean
archived
boolean
display_billing_info_in_projects
boolean
default_tax_percent
string (decimal)
accounting_start_date
string (date-time)
projects_count
integer
Number of projects in this organization
users_count
integer
Number of users with access to this organization
sponsor_number
integer
External ID of the sponsor covering the costs
country_name
string
Human-readable country name
max_service_accounts
integer
Maximum number of service accounts allowed
project_metadata_checklist
string (uuid)
Checklist to be used for project metadata validation in this organization
grace_period_days
integer
Number of extra days after project end date before resources are terminated
user_email_patterns
any
user_affiliations
any
user_identity_sources
any
List of allowed identity sources (identity providers).
name
string
slug
string
URL-friendly identifier. Only editable by staff users.
native_name
string
abbreviation
string
description
string
contact_details
string
agreement_number
string
email
string (email)
phone_number
string
access_subnets
string
Enter a comma separated list of IPv4 or IPv6 CIDR addresses from where connection to self-service is allowed.
registration_code
string
homepage
string (uri)
domain
string
vat_code
string
VAT number
postal
string
address
string
bank_name
string
latitude
number (double)
longitude
number (double)
bank_account
string
country
any
Country code (ISO 3166-1 alpha-2)
notification_emails
string
Comma-separated list of notification email addresses
city
string
state
string
parish
string
street
string
house_nr
string
apartment_nr
string
household
string
project_slug_template
string
Template for project slugs. Supports: {customer_slug}, {project_name}, {year}, {month}, {counter}, {counter_padded}. Default: slugified project name
payment_profiles
array of objects
payment_profiles.uuid
string (uuid)
payment_profiles.url
string (uri)
payment_profiles.name
string
payment_profiles.organization_uuid
string (uuid)
payment_profiles.organization
string (uri)
payment_profiles.attributes
object
payment_profiles.attributes.end_date
string
payment_profiles.attributes.agreement_number
string
payment_profiles.attributes.contract_sum
integer
payment_profiles.payment_type
string
Enum: fixed_price, invoices, payment_gw_monthly
payment_profiles.payment_type_display
string
payment_profiles.is_active
boolean
customer_credit
number (double)
customer_unallocated_credit
number (double)
is_service_provider
boolean
service_provider
string (uri)
service_provider_uuid
string (uuid)
call_managing_organization_uuid
string
billing_price_estimate
any
Update project digest configuration
Update the project digest email configuration for this organization.
HTTPie Python TypeScript Path Parameters Request Body Responses
http \
PATCH \
https://api.example.com/api/customers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update-project-digest-config/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.patched_project_digest_config_request import PatchedProjectDigestConfigRequest # (1)
from waldur_api_client.api.customers import customers_update_project_digest_config_partial_update # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
body_data = PatchedProjectDigestConfigRequest ()
response = customers_update_project_digest_config_partial_update . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
body = body_data
)
print ( response )
Model Source: PatchedProjectDigestConfigRequest
API Source: customers_update_project_digest_config_partial_update
1
2
3
4
5
6
7
8
9
10
11
12
13 import { customersUpdateProjectDigestConfigPartialUpdate } from 'waldur-js-client' ;
try {
const response = await customersUpdateProjectDigestConfigPartialUpdate ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
Field
Type
Required
Description
is_enabled
boolean
frequency
string
Enum: weekly, biweekly, monthly
enabled_sections
array of strings
day_of_week
integer
For weekly/biweekly: 0=Sunday..6=Saturday
day_of_month
integer
For monthly: day of month (1-28)
200 -
Field
Type
Description
uuid
string (uuid)
is_enabled
boolean
frequency
string
Enum: weekly, biweekly, monthly
enabled_sections
array of strings
day_of_week
integer
For weekly/biweekly: 0=Sunday..6=Saturday
day_of_month
integer
For monthly: day of month (1-28)
last_sent_at
string (date-time)
available_sections
array of objects
Delete a customer
Delete a customer. This action is only available to staff users. If a customer has any active projects, the deletion request will fail with a 409 Conflict response.
User Management
List users and their roles in a scope
Retrieves a list of users who have a role within a specific scope (e.g., a project or an organization). The list can be filtered by user details or role.
List users of a customer
Lists all users who have a role in the specified customer or any of its projects. Requires permissions to list customer users.
HTTPie Python TypeScript Path Parameters Query Parameters Responses
http \
GET \
https://api.example.com/api/customers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/users/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.customer_user_field_enum import CustomerUserFieldEnum # (1)
from waldur_api_client.models.customer_user_o_enum import CustomerUserOEnum # (2)
from waldur_api_client.api.customers import customers_users_list # (3)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = customers_users_list . sync (
customer_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client
)
for item in response :
print ( item )
Model Source: CustomerUserFieldEnum
Model Source: CustomerUserOEnum
API Source: customers_users_list
1
2
3
4
5
6
7
8
9
10
11
12
13 import { customersUsersList } from 'waldur-js-client' ;
try {
const response = await customersUsersList ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"customer_uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
Description
customer_uuid
string (uuid)
✓
UUID of the customer
Name
Type
Description
agreement_date
string (date-time)
Agreement date after
civil_number
string
date_joined
string (date-time)
Date joined after
description
string
email
string
Email
field
array
full_name
string
Full name
is_active
boolean
Is active
job_title
string
Job title
modified
string (date-time)
Date modified after
native_name
string
Native name
o
string
Ordering. Sort by a combination of first name, last name, and username.Enum: concatenated_name, -concatenated_name
organization
string
Organization
organization_role
array
Filter by one or more organization roles. Select a standard role or provide a custom role string. Can be specified multiple times.
page
integer
A page number within the paginated result set.
page_size
integer
Number of results to return per page.
phone_number
string
project_role
array
Filter by one or more project roles. Select a standard role or provide a custom role string. Can be specified multiple times.
registration_method
string
user_keyword
string
User keyword
username
string
Username
200 -
The response body is an array of objects, where each object has the following structure:
Field
Type
Description
url
string (uri)
uuid
string (uuid)
username
string
Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
full_name
string
email
string (email)
role_name
string
projects
array of objects
projects.url
string (uri)
projects.uuid
string
projects.name
string
projects.role_name
string
projects.expiration_time
string (date-time)
expiration_time
string (date-time)
image
string (uri)
Grant a role to a user
Assigns a specific role to a user within the current scope. An optional expiration time for the role can be set.
HTTPie Python TypeScript Path Parameters Request Body (required) Responses
http \
POST \
https://api.example.com/api/customers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/add_user/ \
Authorization:"Token YOUR_API_TOKEN" \
role = "string-value" \
user = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.user_role_create_request import UserRoleCreateRequest # (1)
from waldur_api_client.api.customers import customers_add_user # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
body_data = UserRoleCreateRequest (
role = "string-value" ,
user = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
response = customers_add_user . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
body = body_data
)
print ( response )
Model Source: UserRoleCreateRequest
API Source: customers_add_user
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import { customersAddUser } from 'waldur-js-client' ;
try {
const response = await customersAddUser ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
body : {
"role" : "string-value" ,
"user" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
Field
Type
Required
role
string
✓
user
string (uuid)
✓
expiration_time
string (date-time)
201 -
Field
Type
expiration_time
string (date-time)
400 - Validation error, for example when trying to add a user to a terminated project.
Revoke a role from a user
Removes a specific role from a user within the current scope. This effectively revokes their permissions associated with that role.
Update a user's role expiration
Updates the expiration time for a user's existing role in the current scope. This is useful for extending or shortening the duration of a permission. To make a role permanent, set expiration_time to null.
Compliance
Provides detailed compliance status for all projects within a customer, including individual answers and completion status.
Provides aggregated statistics about project metadata compliance for all projects within a customer.
List projects with compliance data
Provides a paginated list of projects with their checklist completion status and answer details.
List questions with project answers
Provides a paginated list of all questions from the customer's compliance checklist, including the answers given in each project.
Configuration & Updates
Update organization groups for a customer
Assigns a customer to one or more organization groups. This action is restricted to staff users.
Data & Reporting
Get list of available countries
Returns a list of countries that can be used when creating or updating a customer. The list can be configured by the service provider.
Get customer resource usage statistics
Provides statistics about the resource usage (e.g., CPU, RAM, storage) for all projects within a customer. Can be filtered to show usage for the current month only.
Other Actions
Get object state at a specific timestamp
Returns the state of the object as it was at the specified timestamp. Only accessible by staff and support users.
Get version history
Returns the version history for this object. Only accessible by staff and support users.
HTTPie Python TypeScript Path Parameters Query Parameters Responses
http \
GET \
https://api.example.com/api/customers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/history/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12
13 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.customers import customers_history_list # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = customers_history_list . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client
)
for item in response :
print ( item )
API Source: customers_history_list
1
2
3
4
5
6
7
8
9
10
11
12
13 import { customersHistoryList } from 'waldur-js-client' ;
try {
const response = await customersHistoryList ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
uuid
string (uuid)
✓
Name
Type
Description
abbreviation
string
Abbreviation
accounting_is_running
boolean
Filter by whether accounting is running.
agreement_number
string
archived
boolean
backend_id
string
contact_details
string
Contact details
created_after
string
Filter versions created after this timestamp (ISO 8601)
created_before
string
Filter versions created before this timestamp (ISO 8601)
current_user_has_project_create_permission
boolean
Return a list of customers where current user has project create permission.
has_resources
string
Filter by customers with resources.
is_call_managing_organization
boolean
Filter by customers that are call managing organizations.
is_service_provider
boolean
Filter by customers that are service providers.
name
string
Name
name_exact
string
Name (exact)
native_name
string
Native name
o
string
Which field to use when ordering the results.
organization_group_name
string
Organization group name
organization_group_uuid
array
Organization group UUID
owned_by_current_user
boolean
Return a list of customers where current user is owner.
page
integer
A page number within the paginated result set.
page_size
integer
Number of results to return per page.
query
string
Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number
registration_code
string
service_provider_uuid
string (uuid)
Filter by service provider UUID.
slug
string
Slug
user_uuid
string (uuid)
Filter by user UUID.
200 -
The response body is an array of objects, where each object has the following structure:
Field
Type
Description
id
integer
Version ID
revision_date
string (date-time)
When this revision was created
revision_user
object (free-form)
User who created this revision
revision_comment
string
Comment describing the revision
serialized_data
object (free-form)
Serialized model fields at this revision
Get project digest configuration
Retrieve the project digest email configuration for this organization.
Update organization contact information. Requires CUSTOMER_CONTACT_UPDATE or CUSTOMER.UPDATE permission.
Preview digest for a project
Returns rendered HTML preview of the digest for a specific project.
Send a test digest email
Send a test digest email to the requesting user.