> ## Documentation Index
> Fetch the complete documentation index at: https://docs.advinservers.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update account details

> ### Overview

Updates billing contact details and returns the full account response. Send every profile field. `first_name`, `last_name`, `address1`, `city`, `postcode`, `country` and `phone_number` need values. Send empty strings to clear `company_name`, `address2`, `state` or `tax_id`. Use a two-letter country code and a phone number starting with `+` and the country code. Other fields are ignored. Contact support to change the account email. Returns 400 with an explanation if billing rejects the change.

### Permissions

Requires the account permission `account.update` (Change the account).



## OpenAPI

````yaml https://console.advinservers.com/docs/openapi.json patch /account
openapi: 3.1.0
info:
  title: API reference
  version: 1.0.0
  description: >-
    Use this API to manage your team's servers, networks, backups, and other
    resources.


    ## Authentication


    Create an API key under **API Keys** and send it as a bearer token with
    every request:


    ```

    Authorization: Bearer {YOUR_API_KEY}

    Accept: application/json

    ```


    Copy the key when you create it. It cannot be shown again. Revoking a key
    takes effect immediately.


    ## Permissions


    Give each key only the permissions it needs. Every endpoint lists the
    required permission.


    Permissions cover servers and other resources in the key's team.


    ## Team scope


    A key can access resources in the team selected when it was created. This
    includes servers,

    snapshots, backups, firewall groups, images, SSH keys, scripts, networks and
    addresses.

    Resources in other teams return `404 Not Found`. Create a separate key for
    each team.


    The key determines the team for every request. Legacy keys that had no team
    are assigned

    to the account's first owned team.


    ## Actions that need the panel


    API keys cannot do the following, even with every permission. Sign in to the
    panel in a

    browser to do them:


    - Create, edit or revoke API keys

    - Edit the IP groups that restrict API keys

    - End signed-in sessions

    - Change two-factor authentication

    - Change the account's email address

    - Accept or decline team invitations

    - Switch or leave a team


    This keeps a leaked key from widening its own access or locking you out of
    your account.


    ## Source IP restrictions


    A key can be restricted to one or more IP groups. Requests from other
    addresses are rejected.


    ## Requests and responses


    Each endpoint lists its path, query, header, and body parameters. Examples
    use fictional data.


    Single records use JSON objects. Collections use JSON arrays unless the
    endpoint supports pagination. Timestamps use ISO 8601 in UTC.


    Error responses include `message`. Validation errors also include an
    `errors` object for each field. Each endpoint lists its status codes.


    ## Audit log


    Every API request, including reads, is recorded in the account audit log
    with the key that made it.
servers:
  - url: https://console.advinservers.com/api/v1/client
security:
  - http: []
tags:
  - name: Account
    description: Billing contact details and account setup progress.
  - name: Account activity
    description: Actions performed in the current team by people and API keys.
  - name: Servers
    description: >-
      Order and list servers, read their state and resource use, open a console,
      and control power.
  - name: Server settings
    description: >-
      Rename a server, rebuild it, and change its hardware, media, resolvers and
      credentials.
  - name: Backups
    description: Scheduled server copies stored separately from the server.
  - name: Snapshots
    description: >-
      Take, restore and move server snapshots. Snapshots are kept in snapshot
      storage that the team buys by the GiB.
  - name: Firewall groups
    description: Reusable sets of firewall rules, and the servers they apply to.
  - name: IP groups
    description: Reusable source address lists for firewall rules.
  - name: Server firewall
    description: >-
      Read default traffic policies and rules managed outside your firewall
      groups.
  - name: IP addresses
    description: Manage floating IPs and server address assignments.
  - name: Private networks
    description: Connect servers over a private network in the same location.
  - name: Reverse DNS
    description: Set the hostnames returned by IP address lookups.
  - name: DDoS protection
    description: Configure attack filtering for server addresses.
  - name: Bandwidth
    description: Buy extra bandwidth and share it between servers or location pools.
  - name: SSH keys
    description: Public keys the account can install on a server when it is built.
  - name: Setup scripts
    description: Scripts the account can run on a server when it is built.
  - name: ISO images
    description: ISO images you have downloaded, and the servers they are mounted on.
  - name: Server upgrades
    description: Change an existing server's plan.
  - name: Checkout
    description: Choose a payment method and pay for a purchase.
  - name: Invoices
    description: View and pay account invoices.
  - name: Billing
    description: Manage service renewals, payment methods and account credit.
  - name: Transfers
    description: Move resources between teams or transfer ownership.
  - name: Teams
    description: Manage the team assigned to your API key.
  - name: Team members
    description: Invite people and manage their team access.
  - name: Team roles
    description: Define the permissions granted to team members.
  - name: Team activity
    description: View actions performed in a team.
  - name: Support tickets
    description: >-
      Open, read, reply to and close support tickets. Tickets belong to the
      account holder and are not shared with team members.
paths:
  /account:
    patch:
      tags:
        - Account
      summary: Update account details
      description: >-
        ### Overview


        Updates billing contact details and returns the full account response.
        Send every profile field. `first_name`, `last_name`, `address1`, `city`,
        `postcode`, `country` and `phone_number` need values. Send empty strings
        to clear `company_name`, `address2`, `state` or `tax_id`. Use a
        two-letter country code and a phone number starting with `+` and the
        country code. Other fields are ignored. Contact support to change the
        account email. Returns 400 with an explanation if billing rejects the
        change.


        ### Permissions


        Requires the account permission `account.update` (Change the account).
      operationId: client.account.update
      requestBody:
        description: >-
          Send a JSON object containing the fields below. Required fields are
          marked in the schema.
        required: true
        content:
          application/json:
            schema:
              examples:
                - first_name: Gordon
                  last_name: Freeman
                  company_name: Black Mesa Research Facility
                  address1: 1 Mesa Road
                  address2: Sector C, Anomalous Materials Laboratory
                  city: Socorro
                  state: New Mexico
                  postcode: '87801'
                  country: US
                  phone_number: +1 575 555 0198
                  tax_id: ''
              allOf:
                - $ref: '#/components/schemas/UpdateAccountRequest'
      responses:
        '200':
          description: The record, as a JSON object. There is no envelope.
          content:
            application/json:
              schema:
                type: object
                examples:
                  - profile:
                      first_name: Gordon
                      last_name: Freeman
                      company_name: Black Mesa Research Facility
                      address1: 1 Mesa Road
                      address2: Sector C, Anomalous Materials Laboratory
                      city: Socorro
                      state: New Mexico
                      postcode: '87801'
                      country: US
                      country_name: United States
                      phone_number: +1 575 555 0198
                      tax_id: null
                    balance:
                      due: $42.00
                      overdue: $12.00
                      credit: $10.00
                      unpaid_invoices: 2
                      overdue_invoices: 1
                      has_due: true
                      has_overdue: true
                      currency: USD
                    currency: USD
                    email: gordon.freeman@blackmesa.example.com
                    email_verified: true
                    portal_url: https://clients.advinservers.com
                properties:
                  profile:
                    type: object
                    description: >-
                      The name and address used for billing. Missing values are
                      null, not empty strings.
                    examples:
                      - first_name: Gordon
                        last_name: Freeman
                        company_name: Black Mesa Research Facility
                        address1: 1 Mesa Road
                        address2: Sector C, Anomalous Materials Laboratory
                        city: Socorro
                        state: New Mexico
                        postcode: '87801'
                        country: US
                        country_name: United States
                        phone_number: +1 575 555 0198
                        tax_id: null
                    properties:
                      first_name:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The account holder's first name, or null when it is
                          not provided.
                        examples:
                          - Gordon
                      last_name:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The account holder's last name, or null when it is not
                          provided.
                        examples:
                          - Freeman
                      company_name:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The company name used for billing, or null when it is
                          not provided.
                        examples:
                          - Black Mesa Research Facility
                      address1:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The first line of the billing address, or null when it
                          is not provided.
                        examples:
                          - 1 Mesa Road
                      address2:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The second line of the billing address, or null when
                          it is not provided.
                        examples:
                          - Sector C, Anomalous Materials Laboratory
                      city:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The billing address city, or null when it is not
                          provided.
                        examples:
                          - Socorro
                      state:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The billing address state, province, or region, or
                          null when it is not provided.
                        examples:
                          - New Mexico
                      postcode:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The billing address postal code, or null when it is
                          not provided.
                        examples:
                          - '87801'
                      country:
                        type:
                          - string
                          - 'null'
                        description: >-
                          An ISO 3166-1 alpha-2 code, or null where the stored
                          value is not one.
                        examples:
                          - US
                      country_name:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The country display name, or null when the stored
                          country code is not recognized.
                        examples:
                          - United States
                      phone_number:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The billing contact phone number, or null when it is
                          not provided.
                        examples:
                          - +1 575 555 0198
                      tax_id:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The tax identification number, or null when it is not
                          provided.
                        examples:
                          - null
                    required:
                      - first_name
                      - last_name
                      - company_name
                      - address1
                      - address2
                      - city
                      - state
                      - postcode
                      - country
                      - country_name
                      - phone_number
                      - tax_id
                  balance:
                    type: object
                    description: >-
                      The current outstanding balance, including partial
                      payments. Amounts include currency symbols and digit
                      separators. Display these strings directly; do not parse
                      them as numbers.
                    examples:
                      - due: $42.00
                        overdue: $12.00
                        credit: $10.00
                        unpaid_invoices: 2
                        overdue_invoices: 1
                        has_due: true
                        has_overdue: true
                        currency: USD
                    properties:
                      due:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The total unpaid balance, formatted for display, or
                          null when unavailable.
                        examples:
                          - $42.00
                      overdue:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The overdue balance, formatted for display, or null
                          when unavailable.
                        examples:
                          - $12.00
                      credit:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The available account credit, formatted for display,
                          or null when unavailable.
                        examples:
                          - $10.00
                      unpaid_invoices:
                        type: integer
                        description: The number of invoices with an outstanding balance.
                        examples:
                          - 2
                      overdue_invoices:
                        type: integer
                        description: The number of overdue invoices.
                        examples:
                          - 1
                      has_due:
                        type: boolean
                        description: Whether the account has an unpaid balance.
                        examples:
                          - true
                      has_overdue:
                        type: boolean
                        description: Whether the account has an overdue balance.
                        examples:
                          - true
                      currency:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The three-letter billing currency code, or null when
                          it is not known.
                        examples:
                          - USD
                    required:
                      - due
                      - overdue
                      - credit
                      - unpaid_invoices
                      - overdue_invoices
                      - has_due
                      - has_overdue
                      - currency
                  currency:
                    type:
                      - string
                      - 'null'
                    description: >-
                      The currency the account is billed in, or null when it is
                      not known.
                    examples:
                      - USD
                  email:
                    type: string
                    format: email
                    description: >-
                      The account email address. It cannot be changed through
                      this endpoint.
                    examples:
                      - gordon.freeman@blackmesa.example.com
                  email_verified:
                    type:
                      - boolean
                      - 'null'
                    description: >-
                      Whether the email address is verified. Null means the
                      billing record does not provide this information; it does
                      not mean false.
                    examples:
                      - true
                  portal_url:
                    type:
                      - string
                      - 'null'
                    description: >-
                      A link to the external account portal, or null if no
                      portal is configured.
                    examples:
                      - https://clients.advinservers.com
                required:
                  - profile
                  - balance
                  - currency
                  - email
                  - email_verified
                  - portal_url
        '400':
          description: >-
            The account's billing record could not be reached, this installation
            has none behind it, or the change was refused with a reason of its
            own. The message says which.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    examples:
                      - The request could not be carried out.
                required:
                  - message
        '401':
          description: >-
            The key was missing, malformed, revoked, or belongs to an account
            that no longer exists.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    examples:
                      - Unauthenticated.
                required:
                  - message
        '403':
          description: >-
            Access denied. Check the key's team, permissions and allowed IP
            addresses. Some actions, such as managing API keys, require a
            browser session. The response message explains the reason.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    examples:
                      - >-
                        This API key is not allowed to do that in this team. It
                        needs the "snapshot.delete" permission.
                required:
                  - message
        '422':
          description: >-
            A field is missing or invalid, or the resource cannot accept this
            change in its current state. Check `message` for details. Field
            validation also includes an `errors` object keyed by field name.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: >-
                      A summary of the validation error or the reason the change
                      was refused.
                    examples:
                      - The name field is required.
                  errors:
                    type: object
                    description: Validation errors grouped by field name.
                    additionalProperties:
                      type: array
                      items:
                        type: string
                required:
                  - message
        '429':
          description: >-
            Too many requests. The `Retry-After` header says how many seconds to
            wait. Limits are per account, so several keys on one account share
            them.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    examples:
                      - Too Many Attempts.
                required:
                  - message
components:
  schemas:
    UpdateAccountRequest:
      type: object
      examples:
        - first_name: Gordon
          last_name: Freeman
          company_name: Black Mesa Research Facility
          address1: 1 Mesa Road
          address2: Sector C, Anomalous Materials Laboratory
          city: Socorro
          state: New Mexico
          postcode: '87801'
          country: US
          phone_number: +1 575 555 0198
          tax_id: ''
      properties:
        first_name:
          type: string
          description: The account holder's first name.
          pattern: ^[^\p{C}]*$
          minLength: 1
          maxLength: 64
        last_name:
          type: string
          description: The account holder's last name.
          pattern: ^[^\p{C}]*$
          minLength: 1
          maxLength: 64
        company_name:
          type:
            - string
            - 'null'
          description: >-
            The company name for billing, or null or an empty string to clear
            it.
          pattern: ^[^\p{C}]*$
          maxLength: 128
        address1:
          type: string
          description: The first line of the billing address.
          pattern: ^[^\p{C}]*$
          minLength: 1
          maxLength: 255
        address2:
          type:
            - string
            - 'null'
          description: >-
            The second line of the billing address, or null or an empty string
            to clear it.
          pattern: ^[^\p{C}]*$
          maxLength: 255
        city:
          type: string
          description: The city for the billing address.
          pattern: ^[^\p{C}]*$
          minLength: 1
          maxLength: 128
        state:
          type:
            - string
            - 'null'
          description: >-
            The billing state, province, or region, or null or an empty string
            to clear it.
          pattern: ^[^\p{C}]*$
          maxLength: 128
        postcode:
          type: string
          description: The postal code for the billing address.
          pattern: ^[^\p{C}]*$
          minLength: 1
          maxLength: 32
        country:
          type: string
          description: The ISO 3166-1 alpha-2 country code.
          minLength: 2
          maxLength: 2
        phone_number:
          type: string
          description: The phone number, including its country calling code.
          pattern: ^\+[1-9][\d\s().-]*\d$
          minLength: 4
          maxLength: 32
        tax_id:
          type:
            - string
            - 'null'
          description: >-
            The tax identification number, or null or an empty string to clear
            it.
          pattern: ^[^\p{C}]*$
          maxLength: 64
      required:
        - first_name
        - last_name
        - company_name
        - address1
        - address2
        - city
        - state
        - postcode
        - country
        - phone_number
        - tax_id
      title: UpdateAccountRequest
  securitySchemes:
    http:
      type: http
      description: >-
        Your API key, sent as a bearer token. Create one in the control panel
        under API Keys, give it only the permissions the integration needs, and
        copy it when it is created. It cannot be shown again. Each key is
        restricted to one owned team. The key determines the team for every
        request.
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.