# Derived from pVerify's published Postman collection: https://postman.pverify.com/ # method: derived generated: 2026-08-14 openapi: 3.0.3 info: title: pVerify CGX Widget API description: pVerify CGX Widget API, derived operation-for-operation from the public Postman collection pVerify publishes at https://postman.pverify.com/ (last updated 03/01/2026). All calls require an OAuth2 bearer token from POST /Token plus the Client-API-Id header. version: '1.0' termsOfService: https://pverify.com/privacy-policy/ contact: name: pVerify Support email: support@pverify.com url: https://pverify.com/contact-support/ servers: - url: https://api.pverify.com description: Production - url: https://testapi.pverify.com description: Test environment published by pVerify - url: https://premium.pverify.com description: pVerify premium portal host (PDF reports, widget setup) tags: - name: CGX Widget paths: /Widget/Setup: post: operationId: createWidgetSetup tags: - CGX Widget summary: Setup description: "Step 1 - Generate setupId to load widget in iframe\n\nSetupId will be required to\ \ load the widget in iframe. SetupId can be generated using Client ID and Client Secret. To generate\ \ SetupId, pass Client ID and Client Secret to following endpoint[POST] https://premium.pverify.com/Widget/Setupe.g.\n\ \n{\n\"clientApiId\":\"xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx\",\n\"clientSecret\":\"xxxxxxxxxxxxxxx\"\ \n}\n\nIt will generate a SetupId something like this XXXXxxXX-XXXX-XxXX-XxXX-XXxxXXXXxXX.\n\n\ Step 2 - Load iframe with following URL with setupIdIf you want to integrate Estimation widget,\ \ then set URL of iframe as shown belowhttps://premium.pverify.com/Component/EstimateInquiry?SetupId=setupId\n\ \nIf you want to integrate Eligibility widget, then set URL of iframe as shown belowhttps://premium.pverify.com/Component/ElgInquiry?SetupId=setupId\n\ \nDetails about SetupId \n\n1.Need to generate SetupId for each transaction \n\n2.SetupId is valid\ \ for 10 mins" requestBody: required: true content: application/json: schema: type: object properties: clientApiId: type: string example: xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx clientSecret: type: string example: xxxxxxxxxxxxxxx example: clientApiId: xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx clientSecret: xxxxxxxxxxxxxxx responses: '200': description: OK /api/CGXInquiry: post: operationId: cgxInquiry tags: - CGX Widget summary: CGXInquiry - Estimates and Eligibility Combo description: "Environment | \nURL | \n\nTest | \nhttps://testapi.pverify.com/API/CGXInquiry | \n\ \nProduction | \nhttps://api.pverify.com/API/CGXInquiry | \n\nCGXInquiry is our combined Eligibility\ \ & Estimate endpoint.\n\nNote that only a handful of items are required. This allows very quick\ \ and easy coding to get a response. The NPI is hard coded to use the default NPI. The location\ \ can use the first/default location. Pricing is based either on payer/location specific pricing\ \ or the medicare price. If the former, then the CPT codes need to be imported into pVerify. If\ \ the later, then the location needs to have the state/ZIP code set, and the default medicare\ \ % needs to be set from Premium (Admin Setup). It is possible when configured to use remit data\ \ to power this estimate. The eligibility call is the same as the EligibilitySummary call. Either\ \ the practice type can be set from the body or it will use the default practice type set by client.\n\ \nHeaders\n\nKey | \nValue | \n\nURL | \nhttps://api.pverify.com/API/CGXInquiry | \n\nMethod |\ \ \nPOST | \n\nHeaders | \nDescription | \n\nAuthorization | \nAuthorization token from above\ \ preceded by the String \"Bearer\" | \n\nClient-API-Id | \nAPI ID provided by pVerify | \n\n\ Content-Type | \napplication/json | \n\n*Note: The Client-API-Id is required. Header keys are\ \ case sensitive.\n\nCGXInquiry Request Details\n\nProperty Name | \nData Type | \nUsage | \n\ Description | \n\nPayerCode | \nString | \nConditional | \npVerify Payer Code(ie Aetna 00001)\ \ | \n\nPayerName | \nString | \nConditional | \nYour payer name mapped through our system (note\ \ either PayerCode or PayerName is required) | \n\nMemberId | \nString | \nRequired | \nMember\ \ ID of Patient | \n\nPatientFirstName | \nString | \nRequired | \nPatient first name | \n\nPatientLastName\ \ | \nString | \nRequired | \nPatient last name | \n\nPatientDOB | \nString | \nRequired | \n\ Format must be MM/DD/YYYY | \n\nLocation | \nString | \nOptional | \nName of location - used to\ \ set the appointment pricing | \n\nZipCode | \nString | \nOptional | \n0 if default, else ZipCode\ \ - see notes below | \n\nAppointmentType | \nString | \nConditional | \nName of appointment |\ \ \n\nCPTList | \nArray of String | \nConditional | \nList of CPT codes - String array. Either\ \ this or AppointmentType is required. If both are set, the CPTList is used. | \n\nMRN | \nString\ \ | \nOptional | \nMRN or reference of patient - not used by pVerify | \n\nIsActiveSecondry |\ \ \nBoolean | \nOptional | \nFor use for estimate | \n\nSelfPay | \nBoolean | \nOptional | \n\ For estimate | \n\nPracticeTypeId | \nInteger | \nOptional | \nPlease consult Practice Type Code\ \ table - sets which practice type to use, i.e. 12 for physical therapy, which will return an\ \ object with PT benefits in the results. If you do not select a practice type, the default for\ \ your account will be used. Contact pVerify for more info. | \n\nEither PayerCode (preference)\ \ or your Payer Name mapped through our system can be used. The system will use the PayerCode\ \ if not empty.\n\nLocation is optional, it will pull the default location if not set. The location\ \ is used to power the Medicare pricing which relies on Zip Code. To overrride this, set the ZipCode\ \ field. If the Location field is a location that does not exist, it will be created. Note if\ \ this happens, the first user in the system must be role ClientAdmin else the API will not set\ \ the user to the location correctly. If this happens then the API call fails.\n\nEIther CPTList\ \ (string array) or AppointmentType (name) can be used. If both are present then CPTList will\ \ be used. This is used to pull the pricing and it's based on the following order.\n\nIF CptLIst\ \ is used, then this is the pricing order in the system:\n\nRemit Price (CPT/Payer specific) (based\ \ on EDI 835 data specific to client)\n\nPayer & CPT specific custom pricing (from your imported\ \ fee schedule)\n\nPayer & CPT specific medicare pricing (from your imported fee schedule)\n\n\ CPT specific custom pricing (from your imported fee schedule)\n\nMedicare custom pricing (from\ \ your imported fee schedule)\n\nMedicare pricing (from CMS)\n\nNote for #6 there is a client-wide\ \ medicare price that can be used to act as a multiplier for Medicare Pricing - it is set in Admin\ \ Profile from Premium.\n\nIf Appointment list is used - the pricing is the same as above except\ \ remit pricing is not factored in.\n\nCGXInquiry Response Fields\n\nProperty Name | \nData Type\ \ | \nDescription | \n\nrequestId | \nInteger | \nPrimary Key | \n\nisDataError | \nBoolean |\ \ \ntrue if error | \n\nerrorMessage | \nString | \nError message | \n\neligibilityRequestID |\ \ \nInteger | \nPrimary Key for request | \n\nelgStatus | \nString | \nActive if patient's insurance\ \ is active | \n\nelgResponseMessage | \nString | \nError from eligibility call | \n\napiResponseCode\ \ | \nInteger | \n0 if no error | \n\napiResponseMessage | \nString | \nProcessed if no error\ \ | \n\ndetailResponse.preAuthStatus | \nString | \nNot yet supported | \n\ndetailResponse.paFrom\ \ | \nString | \nNot yet supported | \n\ndetailResponse.locationName | \nString | \nName of location\ \ from request | \n\ndetailResponse.cptCode | \nString | \nCPT Code | \n\ndetailResponse.co_ins_Percentage\ \ | \nString | \nCoinsurance | \n\ndetailResponse.co_Pay | \nString | \nCopay | \n\ndetailResponse.deductible_remaining\ \ | \nString | \nDeductible Remaining | \n\ndetailResponse.out_of_Pocket_remaining | \nString\ \ | \nOOP Remaining | \n\ndetailResponse.estimatedAllowable | \nString | \nAllowed amount from\ \ payer | \n\ndetailResponse.EstPtResponsibilitywDeduc | \nString | \nEstimate for patient responsibility\ \ with Deductible | \n\ndetailResponse.EstPtResponsibilitywoDeduc | \nString | \nEstimate for\ \ patient responsibility without Deductible | \n\ndetailResponse.EstPtResponsibilityMessage |\ \ \nString | \nPatient Responsibility message | \n\ndetailResponse.amountPayable | \nString |\ \ \nAmount due by patient | \n\nResponse JSON:\n\nStartFragment\n\n{\"requestId\": 299,\"isDataError\"\ : false,\"errorMessage\": \" Location set by default location. \",\"detailResponse\": {\"preAuthStatus\"\ : null,\"paFrom\": null,\"locationName\": null,\"cptCode\": \"70553\",\"co_ins_Percentage\": \"\ 0\",\"co_Pay\": \"225.00\",\"deductible_remaining\": \"0.00\",\"out_" requestBody: required: true content: application/json: schema: type: object properties: PayerCode: type: string example: 00192 PayerName: type: string example: United HC MemberId: type: string example: '1234' PatientFirstName: type: string example: John PatientLastName: type: string example: Doe PatientDOB: type: string example: 01/01/2000 Location: type: string example: Brooklyn AppointmentType: type: string example: MRI Brain CPTList: type: array items: type: string example: '77001' MRN: type: string example: '1234' IsActiveSecondry: type: boolean example: false SelfPay: type: boolean example: false PracticeTypeId: type: integer example: 25 example: PayerCode: 00192 PayerName: United HC MemberId: '1234' PatientFirstName: John PatientLastName: Doe PatientDOB: 01/01/2000 Location: Brooklyn AppointmentType: MRI Brain CPTList: - '77001' - '77002' MRN: '1234' IsActiveSecondry: false SelfPay: false PracticeTypeId: 25 responses: '200': description: OK security: - bearerAuth: [] clientApiId: [] components: securitySchemes: bearerAuth: type: http scheme: bearer description: 'OAuth2 access token returned by POST /Token, sent as `Authorization: Bearer `.' clientApiId: type: apiKey in: header name: Client-API-Id description: Client API identifier issued by pVerify. Required on every call; header keys are case sensitive. clientSecret: type: apiKey in: header name: Client-Secret description: Client secret issued by pVerify, used by the one-step (no-token) endpoints and the premium report endpoints.