Skip to content

TISS & Glosa Prevention

TISS & Glosa Prevention

DELPHOS is designed to prevent glosas (payment denials from health insurances) by enforcing billing accuracy at every step of the workflow — from contract configuration through pricing calculation to guide submission.


What is a Glosa?

A glosa is a payment denial issued by a health insurance company when a billing guide contains discrepancies. Common causes include:

CauseDescription
Wrong priceBilling at current prices instead of event-date prices
Missing authorizationProcedure requires prior authorization not recorded
Invalid TUSS codeProcedure code not recognized or deprecated
Expired contractBilling under a contract period that has ended
Copay mismatchPatient copay calculated incorrectly
Missing card numberInsurance card number not provided when required

Glosas result in delayed or lost revenue. Even when successfully appealed (recurso), the clinic loses months of cash flow while the insurance holds the funds interest-free.


How DELPHOS Prevents Glosas

DELPHOS addresses glosa prevention through four layers of validation:

Layer 1: Temporal Pricing

Every price query is resolved against the contract period active on the event date, not the billing date. This prevents the most expensive category of glosas — wrong-price denials.

POST /v1/scheduling/pricing/calculate
{
"convenio_id": "...",
"appointment_type_id": "...",
"procedure_codes": ["10101012"],
"event_date": "2026-01-15"
}

The pricing engine automatically finds the contract period whose validity range contains January 15, even if the billing is submitted months later. See Pricing Queries for details.

Layer 2: Eligibility Validation

Before booking an appointment, DELPHOS validates that the provider accepts the patient’s convenio and that the appointment type is covered.

POST /v1/scheduling/convenio/validate

This endpoint checks:

  • Provider is linked to the convenio
  • Convenio is active
  • Appointment type is accepted under the convenio
  • Authorization requirements are met
  • Card number requirements are satisfied

Booking with an ineligible convenio is caught before the appointment happens, not after billing.

Layer 3: Contract Period Immutability

Active and closed contract periods are immutable. Once a period is activated, its pricing configuration cannot be changed — only superseded through a reajuste that creates a new period.

This guarantees that:

  • Historical prices are preserved exactly as they were
  • Billing audits can always reproduce the exact price that was charged
  • Snapshots provide a complete record for dispute resolution
GET /v1/scheduling/convenios/{convenio_id}/contracts/{period_id}/snapshot

Layer 4: Medical Knowledge Validation

DELPHOS maintains a medical knowledge base sourced from authoritative registries — CBHPM procedure tables, TUSS procedure codes, TISS billing references, and ANVISA medication data. The platform validates procedure codes against these sources during eligibility checks and pricing calculations, catching invalid or deprecated codes before they reach a billing guide.


TISS Compliance Architecture

DELPHOS stores all the data required for TISS XML guide generation:

Data captured per appointment

Data PointSourceTISS Field
Patient insurance cardConvenio validationCarteirinha
Provider ANS codeProvider profilePrestador
Insurance ANS codeConvenio recordOperadora
TUSS procedure codesMedical knowledgeProcedimento
CBHPM pricingPricing engineValor
Authorization codeAppointment metadataAutorizacao
Event date/timeAppointment recordData/Hora

TISS guide types

GuidePortuguesePurpose
ConsultationGuia de ConsultaStandard office visits
SP/SADTGuia SP/SADTProcedures, exams, therapies
HospitalizationGuia de InternacaoHospital admissions
SummaryResumo de InternacaoDischarge summaries

Glosa Prevention Checklist

Use this checklist when configuring a new convenio to minimize glosa risk:

  1. Create the convenio with the correct ANS code and payment type.

  2. Set card and authorization requirements — enable requires_card_number and requires_authorization to match the insurance’s rules.

  3. Create a contract period with the correct CBHPM table version and percentage from the insurance contract.

  4. Add procedure overrides for any procedures with negotiated prices that differ from the CBHPM table.

  5. Configure copay rules — set copay_enabled, default_copay_percent, and default_copay_max_cents to match the contract terms.

  6. Link providers — ensure every provider who sees patients with this convenio is linked via the provider-convenio endpoint.

  7. Activate the contract period — only activated periods are used for pricing calculations.

  8. Test with the estimate endpoint — verify prices match expected values before going live.


Audit Trail

Every contract change is recorded in an immutable change log:

GET /v1/scheduling/convenios/{convenio_id}/contracts/{period_id}/changelog

The change log captures:

  • Who made the change
  • What was changed (previous and new values)
  • When it was changed
  • Which database table was affected

This audit trail is essential for glosa disputes — it proves exactly what pricing configuration was in effect on any given date.


Pricing Resolution Example

To demonstrate how DELPHOS prevents glosas through correct pricing:

import httpx
from datetime import date
# Step 1: Validate eligibility before booking
eligibility = httpx.post(
"https://your-instance.delphos.app/v1/scheduling/convenio/validate",
headers={"x-api-key": "YOUR_API_KEY"},
json={
"provider_profile_id": provider_id,
"convenio_id": convenio_id,
"appointment_type_id": type_id,
},
).json()
if not eligibility.get("eligible"):
print("Cannot book: convenio not accepted")
raise SystemExit(1)
# Step 2: Get binding price for the event date
pricing = httpx.post(
"https://your-instance.delphos.app/v1/scheduling/pricing/calculate",
headers={"x-api-key": "YOUR_API_KEY"},
json={
"convenio_id": convenio_id,
"appointment_type_id": type_id,
"procedure_codes": ["10101012"],
"event_date": str(date(2026, 3, 15)),
},
).json()
print(f"Total: R$ {pricing['total_price_cents'] / 100:.2f}")
print(f"Source: {pricing['pricing_source']}")
print(f"Period: {pricing['contract_period_id']}")
# Step 3: Retrieve snapshot for billing audit
snapshot = httpx.get(
f"https://your-instance.delphos.app/v1/scheduling/convenios/{convenio_id}"
f"/contracts/{pricing['contract_period_id']}/snapshot",
headers={"x-api-key": "YOUR_API_KEY"},
).json()
print(f"CBHPM version: {snapshot['cbhpm_table_version']}")
print(f"Overrides: {len(snapshot['overrides'])}")

Error Handling

CodeMeaning
200Validation or query successful
404Convenio, provider, or period not found
422Ineligible convenio, no resolvable price, or invalid procedure code
500Internal server error

All errors return a structured response:

{
"detail": "No price resolvable for procedure 10101012 in contract period ..."
}