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 API (discontinued) CMN API
description: pVerify CMN API (discontinued), 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: CMN
paths:
/API/CMNInquiry:
post:
operationId: cmnInquiry
tags:
- CMN
summary: CMNInquiry
description: "Environment | \nURL | \n\nTest | \nhttps://testapi.pverify.com/API/CMNInquiry | \n\nProduction | \nhttps://api.pverify.com/API/CMNInquiry | \n\nThis 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.\n\nKey | \nValue | \n\nURL | \nhttps://api.pverify.com/API/CMNInquiry | \n\nMethod | \nPOST | \n\nHeaders | \nDescription | \n\nContent-Type | \napplication/json | \n\nAuthorization | \nAuthorization token from above preceded by the String \"Bearer\" | \n\nClient-API-Id* | \nYour pVerify client-api-id | \n\nBody | \nDescription | \n\nData Parameters | \nSee Right Panel | \n\n*Note: The Client-API-Id is required in header. Header keys are case sensitive.\n\nCMNInquiry Request fields\n\nProperty Name | \nData Type | \nUsage | \nDescription | \n\nmemberId | \nString | \nRequired | \nPatient's member ID (HICN). | \n\npatientFirstName | \nString | \nRequired | \nPatient First Name. | \n\npatientLastName | \nString | \nRequired | \nPatient Last Name. | \n\npatientDOB | \nString | \nRequired | \nPatient DOB (Expected format: MM/dd/YYYY ie 01/01/2000). | \n\npatientStateCode | \nString | \nRequired | \nPatient State Code ex: AL. | \n\nhcpcsCode | \nString | \nRequired | \nHCPCS -L codes only. Multiple codes can be sent by separating with a comma (,). | \n\ndosStart | \nString | \nOptional | \nDate of service start date (Expected format: MM/dd/YYYY ie 01/01/2000). Default value is 5 years before date to current date. | \n\ndosEnd | \nString | \nOptional | \nDate of service end date (Expected format: MM/dd/YYYY ie 01/01/2000). Default value is current date (Today's date). | \n\nlocation | \nString | \nOptional | \nLocation name and the default is client user's location or client's location. | \n\ncallBackUrl | \nString | \nOptional | \nto Post response data on client side | \n\nAPIResponseCode Meaning\n\nAPIResponseCode | \nDescription | \n\n0 | \nProcessed | \n\n1 | \nRejected | \n\n2 | \nNoFunds (Insufficient Account Balance) | \n\n3 | \nPending (Pending need to get response later) | \n\n4 | \nInvalidRequest (Required Data Missing) | \n\n5 | \nInvalidFormat (data fields / data format is wrong) | \n\n6 | \nLocationError (Location is not configured) | \n\n** Response JSON Processing Steps **\n\nStep 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.\n\nStep 2: Save the data\n\nNote: 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 | \nURL | \n\nTest | \nhttps://testapi.pverify.com/API/GetCMNResponse/{requestID} | \n\nProduction | \nhttps://api.pverify.com/API/GetCMNResponse/{requestID} | \n\nThis call is used to get the transaction result later using a unique request ID.\n\nNote: We purge this data after 90 days\n\nKey | \nValue | \n\nURL | \nhttps://api.pverify.com/API/GetCMNResponse/{requestID} | \n\nMethod | \nGET | \n\nHeaders | \nDescription | \n\nContent-Type | \napplication/json | \n\nAuthorization | \nAuthorization token from above preceded by the String \"Bearer\" | \n\nClient-API-Id* | \nYour pVerify client-api-id | \n\n*Note: The Client-API-Id header is required. Header keys are case sensitive.\n\nNotes\n\nAlways check for apiResponseCode property value before processing.\n\nIf APIResponseCode is zero then look for ErrorMessage and Claims to process response.\n\nA successful GetSameOrSimilarResponse will have the same format as the SameOrSimilarInquiry response.\n\nAPI Response Codes\n\nAPIResponseCode | \nDescription | \n\n0 | \nProcessed | \n\n1 | \nRejected | \n\n2 | \nNoFunds (Insufficient Account Balance) | \n\n3 | \nPending (Pending need to get response later) | \n\n4 | \nInvalidRequest (Required Data Missing) | \n\n5 | \nInvalidFormat (data fields / data format is wrong) | \n\n6 | \nLocationError (Location is not configured) | \n\nCMN Response Details\n\nProperty Name | \nData Type | \nDescription | \n\nRequestId | \nlong | \nSame or Similar Request ID. | \n\napiResponseCode | \nint | \nAPI transaction response code. Please see apiResponseCodes section. | \n\napiResponseMessage | \nString | \nAPI transaction response message. | \n\nisDataError | \nboolean | \nTrue - when invalid patient details (Invalid HICN/MBI or Invalid DOB); False - for all valid requests. | \n\nCertificatesCount | \nint | \nNo of certiifcates found in response | \n\nMessage | \nString | \nContains messages other than error messages (No claims found). | \n\nStatus | \nString | \nStatus of transaction (Processed, Rejected or Pending). | \n\nRentalsDescription | \nString | \nOxygen Rentals Description. | \n\nIsVerifiedAllJusrisdiction | \nBoolean | \nTells the transaction is verified in all Jurisdiction or not.If value false then need to get response using same API later. | \n\nVerifiedJurisdcitions | \nString Array | \nContians Verified jurisdictions. | \n\nCertificates | \nList | \n | \n\n | \nContains claim certificates status info. | \n | \n\nCertificate.SubmittedHcpcs | \nString | \nHCPCS Code Submitted in Request | \n\nCertificate.ApprovedHcpcs | \nString | \nHCPCS Code which is approved by Medicare | \n\nCertificate.InitialDate | \nString | \nInitial Date of Billing | \n\nCertificate.RevisedDate | \nString | \nRevised Date for CMN, if any. | \n\nCertificate.LastClaimDate | \nString | \nDate on which Last claim is recorded. | \n\nCertificate.Status | \nString | \nStatus of Certificate. Valid / Open | \n\nCertificate.SupplierName | \nString | \nSupplier Name. | \n\nCertificate.SupplierPhone | \nString | \nSupplier Phone Number | \n\nCertificate.TypeValue | \nString | \nType – Initial, Recert or Revised. | \n\nCertificate.LengthOfNeed | \nString | \nLength for which CMN is approved. | \n\nCertificate.TotalRentalPayments | \nTotal Rental Payments | \n | \n\nCertificate.Message | \nString | \nContains 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.