Skip to main content
🚧 Alpha — upcoming in v1.0.16 (target: October 8, 2026). This feature is not yet live in production. The flow and payloads below are final per stage testing but may change until go-live. This page is published early so the link stays stable; it will be promoted to live once v1.0.16 ships.
Cancelling a number deactivates it with the carrier immediately. To stop numbers being cancelled by mistake, cancellation always takes two API calls:
  1. Request the cancellation — you get back an AuthCode.
  2. Submit the cancellation with that AuthCode — only then are the numbers cancelled.
⚠️ You cannot cancel a number without an AuthCode.
  • Every cancellation needs the AuthCode returned by cancel-order-request.
  • The AuthCode is valid for 5 minutes only.
  • Each AuthCode works once, for one order.
If the code expires or is used up, send a new cancel-order-request to get a new one.

How it works

Before you start

  • Authentication: API tokens are bound to one endpoint, so you need a token for each of the two endpoints: /v1.0/numbers/cancel-order-request and /v1.0/numbers/cancel-order-submit.
  • Cancel is no longer accepted on /numbers/status. Sending "StatusChange": "cancel" there returns HTTP 400: Cancel has moved to POST /numbers/cancel-order-request.
  • No future-dated cancellations. There is no effective date — a submitted cancellation happens right away.

Step 1 — Request the cancellation

Every number must exist, belong to your account, and be Active. If any number fails these checks, the whole request is refused and no order is created. A number that is already cancelled is not Active, so it is rejected here with Number is not active '...' (see Errors). The only time an already-cancelled number appears in FailedChange instead is when it is cancelled by something else between your request and your submit — see Step 2.

Response

Keep both OrderId and AuthCode — you need both for step 2.
  • Check NumbersChange. These are exactly the numbers that will be cancelled. If anything is wrong, simply don’t submit — the order expires on its own.
  • Read the ConsentStatement. Submitting in step 2 counts as accepting it.

The AuthCode

The AuthCode is what turns a cancel request into an actual cancellation.
💡 Best practice: submit straight after you’ve reviewed the request, well inside the 5 minutes. If you need longer (for example to get approval), send a new request when you’re ready.

Step 2 — Submit the cancellation

You don’t send the numbers again — they come from the order created in step 1.

Response

If you subscribe to Order_Update webhooks, you also receive one webhook with the order’s final status.

After cancellation — the 30-day window

List numbers still in the window with the inventory filter:
ℹ️ Reactivation of a Cancelled - Pending Delete number (within 30 days, $5 recovery fee) is delivered by POST /v1.0/numbers/reactivate. Self-service reactivation ships in or shortly after v1.0.16 — see the Reactivate endpoint page for its status.

Errors

Business errors return HTTP 400 with a message, and nothing is cancelled.
⚠️ One non-400 case to watch. The two calls use separately scoped tokens. Sending the cancel-order-request token to cancel-order-submit (or vice versa) returns 401 Unauthorized — not a 400. If submit returns 401 while your AuthCode is counting down, check you’re using the submit token.

cancel-order-request

cancel-order-submit

An already-cancelled number is normally rejected earlier, at cancel-order-request, with Number is not active '...' (it is no longer Active). It only reaches FailedChange here when a number is cancelled by something else between your request and your submit — in that case it comes back with a clear error rather than being cancelled again, for example: Number is already cancelled '+12015550101' (Cancelled - Pending Delete).

Quick checklist

  • Get a token for cancel-order-request and one for cancel-order-submit.
  • Call cancel-order-request and keep the OrderId and AuthCode.
  • Check NumbersChange and read the ConsentStatement.
  • Call cancel-order-submit within 5 minutes (before AuthCodeExpiresAt).
  • Check OrderStatus and FailedChange in the response.
  • If the code expired, start again from step 1.

FAQ

Can I reuse an AuthCode? No. Each code works once, for the one order it was issued with. I lost the AuthCode — can Telegent resend it? No. Only a hashed form is stored. Send a new cancel-order-request, which also expires the old order. Can I get a longer expiry? No — the expiry is fixed at 5 minutes. Request the cancellation only when you’re ready to submit it. What if I change my mind after step 1? Do nothing. The order expires after 5 minutes and no numbers are affected. What if I change my mind after step 2? The numbers are already deactivated. During the 30-day pending-delete window, reactivate each one with POST /v1.0/numbers/reactivate for a $5 recovery fee per number. After 30 days they can’t be recovered. Can I schedule a cancellation for a future date? Not at the moment. Every cancellation happens when it’s submitted. Want to deactivate a number but keep it? Park it instead of cancelling — parking keeps the number reserved for you without deactivating it. See your MSA fee schedule.