Introduction

Welcome to BPKTech’s API documentation.

Learn how BPKTech’s APIs enable modern RESTful connections into dental insurances companies without having to have prior knowledge of integrating with EDI, faxbacks, SFTP, etc. Once your credentials are set up, within minutes, you’ll be able to send eligibility and benefit queries to submit claims right within your own application.

BPKTech’s APIs are built on top of Azure and ensures security for all data flowing through. Our APIs utilize HTTPS and encrypt all data traffic in transit and at rest.

Authentication (OAuth2 )

OAuth2 flow is taken care by BPKTech Identityserver.

In order to ping any of the BPKTech's APIs, you must get a JWT to pass in the header of every request. The following request shows how the OAuth2 flow works to use your CLIENT_ID  and  CLIENT_SECRET  to get a JWT.

To authorize, use this code and make sure to replace and with your keys:

Request

# With shell, you can just pass the correct header with each request


curl -X POST https://bhcs-adminservice-dev.azurewebsites.net/connect/token \ 

-H 'content-type: application/json' \

-d '{

"client_id":", 
"client_secret":"" }'

Response

(EXAMPLE RESPONSE) The above command returns JSON structured like this:


{

"access_token": "",

"scope": "feature:eligibility",

"expires_in": 7200,

"token_type": "Bearer"

}

Access to BPKTech’s APIs requires receiving an access token through the OAuth2 flow. CLIENT_ID and CLIENT_SECRET are keys given by BPKTech’s.

Note: the examples include brackets < > around the variables, DO NOT include the brackets in the actual request (the brackets are just meant to show that it is a variable).

Request Eligibility and Benefits (version: v1)

EligibilityStatusApi

Request

1  /api/PatientData/GetPatientInsuranceEligibilityStatusData

parameters : patientId,ClinicId ,UserId

curl -X Get https://eligibilitybpk-api-dev.azurewebsites.net/api/PatientData/GetPatientInsuranceEligibilityStatusData

-H 'content-type: application/json' \

-d '{

"patientId":"patid of a location",

"ClinicId":"location id"

"userid" :""}'

Response

Sample response


"response": {
"Patient_Insurance_Information": {

"FirstName": "Doe",

"LastName": "John",

"ClinicId": 6,

"PatientID": 144288,

"InsuranceCompany": "Cigna",

"CarrierID": 54,

"PatientInsuranceID": "U6xxxxxx",

"Gender": "Female",

"DateofBirth": "12/03/2008",

"Relationship": "Dependent",

"Address": "xxxxxxxxxxx",

"SubscriberName": "John Doe",

"SubscriberDateofBirth": "1982-03-26T00:00:00",

"PlanType": "DENTAL PPO",

"PlanRenews": "Every Calendar Year",

"InitialCoverageDate": "2018-01-08T00:00:00",

"Currentcoverage": "01/01/2019 - Present",

"OtherInsurance": "No",

"Account": "2500691",

"GroupNumber": "2500691",

"GroupName": "LOCKHEED MARTIN-CORP NON REP ACTIVE OAP",

"Patient_Insurance_Information_Eligibility_Status": {

"Status": eligible,

"EffectiveDate": "2019-01-01T00:00:00",

"TerminationDetails": null,

"PatientInsuranceID": "U6xxxxxx",

"ClinicId": 6,

"Patientid": 144xxxxx,

"EndDate": null,

"FamilyMemberEligibilityStatus": eligible,

"EligibilityThroughDate": null,

"GroupPlanEffectiveDate": null

}

},

"StatusCode": 200,

"Message": "Success"

}

}

2 /api/PatientData/GetPatientInsuranceData

Request

curl -X Get https://eligibilitybpk-api-dev.azurewebsites.net/api/PatientData/GetPatientInsuranceEligibilityStatusData

-H 'content-type: application/json' \

-d '{

"portalId":"Payers Id",

"ClinicId":"location id"

"userid" :""

}'

Response

Sample Response


"response": {

"Patient_Insurance_Information": {

"FirstName": "Doe",

"LastName": "John",

"ClinicId": 6,

"PatientID": 144288,

"InsuranceCompany": "Cigna",

"CarrierID": 54,

"PatientInsuranceID": "U6xxxxxx",

"Gender": "Female",

"DateofBirth": "12/03/2008",

"Relationship": "Dependent",

"Address": "xxxxxxxxxxx",

"SubscriberName": "John Doe",

"SubscriberDateofBirth": "1982-03-26T00:00:00",

"PlanType": "DENTAL PPO",

"PlanRenews": "Every Calendar Year",

"InitialCoverageDate": "2018-01-08T00:00:00",

"Currentcoverage": "01/01/2019 - Present",

"OtherInsurance": "No",

"Account": "2500691",

"GroupNumber": "2500691",

"GroupName": "LOCKHEED MARTIN-CORP NON REP ACTIVE OAP"

},

"StatusCode": 200,

"Message": "Success"

}

}

Benefits And Deductibles API

Request

3 /api/PatientData/GetBenefitsAndDeductibles
parameters : patientId,ClinicId ,UserId

curl -X Get https://eligibilitybpk-api-dev.azurewebsites.net/api/PatientData/GetPatientInsuranceEligibilityStatusData

-H 'content-type: application/json' \

-d '{

"patientId":"patid of a location",

"ClinicId":"location id"

"userid" :""

}'

 

Revenue Cycle Management APIs

1 GetAllOpenclaims

https://bhcs-dashboard-api-app-dev.azurewebsites.net/api/v3/RcmClaimStatus/GetAllOpenclaims

Request

curl -X POST https://eligibilitybpk-api-dev.azurewebsites.net/api/PatientData/GetPatientInsuranceEligibilityStatusData

-H 'content-type: application/json' \

-d '{

"UserId": "string",

"Role": "string",

"Operation": "string",

"Sort": "string",

"SortOrder": "string",

"Pagesize": "string",

"PageNumber": 0,

"Location": [0],

"AllRecords": true

}

Response

SampleResponse


"Data": [

{

"Id": 1420,

"Patientid": 4512,

"chartid": "",

"LastName": "Doe",

"FirstName": "Jane",

"MiddleName": "",

"ClaimAge": "Ins Due 0 to 30 Days",

"ClaimAmount": 117.28,

"BirthDate": "2007-12-21T00:00:00",

"PriInsCompany": "CareSource",

"SecInsCompany": null,

"PracticeId": 1,

"PracticeName": "Demo clinic",

"DateOfservice": null,

"Rcm_AgentId": null,

"RcmAgent": null,

"DateClaimResearched": null,

"ClaimStatus_id": 2,

"Claim_Status": "Claim Pending - Ledger Balance $20/Claim Pending",

"Claim_FollowUpId": null,

"ClaimFollowUp": null,

"Site_ID": 120,

"SiteName": "RCM",

"InsurancePolicyId": null,

"PolicyHolderName": " ",

"PolicyHolderDBO": null,

"InsuranceCompanyPhone": "N/A",

"PrimaryInsId": 984,

"SecondaryInsId": "-1",

"ProviderType": "1",

"ClaimNum": 445159,

"CarrierType": "Prim",

"Submissiondate": "1900-01-01T00:00:00",

"Lastubmissiondate": "1900-01-01T00:00:00",

"Notes": null,

"Vsm_Ar_Id": null

}

]

}

2 GetAllClaims

https://bhcs-dashboard-api-app-dev.azurewebsites.net/api/v3/RcmClaimStatus/GetAllClaims

Request

curl -X POST https://eligibilitybpk-api-dev.azurewebsites.net/api/PatientData/GetPatientInsuranceEligibilityStatusData

-H 'content-type: application/json' \

-d '{

"UserId": "string",

"Role": "string",

"Operation": "string",

"Sort": "string",

"SortOrder": "string",

"Pagesize": "string",

"PageNumber": 0,

"Location": [0],

"AllRecords": true

}

Response

Sample response


"Data": [

{

"Id": 1457,

"Patientid": 21562,

"chartid": "",

"LastName": "Doe",

"FirstName": "Jane",

"MiddleName": "",

"ClaimAge": "Ins Due 0 to 30 Days",

"ClaimAmount": 239,

"BirthDate": "2010-02-23T00:00:00",

"PriInsCompany": "AETNA DENTAL",

"SecInsCompany": null,

"PracticeId": 1,

"PracticeName": "Demo clinic",

"DateOfservice": null,

"Rcm_AgentId": 3,

"RcmAgent": "John3 Doe3",

"DateClaimResearched": null,

"ClaimStatus_id": 11,

"Claim_Status": "Billing Error- Member ID",

"Claim_FollowUpId": null,

"ClaimFollowUp": null,

"Site_ID": 120,

"SiteName": "RCM",

"InsurancePolicyId": null,

"PolicyHolderName": " ",

"PolicyHolderDBO": null,

"InsuranceCompanyPhone": "N/A",

"PrimaryInsId": 260,

"SecondaryInsId": "-1",

"ProviderType": "1",

"ClaimNum": 445196,

"CarrierType": "Prim",

"Submissiondate": "1900-01-01T00:00:00",

"Lastubmissiondate": "1900-01-01T00:00:00",

"Notes": null,

"Vsm_Ar_Id": null

}

]

}

3 GetAllDeniedClaims

Request


curl -X POST  https://bhcs-dashboard-api-app-dev.azurewebsites.net/api/v3/RcmClaimStatus/GetAllDeniedClaims

-H 'content-type: application/json' \

-d '{

"UserId": "string",

"Role": "string",

"Operation": "string",

"Sort": "string",

"SortOrder": "string",

"Pagesize": "string",

"PageNumber": 0,

"Location": [0],

"AllRecords": true

}

Response

Sample Response


"Data": [

{

"Id": 1033,

"Patientid": 22789,

"chartid": "",

"LastName": "Doe",

"FirstName": "Jane",

"MiddleName": "",

"ClaimAge": "Ins Due 30 to 60 Days",

"ClaimAmount": 155,

"BirthDate": "2010-08-19T00:00:00",

"PriInsCompany": "Anthem BCBS",

"SecInsCompany": null,

"PracticeId": 1,

"PracticeName": "Demo clinic",

"DateOfservice": null,

"Rcm_AgentId": null,

"RcmAgent": null,

"DateClaimResearched": null,

"ClaimStatus_id": 23,

"Claim_Status": "Denied- COB",

"Claim_FollowUpId": null,

"ClaimFollowUp": null,

"Site_ID": 120,

"SiteName": "RCM",

"InsurancePolicyId": null,

"PolicyHolderName": " ",

"PolicyHolderDBO": null,

"InsuranceCompanyPhone": "N/A",

"PrimaryInsId": 1008,

"SecondaryInsId": "-1",

"ProviderType": "1",

"ClaimNum": 444290,

"CarrierType": "Prim",

"Submissiondate": "2021-06-29T00:00:00",

"Lastubmissiondate": "1900-01-01T00:00:00",

"Notes": null,

"Vsm_Ar_Id": null

}

]

4 GetAllRejectedClaims

Request


curl -X POST  https://bhcs-dashboard-api-app-dev.azurewebsites.net/api/v3/RcmClaimStatus/GetAllRejectedClaims

-H 'content-type: application/json' \

-d '{

"UserId": "string",

"Role": "string",

"Operation": "string",

"Sort": "string",

"SortOrder": "string",

"Pagesize": "string",

"PageNumber": 0,

"Location": [0],

"AllRecords": true

}

Response

SampleResponse


"Data": [
{

"Id": 1457,

"Patientid": 21562,

"chartid": "",

"LastName": "Doe",

"FirstName": "Jane",

"MiddleName": "",

"ClaimAge": "Ins Due 0 to 30 Days",

"ClaimAmount": 239,

"BirthDate": "2010-02-23T00:00:00",

"PriInsCompany": "AETNA DENTAL",

"SecInsCompany": null,

"PracticeId": 1,

"PracticeName": "Demo clinic",

"DateOfservice": null,

"Rcm_AgentId": 3,

"RcmAgent": "John3 Doe3",

"DateClaimResearched": null,

"ClaimStatus_id": 11,

"Claim_Status": "Billing Error- Member ID",

"Claim_FollowUpId": null,

"ClaimFollowUp": null,

"Site_ID": 120,

"SiteName": "RCM",

"InsurancePolicyId": null,

"PolicyHolderName": " ",

"PolicyHolderDBO": null,

"InsuranceCompanyPhone": "N/A",

"PrimaryInsId": 260,

"SecondaryInsId": "-1",

"ProviderType": "1",

"ClaimNum": 445196,

"CarrierType": "Prim",

"Submissiondate": "1900-01-01T00:00:00",

"Lastubmissiondate": "1900-01-01T00:00:00",

"Notes": null,

"Vsm_Ar_Id": null

}

]

5  GetAllApprovedClaims

Request

curl -X POST  https://bhcs-dashboard-api-app-dev.azurewebsites.net/api/v3/RcmClaimStatus/GetAllApprovedClaims

-H 'content-type: application/json' \

-d '{

"UserId": "string",

"Role": "string",

"Operation": "string",

"Sort": "string",

"SortOrder": "string",

"Pagesize": "string",

"PageNumber": 0,

"Location": [0],

"AllRecords": true

}

Response

SampleResponse


"Data": [

{

"Id": 1457,

"Patientid": 21565,

"chartid": "",

"LastName": "Doe",

"FirstName": "Jane",

"MiddleName": "",

"ClaimAge": "Ins Due 0 to 30 Days",

"ClaimAmount": 239,

"BirthDate": "2010-02-23T00:00:00",

"PriInsCompany": "AETNA DENTAL",

"SecInsCompany": null,

"PracticeId": 1,

"PracticeName": "Demo clinic",

"DateOfservice": null,

"Rcm_AgentId": 3,

"RcmAgent": "John3 Doe3",

"DateClaimResearched": null,

"ClaimStatus_id": 11,

"Claim_Status": "Approved",

"Claim_FollowUpId": null,

"ClaimFollowUp": null,

"Site_ID": 120,

"SiteName": "RCM",

"InsurancePolicyId": null,

"PolicyHolderName": " ",

"PolicyHolderDBO": null,

"InsuranceCompanyPhone": "N/A",

"PrimaryInsId": 260,

"SecondaryInsId": "-1",

"ProviderType": "1",

"ClaimNum": 445196,

"CarrierType": "Prim",

"Submissiondate": "1900-01-01T00:00:00",

"Lastubmissiondate": "1900-01-01T00:00:00",

"Notes": null,

"Vsm_Ar_Id": null

}

]

6 GetOpenclaimsAge90

Request

curl -X POST  https://bhcs-dashboard-api-app-dev.azurewebsites.net/api/v3/RcmClaimStatus/GetOpenclaimsAge90

-H 'content-type: application/json' \

-d '{

"UserId": "string",

"Role": "string",

"Operation": "string",

"Sort": "string",

"SortOrder": "string",

"Pagesize": "string",

"PageNumber": 0,

"Location": [0],

"AllRecords": true

}

Response

SampleResponse


"Data": [

{

"Id": 989,

"Patientid": 9014,

"chartid": "",

"LastName": "Doe",

"FirstName": "Jane",

"MiddleName": "",

"ClaimAge": "Ins Due Over 90",

"ClaimAmount": 0,

"BirthDate": "2015-03-28T00:00:00",

"PriInsCompany": "DELTA DENTAL OF GEORGIA",

"SecInsCompany": null,

"PracticeId": 1,

"PracticeName": "Demo clinic",

"DateOfservice": null,

"Rcm_AgentId": null,

"RcmAgent": null,

"DateClaimResearched": null,

"ClaimStatus_id": 2,

"Claim_Status": "Claim Pending - Ledger Balance $20/Claim Pending",

"Claim_FollowUpId": null,

"ClaimFollowUp": null,

"Site_ID": 120,

"SiteName": "RCM",

"InsurancePolicyId": null,

"PolicyHolderName": " ",

"PolicyHolderDBO": null,

"InsuranceCompanyPhone": "N/A",

"PrimaryInsId": 782,

"SecondaryInsId": "-1",

"ProviderType": "1",

"ClaimNum": 432494,

"CarrierType": "Prim",

"Submissiondate": "2020-08-05T00:00:00",

"Lastubmissiondate": "1900-01-01T00:00:00",

"Notes": null

]

6 GetOpenclaimsAge60

Request


curl -X POST  https://bhcs-dashboard-api-app-dev.azurewebsites.net/api/v3/RcmClaimStatus/GetOpenclaimsAge60

-H 'content-type: application/json' \

-d '{

"UserId": "string",

"Role": "string",

"Operation": "string",

"Sort": "string",

"SortOrder": "string",

"Pagesize": "string",

"PageNumber": 0,

"Location": [0],

"AllRecords": true

}

Response

SampleResponse


"Data": [

{

"Id": 1070,

"Patientid": 25141,

"chartid": "",

"LastName": "Doe",

"FirstName": "Jane",

"MiddleName": "",

"ClaimAge": "Ins Due 60 to 90 Days",

"ClaimAmount": 176.83,

"BirthDate": "2007-04-16T00:00:00",

"PriInsCompany": "UNITED CONCORDIA",

"SecInsCompany": null,

"PracticeId": 1,

"PracticeName": "Demo clinic",

"DateOfservice": null,

"Rcm_AgentId": null,

"RcmAgent": null,

"DateClaimResearched": null,

"ClaimStatus_id": 40,

"Claim_Status": "In Process/ Pending Payment/RA",

"Claim_FollowUpId": null,

"ClaimFollowUp": null,

"Site_ID": 120,

"SiteName": "RCM",

"InsurancePolicyId": null,

"PolicyHolderName": " ",

"PolicyHolderDBO": null,

"InsuranceCompanyPhone": "N/A",

"PrimaryInsId": 106,

"SecondaryInsId": "-1",

"ProviderType": "1",

"ClaimNum": 444686,

"CarrierType": "Prim",

"Submissiondate": "2021-07-16T00:00:00",

"Lastubmissiondate": "1900-01-01T00:00:00",

"Notes": null

}

]