Supergood | Change Healthcare API
Programmatically access eligibility (270/271), claims submission (837P/I), claim status (276/277), and remittance advice (835/ERA) workflows in Change Healthcare with a stable REST API. Supergood builds and operates production-grade, unofficial Change Healthcare integrations so your team can automate core revenue cycle operations without heavy custom engineering.
In plain English: Change Healthcare is a healthcare clearinghouse and revenue cycle network that connects providers, payers, and pharmacies. With an unofficial API, you can validate insurance eligibility in real time, submit and track claims, retrieve remittances for auto-posting, and streamline prior authorization checks—end to end.
If you’re a healthcare tech startup building billing, practice management, or provider-facing tools, integrating with Change Healthcare unlocks concrete data flows and features:
- Pull: Eligibility responses (benefit levels, copays, deductibles), claim acknowledgments and statuses, 835 ERAs with line-level adjustments, payer enrollment statuses
- Push: Eligibility inquiries, professional/institutional claims with attachments metadata, claim corrections/voids, EFT/ERA enrollment data
- Build: Real-time eligibility at scheduling, automated claim scrubbing and submission, ERA-driven auto-posting and reconciliation, denial worklists with CARC/RARC insights, authorization-aware scheduling
What is Change Healthcare?
Change Healthcare provides healthcare transaction processing and revenue cycle solutions used by provider groups, clinics, hospitals, and billing companies to exchange HIPAA EDI with payers. Core capabilities include eligibility and benefits verification (270/271), claim submission and acknowledgment (837/999/277CA), claim status (276/277), electronic remittance advice (835), EFT enrollment, and payer-specific edits and attachments routing.
Core product areas include:
- Clearinghouse and EDI connectivity (837/835/270/271/276/277, attachments routing)
- Eligibility and benefits verification
- Claims submission, edits, and acknowledgments
- Claim status tracking and denial management
- Electronic remittance advice (ERA/835) and EFT payments
- Prior authorization inquiries and status (payer-dependent)
- Provider and payer enrollment management
- Price/cost estimation and payment accuracy tooling
Common data entities:
- Payers and payer plans
- Providers (billing, rendering, facility) and organizations
- Patients/subscribers and coverage
- Eligibility transactions and responses
- Claims (professional/institutional) and acknowledgments
- Claim status events (277/277CA)
- Remittances (835 ERAs), payments, and adjustments (CARC/RARC)
- Attachments metadata and references (PWK)
- Enrollment artifacts (EFT/ERA enrollment)
The Change Healthcare Integration Challenge
Organizations rely on Change Healthcare daily, but turning portal and batch EDI workflows into automated pipelines is hard:
- Payer-specific edits and routing: Each payer expects distinct codes, modifiers, and trading-partner rules
- Strong enterprise security: SSO/MFA and network controls complicate headless automation
- Mixed interfaces: Portals, SFTP batches, and limited APIs require orchestration and monitoring
- Timing windows and batching: Submission cycles, file acknowledgments, and delivery schedules must be respected
- Compliance and audit: HIPAA, PHI handling, and EDI control numbers/audit trails must be maintained
- Enrollment dependencies: ERA/EFT and attachment routing often require payer-by-payer onboarding
How Supergood Creates Change Healthcare APIs
Supergood reverse-engineers authenticated browser flows, SFTP/EDI exchanges, and network interactions to deliver a resilient API endpoint layer.
- Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
- Maintains session continuity with automated refresh and change detection
- Normalizes eligibility, claim, and remittance objects across payers
- Aligns with customer entitlements and clearinghouse/trading-partner constraints to ensure compliant access
- Bridges batch EDI interfaces with signed URL retrieval and delivery, preserving control numbers and acknowledgments
Use Cases
Real-Time Eligibility at Scheduling
- Check coverage and benefits (copay, coinsurance, deductibles) before visits
- Validate plan, PCP requirements, and service-type benefits (e.g., 30, 98, 1)
- Surface financial responsibility to front-desk and patient-facing tools
Claims Generation and Submission
- Build 837P/I directly from encounters and charges
- Apply payer-specific edits/modifiers and PWK references for attachments
- Track 999/277CA and payer acceptances for end-to-end visibility
Auto-Posting and Reconciliation
- Pull 835 ERAs and map line-level adjustments (CARC/RARC)
- Auto-post payments and write-offs, flag variances and denials
- Tie remittances to original claims and produce reconciliation dashboards
Prior Authorization Awareness
- Query payer authorization status when available
- Prevent scheduling or claim submission without valid auth
- Track remaining units/dates and alert on expiring approvals
Available Endpoints
Authentication
POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short-lived auth token maintained by the platform.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/sessions \
--header 'Authorization: Basic <Base64 encoded token>' \
--header 'Content-Type: application/json' \
--data '{
"username": "[email protected]",
"password": "<password>",
"mfa": {
"type": "totp",
"code": "123456"
}
}'
Example response
{
"authToken": "eyJhbGciOi...",
"expiresIn": 3600,
"user": {
"id": "u_7f3c10",
"name": "RCM Admin",
"entitlements": ["eligibility", "claims", "remittances"]
}
}
Eligibility Checks
POST /eligibility/checks: Submit a real-time eligibility inquiry (270) and receive a normalized benefits response (271). Use this before scheduling or claim creation.
Request body
- payerId: string
- provider: { npi: string, taxonomy?: string }
- subscriber: { memberId: string, lastName: string, firstName: string, dob: YYYY-MM-DD }
- patient?: { relationship: string (self, spouse, child), lastName, firstName, dob }
- serviceTypeCodes?: string[] (e.g., ["30", "98"])
- dateOfService: ISO 8601 date
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/eligibility/checks \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"payerId": "payer_bcbs_tx",
"provider": {"npi": "1234567890"},
"subscriber": {
"memberId": "ABC1234567",
"lastName": "Nguyen",
"firstName": "Ava",
"dob": "1991-04-03"
},
"serviceTypeCodes": ["30"],
"dateOfService": "2026-01-19"
}'
Example response
{
"transactionId": "elig_92c0af",
"payerId": "payer_bcbs_tx",
"activeCoverage": true,
"plan": {
"name": "BlueChoice PPO",
"groupNumber": "G12345",
"effectiveDate": "2025-01-01",
"terminationDate": null
},
"financials": {
"copay": {"office": 30.0},
"coinsurance": {"office": 0.2},
"deductible": {
"individual": {"inNetworkRemaining": 450.0, "inNetworkTotal": 1500.0}
},
"outOfPocket": {"inNetworkRemaining": 1200.0, "inNetworkTotal": 5000.0}
},
"coverageDetails": [
{"serviceTypeCode": "30", "description": "Health Benefit Plan Coverage", "inNetwork": true}
],
"raw": {"x12": {"isa": "...", "gs": "..."}}
}
Claims
POST /claims: Submit a professional (837P) or institutional (837I) claim. Supergood normalizes service lines and manages routing, acknowledgments, and control numbers.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/claims \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"claimType": "837P",
"payerId": "payer_aetna",
"billingProvider": {
"npi": "1234567890",
"name": "CityCare Medical Group",
"taxId": "12-3456789",
"billingAddress": {
"line1": "100 Clinic Ave",
"city": "Austin",
"region": "TX",
"postalCode": "78701"
}
},
"renderingProvider": {"npi": "1098765432"},
"subscriber": {
"memberId": "ZXCV998877",
"lastName": "Rodriguez",
"firstName": "Luis",
"dob": "1985-11-02"
},
"patient": {
"relationship": "self",
"lastName": "Rodriguez",
"firstName": "Luis",
"dob": "1985-11-02"
},
"placeOfService": "11",
"diagnosisCodes": ["J01.90", "R05.1"],
"serviceLines": [
{
"lineNumber": 1,
"procedureCode": "99213",
"modifiers": ["25"],
"units": 1,
"chargeAmount": 125.00,
"serviceDate": "2026-01-19"
},
{
"lineNumber": 2,
"procedureCode": "87880",
"units": 1,
"chargeAmount": 40.00,
"serviceDate": "2026-01-19"
}
],
"attachments": [
{"pwkCode": "EL", "reportType": "Report", "reference": "att_71aa21"}
],
"referenceId": "encounter-142399"
}'
Example response
{
"claimId": "clm_0c5a71",
"status": "submitted",
"acknowledgments": {
"clearinghouse": {"status": "accepted", "controlNumber": "000232891"},
"payer": {"status": "pending"}
},
"edi": {"format": "837P", "size": 28476},
"createdAt": "2026-01-19T17:12:05Z",
"referenceId": "encounter-142399"
}
GET /claims: Retrieve claims with statuses and payer responses (999/277CA/277). Use filters to feed denial queues and posting workflows.
Query parameters
- status: string (submitted, accepted, rejected, paid, denied)
- payerId: string
- fromDate, toDate: ISO 8601
- referenceId: string
Example response
{
"items": [
{
"claimId": "clm_0c5a71",
"payerId": "payer_aetna",
"status": "accepted",
"patientName": "Luis Rodriguez",
"totalCharge": 165.00,
"acknowledgments": {
"clearinghouse": {"status": "accepted", "controlNumber": "000232891"},
"payer": {"status": "accepted", "date": "2026-01-20"}
},
"lastUpdate": "2026-01-20T10:33:12Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Remittances (ERA/835)
GET /remittances: Retrieve ERA files and normalized payment data for auto-posting.
Query parameters
- npi: string
- payerId: string
- fromDate, toDate: ISO 8601
- claimId: string
Example response
{
"items": [
{
"eraId": "era_5f92b0",
"payerId": "payer_aetna",
"payerName": "Aetna",
"paymentDate": "2026-01-23",
"paymentMethod": "EFT",
"eftNumber": "EFT-998211",
"totalPaid": 142.35,
"adjustmentsTotal": 22.65,
"claimPayments": [
{
"claimId": "clm_0c5a71",
"patientName": "Luis Rodriguez",
"status": "paid",
"paidAmount": 142.35,
"adjustments": [
{"code": "CO-45", "amount": 18.00, "description": "Contractual obligation"},
{"code": "PR-2", "amount": 4.65, "description": "Coinsurance"}
],
"serviceLines": [
{"lineNumber": 1, "procedureCode": "99213", "paid": 110.00},
{"lineNumber": 2, "procedureCode": "87880", "paid": 32.35}
]
}
],
"downloadUrl": "https://download.change.example/signed/era_5f92b0.835"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Technical Specifications
- Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer-managed credentials
- Response format: JSON with consistent resource schemas and pagination; signed URL access to raw EDI (837/835/999/277)
- Rate limits: Tuned for enterprise throughput while honoring licensing and usage controls
- Session management: Automatic reauth and cookie/session rotation with health checks
- Data freshness: Near real-time retrieval of eligibility, claim statuses, and ERAs
- Security: Encrypted transport, scoped tokens, and audit logging; respects Change Healthcare entitlements and compliance requirements
- Webhooks: Optional asynchronous delivery for acknowledgments, claim status changes, and remittance availability
Performance Characteristics
- Latency: Sub-second responses for list/detail queries under normal load
- Throughput: Designed for high-volume eligibility checks and batch claim/ERA pipelines
- Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
- Adaptation: Continuous monitoring for UI/API/EDI changes with rapid adapter updates
Getting Started
- Schedule Integration Assessment
Book a 30-minute session to confirm your Change Healthcare product mix, trading-partner setup, and authentication model.
- Supergood Builds and Validates Your API
We deliver a hardened Change Healthcare adapter tailored to your workflows and entitlements.
- Deploy with Monitoring
Go live with continuous monitoring and automatic adjustments as Change Healthcare and payer rules evolve.
Frequently Asked Questions
Q: Which Change Healthcare products can this integration cover?
Supergood supports workflows across commonly used Change Healthcare clearinghouse and portal experiences, subject to your licensing and trading-partner enrollments. We scope coverage (e.g., eligibility, 837 submission, 277 status, 835 retrieval, EFT/ERA enrollment, attachments metadata) during integration assessment.
Q: How do you handle MFA, SSO, and batch EDI interfaces for automation?
We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled. For batch flows, we manage SFTP timing windows, generate and deliver EDI, and retrieve signed URLs or delivery confirmations programmatically while preserving control numbers.
Q: Can you auto-post payments from ERAs and surface denial reasons?
Yes. We normalize 835 ERAs, map CARC/RARC codes to standard reason categories, and expose line-level payments and adjustments for auto-posting. Webhooks notify you when remittances are ready, and our API surfaces variances and denials for worklists.
Related Integrations
Intralinks API - Programmatically access the Intralinks VDR with Supergood
Ready to automate your Change Healthcare workflows?
Supergood can have your Change Healthcare integration live in days with no ongoing engineering maintenance.