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.
# Derived from pVerify's published Postman collection: https://postman.pverify.com/
# method: derived generated: 2026-08-14
openapi: 3.0.3
info:
title: pVerify CMN API (discontinued)
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\n\
Method | \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 | \n\
Optional | \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\n\
2 | \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\n\
Client-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 | \n\
InvalidFormat (data fields / data format is wrong) | \n\n6 | \nLocationError (Location is not\
\ configured) | \n\nCMN Response Details\n\nProperty Name | \nData Type | \nDescription | \n\n\
RequestId | \nlong | \nSame or Similar Request ID. | \n\napiResponseCode | \nint | \nAPI transaction\
\ response code. Please see apiResponseCodes section. | \n\napiResponseMessage | \nString | \n\
API 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 | \n\
Status 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.