numbers.extension_invalid
An internal extension must be exactly four digits.
numbers.extension_invalid means the supplied extension is not exactly four digits. 1001 is valid; 100, 10001 and 10a1 are not.
Extensions are fixed at four digits rather than allowed a range, and the reason is dialling rather than storage.
With a variable length, 10 is a prefix of 1001. A handset cannot then tell whether you have finished dialling, so it waits out an inter-digit timeout before placing every internal call. At a fixed length the fourth digit is the end of the number and the phone dials immediately.
Four digits also cannot be confused with a real number. A locally-dialled number here is ten digits and an E.164 carries a +, so nothing has to guess whether a string of digits meant a colleague or the outside world.
Nothing is written or provisioned when this is returned — a bad extension is a typo, not a partial failure to unwind.
Send exactly four digits, or omit the field entirely. An extension is optional: a credential used only for programmatic dialling does not need one, and a device without one can still be reached from outside and can still call out.
curl -X PATCH "https://api.sautikit.com/v1/numbers/{id}/sip-credentials/{cred_id}" \
-H "Authorization: Bearer $SAUTIKIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"extension": "1001"}'Pass an empty string to remove an extension.
numbers.extension_taken — another credential in this workspace already holds it.