Tango BU User Roles Reconcile API
Generated fromTango BU User Roles Reconcile API Integration Design Specification V0.9.docxin SharePoint folder01 Common Integrations. OAS spec:user-roles-reconcile-bu.yaml
Overview
Async outbound REST API: client retrieves Tango user accounts and their full provisioning state (brands, BUs, countries, roles, entity security) for reconciliation. Same endpoint as the inbound provisioning API (/v1/usermgmt/batch/users) but called via GET. Page size 1000.
Owner: Tango Analytics
Spec version: 0.9
Status: Draft (auto-generated — needs review)
Base URLs
Authentication
Headersx-client + x-api-key.
Endpoints
Filter parameters (mutually exclusive)
Only one filter may be supplied per call.
Integration logic
- Batch refresh runs once per day at a mutually-agreed time.
- The data API must be invoked at most once per day aligned with the refresh.
- Additional same-day calls generate a new
gu_idbut return no data. - Status polling is unrestricted — the same
gu_idmay be polled multiple times. - Page size is 1000 (smaller than other Tango outbound APIs which use 5000).
Data model
Each user record carries:- Identity:
user_name,first_name,last_name,email - Type / flags:
user_type,sso,status,mobile_access - Defaults:
default_brand,default_bu,default_country,default_language(e.g.,en-US),data_access_level - Audit:
creation_date,created_by,last_login_date,last_update_date,last_updated_by entity_security[]: per-BU / per-country / per-entity-type security with restrictionsbrands[],bu[],country[],roles[]: nested audit-bearing structures
Nested-object shape note ⚠
The source data mapping shows an unusual nesting forbrands / bu / country / roles. Each item is an object whose key is the field type label (e.g., brand_name, bu_name, country_name) and whose value is an object with name, creation_date, created_by, last_update_date, last_updated_by:
brand_name) is functionally redundant. Preserved verbatim — confirm wire format.
Open Questions / Assumptions
- Once-per-day cadence enforcement: how does the API behave if a client polls early? “Generate a new gu_id but no data” suggests the call succeeds but returns empty — confirm error vs. empty-result behaviour.
- Nested-key shape (described above) is unusual. May be a copy-paste artifact in the doc; confirm whether the real JSON uses the wrapper key.
-
entity_security.entity_typevalues listed includeTARGET,SITE,LEASE, etc. —TARGETisn’t documented elsewhere; confirm the full enum. -
roles[]shape truncated in the extracted text — the schema usesadditionalProperties: truefor now. - Page size 1000 is half the typical Tango page size — verify this is intentional for large tenants.

