Change company external ID
API Reference
Change company external ID
Assign a new external identifier to a company in gu1 with a mandatory audit reason; denormalized references in transactions and events are updated.
POST
Change company external ID
Overview
Use this endpoint when you need to change an entity’s external ID. It is not possible to changeexternalId via PATCH /entities/:id, PATCH /entities/by-external-id/:externalId, or PATCH /entities/by-tax-id/:taxId — those routes ignore any externalId in the body.
The operation:
- Validates that the new external ID is unique within your organization.
- Updates the entity row.
- When the previous external ID was non-empty and differs from the new value, rewrites denormalized references on transactions (
origin_external_id/destination_external_id) and user events (entity_external_id/ rows matched byentity_id), inside the same database transaction.
externalIdChangeReason and source: change_external_id_endpoint).
Endpoint
Authentication
Request Body
Provide exactly one lookup field to identify the entity, plus the new value and reason.Internal gu1 entity ID. Use this when you already store our UUID.
Lookup only: the entity’s current external ID (not the new value). Use when you identify entities by your own ID in daily operations.
Lookup only: tax ID of an entity that already has a non-empty tax ID stored. Matching uses the same alphanumeric normalization as elsewhere (ignores punctuation). If more than one entity matches, the API returns
409 with code AMBIGUOUS_TAX_ID_LOOKUP — use entityId or externalId instead.The new external identifier (trimmed on the server). Must not be in use by another entity in the organization.
Audit reason, at least 5 characters (after trim), max 4000.
Response
true when the request completed successfully.false if newExternalId equals the current value (no-op); true if the entity was updated.Current entity snapshot after the operation.
Errors
| HTTP | Code / shape | Meaning |
|---|---|---|
| 400 | VALIDATION_ERROR, INVALID_LOOKUP | Zero or more than one lookup field, or invalid body |
| 404 | NOT_FOUND | No entity matches the lookup |
| 409 | DUPLICATE_EXTERNAL_ID | Another entity already uses newExternalId |
| 409 | AMBIGUOUS_TAX_ID_LOOKUP | Several entities share the normalized tax ID |