ITG Traceback Case Handling
Signing your outbound US voice traffic with STIR/SHAKEN attestation carries a
downstream obligation: when one of your originating numbers is implicated in a
robocall complaint, the Industry Traceback Group (ITG) can send you a
traceback request asking you to identify the source of the call, and you
are expected to respond, typically within about 24 hours (one business day).
Orbit provides the case-management surface for that obligation: a place to log
each inbound ITG request, acknowledge it, file your disposition, and watch the
response deadline. Every control on this page is tenant-owned — you log the
request, you decide the disposition, you file it with the ITG.
All endpoints below are rooted at
https://api.orbit.devotel.io/api/v1/compliance.
Traceback response is part of FCC robocall mitigation under the TRACED Act
(the ITG is operated by USTelecom under the FCC’s framework). Consistently
ignoring traceback requests is itself a compliance red flag that can
escalate to enforcement and carrier de-peering. This page is not legal
advice — confirm your traceback obligations and deadlines with counsel.
Why attestation creates this obligation
STIR/SHAKEN is the caller-ID authentication framework the FCC mandates for US
voice traffic. Every outbound call you place through Orbit is assigned an
attestation level (A, B, or C) at signing — see
STIR/SHAKEN attestation for what the levels
mean and how Orbit reaches them. Because your signed traffic can be attributed
back to you, downstream providers and the ITG (ATIS/FCC traceback framework)
can ask you where an implicated call came from. Answering those requests
promptly and keeping a record of what you found is part of the robocall
mitigation duties that come with originating signed traffic.
Case lifecycle
Each traceback case moves through four states:
received — the ITG request is logged, not yet worked.
acknowledged — you have confirmed receipt to the ITG.
responded — you have filed your disposition with the ITG.
closed — the case is settled (terminal; no further transitions).
An invalid transition (for example, acknowledging a closed case, or
responding twice) returns a 409 with TRACEBACK_INVALID_TRANSITION.
Response-deadline SLA
Every case carries a response-deadline clock. The default window is 24
hours from received_at, which is the conservative encoding of the ITG’s
one-business-day expectation. You can set a tighter or looser window per case
with sla_hours (up to 720) when the ITG states a different deadline.
You never query SLA state directly — every GET on the traceback surface
annotates each case with a live verdict computed at read time:
Handling a traceback request, step by step
All writes below require the owner or admin role; reads are open to any
authenticated member.
1. Log the inbound request
When an ITG traceback request arrives, log it to start the clock. Provide the
ITG’s reference, the implicated originating number (E.164), and optionally a
description of the implicated campaign, the attestation level asserted on that
traffic, and a custom deadline.
The case is created in received state and the 24-hour deadline starts from
the log time. Keep the id from the response for the next steps.
2. Acknowledge receipt
Confirm to the ITG that the request is being worked. This moves the case to
acknowledged and is optional — you may respond directly from received.
3. File your response
Once you have investigated, record the disposition. This stops the
response-deadline clock and, with "close": true, closes the case in the same
call.
Dispositions
Choose the disposition that answers “what did you do about the implicated
traffic?”:
4. Review cases
List every case with its live SLA verdict, or fetch one case by id:
Cases list newest-request first, so any open case approaching its deadline is
visible from the first page.
Record-keeping surface only
The traceback surface receives, tracks, and records — nothing else.
Logging a case, acknowledging it, and filing a response persist state; they
never place a call, send a message, or contact the ITG or the implicated
customer on your behalf. Filing a response records the disposition you chose;
delivering that response to the ITG (their portal or channel) and any
downstream customer notification remain your actions, outside this surface.
This boundary is deliberate: compliance case-tracking must never become an
outbound path.
Access control, audit, and storage
- Roles. Writes (
POST /traceback, /acknowledge, /respond) require the
owner or admin role, mirroring the rest of the compliance write surface.
Reads are available to any authenticated organization member.
- Audit trail. Every state change writes a durable
audit log entry —
compliance.traceback.received, compliance.traceback.acknowledged, and
compliance.traceback.responded — with the acting user, the ITG reference,
and (on a response) the disposition and whether the deadline was met. The
implicated number is masked in audit details.
- Storage. Cases are stored on your organization’s settings as a
server-generated, per-case key, so two teammates working different cases (or
other settings) concurrently never overwrite one another.
Watching the SLA
Build the list endpoint into your ops loop so a breach is never a surprise:
- Poll
GET /traceback on a regular cadence (hourly is enough for a
business-day window).
- Alert when any open case reports
sla.status: "due_soon" or
sla.status: "breached", or sla.breached: true.
- Page the compliance owner when a breach appears — an overdue traceback is
the signal carriers and the FCC weight most heavily.
The same GET-time verdict pattern that powers the
Compliance Health Scores surface applies
here: scores warn you before carrier throttling, and traceback verdicts warn
you before an escalation — treat both as early-warning feeds into your
compliance posture.