{
"businessProfile": {
"id": "664a1b2c3d4e5f6071829300",
"taxIdLast4": "4321",
"verificationStatus": "unverified",
"updatedAt": "2026-07-26T13:00:00Z"
}
}
Business Verification (v2)
Update Business Profile
Correct a business profile; an identity change releases verification and re-submits KYB.
PATCH
/
v2
/
business-profiles
/
{profile_id}
{
"businessProfile": {
"id": "664a1b2c3d4e5f6071829300",
"taxIdLast4": "4321",
"verificationStatus": "unverified",
"updatedAt": "2026-07-26T13:00:00Z"
}
}
Updates fields on a business profile. This is the correction and resubmission path: a meaningful change to the normalized legal identity on a
verified profile releases verification (back to unverified) and re-submits KYB when eligible. Cosmetic legal-name case or punctuation changes preserve the identity revision and evidence. Editing only non-identity fields (e.g. industry, websiteUrl) leaves verification untouched.
A profile in a non-verified state (e.g. rejected) only releases when it carries every field KYB submission needs — companyLegalName, taxId, addressCountry, businessContactFirstName, businessContactLastName. Editing an identity field while any of those is missing leaves the current status in place, so a rejected profile keeps its account lock until it is whole.
Re-submission is asynchronous, so verificationStatus in this response is the post-release value (unverified), not pending.
Requires a live key. A
locked profile (three failed attempts) can’t be edited — contact support.Path Parameters
string
required
The id of the business profile.
Identity confirmation and revision
SendexpectedIdentityRevision from the latest business response when confirming a suggested canonical name. It is also required with confirmed: true when establishing a missing businessRelationship on an existing profile. An already confirmed relationship cannot be changed.
A name confirmation uses the ordinary PATCH lifecycle: set companyLegalName to the reviewed verificationCanonicalName. Explicit canonical-name confirmation starts a new identity revision even when normalization yields the same name; verification runs again when required. A stale revision returns 409 business_identity_changed. If the suggestion is wrong, dispute it. To renew expired matching provider evidence without changing legal facts, use Renew Verification.
Meaningful identity changes and explicit canonical-name confirmation invalidate existing request bindings and evidence. Reconfirm the current business revision on each affected number request before submission or provider correction.
Body Parameters
Any subset of the create fields. Send at least one.Response Fields
object
The updated profile.
verificationStatus reflects any release/resubmission triggered by the edit.string
Present only when the edited profile is
unverified, is outside the US, already carries companyLegalName, taxId and addressCountry, and has at least one supporting document — the edit would otherwise move it to admin_review, but a rejected or locked profile elsewhere on the account blocks that. Value: account_locked. The edit itself is saved.Examples
cURL
curl -X PATCH "https://api.tracklysms.com/api/v2/business-profiles/664a1b2c3d4e5f6071829300" \
-H "X-Api-Key: trk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{ "taxId": "98-7654321" }'
Python
import requests
resp = requests.patch(
"https://api.tracklysms.com/api/v2/business-profiles/664a1b2c3d4e5f6071829300",
headers={"X-Api-Key": "trk_your_api_key_here"},
json={"taxId": "98-7654321"},
)
print(resp.json()["businessProfile"]["verificationStatus"]) # -> "unverified" (released; KYB re-submits asynchronously)
{
"businessProfile": {
"id": "664a1b2c3d4e5f6071829300",
"taxIdLast4": "4321",
"verificationStatus": "unverified",
"updatedAt": "2026-07-26T13:00:00Z"
}
}
Error Codes
| HTTP Status | Error Code | Description |
|---|---|---|
| 400 | invalid_body | Request body must be a JSON object. |
| 400 | empty_update | No updatable fields were provided. |
| 403 | sandbox_read_only | Sandbox keys cannot edit profiles. |
| 403 | compliance_profile_locked | The profile is locked (three strikes). |
| 403 | compliance_profile_strike_limit / account_locked / daily_cap_hit | Resubmission is blocked by strikes, an account lock, or the daily verification cap. Falls back to compliance_account_blocked when no specific reason is available. |
| 404 | not_found | No profile with that id on your account. |
| 409 | business_identity_changed | Reload the business and confirm its current revision. |
| 409 | business_identity_exists | The edited identity belongs to an existing business on this account. |
| 409 | canonical_identity_edit_requires_transaction | Canonical identity fields cannot be edited until transactional invalidation is available. |
| 422 | validation_failed | An identity field is invalid — see fields. For CA profiles, identifierType is required; any PATCH on a CA profile without it will fail with code identifier_type_required. |
Next Steps
Submission history
See the machine-readable verdict for each attempt.
Status webhooks
Get notified on each transition.