Taiga

Session Status

Check where a session is in the billing pipeline.

GET /api/v1/partner/sessions/{sessionId}

Poll this endpoint to track where a session is in the billing pipeline. Use the sessionId returned from Submit a Session. The top-level status and message fields remain stable for existing clients.

Request

const response = await fetch(
  "https://api.usetaiga.com/api/v1/partner/sessions/SESSION_ID",
  {
    headers: {
      "Authorization": "Bearer YOUR_API_KEY",
    },
  }
);

const data = await response.json();
import requests

response = requests.get(
    "https://api.usetaiga.com/api/v1/partner/sessions/SESSION_ID",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)

data = response.json()
curl https://api.usetaiga.com/api/v1/partner/sessions/SESSION_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

Processing
{
  "sessionId": "uuid",
  "externalSessionId": "session-abc-123",
  "status": "processing",
  "message": "Session is being processed. We'll update you when the claim is submitted to the payer.",
  "patientName": "Sarah Johnson",
  "dateOfService": "2026-04-01",
  "createdAt": "2026-04-01T18:30:00.000Z",
  "updatedAt": "2026-04-01T18:31:00.000Z",
  "patient": {
    "firstName": "Sarah",
    "lastName": "Johnson",
    "fullName": "Sarah Johnson",
    "dateOfBirth": "1988-05-15",
    "memberId": "MEM-2026-0042"
  },
  "provider": {
    "providerId": "uuid",
    "firstName": "Jane",
    "lastName": "Smith",
    "fullName": "Jane Smith",
    "npi": "1234567890",
    "credentials": null,
    "specialty": null
  },
  "payer": {
    "payerName": "Cigna",
    "payerId": null,
    "groupNumber": null
  },
  "claim": null,
  "timeline": []
}

Once the claim has been submitted, the response includes additional claim and event details:

Paid
{
  "sessionId": "uuid",
  "externalSessionId": "session-abc-123",
  "status": "paid",
  "message": "Payment received from payer.",
  "patientName": "Sarah Johnson",
  "dateOfService": "2026-04-01",
  "claim": {
    "claimId": "uuid",
    "status": "paid",
    "submittedAt": "2026-04-01T19:00:00.000Z",
    "lastUpdated": "2026-04-15T12:00:00.000Z",
    "patientControlNumber": "PCN123456",
    "payerClaimControlNumber": "94060555410000",
    "submissionMode": "live"
  },
  "events": [
    { "type": "835_paid", "timestamp": "2026-04-15T12:00:00.000Z" },
    { "type": "277ca_accepted", "timestamp": "2026-04-01T19:30:00.000Z" }
  ],
  "timeline": [
    {
      "type": "835_paid",
      "status": "paid",
      "summary": "Payment posted from the payer.",
      "timestamp": "2026-04-15T12:00:00.000Z"
    },
    {
      "type": "277ca_accepted",
      "status": "accepted",
      "summary": "Claim accepted by the payer.",
      "timestamp": "2026-04-01T19:30:00.000Z"
    }
  ]
}

Status values

StatusWhat's happening
processingWe're working on it — parsing, coding, review, claim preparation.
submittedClaim sent to insurance payer, awaiting acknowledgment.
acceptedPayer accepted the claim, awaiting adjudication and payment.
rejectedPayer rejected the claim at intake. Our team is correcting and resubmitting.
deniedPayer denied the claim. Our team is reviewing for appeal.
paidPayment received from payer.

Claim and timeline fields

These fields are included when claim metadata exists:

FieldDescription
claim.claimIdTaiga claim record ID
claim.submittedAtWhen the claim was sent to the payer
claim.lastUpdatedLast status change timestamp
claim.patientControlNumberClaim tracking identifier
claim.payerClaimControlNumberPayer-assigned claim identifier when available
timelinePartner-safe status history without raw claim payloads or raw Stedi responses

Errors

StatusCause
401Invalid or missing API key
404Session ID not found for your partner organization

See List Sessions and Polling for recommended polling intervals.

On this page