pVerify CMN API (discontinued)
Certificate of Medical Necessity lookup. Labelled "(Discontinued)" by pVerify; every operation is marked deprecated in the spec.
Certificate of Medical Necessity lookup. Labelled "(Discontinued)" by pVerify; every operation is marked deprecated in the spec.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/pverify-cmn-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: pVerify CMN API
description: Real-time healthcare insurance eligibility and revenue-cycle API. Derived operation-for-operation from the public Postman collection pVerify publishes at https://postman.pverify.com/ (collection 6ceb8797-50ff-42fd-98a3-64beefaa6c94, last updated 03/01/2026). Covers eligibility (270/271), dental eligibility, insurance discovery, MBI lookup, patient demographic validation, claim status (276/277), patient cost estimation, payer lists and the CGX widget.
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
tags:
- name: CMN
paths:
/API/CMNInquiry:
post:
operationId: cmnInquiry
tags:
- CMN
summary: CMNInquiry
description: 'Environment |
URL |
Test |
https://testapi.pverify.com/API/CMNInquiry |
Production |
https://api.pverify.com/API/CMNInquiry |
This endpoint submits a Same/Similar request into our queue. Note that this is not real time, and either the postback URL must be used (to submit the response to), or the GetSameOrSimilarResponse endpoint must be called with the request ID.
Key |
Value |
URL |
https://api.pverify.com/API/CMNInquiry |
Method |
POST |
Headers |
Description |
Content-Type |
application/json |
Authorization |
Authorization token from above preceded by the String "Bearer" |
Client-API-Id* |
Your pVerify client-api-id |
Body |
Description |
Data Parameters |
See Right Panel |
*Note: The Client-API-Id is required in header. Header keys are case sensitive.
CMNInquiry Request fields
Property Name |
Data Type |
Usage |
Description |
memberId |
String |
Required |
Patient''s member ID (HICN). |
patientFirstName |
String |
Required |
Patient First Name. |
patientLastName |
String |
Required |
Patient Last Name. |
patientDOB |
String |
Required |
Patient DOB (Expected format: MM/dd/YYYY ie 01/01/2000). |
patientStateCode |
String |
Required |
Patient State Code ex: AL. |
hcpcsCode |
String |
Required |
HCPCS -L codes only. Multiple codes can be sent by separating with a comma (,). |
dosStart |
String |
Optional |
Date of service start date (Expected format: MM/dd/YYYY ie 01/01/2000). Default value is 5 years before date to current date. |
dosEnd |
String |
Optional |
Date of service end date (Expected format: MM/dd/YYYY ie 01/01/2000). Default value is current date (Today''s date). |
location |
String |
Optional |
Location name and the default is client user''s location or client''s location. |
callBackUrl |
String |
Optional |
to Post response data on client side |
APIResponseCode Meaning
APIResponseCode |
Description |
0 |
Processed |
1 |
Rejected |
2 |
NoFunds (Insufficient Account Balance) |
3 |
Pending (Pending need to get response later) |
4 |
InvalidRequest (Required Data Missing) |
5 |
InvalidFormat (data fields / data format is wrong) |
6 |
LocationError (Location is not configured) |
** Response JSON Processing Steps **
Step 1: Check the value of the API Response Code property. If the API Response Code is 3 (Pending) then the request is pending and the Request ID can be extracted.
Step 2: Save the data
Note: The CMN API always returns API response code as 3 (pending)'
deprecated: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
memberId:
type: string
example: '123456'
patientFirstName:
type: string
example: First Name
patientLastName:
type: string
example: Last Name
patientDOB:
type: string
example: Date of birth
patientStateCode:
type: string
example: StateCode
hcpcsCode:
type: string
example: A, B, E, or K code
dosStart:
type: string
example: 12/09/2020
dosEnd:
type: string
example: 12/09/2020
location:
type: string
example: location Name
callBackUrl:
type: string
example: http://www.test.com/api/PostData
example:
memberId: '123456'
patientFirstName: First Name
patientLastName: Last Name
patientDOB: Date of birth
patientStateCode: StateCode
hcpcsCode: A, B, E, or K code
dosStart: 12/09/2020
dosEnd: 12/09/2020
location: location Name
callBackUrl: http://www.test.com/api/PostData
responses:
'200':
description: OK
security:
- bearerAuth: []
clientApiId: []
/API/GetCMNResponse/{requestId}:
get:
operationId: getCMNResponse
tags:
- CMN
summary: GetCMNResponse
description: 'Environment |
URL |
Test |
https://testapi.pverify.com/API/GetCMNResponse/{requestID} |
Production |
https://api.pverify.com/API/GetCMNResponse/{requestID} |
This call is used to get the transaction result later using a unique request ID.
Note: We purge this data after 90 days
Key |
Value |
URL |
https://api.pverify.com/API/GetCMNResponse/{requestID} |
Method |
GET |
Headers |
Description |
Content-Type |
application/json |
Authorization |
Authorization token from above preceded by the String "Bearer" |
Client-API-Id* |
Your pVerify client-api-id |
*Note: The Client-API-Id header is required. Header keys are case sensitive.
Notes
Always check for apiResponseCode property value before processing.
If APIResponseCode is zero then look for ErrorMessage and Claims to process response.
A successful GetSameOrSimilarResponse will have the same format as the SameOrSimilarInquiry response.
API Response Codes
APIResponseCode |
Description |
0 |
Processed |
1 |
Rejected |
2 |
NoFunds (Insufficient Account Balance) |
3 |
Pending (Pending need to get response later) |
4 |
InvalidRequest (Required Data Missing) |
5 |
InvalidFormat (data fields / data format is wrong) |
6 |
LocationError (Location is not configured) |
CMN Response Details
Property Name |
Data Type |
Description |
RequestId |
long |
Same or Similar Request ID. |
apiResponseCode |
int |
API transaction response code. Please see apiResponseCodes section. |
apiResponseMessage |
String |
API transaction response message. |
isDataError |
boolean |
True - when invalid patient details (Invalid HICN/MBI or Invalid DOB); False - for all valid requests. |
CertificatesCount |
int |
No of certiifcates found in response |
Message |
String |
Contains messages other than error messages (No claims found). |
Status |
String |
Status of transaction (Processed, Rejected or Pending). |
RentalsDescription |
String |
Oxygen Rentals Description. |
IsVerifiedAllJusrisdiction |
Boolean |
Tells the transaction is verified in all Jurisdiction or not.If value false then need to get response using same API later. |
VerifiedJurisdcitions |
String Array |
Contians Verified jurisdictions. |
Certificates |
List |
|
|
Contains claim certificates status info. |
|
Certificate.SubmittedHcpcs |
String |
HCPCS Code Submitted in Request |
Certificate.ApprovedHcpcs |
String |
HCPCS Code which is approved by Medicare |
Certificate.InitialDate |
String |
Initial Date of Billing |
Certificate.RevisedDate |
String |
Revised Date for CMN, if any. |
Certificate.LastClaimDate |
String |
Date on which Last claim is recorded. |
Certificate.Status |
String |
Status of Certificate. Valid / Open |
Certificate.SupplierName |
String |
Supplier Name. |
Certificate.SupplierPhone |
String |
Supplier Phone Number |
Certificate.TypeValue |
String |
Type – Initial, Recert or Revised. |
Certificate.LengthOfNeed |
String |
Length for which CMN is approved. |
Certificate.TotalRentalPayments |
Total Rental Payments |
|
Certificate.Message |
String |
Contains Message like No Certificates are found. |'
deprecated: true
parameters:
- name: requestId
in: path
required: true
schema:
type: string
description: Unique pVerify transaction / request id returned by the matching inquiry call.
responses:
'200':
description: OK
security:
- bearerAuth: []
clientApiId: []
/PDFReport/CMN/{id}:
get:
operationId: getCmnReport
tags:
- CMN
summary: CMN Report
description: 'This returns a PDF report of the CMN request.
Note two things:
The endpoint is premium.pverify.com
Authentication token is not used, instead pass your API ID and Secret.'
deprecated: true
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Unique pVerify transaction / request id returned by the matching inquiry call.
responses:
'200':
description: OK
security:
- clientApiId: []
clientSecret: []
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'OAuth2 access token returned by POST /Token, sent as `Authorization: Bearer <token>`.'
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.