telnyx-porting-out-javascript

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
<!-- 由Telnyx OpenAPI规范自动生成,请勿编辑。 -->

Telnyx Porting Out - JavaScript

Telnyx 号码转出 - JavaScript

Installation

安装

bash
npm install telnyx
bash
npm install telnyx

Setup

初始化

javascript
import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
All examples below assume
client
is already initialized as shown above.
javascript
import Telnyx from 'telnyx';

const client = new Telnyx({
  apiKey: process.env['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:
javascript
try {
  const result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });
} catch (err) {
  if (err instanceof Telnyx.APIConnectionError) {
    console.error('Network error — check connectivity and retry');
  } else if (err instanceof Telnyx.RateLimitError) {
    // 429: rate limited — wait and retry with exponential backoff
    const retryAfter = err.headers?.['retry-after'] || 1;
    await new Promise(r => setTimeout(r, retryAfter * 1000));
  } else if (err instanceof Telnyx.APIError) {
    console.error(`API error ${err.status}: ${err.message}`);
    if (err.status === 422) {
      console.error('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)而失败。生产环境代码中务必处理错误:
javascript
try {
  const result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });
} catch (err) {
  if (err instanceof Telnyx.APIConnectionError) {
    console.error('网络错误 — 检查连接后重试');
  } else if (err instanceof Telnyx.RateLimitError) {
    // 429: 速率受限 — 等待后使用指数退避策略重试
    const retryAfter = err.headers?.['retry-after'] || 1;
    await new Promise(r => setTimeout(r, retryAfter * 1000));
  } else if (err instanceof Telnyx.APIError) {
    console.error(`API错误 ${err.status}: ${err.message}`);
    if (err.status === 422) {
      console.error('验证错误 — 检查必填字段和格式');
    }
  }
}
常见错误码:
401
API密钥无效,
403
权限不足,
404
资源未找到,
422
验证错误(检查字段格式),
429
速率受限(使用指数退避策略重试)。

Important Notes

重要说明

  • Pagination: List methods return an auto-paginating iterator. Use
    for await (const item of result) { ... }
    to iterate through all pages automatically.
  • 分页: 列表方法返回自动分页迭代器。使用
    for await (const item of result) { ... }
    自动遍历所有页面。

List portout requests

列出端口转出请求

Returns the portout requests according to filters
GET /portouts
javascript
// Automatically fetches more pages as needed.
for await (const portoutDetails of client.portouts.list()) {
  console.log(portoutDetails.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)
根据筛选条件返回端口转出请求
GET /portouts
javascript
// 自动按需获取更多页面
for await (const portoutDetails of client.portouts.list()) {
  console.log(portoutDetails.id);
}
返回字段:
already_ported
(布尔值),
authorized_name
(字符串),
carrier_name
(字符串),
city
(字符串),
created_at
(字符串),
current_carrier
(字符串),
end_user_name
(字符串),
foc_date
(字符串),
host_messaging
(布尔值),
id
(字符串),
inserted_at
(字符串),
lsr
(字符串数组),
phone_numbers
(字符串数组),
pon
(字符串),
reason
(字符串 | null),
record_type
(字符串),
rejection_code
(整数),
requested_foc_date
(字符串),
service_address
(字符串),
spid
(字符串),
state
(字符串),
status
(枚举值:pending, authorized, ported, rejected, rejected-pending, canceled),
support_key
(字符串),
updated_at
(字符串),
user_id
(uuid),
vendor
(uuid),
zip
(字符串)

List all port-out events

列出所有端口转出事件

Returns a list of all port-out events.
GET /portouts/events
javascript
// Automatically fetches more pages as needed.
for await (const eventListResponse of client.portouts.events.list()) {
  console.log(eventListResponse);
}
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)
返回所有端口转出事件的列表
GET /portouts/events
javascript
// 自动按需获取更多页面
for await (const eventListResponse of client.portouts.events.list()) {
  console.log(eventListResponse);
}
返回字段:
available_notification_methods
(字符串数组),
created_at
(日期时间),
event_type
(枚举值:portout.status_changed, portout.foc_date_changed, portout.new_comment),
id
(uuid),
payload
(对象),
payload_status
(枚举值:created, completed),
portout_id
(uuid),
record_type
(字符串),
updated_at
(日期时间)

Show a port-out event

查看单个端口转出事件

Show a specific port-out event.
GET /portouts/events/{id}
javascript
const event = await client.portouts.events.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(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)
查看指定的端口转出事件
GET /portouts/events/{id}
javascript
const event = await client.portouts.events.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(event.data);
返回字段:
available_notification_methods
(字符串数组),
created_at
(日期时间),
event_type
(枚举值:portout.status_changed, portout.foc_date_changed, portout.new_comment),
id
(uuid),
payload
(对象),
payload_status
(枚举值:created, completed),
portout_id
(uuid),
record_type
(字符串),
updated_at
(日期时间)

Republish a port-out event

重新发布端口转出事件

Republish a specific port-out event.
POST /portouts/events/{id}/republish
javascript
await client.portouts.events.republish('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
重新发布指定的端口转出事件
POST /portouts/events/{id}/republish
javascript
await client.portouts.events.republish('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

List eligible port-out rejection codes for a specific order

列出指定订单的合格端口转出拒绝码

Given a port-out ID, list rejection codes that are eligible for that port-out
GET /portouts/rejections/{portout_id}
javascript
const response = await client.portouts.listRejectionCodes('329d6658-8f93-405d-862f-648776e8afd7');

console.log(response.data);
Returns:
code
(integer),
description
(string),
reason_required
(boolean)
根据端口转出ID,列出该端口转出请求可用的拒绝码
GET /portouts/rejections/{portout_id}
javascript
const response = await client.portouts.listRejectionCodes('329d6658-8f93-405d-862f-648776e8afd7');

console.log(response.data);
返回字段:
code
(整数),
description
(字符串),
reason_required
(布尔值)

List port-out related reports

列出端口转出相关报告

List the reports generated about port-out operations.
GET /portouts/reports
javascript
// Automatically fetches more pages as needed.
for await (const portoutReport of client.portouts.reports.list()) {
  console.log(portoutReport.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)
列出端口转出操作生成的报告
GET /portouts/reports
javascript
// 自动按需获取更多页面
for await (const portoutReport of client.portouts.reports.list()) {
  console.log(portoutReport.id);
}
返回字段:
created_at
(日期时间),
document_id
(uuid),
id
(uuid),
params
(对象),
record_type
(字符串),
report_type
(枚举值:export_portouts_csv),
status
(枚举值:pending, completed),
updated_at
(日期时间)

Create a port-out related report

创建端口转出相关报告

Generate reports about port-out operations.
POST /portouts/reports
javascript
const report = await client.portouts.reports.create({
  params: { filters: {} },
  report_type: 'export_portouts_csv',
});

console.log(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)
生成端口转出操作的报告
POST /portouts/reports
javascript
const report = await client.portouts.reports.create({
  params: { filters: {} },
  report_type: 'export_portouts_csv',
});

console.log(report.data);
返回字段:
created_at
(日期时间),
document_id
(uuid),
id
(uuid),
params
(对象),
record_type
(字符串),
report_type
(枚举值:export_portouts_csv),
status
(枚举值:pending, completed),
updated_at
(日期时间)

Retrieve a report

获取报告

Retrieve a specific report generated.
GET /portouts/reports/{id}
javascript
const report = await client.portouts.reports.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(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}
javascript
const report = await client.portouts.reports.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(report.data);
返回字段:
created_at
(日期时间),
document_id
(uuid),
id
(uuid),
params
(对象),
record_type
(字符串),
report_type
(枚举值:export_portouts_csv),
status
(枚举值:pending, completed),
updated_at
(日期时间)

Get a portout request

获取端口转出请求

Returns the portout request based on the ID provided
GET /portouts/{id}
javascript
const portout = await client.portouts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(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返回端口转出请求
GET /portouts/{id}
javascript
const portout = await client.portouts.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(portout.data);
返回字段:
already_ported
(布尔值),
authorized_name
(字符串),
carrier_name
(字符串),
city
(字符串),
created_at
(字符串),
current_carrier
(字符串),
end_user_name
(字符串),
foc_date
(字符串),
host_messaging
(布尔值),
id
(字符串),
inserted_at
(字符串),
lsr
(字符串数组),
phone_numbers
(字符串数组),
pon
(字符串),
reason
(字符串 | null),
record_type
(字符串),
rejection_code
(整数),
requested_foc_date
(字符串),
service_address
(字符串),
spid
(字符串),
state
(字符串),
status
(枚举值:pending, authorized, ported, rejected, rejected-pending, canceled),
support_key
(字符串),
updated_at
(字符串),
user_id
(uuid),
vendor
(uuid),
zip
(字符串)

List all comments for a portout request

列出端口转出请求的所有评论

Returns a list of comments for a portout request.
GET /portouts/{id}/comments
javascript
const comments = await client.portouts.comments.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(comments.data);
Returns:
body
(string),
created_at
(string),
id
(string),
portout_id
(string),
record_type
(string),
user_id
(string)
返回指定端口转出请求的评论列表
GET /portouts/{id}/comments
javascript
const comments = await client.portouts.comments.list('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(comments.data);
返回字段:
body
(字符串),
created_at
(字符串),
id
(字符串),
portout_id
(字符串),
record_type
(字符串),
user_id
(字符串)

Create a comment on a portout request

为端口转出请求添加评论

Creates a comment on a portout request.
POST /portouts/{id}/comments
Optional:
body
(string)
javascript
const comment = await client.portouts.comments.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(comment.data);
Returns:
body
(string),
created_at
(string),
id
(string),
portout_id
(string),
record_type
(string),
user_id
(string)
为指定端口转出请求创建评论
POST /portouts/{id}/comments
可选参数:
body
(字符串)
javascript
const comment = await client.portouts.comments.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');

console.log(comment.data);
返回字段:
body
(字符串),
created_at
(字符串),
id
(字符串),
portout_id
(字符串),
record_type
(字符串),
user_id
(字符串)

List supporting documents on a portout request

列出端口转出请求的支持文档

List every supporting documents for a portout request.
GET /portouts/{id}/supporting_documents
javascript
const supportingDocuments = await client.portouts.supportingDocuments.list(
  '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);

console.log(supportingDocuments.data);
Returns:
created_at
(string),
document_id
(uuid),
id
(uuid),
portout_id
(uuid),
record_type
(string),
type
(enum: loa, invoice),
updated_at
(string)
列出指定端口转出请求的所有支持文档
GET /portouts/{id}/supporting_documents
javascript
const supportingDocuments = await client.portouts.supportingDocuments.list(
  '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);

console.log(supportingDocuments.data);
返回字段:
created_at
(字符串),
document_id
(uuid),
id
(uuid),
portout_id
(uuid),
record_type
(字符串),
type
(枚举值:loa, invoice),
updated_at
(字符串)

Create a list of supporting documents on a portout request

为端口转出请求添加支持文档

Creates a list of supporting documents on a portout request.
POST /portouts/{id}/supporting_documents
Optional:
documents
(array[object])
javascript
const supportingDocument = await client.portouts.supportingDocuments.create(
  '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);

console.log(supportingDocument.data);
Returns:
created_at
(string),
document_id
(uuid),
id
(uuid),
portout_id
(uuid),
record_type
(string),
type
(enum: loa, invoice),
updated_at
(string)
为指定端口转出请求创建支持文档列表
POST /portouts/{id}/supporting_documents
可选参数:
documents
(对象数组)
javascript
const supportingDocument = await client.portouts.supportingDocuments.create(
  '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);

console.log(supportingDocument.data);
返回字段:
created_at
(字符串),
document_id
(uuid),
id
(uuid),
portout_id
(uuid),
record_type
(字符串),
type
(枚举值:loa, invoice),
updated_at
(字符串)

Update Status

更新状态

Authorize or reject portout request
PATCH /portouts/{id}/{status}
— Required:
reason
Optional:
host_messaging
(boolean)
javascript
const response = await client.portouts.updateStatus('authorized', {
  id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
  reason: 'I do not recognize this transaction',
});

console.log(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)
批准或拒绝端口转出请求
PATCH /portouts/{id}/{status}
— 必填参数:
reason
可选参数:
host_messaging
(布尔值)
javascript
const response = await client.portouts.updateStatus('authorized', {
  id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
  reason: '我不认可此交易',
});

console.log(response.data);
返回字段:
already_ported
(布尔值),
authorized_name
(字符串),
carrier_name
(字符串),
city
(字符串),
created_at
(字符串),
current_carrier
(字符串),
end_user_name
(字符串),
foc_date
(字符串),
host_messaging
(布尔值),
id
(字符串),
inserted_at
(字符串),
lsr
(字符串数组),
phone_numbers
(字符串数组),
pon
(字符串),
reason
(字符串 | null),
record_type
(字符串),
rejection_code
(整数),
requested_foc_date
(字符串),
service_address
(字符串),
spid
(字符串),
state
(字符串),
status
(枚举值:pending, authorized, ported, rejected, rejected-pending, canceled),
support_key
(字符串),
updated_at
(字符串),
user_id
(uuid),
vendor
(uuid),
zip
(字符串)