Tango Project Invoice Outbound API
Generated fromTango Project Invoice Outbound API Integration Design Specification V1.1.docxin SharePoint folder04 Projects Integrations. OAS spec:invoice-outbound-api.yaml
Overview
Async REST API used by the client to fetch approved invoices from Tango. Two-call pattern: a GET against the invoices endpoint returns agu_id immediately; a subsequent GET to the Status endpoint returns the full record set. The same gu_id can be polled multiple times to retrieve the same records.
Owner: Tango Analytics
Spec version: 1.1
Status: Draft (auto-generated from design doc — needs review)
Base URLs
Authentication
x-client and x-api-key headers, required on every call.
Endpoints
GET /v1/projectmgmt/batch/invoices
Response — 200 OK
gu_id.
GET /v1/batch/status?gu_id=...
Returns the invoice records. Null fields in Tango are omitted from the response.
Sample response (truncated)
Integration logic
- Only approved invoices are returned.
- After successful export the invoice is flagged
Exportedin Tango. - A field with a null/unconfigured value is omitted from the JSON entirely (not sent as empty).
- The
gu_idcan be re-polled — the response is idempotent for a givengu_id.
Data model — Invoice (header)
Data model — Invoice Detail
Open Questions / Assumptions
- No
requiredannotation on outbound fields — the data-mapping table for this integration doesn’t have a “Required?” column. Treating all as optional. -
nattr1/nattr2type mismatch: the sample JSON shows numeric values, but the mapping table lists them as VARCHAR. Schema mirrors the mapping table (VARCHAR); confirm. -
statusallowed values are not enumerated; the example showsAPPROVED. -
tax_groupallowed values are not enumerated. - Pagination behavior: the doc does not say whether the Status response is paginated for large batches (the Project Attributes API explicitly is — this one is silent).
- No explicit error response shape for the initial GET when it produces
status: "Error"; modelled as the same envelope minusgu_id.

