---
title: "Update the organization"
description: "Name, display timezone."
canonical_url: "https://twominutebilling.com/help/developers/api-reference/organization/update-the-organization"
---
# Update the organization

> Name, display timezone.

<api-operation method="PATCH" path="/v1/organization">
<template v-slot:docs="">

## Headers

<table>
<thead>
  <tr>
    <th>
      Parameter
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Required
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        Idempotency-Key
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Safely retry writes — repeats return the original response. If a write FAILED after it had already taken effect, that failure is what repeats: the key is spent, and a new attempt needs a new key.
    </td>
  </tr>
</tbody>
</table>

## Body

The request body is optional.

<table>
<thead>
  <tr>
    <th>
      Field
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Required
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        name
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      The organization's name.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        timezone
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Modern IANA zone name for ORG-SCOPED display (the dashboard's system, audit and developer screens). Null or an empty string clears it, and null means UTC. Legacy spellings are rewritten to the modern one (<code>
        Asia/Calcutta
      </code>
      
       is stored as <code>
        Asia/Kolkata
      </code>
      
      ); a fixed offset (<code>
        +05:30
      </code>
      
      ) or a bare abbreviation (<code>
        IST
      </code>
      
      ) is rejected with a 400. Not a billing input — subscription terms and proration key off the BUSINESS timezone.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        icon_url
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      no
    </td>
    
    <td>
      Square logo shown in the dashboard sidebar. An http(s) URL — upload one with <code>
        POST /v1/organization/brand_images
      </code>
      
      , or host it yourself. Null clears it.
    </td>
  </tr>
</tbody>
</table>

## Response

<table>
<thead>
  <tr>
    <th>
      Field
    </th>
    
    <th>
      Type
    </th>
    
    <th>
      Description
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        object
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The object type.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        id
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The organization's id (org_…).
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        name
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      The organization's name.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        timezone
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Display timezone for org-scoped screens; null means UTC. Never used for billing arithmetic — that is <code>
        business.timezone
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        icon_url
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Square logo shown in the dashboard sidebar; null means none is set.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        live_access
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      Whether the organization can change its live businesses. Every organization starts <code>
        enabled
      </code>
      
      , including one on the free plan. Our staff can set it to <code>
        locked
      </code>
      
      : then writes to a live business answer 403 with code <code>
        live_access_required
      </code>
      
      , and test mode works in full. Cloud only: always <code>
        enabled
      </code>
      
       on a self-hosted installation. One of <code>
        locked
      </code>
      
      , <code>
        enabled
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        status
      </code>
    </td>
    
    <td>
      <code>
        string
      </code>
    </td>
    
    <td>
      <code>
        restricted
      </code>
      
       makes the organization read-only: every write answers 403 with code <code>
        account_restricted
      </code>
      
      . This occurs when its plan is unpaid, until the open invoice is paid. It also occurs when the organization bills more than its plan covers and our staff make it read-only, until it changes to a plan that covers its billing. Its own billing to its customers continues. Cloud only: always <code>
        active
      </code>
      
       on a self-hosted installation. One of <code>
        active
      </code>
      
      , <code>
        restricted
      </code>
      
      .
    </td>
  </tr>
</tbody>
</table>

## Status codes

<table>
<thead>
  <tr>
    <th>
      Status
    </th>
    
    <th>
      Meaning
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        200
      </code>
    </td>
    
    <td>
      Success
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        400
      </code>
    </td>
    
    <td>
      Invalid request body, or not a valid IANA time zone
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        409
      </code>
    </td>
    
    <td>
      Idempotency-Key conflict — the key is already in flight, or was reused with a different request payload.
    </td>
  </tr>
</tbody>
</table>
</template>

<template v-slot:request="">

```bash [Request]
curl -X PATCH "$TMBILLING_URL/v1/organization" \
  -H "Authorization: Bearer $TMBILLING_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Brightwater Analytics"
  }'
```

</template>

<template v-slot:response="">
<code-group>

```json [200 OK]
{
  "object": "organization",
  "id": "org_XXXXXXXXXXXX01",
  "name": "Brightwater Analytics",
  "timezone": "Asia/Kolkata",
  "icon_url": "https://example.com/webhooks/billing",
  "live_access": "locked",
  "status": "active"
}
```

```json [400 Bad Request]
{
  "error": {
    "type": "invalid_request_error",
    "message": "Invalid request body, or not a valid IANA time zone"
  }
}
```

```json [409 Conflict]
{
  "error": {
    "type": "idempotency_error",
    "message": "Idempotency-Key conflict — the key is already in flight, or was reused with a different request payload."
  }
}
```

</code-group>
</template>
</api-operation>


## Sitemap

See the full [sitemap](https://twominutebilling.com/sitemap.md) for all pages.
