# Authorization Document Resource

> \[!CAUTION]
>
> The Hosted Phone Numbers API is currently under development, and this
> documentation is for existing users. A new version will soon be released as a
> generally available (GA) product. Please be aware that the API path
> `https://preview.twilio.com/HostedNumbers/AuthorizationDocuments` will change
> with the GA release. You will be informed about the timeline and given time to
> update accordingly.

An **Authorization Document** is a resource representing a legally binding document between Twilio and a customer to Authorize Twilio to run messaging traffic on a given set of Phone Numbers.

Hosted Number Orders can be assigned to an Authorization Document detailing which Address a Hosted Number Order is activated with. Once the Authorization Document has been signed, the Hosted Number Orders will then be registered to Twilio for routing capability.

## AuthorizationDocument Properties

```json
{"type":"object","refName":"preview.hosted_numbers.authorization_document","modelName":"preview_hosted_numbers_authorization_document","properties":{"sid":{"type":"string","minLength":34,"maxLength":34,"pattern":"^PX[0-9a-fA-F]{32}$","nullable":true,"description":"A 34 character string that uniquely identifies this AuthorizationDocument."},"address_sid":{"type":"string","minLength":34,"maxLength":34,"pattern":"^AD[0-9a-fA-F]{32}$","nullable":true,"description":"A 34 character string that uniquely identifies the Address resource that is associated with this AuthorizationDocument."},"status":{"type":"string","enum":["opened","signing","signed","canceled","failed"],"description":"Status of an instance resource. It can hold one of the values: 1. opened 2. signing, 3. signed LOA, 4. canceled, 5. failed. See the section entitled [Status Values](/docs/phone-numbers/hosted-numbers/hosted-numbers-api/authorization-document-resource#status-values) for more information on each of these statuses.","refName":"authorization_document_enum_status","modelName":"authorization_document_enum_status"},"email":{"type":"string","nullable":true,"description":"Email that this AuthorizationDocument will be sent to for signing.","x-twilio":{"pii":{"handling":"standard","deleteSla":30}}},"cc_emails":{"type":"array","nullable":true,"description":"Email recipients who will be informed when an Authorization Document has been sent and signed.","x-twilio":{"pii":{"handling":"standard","deleteSla":30}},"items":{"type":"string"}},"date_created":{"type":"string","format":"date-time","nullable":true,"description":"The date this resource was created, given as [GMT RFC 2822](http://www.ietf.org/rfc/rfc2822.txt) format."},"date_updated":{"type":"string","format":"date-time","nullable":true,"description":"The date that this resource was updated, given as [GMT RFC 2822](http://www.ietf.org/rfc/rfc2822.txt) format."},"url":{"type":"string","format":"uri","nullable":true},"links":{"type":"object","format":"uri-map","nullable":true}}}
```

## Status Values \[#status-values]

| Status   | Description                                                             |
| :------- | :---------------------------------------------------------------------- |
| opened   | Document is open and mutable.                                           |
| signing  | Document has been sent out to the Email for signature and is immutable. |
| signed   | Document has been signed by the Email recipient and is immutable.       |
| canceled | Document has been canceled by the Email recipient and is immutable.     |
| failed   | Document has failed with an error and is immutable.                     |

## Create an AuthorizationDocument resource

`POST https://preview.twilio.com/HostedNumbers/AuthorizationDocuments`

Create an Authorization Document for authorizing the hosting of phone numbers' capability on Twilio's platform.

The resource is explicit and all Hosted Number Orders added upon creation are the entire list of numbers that are assigned to the Authorization Document. Once the `POST` to create a new Authorization Document has been created, the LOA will immediately be sent out for signature.

### Request body parameters

```json
{"schema":{"type":"object","title":"CreateHostedNumbersAuthorizationDocumentRequest","required":["HostedNumberOrderSids","AddressSid","Email","ContactTitle","ContactPhoneNumber"],"properties":{"HostedNumberOrderSids":{"type":"array","description":"A list of HostedNumberOrder sids that this AuthorizationDocument will authorize for hosting phone number capabilities on Twilio's platform.","items":{"type":"string"}},"AddressSid":{"type":"string","minLength":34,"maxLength":34,"pattern":"^AD[0-9a-fA-F]{32}$","description":"A 34 character string that uniquely identifies the Address resource that is associated with this AuthorizationDocument."},"Email":{"type":"string","description":"Email that this AuthorizationDocument will be sent to for signing.","x-twilio":{"pii":{"handling":"standard","deleteSla":30}}},"ContactTitle":{"type":"string","description":"The title of the person authorized to sign the Authorization Document for this phone number."},"ContactPhoneNumber":{"type":"string","description":"The contact phone number of the person authorized to sign the Authorization Document."},"CcEmails":{"type":"array","description":"Email recipients who will be informed when an Authorization Document has been sent and signed.","items":{"type":"string"},"x-twilio":{"pii":{"handling":"standard","deleteSla":30}}}}},"examples":{"create":{"value":{"lang":"json","value":"{\n  \"AddressSid\": \"ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n  \"Email\": \"test+hosted@twilio.com\",\n  \"CcEmails\": [\n    \"test1@twilio.com\",\n    \"test2@twilio.com\"\n  ],\n  \"HostedNumberOrderSids\": [\n    \"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01\",\n    \"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa02\"\n  ],\n  \"ContactTitle\": \"Mr.\",\n  \"ContactPhoneNumber\": \"+14155555555\"\n}","meta":"","code":"{\n  \"AddressSid\": \"ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n  \"Email\": \"test+hosted@twilio.com\",\n  \"CcEmails\": [\n    \"test1@twilio.com\",\n    \"test2@twilio.com\"\n  ],\n  \"HostedNumberOrderSids\": [\n    \"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01\",\n    \"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa02\"\n  ],\n  \"ContactTitle\": \"Mr.\",\n  \"ContactPhoneNumber\": \"+14155555555\"\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"AddressSid\"","#7EE787"],[":","#C9D1D9"]," ",["\"ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"Email\"","#7EE787"],[":","#C9D1D9"]," ",["\"test+hosted@twilio.com\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"CcEmails\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["\"test1@twilio.com\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"test2@twilio.com\"","#A5D6FF"],"\n  ",["],","#C9D1D9"],"\n  ",["\"HostedNumberOrderSids\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["\"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa02\"","#A5D6FF"],"\n  ",["],","#C9D1D9"],"\n  ",["\"ContactTitle\"","#7EE787"],[":","#C9D1D9"]," ",["\"Mr.\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"ContactPhoneNumber\"","#7EE787"],[":","#C9D1D9"]," ",["\"+14155555555\"","#A5D6FF"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}},"encodingType":"application/x-www-form-urlencoded","conditionalParameterMap":{}}
```

Create an AuthorizationDocument

```js
// Download the helper library from https://www.twilio.com/docs/node/install
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(accountSid, authToken);

async function createHostedNumbersAuthorizationDocument() {
  const authorizationDocument =
    await client.preview.hosted_numbers.authorizationDocuments.create({
      addressSid: "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      contactPhoneNumber: "ContactPhoneNumber",
      contactTitle: "ContactTitle",
      email: "Email",
      hostedNumberOrderSids: ["HostedNumberOrderSids"],
    });

  console.log(authorizationDocument.sid);
}

createHostedNumbersAuthorizationDocument();
```

```python
# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

authorization_document = (
    client.preview.hosted_numbers.authorization_documents.create(
        hosted_number_order_sids=["HostedNumberOrderSids"],
        address_sid="ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        email="Email",
        contact_title="ContactTitle",
        contact_phone_number="ContactPhoneNumber",
    )
)

print(authorization_document.sid)
```

```csharp
// Install the C# / .NET helper library from twilio.com/docs/csharp/install

using System;
using Twilio;
using Twilio.Rest.Preview.HostedNumbers;
using System.Threading.Tasks;
using System.Collections.Generic;

class Program {
    public static async Task Main(string[] args) {
        // Find your Account SID and Auth Token at twilio.com/console
        // and set the environment variables. See http://twil.io/secure
        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var authorizationDocument = await AuthorizationDocumentResource.CreateAsync(
            hostedNumberOrderSids: new List<string> { "HostedNumberOrderSids" },
            addressSid: "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
            email: "Email",
            contactTitle: "ContactTitle",
            contactPhoneNumber: "ContactPhoneNumber");

        Console.WriteLine(authorizationDocument.Sid);
    }
}
```

```java
// Install the Java helper library from twilio.com/docs/java/install

import java.util.Arrays;
import com.twilio.Twilio;
import com.twilio.rest.preview.hostedNumbers.AuthorizationDocument;

public class Example {
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        AuthorizationDocument authorizationDocument = AuthorizationDocument
                                                          .creator(Arrays.asList("HostedNumberOrderSids"),
                                                              "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                                                              "Email",
                                                              "ContactTitle",
                                                              "ContactPhoneNumber")
                                                          .create();

        System.out.println(authorizationDocument.getSid());
    }
}
```

```php
<?php

// Update the path below to your autoload.php,
// see https://getcomposer.org/doc/01-basic-usage.md
require_once "/path/to/vendor/autoload.php";

use Twilio\Rest\Client;

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);

$authorization_document = $twilio->preview->hostedNumbers->authorizationDocuments->create(
    ["HostedNumberOrderSids"], // HostedNumberOrderSids
    "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", // AddressSid
    "Email", // Email
    "ContactTitle", // ContactTitle
    "ContactPhoneNumber" // ContactPhoneNumber
);

print $authorization_document->sid;
```

```ruby
# Download the helper library from https://www.twilio.com/docs/ruby/install
require 'twilio-ruby'

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid, auth_token)

authorization_document = @client
                         .preview
                         .hosted_numbers
                         .authorization_documents
                         .create(
                           hosted_number_order_sids: [
                             'HostedNumberOrderSids'
                           ],
                           address_sid: 'ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
                           email: 'Email',
                           contact_title: 'ContactTitle',
                           contact_phone_number: 'ContactPhoneNumber'
                         )

puts authorization_document.sid
```

```bash
curl -X POST "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments" \
--data-urlencode "HostedNumberOrderSids=HostedNumberOrderSids" \
--data-urlencode "AddressSid=ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
--data-urlencode "Email=Email" \
--data-urlencode "ContactTitle=ContactTitle" \
--data-urlencode "ContactPhoneNumber=ContactPhoneNumber" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

```json
{
  "address_sid": "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "cc_emails": [
    "test1@twilio.com",
    "test2@twilio.com"
  ],
  "date_created": "2017-03-28T20:06:39Z",
  "date_updated": "2017-03-28T20:06:39Z",
  "email": "Email",
  "links": {
    "dependent_hosted_number_orders": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/DependentHostedNumberOrders"
  },
  "sid": "PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "signing",
  "url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
```

## Fetch an AuthorizationDocument resource

`GET https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/{Sid}`

### Path parameters

```json
[{"name":"Sid","in":"path","description":"A 34 character string that uniquely identifies this AuthorizationDocument.","schema":{"type":"string","minLength":34,"maxLength":34,"pattern":"^PX[0-9a-fA-F]{32}$"},"required":true}]
```

Fetch an AuthorizationDocument

```js
// Download the helper library from https://www.twilio.com/docs/node/install
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(accountSid, authToken);

async function fetchHostedNumbersAuthorizationDocument() {
  const authorizationDocument = await client.preview.hosted_numbers
    .authorizationDocuments("PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
    .fetch();

  console.log(authorizationDocument.sid);
}

fetchHostedNumbersAuthorizationDocument();
```

```python
# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

authorization_document = client.preview.hosted_numbers.authorization_documents(
    "PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
).fetch()

print(authorization_document.sid)
```

```csharp
// Install the C# / .NET helper library from twilio.com/docs/csharp/install

using System;
using Twilio;
using Twilio.Rest.Preview.HostedNumbers;
using System.Threading.Tasks;

class Program {
    public static async Task Main(string[] args) {
        // Find your Account SID and Auth Token at twilio.com/console
        // and set the environment variables. See http://twil.io/secure
        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var authorizationDocument = await AuthorizationDocumentResource.FetchAsync(
            pathSid: "PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");

        Console.WriteLine(authorizationDocument.Sid);
    }
}
```

```java
// Install the Java helper library from twilio.com/docs/java/install

import com.twilio.Twilio;
import com.twilio.rest.preview.hostedNumbers.AuthorizationDocument;

public class Example {
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        AuthorizationDocument authorizationDocument =
            AuthorizationDocument.fetcher("PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").fetch();

        System.out.println(authorizationDocument.getSid());
    }
}
```

```php
<?php

// Update the path below to your autoload.php,
// see https://getcomposer.org/doc/01-basic-usage.md
require_once "/path/to/vendor/autoload.php";

use Twilio\Rest\Client;

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);

$authorization_document = $twilio->preview->hostedNumbers
    ->authorizationDocuments("PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
    ->fetch();

print $authorization_document->sid;
```

```ruby
# Download the helper library from https://www.twilio.com/docs/ruby/install
require 'twilio-ruby'

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid, auth_token)

authorization_document = @client
                         .preview
                         .hosted_numbers
                         .authorization_documents('PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
                         .fetch

puts authorization_document.sid
```

```bash
curl -X GET "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

```json
{
  "address_sid": "AD11111111111111111111111111111111",
  "cc_emails": [
    "aaa@twilio.com",
    "bbb@twilio.com"
  ],
  "date_created": "2017-03-28T20:06:39Z",
  "date_updated": "2017-03-28T20:06:39Z",
  "email": "test@twilio.com",
  "links": {
    "dependent_hosted_number_orders": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/DependentHostedNumberOrders"
  },
  "sid": "PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "signing",
  "url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
```

## Read multiple AuthorizationDocument resources

`GET https://preview.twilio.com/HostedNumbers/AuthorizationDocuments`

### Query parameters

```json
[{"name":"Email","in":"query","description":"Email that this AuthorizationDocument will be sent to for signing.","schema":{"type":"string"},"x-twilio":{"pii":{"handling":"standard","deleteSla":30}},"examples":{"readEmpty":{"value":"test+hosted@twilio.com"}}},{"name":"Status","in":"query","description":"Status of an instance resource. It can hold one of the values: 1. opened 2. signing, 3. signed LOA, 4. canceled, 5. failed. See the section entitled [Status Values](/docs/phone-numbers/hosted-numbers/hosted-numbers-api/authorization-document-resource#status-values) for more information on each of these statuses.","schema":{"type":"string","enum":["opened","signing","signed","canceled","failed"],"description":"Status of an instance resource. It can hold one of the values: 1. opened 2. signing, 3. signed LOA, 4. canceled, 5. failed. See the section entitled [Status Values](/docs/phone-numbers/hosted-numbers/hosted-numbers-api/authorization-document-resource#status-values) for more information on each of these statuses.","refName":"authorization_document_enum_status","modelName":"authorization_document_enum_status"},"examples":{"readEmpty":{"value":"signed"}}},{"name":"PageSize","in":"query","description":"How many resources to return in each list page. The default is 50, and the maximum is 1000.","schema":{"type":"integer","format":"int64","minimum":1,"maximum":1000}},{"name":"Page","in":"query","description":"The page index. This value is simply for client state.","schema":{"type":"integer","minimum":0}},{"name":"PageToken","in":"query","description":"The page token. This is provided by the API.","schema":{"type":"string"}}]
```

List multiple AuthorizationDocuments

```js
// Download the helper library from https://www.twilio.com/docs/node/install
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(accountSid, authToken);

async function listHostedNumbersAuthorizationDocument() {
  const authorizationDocuments =
    await client.preview.hosted_numbers.authorizationDocuments.list({
      limit: 20,
    });

  authorizationDocuments.forEach((a) => console.log(a.sid));
}

listHostedNumbersAuthorizationDocument();
```

```python
# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

authorization_documents = (
    client.preview.hosted_numbers.authorization_documents.list(limit=20)
)

for record in authorization_documents:
    print(record.sid)
```

```csharp
// Install the C# / .NET helper library from twilio.com/docs/csharp/install

using System;
using Twilio;
using Twilio.Rest.Preview.HostedNumbers;
using System.Threading.Tasks;

class Program {
    public static async Task Main(string[] args) {
        // Find your Account SID and Auth Token at twilio.com/console
        // and set the environment variables. See http://twil.io/secure
        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var authorizationDocuments = await AuthorizationDocumentResource.ReadAsync(limit: 20);

        foreach (var record in authorizationDocuments) {
            Console.WriteLine(record.Sid);
        }
    }
}
```

```java
// Install the Java helper library from twilio.com/docs/java/install

import com.twilio.Twilio;
import com.twilio.rest.preview.hostedNumbers.AuthorizationDocument;
import com.twilio.base.ResourceSet;

public class Example {
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        ResourceSet<AuthorizationDocument> authorizationDocuments = AuthorizationDocument.reader().limit(20).read();

        for (AuthorizationDocument record : authorizationDocuments) {
            System.out.println(record.getSid());
        }
    }
}
```

```php
<?php

// Update the path below to your autoload.php,
// see https://getcomposer.org/doc/01-basic-usage.md
require_once "/path/to/vendor/autoload.php";

use Twilio\Rest\Client;

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);

$authorizationDocuments = $twilio->preview->hostedNumbers->authorizationDocuments->read(
    [],
    20
);

foreach ($authorizationDocuments as $record) {
    print $record->sid;
}
```

```ruby
# Download the helper library from https://www.twilio.com/docs/ruby/install
require 'twilio-ruby'

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid, auth_token)

authorization_documents = @client
                          .preview
                          .hosted_numbers
                          .authorization_documents
                          .list(limit: 20)

authorization_documents.each do |record|
   puts record.sid
end
```

```bash
curl -X GET "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments?PageSize=20" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

```json
{
  "meta": {
    "first_page_url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments?Status=signed&Email=test%2Bhosted%40twilio.com&PageSize=50&Page=0",
    "key": "items",
    "next_page_url": null,
    "page": 0,
    "page_size": 50,
    "previous_page_url": null,
    "url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments?Status=signed&Email=test%2Bhosted%40twilio.com&PageSize=50&Page=0"
  },
  "items": []
}
```

## Update an AuthorizationDocument resource

`POST https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/{Sid}`

Requests to update a single, existing Authorization Documents instance resource's properties and returns the updated resource representation if successful.

> \[!WARNING]
>
> The ability to update an Authorization Document will be removed once the API is released as a generally available (GA) product.
> You will be informed about the timeline and given time to update accordingly.
>
> Authorization Documents can only be updated when in *opened* status. To update the Authorization Document, update the Status to `opened`.

### Path parameters

```json
[{"name":"Sid","in":"path","description":"A 34 character string that uniquely identifies this AuthorizationDocument.","schema":{"type":"string","minLength":34,"maxLength":34,"pattern":"^PX[0-9a-fA-F]{32}$"},"required":true}]
```

### Request body parameters

```json
{"schema":{"type":"object","title":"UpdateHostedNumbersAuthorizationDocumentRequest","properties":{"HostedNumberOrderSids":{"type":"array","description":"A list of HostedNumberOrder sids that this AuthorizationDocument will authorize for hosting phone number capabilities on Twilio's platform.","items":{"type":"string"}},"AddressSid":{"type":"string","minLength":34,"maxLength":34,"pattern":"^AD[0-9a-fA-F]{32}$","description":"A 34 character string that uniquely identifies the Address resource that is associated with this AuthorizationDocument."},"Email":{"type":"string","description":"Email that this AuthorizationDocument will be sent to for signing.","x-twilio":{"pii":{"handling":"standard","deleteSla":30}}},"CcEmails":{"type":"array","description":"Email recipients who will be informed when an Authorization Document has been sent and signed","items":{"type":"string"},"x-twilio":{"pii":{"handling":"standard","deleteSla":30}}},"Status":{"type":"string","enum":["opened","signing","signed","canceled","failed"],"description":"Status of an instance resource. It can hold one of the values: 1. opened 2. signing, 3. signed LOA, 4. canceled, 5. failed. See the section entitled [Status Values](/docs/phone-numbers/hosted-numbers/hosted-numbers-api/authorization-document-resource#status-values) for more information on each of these statuses.","refName":"authorization_document_enum_status","modelName":"authorization_document_enum_status"},"ContactTitle":{"type":"string","description":"The title of the person authorized to sign the Authorization Document for this phone number."},"ContactPhoneNumber":{"type":"string","description":"The contact phone number of the person authorized to sign the Authorization Document."}}},"examples":{"update":{"value":{"lang":"json","value":"{\n  \"AddressSid\": \"ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n  \"Email\": \"test+hosted@twilio.com\",\n  \"CcEmails\": [\n    \"test1@twilio.com\",\n    \"test2@twilio.com\"\n  ],\n  \"HostedNumberOrderSids\": [\n    \"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01\",\n    \"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa02\"\n  ],\n  \"Status\": \"signing\",\n  \"ContactTitle\": \"Mr.\",\n  \"ContactPhoneNumber\": \"+14155555555\"\n}","meta":"","code":"{\n  \"AddressSid\": \"ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n  \"Email\": \"test+hosted@twilio.com\",\n  \"CcEmails\": [\n    \"test1@twilio.com\",\n    \"test2@twilio.com\"\n  ],\n  \"HostedNumberOrderSids\": [\n    \"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01\",\n    \"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa02\"\n  ],\n  \"Status\": \"signing\",\n  \"ContactTitle\": \"Mr.\",\n  \"ContactPhoneNumber\": \"+14155555555\"\n}","tokens":[["{","#C9D1D9"],"\n  ",["\"AddressSid\"","#7EE787"],[":","#C9D1D9"]," ",["\"ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"Email\"","#7EE787"],[":","#C9D1D9"]," ",["\"test+hosted@twilio.com\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"CcEmails\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["\"test1@twilio.com\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"test2@twilio.com\"","#A5D6FF"],"\n  ",["],","#C9D1D9"],"\n  ",["\"HostedNumberOrderSids\"","#7EE787"],[": [","#C9D1D9"],"\n    ",["\"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01\"","#A5D6FF"],[",","#C9D1D9"],"\n    ",["\"HRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa02\"","#A5D6FF"],"\n  ",["],","#C9D1D9"],"\n  ",["\"Status\"","#7EE787"],[":","#C9D1D9"]," ",["\"signing\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"ContactTitle\"","#7EE787"],[":","#C9D1D9"]," ",["\"Mr.\"","#A5D6FF"],[",","#C9D1D9"],"\n  ",["\"ContactPhoneNumber\"","#7EE787"],[":","#C9D1D9"]," ",["\"+14155555555\"","#A5D6FF"],"\n",["}","#C9D1D9"]],"annotations":[],"themeName":"github-dark","style":{"color":"#c9d1d9","background":"#0d1117"}}}},"encodingType":"application/x-www-form-urlencoded","conditionalParameterMap":{}}
```

Update an AuthorizationDocument

```js
// Download the helper library from https://www.twilio.com/docs/node/install
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = twilio(accountSid, authToken);

async function updateHostedNumbersAuthorizationDocument() {
  const authorizationDocument = await client.preview.hosted_numbers
    .authorizationDocuments("PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
    .update({ hostedNumberOrderSids: ["HostedNumberOrderSids"] });

  console.log(authorizationDocument.sid);
}

updateHostedNumbersAuthorizationDocument();
```

```python
# Download the helper library from https://www.twilio.com/docs/python/install
import os
from twilio.rest import Client

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]
client = Client(account_sid, auth_token)

hosted_numbers_authorization_document = (
    client.preview.hosted_numbers.authorization_documents(
        "PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    ).update(hosted_number_order_sids=["HostedNumberOrderSids"])
)

print(hosted_numbers_authorization_document.sid)
```

```csharp
// Install the C# / .NET helper library from twilio.com/docs/csharp/install

using System;
using Twilio;
using Twilio.Rest.Preview.HostedNumbers;
using System.Threading.Tasks;
using System.Collections.Generic;

class Program {
    public static async Task Main(string[] args) {
        // Find your Account SID and Auth Token at twilio.com/console
        // and set the environment variables. See http://twil.io/secure
        string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
        string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

        TwilioClient.Init(accountSid, authToken);

        var authorizationDocument = await AuthorizationDocumentResource.UpdateAsync(
            hostedNumberOrderSids: new List<string> { "HostedNumberOrderSids" },
            pathSid: "PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");

        Console.WriteLine(authorizationDocument.Sid);
    }
}
```

```java
// Install the Java helper library from twilio.com/docs/java/install

import java.util.Arrays;
import com.twilio.Twilio;
import com.twilio.rest.preview.hostedNumbers.AuthorizationDocument;

public class Example {
    // Find your Account SID and Auth Token at twilio.com/console
    // and set the environment variables. See http://twil.io/secure
    public static final String ACCOUNT_SID = System.getenv("TWILIO_ACCOUNT_SID");
    public static final String AUTH_TOKEN = System.getenv("TWILIO_AUTH_TOKEN");

    public static void main(String[] args) {
        Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
        AuthorizationDocument authorizationDocument =
            AuthorizationDocument.updater("PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
                .setHostedNumberOrderSids(Arrays.asList("HostedNumberOrderSids"))
                .update();

        System.out.println(authorizationDocument.getSid());
    }
}
```

```php
<?php

// Update the path below to your autoload.php,
// see https://getcomposer.org/doc/01-basic-usage.md
require_once "/path/to/vendor/autoload.php";

use Twilio\Rest\Client;

// Find your Account SID and Auth Token at twilio.com/console
// and set the environment variables. See http://twil.io/secure
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);

$hosted_numbers_authorization_document = $twilio->preview->hostedNumbers
    ->authorizationDocuments("PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
    ->update(["hostedNumberOrderSids" => ["HostedNumberOrderSids"]]);

print $hosted_numbers_authorization_document->sid;
```

```ruby
# Download the helper library from https://www.twilio.com/docs/ruby/install
require 'twilio-ruby'

# Find your Account SID and Auth Token at twilio.com/console
# and set the environment variables. See http://twil.io/secure
account_sid = ENV['TWILIO_ACCOUNT_SID']
auth_token = ENV['TWILIO_AUTH_TOKEN']
@client = Twilio::REST::Client.new(account_sid, auth_token)

authorization_document = @client
                         .preview
                         .hosted_numbers
                         .authorization_documents('PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
                         .update(
                           hosted_number_order_sids: [
                             'HostedNumberOrderSids'
                           ]
                         )

puts authorization_document.sid
```

```bash
curl -X POST "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
--data-urlencode "HostedNumberOrderSids=HostedNumberOrderSids" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

```json
{
  "address_sid": "ADaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "cc_emails": [
    "test1@twilio.com",
    "test2@twilio.com"
  ],
  "date_created": "2017-03-28T20:06:39Z",
  "date_updated": "2017-03-28T20:06:39Z",
  "email": "test+hosted@twilio.com",
  "links": {
    "dependent_hosted_number_orders": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/DependentHostedNumberOrders"
  },
  "sid": "PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "signing",
  "url": "https://preview.twilio.com/HostedNumbers/AuthorizationDocuments/PXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
```
