> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tangoanalytics.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Mac status update inbound

# Tango MAC Status Update Inbound API

> Generated from `Mac Status Update Inbound API Integration Design Specification v0.3.docx` in SharePoint folder `03 Space Integrations`.
> OAS spec: [`mac-status-update-inbound.yaml`](./mac-status-update-inbound.yaml)

## Overview

Async REST API for posting MAC (Move/Add/Change) request status updates to Tango. Tango updates the MAC Request's status under Buildings → Navigation → MAC.

**Owner:** Tango Analytics
**Spec version:** 0.3
**Status:** Draft (auto-generated — needs review)

## Base URLs

| Environment | URL |
| - | - |
| Production | `https://api.tangoanalytics.com` |
| Test (SIT/UAT) | `https://testapi.tangoanalytics.com` |

## Authentication

Headers `x-client` + `x-api-key`.

## Endpoints

| Method | Path | Summary |
| - | - | - |
| PUT | `/v1/spacemgmt/batch/updatemoverequest` | Submit MAC status updates (async). |
| GET | `/v1/batch/status?gu_id=...` | Poll processing status. |

## Data model (required ✅)

| Field | Type | Req | Notes |
| - | - | - | - |
| `mac_group` | VARCHAR | – | |
| `tango_request_id` | VARCHAR | one-of ⚠ | At least one of the three IDs required |
| `mac_request_number` | VARCHAR | one-of ⚠ | "MAC Number" |
| `ext_request_number` | VARCHAR | one-of ⚠ | Client integration ID |
| `status` | VARCHAR | ✅ | Lookup; e.g., `CANCELLED` |
| `justification` | VARCHAR | – | Lookup |
| `notes` | VARCHAR | – | |
| `c_ext_attr1..5` | VARCHAR | – | Custom strings |
| `n_ext_attr1..5` | NUMBER | – | Custom numerics |
| `d_ext_attr1..5` | DATE | – | Custom dates |

## Validations

1. `ext_request_number` NULL → `Client Integration Id is missing`
2. `status` NULL or invalid → `Status is null or invalid`

## Open Questions / Assumptions

* [ ] **One-of-three identifier constraint** can't be natively expressed in OAS 3.1; documented in schema description. Runtime must enforce.
* [ ] **`status` allowed values** not enumerated — sample shows `CANCELLED`. Confirm full enum.
* [ ] **Locker-related fields** mentioned in source note as "subject to change pending final approval of locker enhancement design".
* [ ] **Lookup codes** for `status` and `justification` are `<TBD>` in Appendix.

## Changelog

| Ver | Date | Description | Author |
| - | - | - | - |
| 0.1 | 10/13/2023 | Initial Draft | Jasmin Thasleem |
| 0.2 | 09/26/2023 | Updated Data Mapping | Ndry Kouakou |
| 0.3 | 04/22/2026 | Updated API architecture diagram | Alpna Bansal |
