> ## Documentation Index
> Fetch the complete documentation index at: https://docs.telegent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Numbers - Cancel Order Submit

> > **Beta — now live in production.** This endpoint is live and currently in beta.

Stage 2 of the two-stage number cancellation flow. Submits the `OrderId` and `AuthCode` from `cancel-order-request` and **cancels the numbers immediately with the carrier.**

**What this does:** Validates the AuthCode (single-use, 5-minute expiry, 5-wrong-attempt lockout) and deactivates the order's numbers. Returns `OrderStatus` `Complete` (numbers in `NumbersChange` deactivated) or `Failed` (every number refused). Numbers refused by the carrier — or already cancelled — are returned in `FailedChange` and stay Active. Successfully cancelled numbers become `Cancelled - Pending Delete` for 30 days.

You do not resend the numbers; they come from the order created in stage 1. See the [Cancelling Numbers guide](/guides/cancelling-numbers).

**Next step:**
- Confirm the result — `GET /v1.0/numbers/order?OrderId=...`



## OpenAPI

````yaml /api-reference/openapi.json post /v1.0/numbers/cancel-order-submit
openapi: 3.0.3
info:
  title: mPaaS Core APIs
  version: 1.0.8
  description: >-
    The Telegent mPaaS (Mobile Platform as a Service) API gives you full
    programmatic control over mobile phone numbers, messaging, voice routing,
    subscribers, and account management. Use these APIs to provision MVNO and
    IoT numbers, send and receive SMS/MMS, configure intelligent call routing,
    manage subscriber accounts, and apply AI Guardian controls. All requests
    require a Bearer token obtained from the Authentication endpoint. For
    support, visit https://support.telegent.com/support/home
  contact:
    name: Support
    email: support@telegent.com
  termsOfService: https://telegent.com/terms
  license:
    name: Use under LICX
    url: https://telegent.com/license
servers:
  - url: https://api.telegent.com
security:
  - BearerAuth: []
tags:
  - name: OAuth2
  - name: Accounts
  - name: Distributors
  - name: Message
  - name: Numbers
  - name: Voicemail
  - name: Packages
  - name: Products
  - name: Services
  - name: Sims
  - name: Subscribers
  - name: Subscriptions
  - name: Voice
  - name: Workgroups
  - name: Health Status
paths:
  /v1.0/numbers/cancel-order-submit:
    post:
      tags:
        - Numbers
      summary: Numbers - Cancel Order Submit
      description: >-
        > **Beta — now live in production.** This endpoint is live and currently
        in beta.


        Stage 2 of the two-stage number cancellation flow. Submits the `OrderId`
        and `AuthCode` from `cancel-order-request` and **cancels the numbers
        immediately with the carrier.**


        **What this does:** Validates the AuthCode (single-use, 5-minute expiry,
        5-wrong-attempt lockout) and deactivates the order's numbers. Returns
        `OrderStatus` `Complete` (numbers in `NumbersChange` deactivated) or
        `Failed` (every number refused). Numbers refused by the carrier — or
        already cancelled — are returned in `FailedChange` and stay Active.
        Successfully cancelled numbers become `Cancelled - Pending Delete` for
        30 days.


        You do not resend the numbers; they come from the order created in stage
        1. See the [Cancelling Numbers guide](/guides/cancelling-numbers).


        **Next step:**

        - Confirm the result — `GET /v1.0/numbers/order?OrderId=...`
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - OrderId
                - AuthCode
              properties:
                OrderId:
                  type: string
                  description: The OrderId returned by cancel-order-request.
                  example: JNUOID-6b1e2c4a-7d3f-4b2a-9c1e-2f5a8d9e0b11
                AuthCode:
                  type: string
                  description: >-
                    The single-use AuthCode returned by cancel-order-request.
                    Valid for 5 minutes; not case-sensitive.
                  example: 7K4Q9M
      responses:
        '200':
          description: Submission processed — OrderStatus is Complete or Failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  OrderId:
                    type: string
                    description: The cancel order that was submitted.
                  OrderDate:
                    type: string
                    format: date-time
                    description: >-
                      When the order was created (UTC). Present on `Complete`
                      orders; may be absent when `OrderStatus` is `Failed`.
                  OrderStatus:
                    type: string
                    description: >-
                      `Complete` (numbers in NumbersChange were deactivated) or
                      `Failed` (every number refused).
                  NumbersChange:
                    type: array
                    description: >-
                      Numbers the carrier deactivated. Now `Cancelled - Pending
                      Delete`.
                    items:
                      type: object
                      properties:
                        Number:
                          type: string
                          description: Phone number in E.164 format.
                  FailedChange:
                    type: array
                    description: >-
                      Numbers the carrier refused, or that were already
                      cancelled. These stay Active.
                    items:
                      type: object
                      properties:
                        Number:
                          type: string
                          description: Phone number in E.164 format.
                        Error:
                          type: string
                          description: Why this number was not cancelled.
              examples:
                success:
                  summary: Complete — numbers cancelled
                  value:
                    OrderId: JNUOID-6b1e2c4a-7d3f-4b2a-9c1e-2f5a8d9e0b11
                    OrderDate: '2026-10-08T16:05:00Z'
                    OrderStatus: Complete
                    NumbersChange:
                      - Number: '+12015550101'
                    FailedChange: []
                alreadyCancelled:
                  summary: Failed — number already cancelled
                  value:
                    OrderId: JNUOID-6b1e2c4a-7d3f-4b2a-9c1e-2f5a8d9e0b11
                    OrderStatus: Failed
                    NumbersChange: []
                    FailedChange:
                      - Number: '+12015550101'
                        Error: >-
                          Number is already cancelled '+12015550101' (Cancelled
                          - Pending Delete).
        '400':
          description: >-
            Bad Request — for example: "Invalid request. OrderId and AuthCode
            are required.", "Cancel order not found.", "Auth code has expired.
            Send a new cancel-order-request.", "Invalid auth code.", or "Cancel
            order has already been submitted."
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/BadRequest_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest_Result'
              examples:
                example:
                  value:
                    StatusCode: 400
                    Message: Auth code has expired. Send a new cancel-order-request.
            text/json:
              schema:
                $ref: '#/components/schemas/BadRequest_Result'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Unauthorized_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized_Result'
              examples:
                example:
                  value:
                    StatusCode: 401
                    Message: >-
                      Unauthorized: Bearer token is missing, expired, or
                      invalid. Re-authenticate via POST /v1.0/oauth2/tokens.
            text/json:
              schema:
                $ref: '#/components/schemas/Unauthorized_Result'
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Forbidden_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden_Result'
              examples:
                example:
                  value:
                    StatusCode: 403
                    Message: >-
                      Forbidden: your token does not have permission to access
                      this resource. Check the ApiEndpoint scope.
            text/json:
              schema:
                $ref: '#/components/schemas/Forbidden_Result'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/NotFound_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound_Result'
              examples:
                example:
                  value:
                    StatusCode: 404
                    Message: >-
                      Not found: the requested resource does not exist or
                      belongs to a different account.
            text/json:
              schema:
                $ref: '#/components/schemas/NotFound_Result'
        '405':
          description: Method Not Allowed
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed_Result'
              examples:
                example:
                  value:
                    StatusCode: 405
                    Message: >-
                      Method not allowed: verify the HTTP method required for
                      this endpoint.
            text/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed_Result'
        '408':
          description: Request Timeout
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/RequestTimeout_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTimeout_Result'
              examples:
                example:
                  value:
                    StatusCode: 408
                    Message: >-
                      Request timeout: the server did not receive a complete
                      request within the allowed time. Retry with exponential
                      backoff.
            text/json:
              schema:
                $ref: '#/components/schemas/RequestTimeout_Result'
        '429':
          description: Too Many Requests
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TooManyRequests_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests_Result'
              examples:
                example:
                  value:
                    StatusCode: 429
                    Message: >-
                      Too many requests: rate limit exceeded. Slow your request
                      cadence and retry after a short delay.
            text/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests_Result'
        '500':
          description: Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/InternalServerError_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError_Result'
              examples:
                example:
                  value:
                    StatusCode: 500
                    Message: >-
                      Internal server error: an unexpected error occurred. If
                      the problem persists contact support@telegent.com.
            text/json:
              schema:
                $ref: '#/components/schemas/InternalServerError_Result'
        '503':
          description: Service Unavailable
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ServiceUnavailable_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailable_Result'
              examples:
                example:
                  value:
                    StatusCode: 503
                    Message: >-
                      Service unavailable: the API is temporarily unavailable.
                      Retry after a short delay.
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailable_Result'
        '504':
          description: Gateway Timeout
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GatewayTimeout_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayTimeout_Result'
              examples:
                example:
                  value:
                    StatusCode: 504
                    Message: >-
                      Gateway timeout: an upstream service did not respond in
                      time. Retry with exponential backoff.
            text/json:
              schema:
                $ref: '#/components/schemas/GatewayTimeout_Result'
      x-codeSamples:
        - lang: JSON
          source: |-
            {
              "OrderId": "JNUOID-6b1e2c4a-7d3f-4b2a-9c1e-2f5a8d9e0b11",
              "AuthCode": "7K4Q9M"
            }
        - lang: cURL
          source: >-
            curl -X POST
            https://api.telegent.com/v1.0/numbers/cancel-order-submit \
              -H 'Authorization: Bearer YOUR_TOKEN' \
              -H 'Content-Type: application/json' \
              -d '{
                "OrderId": "JNUOID-6b1e2c4a-7d3f-4b2a-9c1e-2f5a8d9e0b11",
                "AuthCode": "7K4Q9M"
              }'
components:
  schemas:
    BadRequest_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    Unauthorized_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    Forbidden_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    NotFound_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    MethodNotAllowed_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    RequestTimeout_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    TooManyRequests_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    InternalServerError_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    ServiceUnavailable_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    GatewayTimeout_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.