import requests
response = requests.post(
"https://api.tracklysms.com/api/v2/number-requests/665f0a1b2c3d4e5f60718293/correction",
headers={
"X-Api-Key": "trk_your_api_key_here",
"Idempotency-Key": "number-request-correction-665f0a1b",
},
json={},
)
{
"result": "awaiting_carrier_review",
"request": {
"id": "665f0a1b2c3d4e5f60718293",
"targetCountries": ["CA"],
"internationalAcquisitionStatus": "PENDING_REVIEW",
"internationalAcquisitionFeedback": {},
"status": "approved",
"provisioningStatus": "in_progress"
}
}
Number Requests (v2)
Correct Resource Request
Return requested changes to the same provider Resource Request.
POST
/
v2
/
number-requests
/
{request_id}
/
correction
import requests
response = requests.post(
"https://api.tracklysms.com/api/v2/number-requests/665f0a1b2c3d4e5f60718293/correction",
headers={
"X-Api-Key": "trk_your_api_key_here",
"Idempotency-Key": "number-request-correction-665f0a1b",
},
json={},
)
{
"result": "awaiting_carrier_review",
"request": {
"id": "665f0a1b2c3d4e5f60718293",
"targetCountries": ["CA"],
"internationalAcquisitionStatus": "PENDING_REVIEW",
"internationalAcquisitionFeedback": {},
"status": "approved",
"provisioningStatus": "in_progress"
}
}
Submits a complete correction to the existing provider Resource Request. Correction is allowed only when the stored provider status is:
Provider update permission cannot be proven by read-only lookup. A 403 is returned as the safe
UPDATE_REQUESTED; orUPDATE_REQUESTED_BY_INTERNAL_REVIEWER.
Correction PATCHes the same provider request with the full requirement array. It never resets the NumberRequest, cancels the provider request, clears its id, or creates a replacement.
Send an
Idempotency-Key when retrying a correction. The key is bound to this concrete request path and payload; an exact retry replays the first successful response. See Idempotency.Path parameters
string
required
Number request id.
Optional body
When saved requirement and document data is already complete, omit the request body or send{}. To save changes and submit them in the same operation, send any of the three fields accepted by Update International Requirements:
internationalAcquisitionFormData;internationalAcquisitionDocuments;internationalAcquisitionDocumentRemovedKeys.
Content-Type: application/json. JSON null, malformed JSON, and a body sent with another content type return 400 validation_failed.
Behavior
Current matching business evidence and explicit request confirmation are rechecked before provider work. You can save incomplete correction preparation while verification is pending, then reconfirm the business and submit on this same request once ready. Before calling the provider, Trackly:- loads the live requirement schema;
- preserves user-entered and provider-returned values;
- prefills only exact known keys from the NumberRequest;
- verifies every required field and document;
- rebuilds the full
{key, value}requirement array; - updates the same provider request id.
Example
import requests
response = requests.post(
"https://api.tracklysms.com/api/v2/number-requests/665f0a1b2c3d4e5f60718293/correction",
headers={
"X-Api-Key": "trk_your_api_key_here",
"Idempotency-Key": "number-request-correction-665f0a1b",
},
json={},
)
{
"result": "awaiting_carrier_review",
"request": {
"id": "665f0a1b2c3d4e5f60718293",
"targetCountries": ["CA"],
"internationalAcquisitionStatus": "PENDING_REVIEW",
"internationalAcquisitionFeedback": {},
"status": "approved",
"provisioningStatus": "in_progress"
}
}
Error codes
| HTTP | Code | Meaning |
|---|---|---|
| 400 | validation_failed | A present body is JSON null, malformed JSON, has the wrong content type, or is not a JSON object. An omitted body remains valid. |
| 400 | Acquisition payload errors | Optional form or document fields are invalid. |
| 400 | carrier_identifier_not_editable | A carrier-identifier requirement was supplied directly. Update request-owned taxId and identifierType through Update Number Request. |
| 403 | acquisition_update_unavailable | Provider account cannot update this Resource Request. The existing id is preserved. |
| 422 | Business verification error | The error field identifies missing confirmation (business_confirmation_required), pending verification (business_verification_required), changed identity (business_identity_changed), or stale evidence (business_verification_stale). The precheck also includes the current businessVerification summary. Resolve the issue and reconfirm when required before provider submission. |
| 403 | compliance_account_blocked | Resolve the account’s business verification hold before submitting corrections. |
| 403 | sandbox_read_only | A sandbox key attempted a correction. |
| 404 | not_found | Request does not belong to the API-key account. |
| 409 | acquisition_correction_not_allowed | Provider status is not correctable or the request has no provider id. |
| 409 | acquisition_not_available | Request has no dynamic acquisition path. |
| 422 | acquisition_requirements_incomplete | Required form values or documents are missing. |
| 422 | tax_id_invalid | Request-owned carrier identifier is invalid. |
| 422 | identifier_type_required | Multi-option address country needs a type. |
| 422 | identifier_type_invalid | Type does not belong to the address country. |
| 502 | provider_request_failed | Another provider failure was surfaced without replacement or reset. |
| 503 | acquisition_requirements_unavailable | Provider requirements are temporarily unavailable. Retry later. |
acquisition_update_unavailable capability error.
Next steps
Get Requirements
Poll status and feedback
Get Number Request
Track provisioning