# Web Cloud › Telephony › Billing Accounts › Number Porting API

> Part of the OVHcloud developer hub. Index of every page and section: https://developers.eu.ovhcloud.com/llms.txt
> The Web Cloud product's sections: https://developers.eu.ovhcloud.com/reference/web-cloud/llms.txt
> Everything in one file: https://developers.eu.ovhcloud.com/llms-full.txt

> 16 operations of the OVHcloud API. Calls carry `authorization: Bearer $OVH_TOKEN`; the EU host is shown, Canada and the United States answer on api.ca.ovhcloud.com and api.us.ovhcloud.com.

Page: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/web-cloud/telephony/billing-accounts/number-porting.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/web-cloud/telephony/billing-accounts/number-porting.json?format=openapi3

## Operations

- `GET /telephony/{billingAccount}/portability` — List number portings
- `GET /telephony/{billingAccount}/portability/{id}` — Get a number porting
- `GET /telephony/{billingAccount}/portability/{id}/canBeCancelled` — Check if the porting can be canceled
- `GET /telephony/{billingAccount}/portability/{id}/canBeExecuted` — Check if the porting can be executed
- `POST /telephony/{billingAccount}/portability/{id}/cancel` — Cancel the porting
- `POST /telephony/{billingAccount}/portability/{id}/changeDate` — Change the porting date
- `GET /telephony/{billingAccount}/portability/{id}/dateCanBeChanged` — Check if the porting date can change
- `GET /telephony/{billingAccount}/portability/{id}/document` — List porting documents
- `GET /telephony/{billingAccount}/portability/{id}/document/{documentId}` — Get a porting document
- `POST /telephony/{billingAccount}/portability/{id}/document` — Create a porting document
- `DELETE /telephony/{billingAccount}/portability/{id}/document/{documentId}` — Delete a porting document
- `PUT /telephony/{billingAccount}/portability/{id}/document/{documentId}` — Update a porting document
- `POST /telephony/{billingAccount}/portability/{id}/execute` — Execute the porting
- `GET /telephony/{billingAccount}/portability/{id}/relaunch` — Check if the porting can be relaunched
- `POST /telephony/{billingAccount}/portability/{id}/relaunch` — Relaunch the porting
- `GET /telephony/{billingAccount}/portability/{id}/status` — Get the porting status

## List number portings

`GET /1.0/telephony/{billingAccount}/portability`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#get-telephony-billingaccount-portability

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | integer[] | successful operation |

```json
[
  0
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/portability")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/portability");

print_r($result);
?>
```

## Get a number porting

`GET /1.0/telephony/{billingAccount}/portability/{id}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#get-telephony-billingaccount-portability-id

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.Portability | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `billingAccount` | string | read-only | The billing account where the numbers will be inserted |
| `creationDate` | string (date-time) | read-only | The portability's creation date |
| `customerInfos` | telephony.PortabilityCustomerInfos | read-only | Customer informations about this portability |
| `customerInfos.building` | string |  | Building of the customer's address |
| `customerInfos.city` | string |  | City of the customer's address |
| `customerInfos.door` | string |  | Door of the customer's address |
| `customerInfos.floor` | string |  | Floor of the customer's address |
| `customerInfos.name` | string |  | Name of the customer |
| `customerInfos.siret` | string |  | SIRET of the customer |
| `customerInfos.stair` | string |  | Stair of the customer's address |
| `customerInfos.streetName` | string |  | Street name of the customer's address |
| `customerInfos.streetNumber` | string |  | Street number of the customer's address |
| `customerInfos.zip` | string |  | ZIP code of the customer's address |
| `desiredExecutionDate` | string (date-time) | read-only | The date when the portability will be done and when numbers will be ported |
| `error` | boolean | read-only | Indicates that portability is in error |
| `errorCodes` | string[] | read-only | Codes representing the error in current portability |
| `id` | integer | read-only | The ID of the portability |
| `lineToRedirectTo` | string | read-only | Show the redirection that will be configured when the portability will be done |
| `numbersList` | string[] | read-only | The list of numbers that is going to be ported |
| `operator` | string | read-only | The operator that currently holds the numbers |
| `orderId` | integer | read-only | The ID of the portability order |
| `portabilityCountry` | telephony.PortabilityCountryEnum | read-only | Country that defines the portability kind — one of `belgium`, `france`, `switzerland` |
| `rio` | string | read-only | RIO of the portability (France only) |

```json
{
  "billingAccount": "string",
  "creationDate": "2024-01-01T12:00:00Z",
  "customerInfos": {
    "building": "string",
    "city": "string",
    "door": "string",
    "floor": "string",
    "name": "string",
    "siret": "string",
    "stair": "string",
    "streetName": "string",
    "streetNumber": "string",
    "zip": "string"
  },
  "desiredExecutionDate": "2024-01-01T12:00:00Z",
  "error": true,
  "errorCodes": [
    "string"
  ],
  "id": 0,
  "lineToRedirectTo": "string",
  "numbersList": [
    "string"
  ],
  "operator": "string",
  "orderId": 0,
  "portabilityCountry": "belgium",
  "rio": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/portability/{id}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/portability/{id}");

print_r($result);
?>
```

## Check if the porting can be canceled

`GET /1.0/telephony/{billingAccount}/portability/{id}/canBeCancelled`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#get-telephony-billingaccount-portability-id-canbecancelled

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/canBeCancelled/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | boolean | successful operation |

```json
true
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/canBeCancelled" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/portability/{id}/canBeCancelled")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/portability/{id}/canBeCancelled");

print_r($result);
?>
```

## Check if the porting can be executed

`GET /1.0/telephony/{billingAccount}/portability/{id}/canBeExecuted`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#get-telephony-billingaccount-portability-id-canbeexecuted

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/canBeExecuted/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | boolean | successful operation |

```json
true
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/canBeExecuted" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/portability/{id}/canBeExecuted")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/portability/{id}/canBeExecuted");

print_r($result);
?>
```

## Cancel the porting

`POST /1.0/telephony/{billingAccount}/portability/{id}/cancel`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#post-telephony-billingaccount-portability-id-cancel

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/cancel`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `reason` | string |  | The cancellation reason |

```json
{
  "reason": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/cancel" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: string
result = client.post("/telephony/{billingAccount}/portability/{id}/cancel",
	reason = None, # The cancellation reason (type: string, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: string
$result = $ovh->post("/telephony/{billingAccount}/portability/{id}/cancel", array(
	reason => null, // The cancellation reason (type: string, nullable)
));

print_r($result);
?>
```

## Change the porting date

`POST /1.0/telephony/{billingAccount}/portability/{id}/changeDate`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#post-telephony-billingaccount-portability-id-changedate

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/changeDate`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `date` | string (date-time) | yes | The proposed portability due date |

```json
{
  "date": "2024-01-01T12:00:00Z"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/changeDate" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: datetime
result = client.post("/telephony/{billingAccount}/portability/{id}/changeDate",
	date = None, # The proposed portability due date (type: datetime)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: datetime
$result = $ovh->post("/telephony/{billingAccount}/portability/{id}/changeDate", array(
	date => null, // The proposed portability due date (type: datetime)
));

print_r($result);
?>
```

## Check if the porting date can change

`GET /1.0/telephony/{billingAccount}/portability/{id}/dateCanBeChanged`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#get-telephony-billingaccount-portability-id-datecanbechanged

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/dateCanBeChanged/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | boolean | successful operation |

```json
true
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/dateCanBeChanged" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/portability/{id}/dateCanBeChanged")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/portability/{id}/dateCanBeChanged");

print_r($result);
?>
```

## List porting documents

`GET /1.0/telephony/{billingAccount}/portability/{id}/document`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#get-telephony-billingaccount-portability-id-document

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/document/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | integer[] | successful operation |

```json
[
  0
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/document" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/portability/{id}/document")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/portability/{id}/document");

print_r($result);
?>
```

## Get a porting document

`GET /1.0/telephony/{billingAccount}/portability/{id}/document/{documentId}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#get-telephony-billingaccount-portability-id-document-documentid

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/document/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `documentId` | path | integer | yes | Identifier of the document |
| `id` | path | integer | yes | The ID of the portability |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.PortabilityDocument | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string |  | Description of the document |
| `documentId` | integer | read-only | Identifier of the document |
| `getUrl` | string | read-only | URL to get document |
| `name` | string |  | Name of the document |
| `putUrl` | string | read-only | URL to upload document |
| `size` | integer | read-only | Document size (in bytes) |

```json
{
  "description": "string",
  "documentId": 0,
  "getUrl": "string",
  "name": "string",
  "putUrl": "string",
  "size": 0
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/document/{documentId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/portability/{id}/document/{documentId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/portability/{id}/document/{documentId}");

print_r($result);
?>
```

## Create a porting document

`POST /1.0/telephony/{billingAccount}/portability/{id}/document`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#post-telephony-billingaccount-portability-id-document

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/document/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string |  | Description of the document |
| `name` | string | yes | Document's name |

```json
{
  "description": "string",
  "name": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.PortabilityDocument | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string |  | Description of the document |
| `documentId` | integer | read-only | Identifier of the document |
| `getUrl` | string | read-only | URL to get document |
| `name` | string |  | Name of the document |
| `putUrl` | string | read-only | URL to upload document |
| `size` | integer | read-only | Document size (in bytes) |

```json
{
  "description": "string",
  "documentId": 0,
  "getUrl": "string",
  "name": "string",
  "putUrl": "string",
  "size": 0
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/document" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/telephony/{billingAccount}/portability/{id}/document",
	description = None, # Description of the document (type: string, nullable)
	name = None, # Document's name (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/telephony/{billingAccount}/portability/{id}/document", array(
	description => null, // Description of the document (type: string, nullable)
	name => null, // Document's name (type: string)
));

print_r($result);
?>
```

## Delete a porting document

`DELETE /1.0/telephony/{billingAccount}/portability/{id}/document/{documentId}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#delete-telephony-billingaccount-portability-id-document-documentid

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/document/delete`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `documentId` | path | integer | yes | Identifier of the document |
| `id` | path | integer | yes | The ID of the portability |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/document/{documentId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/telephony/{billingAccount}/portability/{id}/document/{documentId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/telephony/{billingAccount}/portability/{id}/document/{documentId}");

print_r($result);
?>
```

## Update a porting document

`PUT /1.0/telephony/{billingAccount}/portability/{id}/document/{documentId}`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#put-telephony-billingaccount-portability-id-document-documentid

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/document/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `documentId` | path | integer | yes | Identifier of the document |
| `id` | path | integer | yes | The ID of the portability |

### Request body (required)

Type: `telephony.PortabilityDocument`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string |  | Description of the document |
| `documentId` | integer | read-only | Identifier of the document |
| `getUrl` | string | read-only | URL to get document |
| `name` | string |  | Name of the document |
| `putUrl` | string | read-only | URL to upload document |
| `size` | integer | read-only | Document size (in bytes) |

```json
{
  "description": "string",
  "name": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/document/{documentId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: telephony.PortabilityDocument
result = client.put("/telephony/{billingAccount}/portability/{id}/document/{documentId}",
	description = None, # Description of the document (type: string, nullable)
	name = None, # Name of the document (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: telephony.PortabilityDocument
$result = $ovh->put("/telephony/{billingAccount}/portability/{id}/document/{documentId}", array(
	description => null, // Description of the document (type: string, nullable)
	name => null, // Name of the document (type: string)
));

print_r($result);
?>
```

## Execute the porting

`POST /1.0/telephony/{billingAccount}/portability/{id}/execute`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#post-telephony-billingaccount-portability-id-execute

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/execute`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/execute" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/telephony/{billingAccount}/portability/{id}/execute")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/telephony/{billingAccount}/portability/{id}/execute");

print_r($result);
?>
```

## Check if the porting can be relaunched

`GET /1.0/telephony/{billingAccount}/portability/{id}/relaunch`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#get-telephony-billingaccount-portability-id-relaunch

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/relaunch/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.PortabilityFixErrorPossibleParameters | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `mandatoryParameters` | string[] |  | Mandatory parameter list |
| `optionalParameters` | string[] |  | Optional parameter list |

```json
{
  "mandatoryParameters": [
    "string"
  ],
  "optionalParameters": [
    "string"
  ]
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/relaunch" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/portability/{id}/relaunch")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/portability/{id}/relaunch");

print_r($result);
?>
```

## Relaunch the porting

`POST /1.0/telephony/{billingAccount}/portability/{id}/relaunch`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#post-telephony-billingaccount-portability-id-relaunch

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/relaunch/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Request body (required)

Type: `object`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `parameters` | complexType.SafeKeyValue_string[] | yes | List of parameters to use to fix error |
| `parameters[].key` | string |  |  |
| `parameters[].value` | string |  |  |

```json
{
  "parameters": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/relaunch" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: complexType.SafeKeyValue<string>[]
result = client.post("/telephony/{billingAccount}/portability/{id}/relaunch",
	parameters = None, # List of parameters to use to fix error (type: complexType.SafeKeyValue<string>[])
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: complexType.SafeKeyValue<string>[]
$result = $ovh->post("/telephony/{billingAccount}/portability/{id}/relaunch", array(
	parameters => null, // List of parameters to use to fix error (type: complexType.SafeKeyValue<string>[])
));

print_r($result);
?>
```

## Get the porting status

`GET /1.0/telephony/{billingAccount}/portability/{id}/status`

Link: https://developers.eu.ovhcloud.com/reference/web-cloud/telephony/billing-accounts/number-porting/#get-telephony-billingaccount-portability-id-status

**Status:** Stable production version  
**IAM actions:** `voip:apiovh:portability/status/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `billingAccount` | path | string | yes | The name of your billingAccount |
| `id` | path | integer | yes | The ID of the portability |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | telephony.PortabilityStep[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string |  | A brief description of the step |
| `doneDate` | string (date-time) |  | The date when this step was done |
| `duration` | telephony.PortabilityStepDuration |  | The theoric delay between the previous step's done date and this step's done date |
| `duration.quantity` | integer |  | The quantity of delay |
| `duration.unit` | telephony.PortabilityStepDurationUnitEnum |  | The delay's unit — one of `NA`, `day`, `hour`, `openday` |
| `infos` | telephony.PortabilityStepInfos |  | Additional informations about the step |
| `infos.lastProposedDate` | string (date-time) |  | The last portability due date that has been proposed |
| `infos.reason` | string |  | If the step status is "error", it is the reason |
| `infos.reasonType` | string |  | A code representing the reason |
| `name` | telephony.PortabilityStepNameEnum |  | The name of the portability step — one of `acknowledgmentReceivedFromOperator`, `belgiumPortabilityRequestCreated`, `belgiumPortabilityRequestExecutionAcked`, `belgiumPortabilityRequestExecutionAsked`, `belgiumPortabilityRequestExecutionCompleted`, `belgiumPortabilityRequestValidated`, `belgiumPortabilityRequestWaitingUntilExec`, `customerFormReceived`, `customerFormSent`, `customerFormValidated`, `finalReportReceivedFromOperator`, `intermediateReportReceivedFromOperator`, … |
| `status` | telephony.PortabilityStepStatusEnum |  | Indicates if the step is to do, currently doing or done — one of `cancelled`, `doing`, `done`, `error`, `hold`, `todo` |

```json
[
  {
    "description": "string",
    "doneDate": "2024-01-01T12:00:00Z",
    "duration": {
      "quantity": 0,
      "unit": "NA"
    },
    "infos": {
      "lastProposedDate": "2024-01-01T12:00:00Z",
      "reason": "string",
      "reasonType": "string"
    },
    "name": "acknowledgmentReceivedFromOperator",
    "status": "cancelled"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/telephony/{billingAccount}/portability/{id}/status" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/telephony/{billingAccount}/portability/{id}/status")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/telephony/{billingAccount}/portability/{id}/status");

print_r($result);
?>
```
