The Billing API manages the full RPM billing lifecycle — from automated CPT code generation to revenue reporting and claims export. The billing engine automatically generates entries based on device transmissions and clinical time, while also supporting manual entry creation for custom billing scenarios.

Supported CPT Codes

Vantrexia supports the standard RPM CPT codes: 99453 (initial setup), 99454 (device supply/data transmission), 99457 (first 20 min clinical time), 99458 (additional 20 min), and 99091 (data collection/interpretation). The billing engine validates eligibility rules for each code.

List Billing Entries

Retrieve a paginated list of billing entries with filtering by date range, status, CPT code, and patient.

GET /api/v1/billing/entries/

Query Parameters

ParameterTypeRequiredDescription
date_fromstringNoStart date (ISO 8601)
date_tostringNoEnd date (ISO 8601)
statusstringNoFilter: pending, submitted, paid, denied, appealed
cpt_codestringNoFilter by CPT code: 99453, 99454, 99457, 99458, 99091
patient_iduuidNoFilter by patient
orderingstringNoSort: service_date, -service_date, amount

Example Request

curl "https://app.vantrexia.com/api/v1/billing/entries/?status=pending&date_from=2026-02-01&cpt_code=99457" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Response 200 OK

{
  "count": 18,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "a2b3c4d5-e6f7-8901-abcd-ef2345678901",
      "patient_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
      "patient_name": "Jane Doe",
      "cpt_code": "99457",
      "service_date": "2026-02-05",
      "duration_minutes": 22,
      "amount": 55.86,
      "status": "pending",
      "payer": "Blue Cross Blue Shield",
      "icd10_codes": ["I10", "E11.9"],
      "notes": "Monthly RPM clinical review — 22 min documented",
      "auto_generated": true,
      "created_at": "2026-02-05T02:00:00Z"
    }
  ]
}

Manual Create Entry

Create a billing entry manually. Use this for clinical time that was not automatically captured or for custom billing adjustments.

POST /api/v1/billing/entries/manual-create/

Request Body

ParameterTypeRequiredDescription
patient_iduuidYesPatient ID
cpt_codestringYesCPT code: 99453, 99454, 99457, 99458, 99091
service_datestringYesDate of service (YYYY-MM-DD)
duration_minutesintegerYesClinical time in minutes
notesstringNoClinical notes for the billing entry
icd10_codesarrayNoArray of ICD-10 diagnosis codes

Example Request

curl -X POST https://app.vantrexia.com/api/v1/billing/entries/manual-create/ \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{
    "patient_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "cpt_code": "99457",
    "service_date": "2026-02-06",
    "duration_minutes": 25,
    "notes": "Phone consultation for BP management — reviewed readings, adjusted medication",
    "icd10_codes": ["I10"]
  }'

Response 201 Created

{
  "id": "b3c4d5e6-f7a8-9012-bcde-f23456789012",
  "patient_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "patient_name": "Jane Doe",
  "cpt_code": "99457",
  "service_date": "2026-02-06",
  "duration_minutes": 25,
  "amount": 55.86,
  "status": "pending",
  "payer": "Blue Cross Blue Shield",
  "icd10_codes": ["I10"],
  "notes": "Phone consultation for BP management — reviewed readings, adjusted medication",
  "auto_generated": false,
  "created_by": "clinician@practice.com",
  "created_at": "2026-02-06T15:00:00Z"
}

Dashboard Report

Retrieve aggregate billing metrics for the dashboard including revenue summary, claim counts by status, and CPT code breakdown.

GET /api/v1/reports/billing/stats/

Example Request

curl https://app.vantrexia.com/api/v1/reports/billing/stats/ \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Response 200 OK

{
  "period": "2026-02",
  "total_revenue": 24850.00,
  "total_claims": 445,
  "claims_by_status": {
    "pending": 52,
    "submitted": 180,
    "paid": 198,
    "denied": 12,
    "appealed": 3
  },
  "revenue_by_cpt": {
    "99453": 3200.00,
    "99454": 8960.00,
    "99457": 9150.00,
    "99458": 2840.00,
    "99091": 700.00
  },
  "collection_rate": 0.943,
  "avg_days_to_payment": 18.5
}

Revenue Report

Generate a detailed revenue report with date range filtering. Returns daily or monthly breakdowns depending on the date range.

GET /api/v1/reports/billing/

Query Parameters

ParameterTypeRequiredDescription
date_fromstringYesStart date (YYYY-MM-DD)
date_tostringYesEnd date (YYYY-MM-DD)
group_bystringNoGrouping: day, week, month (default: auto)

Example Request

curl "https://app.vantrexia.com/api/v1/reports/billing/?date_from=2026-01-01&date_to=2026-02-06&group_by=month" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Response 200 OK

{
  "date_from": "2026-01-01",
  "date_to": "2026-02-06",
  "total_revenue": 48200.00,
  "breakdown": [
    { "period": "2026-01", "revenue": 23350.00, "claims": 420, "patients_billed": 78 },
    { "period": "2026-02", "revenue": 24850.00, "claims": 445, "patients_billed": 82 }
  ]
}

Claims Export

Export claims data for submission to insurance payers. Returns claims in a structured format compatible with standard claim submission workflows.

GET /api/v1/billing/claims-exports/

Query Parameters

ParameterTypeRequiredDescription
statusstringNoFilter by claim status (default: pending)
payer_idintegerNoFilter by specific payer
formatstringNoExport format: json (default), csv

Example Request

curl "https://app.vantrexia.com/api/v1/billing/claims-exports/?status=pending&format=json" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Response 200 OK

{
  "export_date": "2026-02-06T15:00:00Z",
  "total_claims": 52,
  "total_amount": 3150.80,
  "claims": [
    {
      "claim_id": "CLM-2026-001245",
      "patient_mrn": "MRN-00001",
      "patient_name": "Doe, Jane",
      "cpt_code": "99457",
      "service_date": "2026-02-05",
      "amount": 55.86,
      "payer": "Blue Cross Blue Shield",
      "payer_id": "BCBS-IL",
      "icd10_codes": ["I10", "E11.9"],
      "rendering_provider": "Dr. Sarah Johnson"
    }
  ]
}

List Payers

Retrieve the list of configured insurance payers.

GET /api/v1/billing/payers/

Example Request

curl https://app.vantrexia.com/api/v1/billing/payers/ \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Response 200 OK

{
  "count": 8,
  "results": [
    { "id": 1, "name": "Blue Cross Blue Shield", "payer_id": "BCBS-IL", "is_active": true },
    { "id": 2, "name": "Aetna", "payer_id": "AETNA", "is_active": true },
    { "id": 3, "name": "UnitedHealthcare", "payer_id": "UHC", "is_active": true },
    { "id": 4, "name": "Medicare", "payer_id": "MEDICARE", "is_active": true }
  ]
}

Payer Rates

Retrieve reimbursement rates per payer per CPT code. Used by the billing engine to calculate expected amounts.

GET /api/v1/billing/payer-rates/

Example Request

curl https://app.vantrexia.com/api/v1/billing/payer-rates/ \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Response 200 OK

{
  "count": 20,
  "results": [
    { "payer": "Blue Cross Blue Shield", "cpt_code": "99453", "rate": 19.45, "effective_date": "2026-01-01" },
    { "payer": "Blue Cross Blue Shield", "cpt_code": "99454", "rate": 55.22, "effective_date": "2026-01-01" },
    { "payer": "Blue Cross Blue Shield", "cpt_code": "99457", "rate": 55.86, "effective_date": "2026-01-01" },
    { "payer": "Blue Cross Blue Shield", "cpt_code": "99458", "rate": 42.22, "effective_date": "2026-01-01" },
    { "payer": "Medicare", "cpt_code": "99453", "rate": 19.32, "effective_date": "2026-01-01" },
    { "payer": "Medicare", "cpt_code": "99454", "rate": 53.86, "effective_date": "2026-01-01" }
  ]
}

ICD-10 Code Lookup

Search the ICD-10 code database for diagnosis coding. Returns matching codes with descriptions.

GET /api/v1/billing/icd10-codes/

Query Parameters

ParameterTypeRequiredDescription
searchstringNoSearch by code or description
categorystringNoFilter by ICD-10 chapter/category

Example Request

curl "https://app.vantrexia.com/api/v1/billing/icd10-codes/?search=hypertension" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Response 200 OK

{
  "count": 5,
  "results": [
    { "code": "I10", "description": "Essential (primary) hypertension", "category": "Circulatory" },
    { "code": "I11.0", "description": "Hypertensive heart disease with heart failure", "category": "Circulatory" },
    { "code": "I11.9", "description": "Hypertensive heart disease without heart failure", "category": "Circulatory" },
    { "code": "I12.0", "description": "Hypertensive chronic kidney disease with stage 5 CKD or ESRD", "category": "Circulatory" },
    { "code": "I13.0", "description": "Hypertensive heart and chronic kidney disease with heart failure", "category": "Circulatory" }
  ]
}