Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Port phone numbers into Telnyx. Check portability, create port orders, upload LOA documents, and track porting status. This skill provides Java SDK examples.
.claude/skills/team-telnyx-telnyx-porting-in-java/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 275% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 471% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 402% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 1294% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 627% | 0% |
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
text<!-- Maven --> <dependency> <groupId>com.telnyx.sdk</groupId> <artifactId>telnyx</artifactId> <version>6.89.0</version> </dependency> // Gradle implementation("com.telnyx.sdk:telnyx:6.89.0")
javaimport com.telnyx.sdk.client.TelnyxClient; import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient; TelnyxClient client = TelnyxOkHttpClient.fromEnv();
All examples below assume client is already initialized as shown above.
All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:
javaimport com.telnyx.sdk.errors.TelnyxServiceException; try { var result = client.messages().send(params); } catch (TelnyxServiceException e) { System.err.println("API error " + e.statusCode() + ": " + e.getMessage()); if (e.statusCode() == 422) { System.err.println("Validation error — check required fields and formats"); } else if (e.statusCode() == 429) { // Rate limited — wait and retry with exponential backoff Thread.sleep(1000); } }
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).
+13125550001). Include the + prefix and country code. No spaces, dashes, or parentheses..autoPager() for automatic iteration: for (var item : page.autoPager()) { ... }. For manual control, use .hasNextPage() and .nextPage().Runs a portability check, returning the results immediately.
POST /portability_checks
Optional: phone_numbers (arraystring])
javaimport com.telnyx.sdk.models.portabilitychecks.PortabilityCheckRunParams; import com.telnyx.sdk.models.portabilitychecks.PortabilityCheckRunResponse; PortabilityCheckRunParams params = PortabilityCheckRunParams.builder() .phoneNumbers(java.util.List.of("+18005550101")) .build(); PortabilityCheckRunResponse response = client.portabilityChecks().run(params);
Returns: fast_portable (boolean), not_portable_reason (string), phone_number (string), portable (boolean), record_type (string)
Returns a list of all porting events.
GET /porting/events
javaimport com.telnyx.sdk.models.porting.events.EventListPage; import com.telnyx.sdk.models.porting.events.EventListParams; EventListPage page = client.porting().events().list();
Returns: available_notification_methods (arraystring]), event_type (enum: porting_order.deleted), id (uuid), payload (object), payload_status (enum: created, completed), porting_order_id (uuid)
Show a specific porting event.
GET /porting/events/{id}
javaimport com.telnyx.sdk.models.porting.events.EventRetrieveParams; import com.telnyx.sdk.models.porting.events.EventRetrieveResponse; EventRetrieveResponse event = client.porting().events().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: available_notification_methods (arraystring]), event_type (enum: porting_order.deleted), id (uuid), payload (object), payload_status (enum: created, completed), porting_order_id (uuid)
Republish a specific porting event.
POST /porting/events/{id}/republish
javaimport com.telnyx.sdk.models.porting.events.EventRepublishParams; client.porting().events().republish("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
List the LOA configurations.
GET /porting/loa_configurations
javaimport com.telnyx.sdk.models.porting.loaconfigurations.LoaConfigurationListPage; import com.telnyx.sdk.models.porting.loaconfigurations.LoaConfigurationListParams; LoaConfigurationListPage page = client.porting().loaConfigurations().list();
Returns: address (object), company_name (string), contact (object), created_at (date-time), id (uuid), logo (object), name (string), organization_id (string), record_type (string), updated_at (date-time)
Create a LOA configuration.
POST /porting/loa_configurations
javaimport com.telnyx.sdk.models.porting.loaconfigurations.LoaConfigurationCreateParams; import com.telnyx.sdk.models.porting.loaconfigurations.LoaConfigurationCreateResponse; LoaConfigurationCreateParams params = LoaConfigurationCreateParams.builder() .address(LoaConfigurationCreateParams.Address.builder() .city("Austin") .countryCode("US") .state("TX") .streetAddress("600 Congress Avenue") .zipCode("78701") .build()) .companyName("Telnyx") .contact(LoaConfigurationCreateParams.Contact.builder() .email("testing@telnyx.com") .phoneNumber("+12003270001") .build()) .logo(LoaConfigurationCreateParams.Logo.builder() .documentId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .build()) .name("My LOA Configuration") .build(); LoaConfigurationCreateResponse loaConfiguration = client.porting().loaConfigurations().create(params);
Returns: address (object), company_name (string), contact (object), created_at (date-time), id (uuid), logo (object), name (string), organization_id (string), record_type (string), updated_at (date-time)
Preview the LOA template that would be generated without need to create LOA configuration.
POST /porting/loa_configurations/preview
javaimport com.telnyx.sdk.core.http.HttpResponse; import com.telnyx.sdk.models.porting.loaconfigurations.LoaConfigurationPreviewParams; LoaConfigurationPreviewParams params = LoaConfigurationPreviewParams.builder() .address(LoaConfigurationPreviewParams.Address.builder() .city("Austin") .countryCode("US") .state("TX") .streetAddress("600 Congress Avenue") .zipCode("78701") .build()) .companyName("Telnyx") .contact(LoaConfigurationPreviewParams.Contact.builder() .email("testing@telnyx.com") .phoneNumber("+12003270001") .build()) .logo(LoaConfigurationPreviewParams.Logo.builder() .documentId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .build()) .name("My LOA Configuration") .build(); HttpResponse response = client.porting().loaConfigurations().preview(params);
Retrieve a specific LOA configuration.
GET /porting/loa_configurations/{id}
javaimport com.telnyx.sdk.models.porting.loaconfigurations.LoaConfigurationRetrieveParams; import com.telnyx.sdk.models.porting.loaconfigurations.LoaConfigurationRetrieveResponse; LoaConfigurationRetrieveResponse loaConfiguration = client.porting().loaConfigurations().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: address (object), company_name (string), contact (object), created_at (date-time), id (uuid), logo (object), name (string), organization_id (string), record_type (string), updated_at (date-time)
Update a specific LOA configuration.
PATCH /porting/loa_configurations/{id}
javaimport com.telnyx.sdk.models.porting.loaconfigurations.LoaConfigurationUpdateParams; import com.telnyx.sdk.models.porting.loaconfigurations.LoaConfigurationUpdateResponse; LoaConfigurationUpdateParams params = LoaConfigurationUpdateParams.builder() .id("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .address(LoaConfigurationUpdateParams.Address.builder() .city("Austin") .countryCode("US") .state("TX") .streetAddress("600 Congress Avenue") .zipCode("78701") .build()) .companyName("Telnyx") .contact(LoaConfigurationUpdateParams.Contact.builder() .email("testing@telnyx.com") .phoneNumber("+12003270001") .build()) .logo(LoaConfigurationUpdateParams.Logo.builder() .documentId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .build()) .name("My LOA Configuration") .build(); LoaConfigurationUpdateResponse loaConfiguration = client.porting().loaConfigurations().update(params);
Returns: address (object), company_name (string), contact (object), created_at (date-time), id (uuid), logo (object), name (string), organization_id (string), record_type (string), updated_at (date-time)
Delete a specific LOA configuration.
DELETE /porting/loa_configurations/{id}
javaimport com.telnyx.sdk.models.porting.loaconfigurations.LoaConfigurationDeleteParams; client.porting().loaConfigurations().delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Preview a specific LOA configuration.
GET /porting/loa_configurations/{id}/preview
javaimport com.telnyx.sdk.core.http.HttpResponse; import com.telnyx.sdk.models.porting.loaconfigurations.LoaConfigurationPreview1Params; HttpResponse response = client.porting().loaConfigurations().preview1("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
List the reports generated about porting operations.
GET /porting/reports
javaimport com.telnyx.sdk.models.porting.reports.ReportListPage; import com.telnyx.sdk.models.porting.reports.ReportListParams; ReportListPage page = client.porting().reports().list();
Returns: created_at (date-time), document_id (uuid), id (uuid), params (object), record_type (string), report_type (enum: export_porting_orders_csv), status (enum: pending, completed), updated_at (date-time)
Generate reports about porting operations.
POST /porting/reports
javaimport com.telnyx.sdk.models.porting.reports.ExportPortingOrdersCsvReport; import com.telnyx.sdk.models.porting.reports.ReportCreateParams; import com.telnyx.sdk.models.porting.reports.ReportCreateResponse; ReportCreateParams params = ReportCreateParams.builder() .params(ExportPortingOrdersCsvReport.builder() .filters(ExportPortingOrdersCsvReport.Filters.builder().build()) .build()) .reportType(ReportCreateParams.ReportType.EXPORT_PORTING_ORDERS_CSV) .build(); ReportCreateResponse report = client.porting().reports().create(params);
Returns: created_at (date-time), document_id (uuid), id (uuid), params (object), record_type (string), report_type (enum: export_porting_orders_csv), status (enum: pending, completed), updated_at (date-time)
Retrieve a specific report generated.
GET /porting/reports/{id}
javaimport com.telnyx.sdk.models.porting.reports.ReportRetrieveParams; import com.telnyx.sdk.models.porting.reports.ReportRetrieveResponse; ReportRetrieveResponse report = client.porting().reports().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: created_at (date-time), document_id (uuid), id (uuid), params (object), record_type (string), report_type (enum: export_porting_orders_csv), status (enum: pending, completed), updated_at (date-time)
List available carriers in the UK.
GET /porting/uk_carriers
javaimport com.telnyx.sdk.models.porting.PortingListUkCarriersParams; import com.telnyx.sdk.models.porting.PortingListUkCarriersResponse; PortingListUkCarriersResponse response = client.porting().listUkCarriers();
Returns: alternative_cupids (arraystring]), created_at (date-time), cupid (string), id (uuid), name (string), record_type (string), updated_at (date-time)
Returns a list of your porting order.
GET /porting_orders
javaimport com.telnyx.sdk.models.portingorders.PortingOrderListPage; import com.telnyx.sdk.models.portingorders.PortingOrderListParams; PortingOrderListPage page = client.portingOrders().list();
Returns: activation_settings (object), additional_steps (arraystring]), created_at (date-time), customer_group_reference (string | null), customer_reference (string | null), description (string), documents (object), end_user (object), id (uuid), messaging (object), misc (object), old_service_provider_ocn (string), parent_support_key (string | null), phone_number_configuration (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), phone_numbers (arrayobject]), porting_phone_numbers_count (integer), record_type (string), requirements (arrayobject]), requirements_met (boolean), status (object), support_key (string | null), updated_at (date-time), user_feedback (object), user_id (uuid), webhook_url (uri)
Creates a new porting order object.
POST /porting_orders — Required: phone_numbers
Optional: customer_group_reference (string), customer_reference (string | null)
javaimport com.telnyx.sdk.models.portingorders.PortingOrderCreateParams; import com.telnyx.sdk.models.portingorders.PortingOrderCreateResponse; import java.util.List; PortingOrderCreateParams params = PortingOrderCreateParams.builder() .phoneNumbers(List.of( "+13035550000", "+13035550001", "+13035550002" )) .build(); PortingOrderCreateResponse portingOrder = client.portingOrders().create(params);
Returns: activation_settings (object), additional_steps (arraystring]), created_at (date-time), customer_group_reference (string | null), customer_reference (string | null), description (string), documents (object), end_user (object), id (uuid), messaging (object), misc (object), old_service_provider_ocn (string), parent_support_key (string | null), phone_number_configuration (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), phone_numbers (arrayobject]), porting_phone_numbers_count (integer), record_type (string), requirements (arrayobject]), requirements_met (boolean), status (object), support_key (string | null), updated_at (date-time), user_feedback (object), user_id (uuid), webhook_url (uri)
Returns a list of all possible exception types for a porting order.
GET /porting_orders/exception_types
javaimport com.telnyx.sdk.models.portingorders.PortingOrderRetrieveExceptionTypesParams; import com.telnyx.sdk.models.portingorders.PortingOrderRetrieveExceptionTypesResponse; PortingOrderRetrieveExceptionTypesResponse response = client.portingOrders().retrieveExceptionTypes();
Returns: code (enum: ACCOUNT_NUMBER_MISMATCH, AUTH_PERSON_MISMATCH, BTN_ATN_MISMATCH, ENTITY_NAME_MISMATCH, FOC_EXPIRED, FOC_REJECTED, LOCATION_MISMATCH, LSR_PENDING, MAIN_BTN_PORTING, OSP_IRRESPONSIVE, OTHER, PASSCODE_PIN_INVALID, PHONE_NUMBER_HAS_SPECIAL_FEATURE, PHONE_NUMBER_MISMATCH, PHONE_NUMBER_NOT_PORTABLE, PORT_TYPE_INCORRECT, PORTING_ORDER_SPLIT_REQUIRED, POSTAL_CODE_MISMATCH, RATE_CENTER_NOT_PORTABLE, SV_CONFLICT, SV_UNKNOWN_FAILURE), description (string)
Returns a list of phone number configurations paginated.
GET /porting_orders/phone_number_configurations
javaimport com.telnyx.sdk.models.portingorders.phonenumberconfigurations.PhoneNumberConfigurationListPage; import com.telnyx.sdk.models.portingorders.phonenumberconfigurations.PhoneNumberConfigurationListParams; PhoneNumberConfigurationListPage page = client.portingOrders().phoneNumberConfigurations().list();
Returns: created_at (date-time), id (uuid), porting_phone_number_id (uuid), record_type (string), updated_at (date-time), user_bundle_id (uuid)
Creates a list of phone number configurations.
POST /porting_orders/phone_number_configurations
javaimport com.telnyx.sdk.models.portingorders.phonenumberconfigurations.PhoneNumberConfigurationCreateParams; import com.telnyx.sdk.models.portingorders.phonenumberconfigurations.PhoneNumberConfigurationCreateResponse; PhoneNumberConfigurationCreateResponse phoneNumberConfiguration = client.portingOrders().phoneNumberConfigurations().create();
Returns: created_at (date-time), id (uuid), porting_phone_number_id (uuid), record_type (string), updated_at (date-time), user_bundle_id (uuid)
Retrieves the details of an existing porting order.
GET /porting_orders/{id}
javaimport com.telnyx.sdk.models.portingorders.PortingOrderRetrieveParams; import com.telnyx.sdk.models.portingorders.PortingOrderRetrieveResponse; PortingOrderRetrieveResponse portingOrder = client.portingOrders().retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: activation_settings (object), additional_steps (arraystring]), created_at (date-time), customer_group_reference (string | null), customer_reference (string | null), description (string), documents (object), end_user (object), id (uuid), messaging (object), misc (object), old_service_provider_ocn (string), parent_support_key (string | null), phone_number_configuration (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), phone_numbers (arrayobject]), porting_phone_numbers_count (integer), record_type (string), requirements (arrayobject]), requirements_met (boolean), status (object), support_key (string | null), updated_at (date-time), user_feedback (object), user_id (uuid), webhook_url (uri)
Edits the details of an existing porting order. Any or all of a porting orders attributes may be included in the resource object included in a PATCH request. If a request does not include all of the attributes for a resource, the system will interpret the missing attributes as if they were included with their current values.
PATCH /porting_orders/{id}
Optional: activation_settings (object), customer_group_reference (string), customer_reference (string), documents (object), end_user (object), messaging (object), misc (object), phone_number_configuration (object), requirement_group_id (uuid), requirements (arrayobject]), user_feedback (object), webhook_url (uri)
javaimport com.telnyx.sdk.models.portingorders.PortingOrderUpdateParams; import com.telnyx.sdk.models.portingorders.PortingOrderUpdateResponse; PortingOrderUpdateResponse portingOrder = client.portingOrders().update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: activation_settings (object), additional_steps (arraystring]), created_at (date-time), customer_group_reference (string | null), customer_reference (string | null), description (string), documents (object), end_user (object), id (uuid), messaging (object), misc (object), old_service_provider_ocn (string), parent_support_key (string | null), phone_number_configuration (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), phone_numbers (arrayobject]), porting_phone_numbers_count (integer), record_type (string), requirements (arrayobject]), requirements_met (boolean), status (object), support_key (string | null), updated_at (date-time), user_feedback (object), user_id (uuid), webhook_url (uri)
Deletes an existing porting order. This operation is restrict to porting orders in draft state.
DELETE /porting_orders/{id}
javaimport com.telnyx.sdk.models.portingorders.PortingOrderDeleteParams; client.portingOrders().delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Activate each number in a porting order asynchronously. This operation is limited to US FastPort orders only.
POST /porting_orders/{id}/actions/activate
javaimport com.telnyx.sdk.models.portingorders.actions.ActionActivateParams; import com.telnyx.sdk.models.portingorders.actions.ActionActivateResponse; ActionActivateResponse response = client.portingOrders().actions().activate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: activate_at (date-time), activation_type (enum: scheduled, on-demand), activation_windows (arrayobject]), created_at (date-time), id (uuid), record_type (string), status (enum: created, in-process, completed, failed), updated_at (date-time)
POST /porting_orders/{id}/actions/cancel
javaimport com.telnyx.sdk.models.portingorders.actions.ActionCancelParams; import com.telnyx.sdk.models.portingorders.actions.ActionCancelResponse; ActionCancelResponse response = client.portingOrders().actions().cancel("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: activation_settings (object), additional_steps (arraystring]), created_at (date-time), customer_group_reference (string | null), customer_reference (string | null), description (string), documents (object), end_user (object), id (uuid), messaging (object), misc (object), old_service_provider_ocn (string), parent_support_key (string | null), phone_number_configuration (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), phone_numbers (arrayobject]), porting_phone_numbers_count (integer), record_type (string), requirements (arrayobject]), requirements_met (boolean), status (object), support_key (string | null), updated_at (date-time), user_feedback (object), user_id (uuid), webhook_url (uri)
Confirm and submit your porting order.
POST /porting_orders/{id}/actions/confirm
javaimport com.telnyx.sdk.models.portingorders.actions.ActionConfirmParams; import com.telnyx.sdk.models.portingorders.actions.ActionConfirmResponse; ActionConfirmResponse response = client.portingOrders().actions().confirm("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: activation_settings (object), additional_steps (arraystring]), created_at (date-time), customer_group_reference (string | null), customer_reference (string | null), description (string), documents (object), end_user (object), id (uuid), messaging (object), misc (object), old_service_provider_ocn (string), parent_support_key (string | null), phone_number_configuration (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), phone_numbers (arrayobject]), porting_phone_numbers_count (integer), record_type (string), requirements (arrayobject]), requirements_met (boolean), status (object), support_key (string | null), updated_at (date-time), user_feedback (object), user_id (uuid), webhook_url (uri)
Creates a sharing token for a porting order. The token can be used to share the porting order with non-Telnyx users.
POST /porting_orders/{id}/actions/share
javaimport com.telnyx.sdk.models.portingorders.actions.ActionShareParams; import com.telnyx.sdk.models.portingorders.actions.ActionShareResponse; ActionShareResponse response = client.portingOrders().actions().share("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: created_at (date-time), expires_at (date-time), expires_in_seconds (integer), id (uuid), permissions (arraystring]), porting_order_id (uuid), record_type (string), token (string)
Returns a list of your porting activation jobs.
GET /porting_orders/{id}/activation_jobs
javaimport com.telnyx.sdk.models.portingorders.activationjobs.ActivationJobListPage; import com.telnyx.sdk.models.portingorders.activationjobs.ActivationJobListParams; ActivationJobListPage page = client.portingOrders().activationJobs().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: activate_at (date-time), activation_type (enum: scheduled, on-demand), activation_windows (arrayobject]), created_at (date-time), id (uuid), record_type (string), status (enum: created, in-process, completed, failed), updated_at (date-time)
Returns a porting activation job.
GET /porting_orders/{id}/activation_jobs/{activationJobId}
javaimport com.telnyx.sdk.models.portingorders.activationjobs.ActivationJobRetrieveParams; import com.telnyx.sdk.models.portingorders.activationjobs.ActivationJobRetrieveResponse; ActivationJobRetrieveParams params = ActivationJobRetrieveParams.builder() .id("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .activationJobId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .build(); ActivationJobRetrieveResponse activationJob = client.portingOrders().activationJobs().retrieve(params);
Returns: activate_at (date-time), activation_type (enum: scheduled, on-demand), activation_windows (arrayobject]), created_at (date-time), id (uuid), record_type (string), status (enum: created, in-process, completed, failed), updated_at (date-time)
Updates the activation time of a porting activation job.
PATCH /porting_orders/{id}/activation_jobs/{activationJobId}
javaimport com.telnyx.sdk.models.portingorders.activationjobs.ActivationJobUpdateParams; import com.telnyx.sdk.models.portingorders.activationjobs.ActivationJobUpdateResponse; ActivationJobUpdateParams params = ActivationJobUpdateParams.builder() .id("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .activationJobId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .build(); ActivationJobUpdateResponse activationJob = client.portingOrders().activationJobs().update(params);
Returns: activate_at (date-time), activation_type (enum: scheduled, on-demand), activation_windows (arrayobject]), created_at (date-time), id (uuid), record_type (string), status (enum: created, in-process, completed, failed), updated_at (date-time)
Returns a list of additional documents for a porting order.
GET /porting_orders/{id}/additional_documents
javaimport com.telnyx.sdk.models.portingorders.additionaldocuments.AdditionalDocumentListPage; import com.telnyx.sdk.models.portingorders.additionaldocuments.AdditionalDocumentListParams; AdditionalDocumentListPage page = client.portingOrders().additionalDocuments().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: content_type (string), created_at (date-time), document_id (uuid), document_type (enum: loa, invoice, csr, other), filename (string), id (uuid), porting_order_id (uuid), record_type (string), updated_at (date-time)
Creates a list of additional documents for a porting order.
POST /porting_orders/{id}/additional_documents
javaimport com.telnyx.sdk.models.portingorders.additionaldocuments.AdditionalDocumentCreateParams; import com.telnyx.sdk.models.portingorders.additionaldocuments.AdditionalDocumentCreateResponse; AdditionalDocumentCreateResponse additionalDocument = client.portingOrders().additionalDocuments().create("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: content_type (string), created_at (date-time), document_id (uuid), document_type (enum: loa, invoice, csr, other), filename (string), id (uuid), porting_order_id (uuid), record_type (string), updated_at (date-time)
Deletes an additional document for a porting order.
DELETE /porting_orders/{id}/additional_documents/{additional_document_id}
javaimport com.telnyx.sdk.models.portingorders.additionaldocuments.AdditionalDocumentDeleteParams; AdditionalDocumentDeleteParams params = AdditionalDocumentDeleteParams.builder() .id("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .additionalDocumentId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .build(); client.portingOrders().additionalDocuments().delete(params);
Returns a list of allowed FOC dates for a porting order.
GET /porting_orders/{id}/allowed_foc_windows
javaimport com.telnyx.sdk.models.portingorders.PortingOrderRetrieveAllowedFocWindowsParams; import com.telnyx.sdk.models.portingorders.PortingOrderRetrieveAllowedFocWindowsResponse; PortingOrderRetrieveAllowedFocWindowsResponse response = client.portingOrders().retrieveAllowedFocWindows("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: ended_at (date-time), record_type (string), started_at (date-time)
Returns a list of all comments of a porting order.
GET /porting_orders/{id}/comments
javaimport com.telnyx.sdk.models.portingorders.comments.CommentListPage; import com.telnyx.sdk.models.portingorders.comments.CommentListParams; CommentListPage page = client.portingOrders().comments().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: body (string), created_at (date-time), id (uuid), porting_order_id (uuid), record_type (string), user_type (enum: admin, user, system)
Creates a new comment for a porting order.
POST /porting_orders/{id}/comments
Optional: body (string)
javaimport com.telnyx.sdk.models.portingorders.comments.CommentCreateParams; import com.telnyx.sdk.models.portingorders.comments.CommentCreateResponse; CommentCreateResponse comment = client.portingOrders().comments().create("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: body (string), created_at (date-time), id (uuid), porting_order_id (uuid), record_type (string), user_type (enum: admin, user, system)
GET /porting_orders/{id}/loa_template
javaimport com.telnyx.sdk.core.http.HttpResponse; import com.telnyx.sdk.models.portingorders.PortingOrderRetrieveLoaTemplateParams; HttpResponse response = client.portingOrders().retrieveLoaTemplate("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns a list of all requirements based on country/number type for this porting order.
GET /porting_orders/{id}/requirements
javaimport com.telnyx.sdk.models.portingorders.PortingOrderRetrieveRequirementsPage; import com.telnyx.sdk.models.portingorders.PortingOrderRetrieveRequirementsParams; PortingOrderRetrieveRequirementsPage page = client.portingOrders().retrieveRequirements("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: field_type (enum: document, textual), field_value (string), record_type (string), requirement_status (string), requirement_type (object)
GET /porting_orders/{id}/sub_request
javaimport com.telnyx.sdk.models.portingorders.PortingOrderRetrieveSubRequestParams; import com.telnyx.sdk.models.portingorders.PortingOrderRetrieveSubRequestResponse; PortingOrderRetrieveSubRequestResponse response = client.portingOrders().retrieveSubRequest("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: port_request_id (string), sub_request_id (string)
Returns a list of verification codes for a porting order.
GET /porting_orders/{id}/verification_codes
javaimport com.telnyx.sdk.models.portingorders.verificationcodes.VerificationCodeListPage; import com.telnyx.sdk.models.portingorders.verificationcodes.VerificationCodeListParams; VerificationCodeListPage page = client.portingOrders().verificationCodes().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: created_at (date-time), id (uuid), phone_number (string), porting_order_id (uuid), record_type (string), updated_at (date-time), verified (boolean)
Send the verification code for all porting phone numbers.
POST /porting_orders/{id}/verification_codes/send
javaimport com.telnyx.sdk.models.portingorders.verificationcodes.VerificationCodeSendParams; client.portingOrders().verificationCodes().send("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Verifies the verification code for a list of phone numbers.
POST /porting_orders/{id}/verification_codes/verify
javaimport com.telnyx.sdk.models.portingorders.verificationcodes.VerificationCodeVerifyParams; import com.telnyx.sdk.models.portingorders.verificationcodes.VerificationCodeVerifyResponse; VerificationCodeVerifyResponse response = client.portingOrders().verificationCodes().verify("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: created_at (date-time), id (uuid), phone_number (string), porting_order_id (uuid), record_type (string), updated_at (date-time), verified (boolean)
Returns a list of action requirements for a specific porting order.
GET /porting_orders/{porting_order_id}/action_requirements
javaimport com.telnyx.sdk.models.portingorders.actionrequirements.ActionRequirementListPage; import com.telnyx.sdk.models.portingorders.actionrequirements.ActionRequirementListParams; ActionRequirementListPage page = client.portingOrders().actionRequirements().list("550e8400-e29b-41d4-a716-446655440000");
Returns: action_type (string), action_url (string | null), cancel_reason (string | null), created_at (date-time), id (string), porting_order_id (string), record_type (enum: porting_action_requirement), requirement_type_id (string), status (enum: created, pending, completed, cancelled, failed), updated_at (date-time)
Initiates a specific action requirement for a porting order.
POST /porting_orders/{porting_order_id}/action_requirements/{id}/initiate
javaimport com.telnyx.sdk.models.portingorders.actionrequirements.ActionRequirementInitiateParams; import com.telnyx.sdk.models.portingorders.actionrequirements.ActionRequirementInitiateResponse; ActionRequirementInitiateParams params = ActionRequirementInitiateParams.builder() .portingOrderId("550e8400-e29b-41d4-a716-446655440000") .id("550e8400-e29b-41d4-a716-446655440000") .params(ActionRequirementInitiateParams.Params.builder() .firstName("John") .lastName("Doe") .build()) .build(); ActionRequirementInitiateResponse response = client.portingOrders().actionRequirements().initiate(params);
Returns: action_type (string), action_url (string | null), cancel_reason (string | null), created_at (date-time), id (string), porting_order_id (string), record_type (enum: porting_action_requirement), requirement_type_id (string), status (enum: created, pending, completed, cancelled, failed), updated_at (date-time)
Returns a list of all associated phone numbers for a porting order. Associated phone numbers are used for partial porting in GB to specify which phone numbers should be kept or disconnected.
GET /porting_orders/{porting_order_id}/associated_phone_numbers
javaimport com.telnyx.sdk.models.portingorders.associatedphonenumbers.AssociatedPhoneNumberListPage; import com.telnyx.sdk.models.portingorders.associatedphonenumbers.AssociatedPhoneNumberListParams; AssociatedPhoneNumberListPage page = client.portingOrders().associatedPhoneNumbers().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: action (enum: keep, disconnect), country_code (string), created_at (date-time), id (uuid), phone_number_range (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), porting_order_id (uuid), record_type (string), updated_at (date-time)
Creates a new associated phone number for a porting order. This is used for partial porting in GB to specify which phone numbers should be kept or disconnected.
POST /porting_orders/{porting_order_id}/associated_phone_numbers
javaimport com.telnyx.sdk.models.portingorders.associatedphonenumbers.AssociatedPhoneNumberCreateParams; import com.telnyx.sdk.models.portingorders.associatedphonenumbers.AssociatedPhoneNumberCreateResponse; AssociatedPhoneNumberCreateParams params = AssociatedPhoneNumberCreateParams.builder() .portingOrderId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .action(AssociatedPhoneNumberCreateParams.Action.KEEP) .phoneNumberRange(AssociatedPhoneNumberCreateParams.PhoneNumberRange.builder().build()) .build(); AssociatedPhoneNumberCreateResponse associatedPhoneNumber = client.portingOrders().associatedPhoneNumbers().create(params);
Returns: action (enum: keep, disconnect), country_code (string), created_at (date-time), id (uuid), phone_number_range (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), porting_order_id (uuid), record_type (string), updated_at (date-time)
Deletes an associated phone number from a porting order.
DELETE /porting_orders/{porting_order_id}/associated_phone_numbers/{id}
javaimport com.telnyx.sdk.models.portingorders.associatedphonenumbers.AssociatedPhoneNumberDeleteParams; import com.telnyx.sdk.models.portingorders.associatedphonenumbers.AssociatedPhoneNumberDeleteResponse; AssociatedPhoneNumberDeleteParams params = AssociatedPhoneNumberDeleteParams.builder() .portingOrderId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .id("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .build(); AssociatedPhoneNumberDeleteResponse associatedPhoneNumber = client.portingOrders().associatedPhoneNumbers().delete(params);
Returns: action (enum: keep, disconnect), country_code (string), created_at (date-time), id (uuid), phone_number_range (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), porting_order_id (uuid), record_type (string), updated_at (date-time)
Returns a list of all phone number blocks of a porting order.
GET /porting_orders/{porting_order_id}/phone_number_blocks
javaimport com.telnyx.sdk.models.portingorders.phonenumberblocks.PhoneNumberBlockListPage; import com.telnyx.sdk.models.portingorders.phonenumberblocks.PhoneNumberBlockListParams; PhoneNumberBlockListPage page = client.portingOrders().phoneNumberBlocks().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: activation_ranges (arrayobject]), country_code (string), created_at (date-time), id (uuid), phone_number_range (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), record_type (string), updated_at (date-time)
Creates a new phone number block.
POST /porting_orders/{porting_order_id}/phone_number_blocks
javaimport com.telnyx.sdk.models.portingorders.phonenumberblocks.PhoneNumberBlockCreateParams; import com.telnyx.sdk.models.portingorders.phonenumberblocks.PhoneNumberBlockCreateResponse; PhoneNumberBlockCreateParams params = PhoneNumberBlockCreateParams.builder() .portingOrderId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .addActivationRange(PhoneNumberBlockCreateParams.ActivationRange.builder() .endAt("+4930244999910") .startAt("+4930244999901") .build()) .phoneNumberRange(PhoneNumberBlockCreateParams.PhoneNumberRange.builder() .endAt("+4930244999910") .startAt("+4930244999901") .build()) .build(); PhoneNumberBlockCreateResponse phoneNumberBlock = client.portingOrders().phoneNumberBlocks().create(params);
Returns: activation_ranges (arrayobject]), country_code (string), created_at (date-time), id (uuid), phone_number_range (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), record_type (string), updated_at (date-time)
Deletes a phone number block.
DELETE /porting_orders/{porting_order_id}/phone_number_blocks/{id}
javaimport com.telnyx.sdk.models.portingorders.phonenumberblocks.PhoneNumberBlockDeleteParams; import com.telnyx.sdk.models.portingorders.phonenumberblocks.PhoneNumberBlockDeleteResponse; PhoneNumberBlockDeleteParams params = PhoneNumberBlockDeleteParams.builder() .portingOrderId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .id("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .build(); PhoneNumberBlockDeleteResponse phoneNumberBlock = client.portingOrders().phoneNumberBlocks().delete(params);
Returns: activation_ranges (arrayobject]), country_code (string), created_at (date-time), id (uuid), phone_number_range (object), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), record_type (string), updated_at (date-time)
Returns a list of all phone number extensions of a porting order.
GET /porting_orders/{porting_order_id}/phone_number_extensions
javaimport com.telnyx.sdk.models.portingorders.phonenumberextensions.PhoneNumberExtensionListPage; import com.telnyx.sdk.models.portingorders.phonenumberextensions.PhoneNumberExtensionListParams; PhoneNumberExtensionListPage page = client.portingOrders().phoneNumberExtensions().list("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e");
Returns: activation_ranges (arrayobject]), created_at (date-time), extension_range (object), id (uuid), porting_phone_number_id (uuid), record_type (string), updated_at (date-time)
Creates a new phone number extension.
POST /porting_orders/{porting_order_id}/phone_number_extensions
javaimport com.telnyx.sdk.models.portingorders.phonenumberextensions.PhoneNumberExtensionCreateParams; import com.telnyx.sdk.models.portingorders.phonenumberextensions.PhoneNumberExtensionCreateResponse; PhoneNumberExtensionCreateParams params = PhoneNumberExtensionCreateParams.builder() .portingOrderId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .addActivationRange(PhoneNumberExtensionCreateParams.ActivationRange.builder() .endAt(10L) .startAt(1L) .build()) .extensionRange(PhoneNumberExtensionCreateParams.ExtensionRange.builder() .endAt(10L) .startAt(1L) .build()) .portingPhoneNumberId("f24151b6-3389-41d3-8747-7dd8c681e5e2") .build(); PhoneNumberExtensionCreateResponse phoneNumberExtension = client.portingOrders().phoneNumberExtensions().create(params);
Returns: activation_ranges (arrayobject]), created_at (date-time), extension_range (object), id (uuid), porting_phone_number_id (uuid), record_type (string), updated_at (date-time)
Deletes a phone number extension.
DELETE /porting_orders/{porting_order_id}/phone_number_extensions/{id}
javaimport com.telnyx.sdk.models.portingorders.phonenumberextensions.PhoneNumberExtensionDeleteParams; import com.telnyx.sdk.models.portingorders.phonenumberextensions.PhoneNumberExtensionDeleteResponse; PhoneNumberExtensionDeleteParams params = PhoneNumberExtensionDeleteParams.builder() .portingOrderId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .id("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .build(); PhoneNumberExtensionDeleteResponse phoneNumberExtension = client.portingOrders().phoneNumberExtensions().delete(params);
Returns: activation_ranges (arrayobject]), created_at (date-time), extension_range (object), id (uuid), porting_phone_number_id (uuid), record_type (string), updated_at (date-time)
Returns a list of your porting phone numbers.
GET /porting_phone_numbers
javaimport com.telnyx.sdk.models.portingphonenumbers.PortingPhoneNumberListPage; import com.telnyx.sdk.models.portingphonenumbers.PortingPhoneNumberListParams; PortingPhoneNumberListPage page = client.portingPhoneNumbers().list();
Returns: activation_status (enum: New, Pending, Conflict, Cancel Pending, Failed, Concurred, Activate RDY, Disconnect Pending, Concurrence Sent, Old, Sending, Active, Cancelled), phone_number (string), phone_number_type (enum: landline, local, mobile, national, shared_cost, toll_free), portability_status (enum: pending, confirmed, provisional), porting_order_id (uuid), porting_order_status (enum: draft, in-process, submitted, exception, foc-date-confirmed, cancel-pending, ported, cancelled), record_type (string), requirements_status (enum: requirement-info-pending, requirement-info-under-review, requirement-info-exception, approved), support_key (string)
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-22 | fail→fail | 13,141 | 9,767 | -26% | 1 | 1 | 0% | 2,075 | 15,499 | +647% | 0 | 0 | — |
case-01 | fail→pass | 20,504 | 9,597 | -53% | 1 | 1 | 0% | 4,291 | 16,074 | +275% | 0 | 0 | — |
case-02 | fail→pass | 14,147 | 10,779 | -24% | 1 | 1 | 0% | 2,874 | 16,397 | +471% | 0 | 0 | — |
case-03 | fail→pass | 16,525 | 9,776 | -41% | 1 | 1 | 0% | 3,204 | 16,097 | +402% | 0 | 0 | — |
case-04 | fail→pass | 5,382 | 2,042 | -62% | 1 | 1 | 0% | 1,028 | 14,334 | +1294% | 0 | 0 | — |
case-05 | fail→pass | 12,484 | 3,066 | -75% | 1 | 1 | 0% | 1,998 | 14,519 | +627% | 0 | 0 | — |
case-06 | fail→pass | 14,225 | 10,503 | -26% | 1 | 1 | 0% | 2,736 | 16,245 | +494% | 0 | 0 | — |
case-07 | pass→pass | 12,970 | 5,667 | -56% | 1 | 1 | 0% | 2,508 | 15,115 | +503% | 0 | 0 | — |
case-08 | fail→pass | 12,562 | 3,753 | -70% | 1 | 1 | 0% | 2,172 | 14,641 | +574% | 0 | 0 | — |
case-09 | fail→pass | 15,900 | 6,451 | -59% | 1 | 1 | 0% | 3,131 | 15,556 | +397% | 0 | 0 | — |
case-10 | fail→pass | 6,202 | 4,731 | -24% | 1 | 1 | 0% | 1,147 | 14,999 | +1208% | 0 | 0 | — |
case-11 | fail→pass | 10,452 | 3,915 | -63% | 1 | 1 | 0% | 2,220 | 14,728 | +563% | 0 | 0 | — |
case-12 | fail→pass | 16,117 | 2,985 | -81% | 1 | 1 | 0% | 2,574 | 14,429 | +461% | 0 | 0 | — |
case-13 | fail→pass | 8,809 | 4,544 | -48% | 1 | 1 | 0% | 1,766 | 14,571 | +725% | 0 | 0 | — |
case-14 | fail→pass | 14,012 | 3,587 | -74% | 1 | 1 | 0% | 2,192 | 14,634 | +568% | 0 | 0 | — |
case-15 | fail→pass | 13,903 | 8,837 | -36% | 1 | 1 | 0% | 2,884 | 15,945 | +453% | 0 | 0 | — |
case-16 | fail→pass | 23,625 | 4,949 | -79% | 1 | 1 | 0% | 2,325 | 14,964 | +544% | 0 | 0 | — |
case-17 | fail→pass | 17,352 | 6,647 | -62% | 1 | 1 | 0% | 2,805 | 15,492 | +452% | 0 | 0 | — |
case-18 | fail→pass | 18,313 | 10,889 | -41% | 1 | 1 | 0% | 3,648 | 16,313 | +347% | 0 | 0 | — |
case-19 | pass→pass | 14,079 | 5,744 | -59% | 1 | 1 | 0% | 2,948 | 15,244 | +417% | 0 | 0 | — |
case-20 | fail→pass | 15,447 | 5,176 | -66% | 1 | 1 | 0% | 2,884 | 15,026 | +421% | 0 | 0 | — |
case-21 | fail→pass | 14,295 | 5,057 | -65% | 1 | 1 | 0% | 2,369 | 14,764 | +523% | 0 | 0 | — |
case-23 | pass→pass | 17,220 | 15,168 | -12% | 1 | 1 | 0% | 2,828 | 16,257 | +475% | 0 | 0 | — |
case-24 | pass→pass | 13,665 | 19,126 | +40% | 1 | 1 | 0% | 2,769 | 16,849 | +508% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted. The headline lift of +79 percentage points is the difference between those two pass rates over the 24 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/22/2026 | +84% |
Other measured skills in the registry, with their headline benchmark lift.