Medical bill audit API
Send the line items from a bill or EOB, get back the billing errors with an explanation and an estimated recoverable amount.
Who it’s for
- Patient-billing platforms
- Check a bill for errors before it is presented for payment.
- TPAs and self-insured employers
- Screen claims on behalf of the population you cover.
- HSA/FSA administrators
- Flag a charge before the account holder spends against it.
- Care navigation and advocacy
- Give advocates the arithmetic behind each finding.
We don’t sell this to health plans as the primary buyer, since a health plan benefits when a claim is denied. See pricing.
What it detects
- Duplicate charges
- The same service billed twice on one bill or across providers.
- Cost-share errors
- Deductible / coinsurance / copay computed wrong against the plan.
- Denials & coordination of benefits
- PR-22 and other reason codes that shift a denial onto the patient.
- Balance billing (NSA)
- Out-of-network amounts billed above the allowed/protected rate.
- Unbundling
- Codes billed separately that should be a single bundled charge (NCCI).
- Implausible charges
- Amounts wildly out of line with what the service plausibly costs.
Example
Request
curl -X POST https://paxer.app/api/v1/audit \
-H "Authorization: Bearer pax_live_..." \
-H "Content-Type: application/json" \
-d '{
"lineItems": [
{ "description": "Echocardiogram, complete", "cptHcpcsCode": "93306",
"chargeAmount": 980, "allowedAmount": 710, "planPaid": 0,
"patientResponsibility": 710, "adjustmentCodes": ["PR-22"] }
]
}'Response
{
"findings": [
{
"type": "NON_COVERED_BILLED_TO_PATIENT",
"severity": "HIGH",
"title": "Denial billed to you: coordination-of-benefits denial (reason code PR-22), echocardiogram",
"explanation": "Your plan allowed $710 but paid $0, and the full $710 was passed to you under a PR-22 coordination-of-benefits denial. Denials like this are frequently reversed.",
"recommendedNextStep": "Submit the primary plan's EOB to this insurer, or call to correct your coordination-of-benefits record so the claim reprocesses. Consider waiting to pay until it has been reprocessed.",
"estimatedRecovery": 710,
"confidence": 0.75,
"detector": "RULE",
"lineItemIndex": 0
}
],
"summary": {
"findingCount": 1,
"estimatedRecoverable": 710
},
"usage": {
"plan": "free",
"used": 1,
"quota": 100
}
}Status codes
| Code | Meaning |
|---|---|
| 200 | Findings returned. summary.estimatedRecoverable is capped so it never exceeds total patient responsibility. |
| 400 | Invalid request body, e.g. missing or malformed lineItems. The response "error" field explains. |
| 401 | Missing or invalid API key. Send it as Authorization: Bearer pax_live_... (or the x-api-key header). |
| 402 | Monthly quota exceeded. This calendar month’s audit allotment is used up. Upgrade for a higher quota. |
| 429 | Rate limited (120 requests/min per key). Retry after the window resets. |
Quota is per calendar month and hard-capped, so over the limit returns 402, with no surprise overage charges. Usage resets on the 1st. Keys are created and revoked in Settings → Developers.