Authorization and x-api-key). Request bodies may be plain JSON or gzip-compressed JSON unless noted otherwise - see Authentication.
POST /v1/review
Primary endpoint. Submit a bill and receive a full pricing decision with RuleTrace™ calculation detail. Body: plain or gzip JSON.
POST /v1/validate
Validate codes and determine the review jurisdiction before submitting for full review. Same request body as
/v1/review. Body: plain or gzip JSON.POST /v1/facility
Return a list of hospitals or outpatient/surgery centers for accurate institutional pricing. Body: plain JSON only (not gzip).
POST /v1/duplicates
Identify duplicate or potential duplicate service lines. Same request body as
/v1/review. Body: plain or gzip JSON.POST /v1/customcodes
When no CPT or HCPCS code exists (for example, shipping and handling expenses), BillSentry has created custom codes to allow for entry and payment. This API retrieves the list of custom codes used by BillSentry. No request body required.
All paths are appended to your API Endpoint URL - e.g.
{your_api_endpoint}/v1/review.Key naming convention: Request body fields use PascalCase (e.g.
Bill, TypeOfBill, CPT1). The API is case-insensitive for inbound requests. Response fields are returned in camelCase.Schemas and enums on this page are a summary of the values and fields most integrations use. This is not a complete catalog of every request/response class or enum. For the full contract definitions, use the API sample project provided during onboarding (
Contracts/DTO and Contracts/Enums) as the definitive reference.Request Body - /v1/review, /v1/validate, /v1/duplicates
The request is a JSON object. Bill, Services, Claim, and Provider are required. BillOptions and BillHistory are optional.
NPI fields - which box goes where
The request carries several NPI fields. Map them from the CMS-1500 as follows:Provider.NPI should be the rendering provider NPI, or the billing provider NPI if the rendering NPI is not available.
Bill object
BillOptions object
All fields are optional and override your tenant’s default configuration.
Services array - per service line
Claim object
Provider object
BillHistory array
Pass prior bills from the same claim to enable duplicate detection and visit-limit enforcement. Each entry contains a Bill object (set Historical_BillReviewState to the prior review state), optional ProviderTaxID / ProviderNPI identifying the historical bill’s provider, and a Services array whose lines include Historical_QuantityUsed, Historical_ServiceState, and Historical_BucketTotalList from the prior review.
Common enum values
The tables below cover the enum values most integrations need day to day. Additional enums and DTO fields live in the API sample project provided during onboarding - treat that project as the complete list.TypeOfBill values
ProviderType values
ProviderSpecialty values
Optional refinement of ProviderType. Values 37–39 were added in the latest API release.
Request Body - /v1/facility
Request Body - /v1/customcodes
No request body. Send auth headers only (Authorization and x-api-key). The response returns the list of custom codes used by BillSentry (for example, shipping and handling) when no standard CPT®/HCPCS code exists.
Response notes - secondary endpoints
Full field-level response documentation is provided below for
POST /v1/review (the primary integration path). For secondary endpoint response samples during onboarding, contact support@billsentry.com.
Response Structure - /v1/review
A successful review returns HTTP 200 with a gzip-compressed JSON body (Content-Encoding: gzip). Most HTTP clients decompress this automatically - ensure your client sends Accept-Encoding: gzip or handles decompression explicitly.
Top-level response fields
bill response fields
services[] response fields - per line
Reason Code fields
Rule Trace Entry fields
Each entry inbucketList represents one step in the pricing calculation.
Rule Trace - bucketSource values
Duplicate Result fields
POST /v1/duplicates returns a DuplicateResultDTO containing DuplicateResultsByService, a map keyed by service line number:
CPT® © 2025 American Medical Association. All Rights Reserved.Fee schedules, relative value units, conversion factors and/or related components are not assigned by the AMA, are not part of CPT, and the AMA is not recommending their use. The AMA does not directly or indirectly practice medicine or dispense medical services. The AMA assumes no liability for data contained or not contained herein.CPT is a registered trademark of the American Medical Association.U.S. Government Rights - This product includes CPT and/or CPT® Changes which are commercial technical data, which was developed exclusively at private expense by the American Medical Association, 330 North Wabash Avenue, Chicago, Illinois 60611. The American Medical Association does not agree to license CPT to the Federal Government based on the license in FAR 52.227-14 (Data Rights - General) and DFARS 252.227-7015 (Technical Data - Commercial Items) or any other license provision. The American Medical Association reserves all rights to approve any license with any Federal agency.