telnyx-porting-out-python

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->

Telnyx Porting Out - Python

Telnyx 号码转出 - Python

Installation

安装

bash
pip install telnyx
bash
pip install telnyx

Setup

初始化配置

python
import os
from telnyx import Telnyx

client = Telnyx(
    api_key=os.environ.get("TELNYX_API_KEY"),  # This is the default and can be omitted
)
All examples below assume
client
is already initialized as shown above.
python
import os
from telnyx import Telnyx

client = Telnyx(
    api_key=os.environ.get("TELNYX_API_KEY"),  # 这是默认配置,可省略
)
以下所有示例均假设
client
已按照上述方式完成初始化。

Error Handling

错误处理

All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:
python
import telnyx

try:
    result = client.messages.send(to="+13125550001", from_="+13125550002", text="Hello")
except telnyx.APIConnectionError:
    print("Network error — check connectivity and retry")
except telnyx.RateLimitError:
    # 429: rate limited — wait and retry with exponential backoff
    import time
    time.sleep(1)  # Check Retry-After header for actual delay
except telnyx.APIStatusError as e:
    print(f"API error {e.status_code}: {e.message}")
    if e.status_code == 422:
        print("Validation error — check required fields and formats")
Common error codes:
401
invalid API key,
403
insufficient permissions,
404
resource not found,
422
validation error (check field formats),
429
rate limited (retry with exponential backoff).
所有API调用都可能因网络错误、速率限制(429)、校验错误(422)或认证错误(401)而失败。在生产代码中请务必做好错误处理:
python
import telnyx

try:
    result = client.messages.send(to="+13125550001", from_="+13125550002", text="Hello")
except telnyx.APIConnectionError:
    print("网络错误 — 检查网络连接后重试")
except telnyx.RateLimitError:
    # 429: 触发速率限制 — 等待后使用指数退避策略重试
    import time
    time.sleep(1)  # 可查看Retry-After响应头获取准确的等待时长
except telnyx.APIStatusError as e:
    print(f"API错误 {e.status_code}: {e.message}")
    if e.status_code == 422:
        print("校验错误 — 检查必填字段和格式是否正确")
常见错误码:
401
API密钥无效,
403
权限不足,
404
资源不存在,
422
校验错误(检查字段格式),
429
触发速率限制(使用指数退避策略重试)。

Important Notes

重要说明

  • Pagination: List methods return an auto-paginating iterator. Use
    for item in page_result:
    to iterate through all pages automatically.
  • 分页: 列表类方法返回支持自动分页的迭代器,使用
    for item in page_result:
    即可自动遍历所有分页结果。

List portout requests

列出portout请求

Returns the portout requests according to filters
GET /portouts
python
page = client.portouts.list()
page = page.data[0]
print(page.id)
Returns:
already_ported
(boolean),
authorized_name
(string),
carrier_name
(string),
city
(string),
created_at
(string),
current_carrier
(string),
end_user_name
(string),
foc_date
(string),
host_messaging
(boolean),
id
(string),
inserted_at
(string),
lsr
(array[string]),
phone_numbers
(array[string]),
pon
(string),
reason
(string | null),
record_type
(string),
rejection_code
(integer),
requested_foc_date
(string),
service_address
(string),
spid
(string),
state
(string),
status
(enum: pending, authorized, ported, rejected, rejected-pending, canceled),
support_key
(string),
updated_at
(string),
user_id
(uuid),
vendor
(uuid),
zip
(string)
根据筛选条件返回portout请求
GET /portouts
python
page = client.portouts.list()
page = page.data[0]
print(page.id)
返回字段:
already_ported
(boolean),
authorized_name
(string),
carrier_name
(string),
city
(string),
created_at
(string),
current_carrier
(string),
end_user_name
(string),
foc_date
(string),
host_messaging
(boolean),
id
(string),
inserted_at
(string),
lsr
(array[string]),
phone_numbers
(array[string]),
pon
(string),
reason
(string | null),
record_type
(string),
rejection_code
(integer),
requested_foc_date
(string),
service_address
(string),
spid
(string),
state
(string),
status
(enum: pending, authorized, ported, rejected, rejected-pending, canceled),
support_key
(string),
updated_at
(string),
user_id
(uuid),
vendor
(uuid),
zip
(string)

List all port-out events

列出所有port-out事件

Returns a list of all port-out events.
GET /portouts/events
python
page = client.portouts.events.list()
page = page.data[0]
print(page)
Returns:
available_notification_methods
(array[string]),
created_at
(date-time),
event_type
(enum: portout.status_changed, portout.foc_date_changed, portout.new_comment),
id
(uuid),
payload
(object),
payload_status
(enum: created, completed),
portout_id
(uuid),
record_type
(string),
updated_at
(date-time)
返回所有port-out事件的列表
GET /portouts/events
python
page = client.portouts.events.list()
page = page.data[0]
print(page)
返回字段:
available_notification_methods
(array[string]),
created_at
(date-time),
event_type
(enum: portout.status_changed, portout.foc_date_changed, portout.new_comment),
id
(uuid),
payload
(object),
payload_status
(enum: created, completed),
portout_id
(uuid),
record_type
(string),
updated_at
(date-time)

Show a port-out event

查询单个port-out事件

Show a specific port-out event.
GET /portouts/events/{id}
python
event = client.portouts.events.retrieve(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(event.data)
Returns:
available_notification_methods
(array[string]),
created_at
(date-time),
event_type
(enum: portout.status_changed, portout.foc_date_changed, portout.new_comment),
id
(uuid),
payload
(object),
payload_status
(enum: created, completed),
portout_id
(uuid),
record_type
(string),
updated_at
(date-time)
查询指定的port-out事件详情
GET /portouts/events/{id}
python
event = client.portouts.events.retrieve(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(event.data)
返回字段:
available_notification_methods
(array[string]),
created_at
(date-time),
event_type
(enum: portout.status_changed, portout.foc_date_changed, portout.new_comment),
id
(uuid),
payload
(object),
payload_status
(enum: created, completed),
portout_id
(uuid),
record_type
(string),
updated_at
(date-time)

Republish a port-out event

重新发布port-out事件

Republish a specific port-out event.
POST /portouts/events/{id}/republish
python
client.portouts.events.republish(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
重新发布指定的port-out事件
POST /portouts/events/{id}/republish
python
client.portouts.events.republish(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)

List eligible port-out rejection codes for a specific order

列出特定订单符合条件的port-out拒绝码

Given a port-out ID, list rejection codes that are eligible for that port-out
GET /portouts/rejections/{portout_id}
python
response = client.portouts.list_rejection_codes(
    portout_id="329d6658-8f93-405d-862f-648776e8afd7",
)
print(response.data)
Returns:
code
(integer),
description
(string),
reason_required
(boolean)
传入port-out ID,列出该port-out可使用的拒绝码
GET /portouts/rejections/{portout_id}
python
response = client.portouts.list_rejection_codes(
    portout_id="329d6658-8f93-405d-862f-648776e8afd7",
)
print(response.data)
返回字段:
code
(integer),
description
(string),
reason_required
(boolean)

List port-out related reports

列出port-out相关报表

List the reports generated about port-out operations.
GET /portouts/reports
python
page = client.portouts.reports.list()
page = page.data[0]
print(page.id)
Returns:
created_at
(date-time),
document_id
(uuid),
id
(uuid),
params
(object),
record_type
(string),
report_type
(enum: export_portouts_csv),
status
(enum: pending, completed),
updated_at
(date-time)
列出所有port-out操作生成的报表
GET /portouts/reports
python
page = client.portouts.reports.list()
page = page.data[0]
print(page.id)
返回字段:
created_at
(date-time),
document_id
(uuid),
id
(uuid),
params
(object),
record_type
(string),
report_type
(enum: export_portouts_csv),
status
(enum: pending, completed),
updated_at
(date-time)

Create a port-out related report

创建port-out相关报表

Generate reports about port-out operations.
POST /portouts/reports
python
report = client.portouts.reports.create(
    params={
        "filters": {}
    },
    report_type="export_portouts_csv",
)
print(report.data)
Returns:
created_at
(date-time),
document_id
(uuid),
id
(uuid),
params
(object),
record_type
(string),
report_type
(enum: export_portouts_csv),
status
(enum: pending, completed),
updated_at
(date-time)
生成port-out操作的相关报表
POST /portouts/reports
python
report = client.portouts.reports.create(
    params={
        "filters": {}
    },
    report_type="export_portouts_csv",
)
print(report.data)
返回字段:
created_at
(date-time),
document_id
(uuid),
id
(uuid),
params
(object),
record_type
(string),
report_type
(enum: export_portouts_csv),
status
(enum: pending, completed),
updated_at
(date-time)

Retrieve a report

查询单个报表

Retrieve a specific report generated.
GET /portouts/reports/{id}
python
report = client.portouts.reports.retrieve(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(report.data)
Returns:
created_at
(date-time),
document_id
(uuid),
id
(uuid),
params
(object),
record_type
(string),
report_type
(enum: export_portouts_csv),
status
(enum: pending, completed),
updated_at
(date-time)
查询指定的生成报表详情
GET /portouts/reports/{id}
python
report = client.portouts.reports.retrieve(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(report.data)
返回字段:
created_at
(date-time),
document_id
(uuid),
id
(uuid),
params
(object),
record_type
(string),
report_type
(enum: export_portouts_csv),
status
(enum: pending, completed),
updated_at
(date-time)

Get a portout request

查询单个portout请求

Returns the portout request based on the ID provided
GET /portouts/{id}
python
portout = client.portouts.retrieve(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(portout.data)
Returns:
already_ported
(boolean),
authorized_name
(string),
carrier_name
(string),
city
(string),
created_at
(string),
current_carrier
(string),
end_user_name
(string),
foc_date
(string),
host_messaging
(boolean),
id
(string),
inserted_at
(string),
lsr
(array[string]),
phone_numbers
(array[string]),
pon
(string),
reason
(string | null),
record_type
(string),
rejection_code
(integer),
requested_foc_date
(string),
service_address
(string),
spid
(string),
state
(string),
status
(enum: pending, authorized, ported, rejected, rejected-pending, canceled),
support_key
(string),
updated_at
(string),
user_id
(uuid),
vendor
(uuid),
zip
(string)
根据传入的ID返回对应的portout请求详情
GET /portouts/{id}
python
portout = client.portouts.retrieve(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(portout.data)
返回字段:
already_ported
(boolean),
authorized_name
(string),
carrier_name
(string),
city
(string),
created_at
(string),
current_carrier
(string),
end_user_name
(string),
foc_date
(string),
host_messaging
(boolean),
id
(string),
inserted_at
(string),
lsr
(array[string]),
phone_numbers
(array[string]),
pon
(string),
reason
(string | null),
record_type
(string),
rejection_code
(integer),
requested_foc_date
(string),
service_address
(string),
spid
(string),
state
(string),
status
(enum: pending, authorized, ported, rejected, rejected-pending, canceled),
support_key
(string),
updated_at
(string),
user_id
(uuid),
vendor
(uuid),
zip
(string)

List all comments for a portout request

列出portout请求的所有评论

Returns a list of comments for a portout request.
GET /portouts/{id}/comments
python
comments = client.portouts.comments.list(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(comments.data)
Returns:
body
(string),
created_at
(string),
id
(string),
portout_id
(string),
record_type
(string),
user_id
(string)
返回指定portout请求的评论列表
GET /portouts/{id}/comments
python
comments = client.portouts.comments.list(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(comments.data)
返回字段:
body
(string),
created_at
(string),
id
(string),
portout_id
(string),
record_type
(string),
user_id
(string)

Create a comment on a portout request

为portout请求添加评论

Creates a comment on a portout request.
POST /portouts/{id}/comments
Optional:
body
(string)
python
comment = client.portouts.comments.create(
    id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(comment.data)
Returns:
body
(string),
created_at
(string),
id
(string),
portout_id
(string),
record_type
(string),
user_id
(string)
为指定portout请求创建一条评论
POST /portouts/{id}/comments
可选参数:
body
(string)
python
comment = client.portouts.comments.create(
    id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(comment.data)
返回字段:
body
(string),
created_at
(string),
id
(string),
portout_id
(string),
record_type
(string),
user_id
(string)

List supporting documents on a portout request

列出portout请求的支持文件

List every supporting documents for a portout request.
GET /portouts/{id}/supporting_documents
python
supporting_documents = client.portouts.supporting_documents.list(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(supporting_documents.data)
Returns:
created_at
(string),
document_id
(uuid),
id
(uuid),
portout_id
(uuid),
record_type
(string),
type
(enum: loa, invoice),
updated_at
(string)
列出指定portout请求的所有支持文件
GET /portouts/{id}/supporting_documents
python
supporting_documents = client.portouts.supporting_documents.list(
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(supporting_documents.data)
返回字段:
created_at
(string),
document_id
(uuid),
id
(uuid),
portout_id
(uuid),
record_type
(string),
type
(enum: loa, invoice),
updated_at
(string)

Create a list of supporting documents on a portout request

为portout请求添加支持文件

Creates a list of supporting documents on a portout request.
POST /portouts/{id}/supporting_documents
Optional:
documents
(array[object])
python
supporting_document = client.portouts.supporting_documents.create(
    id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(supporting_document.data)
Returns:
created_at
(string),
document_id
(uuid),
id
(uuid),
portout_id
(uuid),
record_type
(string),
type
(enum: loa, invoice),
updated_at
(string)
为指定portout请求批量添加支持文件
POST /portouts/{id}/supporting_documents
可选参数:
documents
(array[object])
python
supporting_document = client.portouts.supporting_documents.create(
    id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(supporting_document.data)
返回字段:
created_at
(string),
document_id
(uuid),
id
(uuid),
portout_id
(uuid),
record_type
(string),
type
(enum: loa, invoice),
updated_at
(string)

Update Status

更新状态

Authorize or reject portout request
PATCH /portouts/{id}/{status}
— Required:
reason
Optional:
host_messaging
(boolean)
python
response = client.portouts.update_status(
    status="authorized",
    id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    reason="I do not recognize this transaction",
)
print(response.data)
Returns:
already_ported
(boolean),
authorized_name
(string),
carrier_name
(string),
city
(string),
created_at
(string),
current_carrier
(string),
end_user_name
(string),
foc_date
(string),
host_messaging
(boolean),
id
(string),
inserted_at
(string),
lsr
(array[string]),
phone_numbers
(array[string]),
pon
(string),
reason
(string | null),
record_type
(string),
rejection_code
(integer),
requested_foc_date
(string),
service_address
(string),
spid
(string),
state
(string),
status
(enum: pending, authorized, ported, rejected, rejected-pending, canceled),
support_key
(string),
updated_at
(string),
user_id
(uuid),
vendor
(uuid),
zip
(string)
授权或拒绝portout请求
PATCH /portouts/{id}/{status}
— 必填参数:
reason
可选参数:
host_messaging
(boolean)
python
response = client.portouts.update_status(
    status="authorized",
    id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    reason="I do not recognize this transaction",
)
print(response.data)
返回字段:
already_ported
(boolean),
authorized_name
(string),
carrier_name
(string),
city
(string),
created_at
(string),
current_carrier
(string),
end_user_name
(string),
foc_date
(string),
host_messaging
(boolean),
id
(string),
inserted_at
(string),
lsr
(array[string]),
phone_numbers
(array[string]),
pon
(string),
reason
(string | null),
record_type
(string),
rejection_code
(integer),
requested_foc_date
(string),
service_address
(string),
spid
(string),
state
(string),
status
(enum: pending, authorized, ported, rejected, rejected-pending, canceled),
support_key
(string),
updated_at
(string),
user_id
(uuid),
vendor
(uuid),
zip
(string)