Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
description: API for Telecom Formatter
title: Telecom Formatter Telecom Format API
version: v1
servers:
- description: Generated server url
url: ' https://sandbox-apigw.optum.com/rxn/telecomformatter'
security:
- oauth2_security: []
tags:
- description: API to format details received in a request
name: Telecom Format
paths:
/v1/formatDetails:
post:
description: This endpoint receives structured JSON data and transforms it into a formatted NCPDP (National Council for Prescription Drug Programs) string.
operationId: formatDetails
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TelecomRequestV1'
description: Request to format details
required: true
responses:
'200':
content:
'*/*':
schema:
$ref: '#/components/schemas/NCPDPRequestConverterV1Response'
description: Successful Response
'401':
content:
'*/*':
schema:
$ref: '#/components/schemas/NCPDPRequestConverterV1Response'
description: Unauthorized
summary: Format Details
tags:
- Telecom Format
/v1/telecomFormatResponse:
post:
description: This endpoint converts a raw NCPDP telecom message string into a structured JSON format. It is primarily used to parse and interpret NCPDP D.0 or similar telecom transaction formats, making the data easier to consume for downstream systems.
operationId: formatIncomingData
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NcpdpFormatRequestData'
description: Request to telecom format Response
required: true
responses:
'200':
content:
'*/*':
schema:
$ref: '#/components/schemas/NCPDPResponseConverterV1Response'
description: Successful
'401':
content:
'*/*':
schema:
$ref: '#/components/schemas/NCPDPResponseConverterV1Response'
description: Unauthorized
summary: NCPDP Format Request Data
tags:
- Telecom Format
components:
schemas:
RejectDetailsV1:
properties:
code:
type: string
fieldOccurrenceIndicator:
format: int32
type: integer
type: object
ProcessorV1:
properties:
binNumber:
errorMessage:
maxLength: exceeds the maximum limit of 6.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected string.
maxLength: 6
pattern: ^[0-9]*$
type: string
claimFormatCode:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 9.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 9
type: string
groupCode:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 45.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 45
type: string
processorControlNumber:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 30.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 30
type: string
rems:
enum:
- Y
- N
- y
- n
errorMessage:
enum: invalid Value, expected values are Y or N.
maxLength: exceeds the maximum limit of 1.
type: invalid type, expected string.
maxLength: 1
type: string
siteCode:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 240.
type: invalid type, expected string or null.
format: ncpdp-alphanumeric
maxLength: 240
type:
- string
- 'null'
softwareVendorId:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 30.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 30
type: string
transactionCount:
enum:
- '1'
- ''
errorMessage:
enum: invalid value, only expected value is 1.
maxLength: exceeds the maximum limit of 1.
type: invalid type, expected string.
maxLength: 1
type: string
type: object
PharmacyV1:
properties:
professionalProvider:
properties:
providerId:
errorMessage:
minItems: must have at least one item.
type: invalid type, expected array.
items:
properties:
code:
description: 1 - Drug Enforcement Administration (DEA), 2 - State License, 3 - Social Security Number (SSN), 4 - Name, 5 - National Provider Identifier (NPI), 6 - Health Industry Number (HIN), 7 - State Issued, 8 - Other
errorMessage:
maxLength: exceeds the maximum limit of 2.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected number.
maximum: 99
minimum: 0
type: number
value:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 90.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 90
type: string
type: object
minItems: 1
type: array
type: object
serviceProviderId:
errorMessage:
minItems: must have at least one item.
type: invalid type, expected array.
items:
properties:
code:
description: Code qualifying the service Provider. 1 - National Provider Identifier (NPI), 2 - Blue Cross, 3 - Blue Shield, 4 - Medicare, 5 - Medicaid, 6 - UPIN (Unique Physician/Practitioner Identification Number), 7 - NCPDP Provider Identification Number (National Council for Prescription Drug Programs Provider Identification Number), 8 - State License, 9 - TRICARE, 10 - Health Industry Number (HIN), 11 - Federal Tax ID, 12 - Drug Enforcement Administration (DEA) Number, 13 - State Issued, 14 - Plan Specific, 15 - HCIdea, 16 - Combat Methamphetamine Epidemic Act (CMEA) Certificate ID, 17 - Foreign Prescriber Identifier, 18 - No Prescriber Required, 99 - Other
errorMessage:
maxLength: exceeds the maximum limit of 2.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected number.
maximum: 99
minimum: 0
type: number
value:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 90.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 90
type: string
type: object
minItems: 1
type: array
type: object
DurOrPpsV1:
properties:
durPpsResponseCode:
items:
$ref: '#/components/schemas/DurPpsResponseCodeV1'
type: array
type: object
NCPDPRequestConverterV1Response:
properties:
ncpdpRequestString:
type: string
switchResponse:
$ref: '#/components/schemas/NCPDPResponseConverterV1Response'
type: object
OtherPayerIdsV1:
properties:
otherPayerBenefitEffectiveDate:
format: date
type: string
otherPayerBenefitTerminationDate:
format: date
type: string
otherPayerCardholderId:
type: string
otherPayerCoverage:
type: string
otherPayerGroupId:
type: string
otherPayerHelpDeskPhoneNumber:
$ref: '#/components/schemas/PhoneNumber'
otherPayerId:
$ref: '#/components/schemas/IdentifierV1'
otherPayerPatientRelationshipCode:
type: string
otherPayerPersonCode:
type: string
otherPayerProcessorControlNumber:
type: string
type: object
NcpdpResponse:
properties:
claim:
$ref: '#/components/schemas/ClaimSegment'
durOrPps:
$ref: '#/components/schemas/DurOrPpsSegment'
empty:
type: boolean
header:
$ref: '#/components/schemas/HeaderSegment'
insurance:
$ref: '#/components/schemas/InsuranceSegment'
insuranceAdditionalInformation:
$ref: '#/components/schemas/InsuranceAdditionalInformationSegment'
intermediary:
$ref: '#/components/schemas/IntermediarySegment'
message:
$ref: '#/components/schemas/MessageSegment'
otherPayers:
$ref: '#/components/schemas/OtherPayersSegment'
otherRelatedBenefitDetail:
$ref: '#/components/schemas/OtherRelatedBenefitDetailSegment'
patient:
$ref: '#/components/schemas/PatientSegment'
present:
type: boolean
pricing:
$ref: '#/components/schemas/PricingSegment'
priorAuthorization:
$ref: '#/components/schemas/PriorAuthorizationSegment'
provider:
$ref: '#/components/schemas/ProviderSegment'
raw:
type: string
rawEmpty:
type: boolean
rawPresent:
type: boolean
status:
$ref: '#/components/schemas/StatusSegment'
transactions:
items:
$ref: '#/components/schemas/ResponseTransaction'
type: array
type: object
CobOtherPaymentsV1:
properties:
otherPayerId:
items:
$ref: '#/components/schemas/OtherPayerIdsV1'
type: array
type: object
InsuranceV1:
properties:
cardholderId:
type: string
groupId:
type: string
medicaidAgencyNumber:
type: string
medicaidIdNumber:
type: string
networkReimbursementId:
type: string
payerId:
$ref: '#/components/schemas/IdentifierV1'
planId:
type: string
type: object
NcpdpCounterType:
properties:
empty:
type: boolean
present:
type: boolean
raw:
type: string
rawEmpty:
type: boolean
rawPresent:
type: boolean
type: object
StatusV1:
properties:
additionalMessageInformation:
items:
$ref: '#/components/schemas/AdditionalMessageInformationGroupingV1'
type: array
additionalMessageInformationCount:
type: string
approvedMessageCode:
items:
type: string
type: array
approvedMessageCodeCount:
type: string
authorizationNumber:
type: string
helpDeskTelephone:
$ref: '#/components/schemas/IdentifierV1'
internalControlNumber:
type: string
rejectDetails:
items:
$ref: '#/components/schemas/RejectDetailsV1'
type: array
transactionReferenceNumber:
type: string
transactionResponseStatus:
type: string
url:
type: string
type: object
MessageSegment:
properties:
empty:
type: boolean
message:
$ref: '#/components/schemas/NcpdpAlphaNumericType'
present:
type: boolean
type: object
DurOrPpsSegment:
properties:
durOrPpsGroupings:
items:
$ref: '#/components/schemas/DurOrPpsGrouping'
type: array
empty:
type: boolean
present:
type: boolean
type: object
NcpdpCountType:
properties:
empty:
type: boolean
present:
type: boolean
raw:
type: string
rawEmpty:
type: boolean
rawPresent:
type: boolean
type: object
HeaderRequestV1:
properties:
chainID:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 30.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 30
type: string
dateOfService:
errorMessage:
format: invalid date.
type: invalid type.
example: '2023-10-01'
format: rxn-date
type: string
externalMessageId:
errorMessage:
maxLength: exceeds the maximum limit of 30.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected string.
maxLength: 30
pattern: ^[0-9]*$
type: string
sourceSystemId:
errorMessage:
maxLength: exceeds the maximum limit of 30.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected string.
maxLength: 30
pattern: ^[0-9]*$
type: string
standard:
errorMessage:
required:
standardName: standardName is required.
transactionType: transactionType is required.
type: type is required.
versionOrReleaseNumber: versionOrReleaseNumber is required.
properties:
standardName:
enum:
- TELECOM
- ''
errorMessage:
enum: invalid value, only expected TELECOM.
type: invalid type, expected string.
type: string
transactionType:
enum:
- B1
- B2
- B3
- C1
- C2
- C3
- D1
- E1
- N1
- N2
- N3
- P1
- P2
- P3
- P4
- S1
- S2
- S3
- ''
errorMessage:
enum: invalid value, expected values are B1,B2,B3,C1,C2,C3,D1,E1,N1,N2,N3,P1,P2,P3,P4,S1,S2,S3.
maxLength: exceeds the maximum limit of 2.
type: invalid type, expected string.
maxLength: 2
type: string
type:
enum:
- request
- response
- ''
errorMessage:
enum: invalid value, expected values are request or response.
type: invalid type, expected string.
type: string
versionOrReleaseNumber:
enum:
- D0
- ''
errorMessage:
enum: invalid value, only expected D0.
maxLength: exceeds the maximum limit of 2.
type: invalid type, expected string.
maxLength: 2
type: string
required:
- standardName
- versionOrReleaseNumber
- transactionType
- type
type: object
transactionCode:
enum:
- B1
- B2
- B3
- C1
- C2
- C3
- D1
- E1
- N1
- N2
- N3
- P1
- P2
- P3
- P4
- S1
- S2
- S3
- ''
errorMessage:
enum: invalid value, expected values are B1,B2,B3,C1,C2,C3,D1,E1,N1,N2,N3,P1,P2,P3,P4,S1,S2,S3.
maxLength: exceeds the maximum limit of 2.
type: invalid type, expected string.
maxLength: 2
type: string
type: object
PayerOrHealthPlanIdGrouping:
properties:
empty:
type: boolean
payerOrHealthPlanId:
$ref: '#/components/schemas/NcpdpAlphaNumericType'
payerOrHealthPlanIdQualifier:
$ref: '#/components/schemas/NcpdpAlphaNumericType'
present:
type: boolean
type: object
NcpdpDecimalType:
properties:
empty:
type: boolean
present:
type: boolean
raw:
type: string
rawEmpty:
type: boolean
rawPresent:
type: boolean
type: object
CouponV1:
properties:
number:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 45.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 45
type: string
type:
errorMessage:
maxLength: exceeds the maximum limit of 2.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected number.
maximum: 99
minimum: 0
type: number
valueAmount:
errorMessage:
maxLength: exceeds the maximum limit of 13.
pattern: not valid amount.
type: invalid type, expected string.
maxLength: 13
pattern: ^-?(\d{1,6}(?:[.]\d{1,6})?)?$
type: string
type: object
ClaimV1:
properties:
preferredProduct:
items:
$ref: '#/components/schemas/PreferredProductGroupingV1'
type: array
prescriptionServiceReferenceNumberId:
$ref: '#/components/schemas/IdentifierV1'
type: object
IntermediarySegment:
properties:
empty:
type: boolean
intermediaryHelpDeskSupportTypeCount:
$ref: '#/components/schemas/NcpdpCountType'
intermediaryHelpDeskSupportTypeGroupings:
items:
$ref: '#/components/schemas/IntermediaryHelpDeskSupportTypeGrouping'
type: array
present:
type: boolean
responseIntermediaryAuthorizationCount:
$ref: '#/components/schemas/NcpdpCountType'
responseIntermediaryAuthorizationGroupings:
items:
$ref: '#/components/schemas/ResponseIntermediaryAuthorizationGrouping'
type: array
type: object
AdditionalDocumentationV1:
properties:
additionalDocumentationTypeId:
description: 006 - Medicare equals 04.04B Lymphedema Pumps, 007 - Medicare equals 04.05C Osteogenesis Stimulator, 008 - Medicare equals 06.03B Transcutaneous Electrical NerveStimulator (TENS), 009 - Medicare equals 07.03A Seat Lift Mechanisms, 012 - Medicare equals 09.02 Infusion Pump, 015 - Medicare equals 484.03 Oxygen, 016 - Medicare equals 10.03 Enteral and Parenteral Nutrition, 017 - Medicare equals 11.02 Section C Continuation Form
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 9.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 9
type: string
lengthOfNeed:
errorMessage:
minProperties: must have at least one property.
minProperties: 1
properties:
days:
errorMessage:
maxLength: exceeds the maximum limit of 3.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected string.
maxLength: 3
pattern: ^[0-9]*$
type: string
hours:
errorMessage:
maxLength: exceeds the maximum limit of 3.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected string.
maxLength: 3
pattern: ^[0-9]*$
type: string
lifetime:
errorMessage:
maxLength: exceeds the maximum limit of 3.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected string.
maxLength: 3
pattern: ^[0-9]*$
type: string
months:
errorMessage:
maxLength: exceeds the maximum limit of 3.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected string.
maxLength: 3
pattern: ^[0-9]*$
type: string
weeks:
errorMessage:
maxLength: exceeds the maximum limit of 3.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected string.
maxLength: 3
pattern: ^[0-9]*$
type: string
years:
errorMessage:
maxLength: exceeds the maximum limit of 3.
pattern: invalid value, only numeric characters are allowed.
type: invalid type, expected string.
maxLength: 3
pattern: ^[0-9]*$
type: string
required:
- hours
- days
- weeks
- months
- years
- lifetime
type: object
prescriberOrSupplierDateSigned:
errorMessage:
format: invalid date.
type: invalid type, expected string.
example: '2023-10-01'
format: rxn-date
type: string
question:
items:
errorMessage:
required:
alphanumericResponse: alphanumericResponse is required.
dateResponse: dateResponse is required.
dollarAmountResponse: dollarAmountResponse is required.
numberOrLetter: numberOrLetter is required.
numericResponse: numericResponse is required.
percentResponse: percentResponse is required.
properties:
alphanumericResponse:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 90.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 90
type: string
dateResponse:
errorMessage:
format: invalid date.
type: invalid type, expected string.
example: '2023-10-01'
format: rxn-date
type: string
dollarAmountResponse:
errorMessage:
maxLength: exceeds the maximum limit of 16.
pattern: not valid amount.
type: invalid type, expected string.
maxLength: 16
pattern: ^-?(\d{1,9}(?:[.]\d{1,6})?)?$
type: string
numberOrLetter:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 9.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 9
type: string
numericResponse:
errorMessage:
maxLength: exceeds the maximum limit of 11.
pattern: invalid value,only numeric expected.
type: invalid type, expected string.
maxLength: 11
pattern: ^[0-9]*$
type: string
percentResponse:
errorMessage:
maxLength: exceeds the maximum limit of 5.
pattern: not valid percent.
type: invalid type, expected string.
maxLength: 5
pattern: ^(\d{1,3}(?:[.]\d{1,2})?)?$
type: string
required:
- numberOrLetter
- percentResponse
- dateResponse
- dollarAmountResponse
- numericResponse
- alphanumericResponse
type: object
type: array
requestPeriodBeginDate:
errorMessage:
format: invalid date.
type: invalid type, expected string.
example: '2023-10-01'
format: rxn-date
type: string
requestPeriodRecertOrRevisedDate:
errorMessage:
format: invalid date.
type: invalid type, expected string.
example: '2023-10-01'
format: rxn-date
type: string
requestStatus:
description: Code identifying type of request. 0 - Not Specified, 1 - Initial, 2 - Revision, 3 - Recertification
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 3.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 3
type: string
supportingDocumentation:
errorMessage:
format: invalid value, only printable characters are allowed.
maxLength: exceeds the maximum limit of 195.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 195
type: string
type: object
IntermediaryHelpDeskBusinessUnitTypeGrouping:
properties:
empty:
type: boolean
intermediaryHelpDeskBusinessUnitType:
$ref: '#/components/schemas/NcpdpCodeType'
intermediaryHelpDeskContactInformation:
$ref: '#/components/schemas/NcpdpAlphaNumericType'
intermediaryHelpDeskContactInformationExtension:
$ref: '#/components/schemas/NcpdpAlphaNumericType'
intermediaryHelpDeskContactInformationQualifier:
$ref: '#/components/schemas/NcpdpCodeType'
present:
type: boolean
type: object
PriorAuthorizationV1:
properties:
authorizationNumber:
errorMessage:
format: invalid value for authorizationNumber
maxLength: exceeds the maximum limit of 60.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 60
type: string
authorizedRepresentative:
errorMessage:
minProperties: must have at least one property.
minProperties: 1
properties:
address:
errorMessage:
minProperties: must have at least one address property.
minProperties: 1
properties:
cityName:
errorMessage:
format: invalid city name.
maxLength: exceeds the maximum limit of 60.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 60
type: string
postalCode:
errorMessage:
format: invalid postal code.
maxLength: maximum length must be 15.
type: invalid type, expected string.
format: zip-or-postal-code
maxLength: 15
type: string
stateProvinceCode:
enum:
- AL
- AK
- AZ
- AR
- CA
- CO
- CT
- DE
- DC
- FM
- FL
- GA
- GU
- HI
- ID
- IL
- IN
- IA
- KS
- KY
- LA
- ME
- MD
- MA
- MI
- MN
- MS
- MO
- MT
- NE
- NV
- NH
- NJ
- NM
- NY
- NC
- ND
- MP
- OH
- OK
- OR
- PW
- PA
- PR
- RI
- SC
- SD
- TN
- TX
- UT
- VT
- VI
- VA
- WA
- WV
- WI
- WY
- AB
- BC
- MB
- NB
- NF
- NL
- NS
- NT
- 'ON'
- PE
- QC
- SK
- YT
- UM
- ''
errorMessage:
enum: invalid state or province.
maxLength: maximum length must be 2.
type: invalid type, expected string.
maxLength: 2
type: string
streetLine1:
errorMessage:
format: invalid street line 1 value.
maxLength: exceeds the maximum limit of 90.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 90
type: string
type: object
name:
errorMessage:
minProperties: must have at least one name property.
minProperties: 1
properties:
first:
errorMessage:
format: invalid first name
maxLength: exceeds the maximum limit of 105.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 105
type: string
last:
errorMessage:
format: invalid last name
maxLength: exceeds the maximum limit of 105.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 105
type: string
middle:
errorMessage:
format: invalid middle name
maxLength: exceeds the maximum limit of 105.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 105
type: string
prefix:
errorMessage:
format: invalid prefix value
maxLength: exceeds the maximum limit of 9.
type: invalid type, expected string.
format: ncpdp-alphanumeric
maxLength: 9
type: string
suffix:
errorMessage:
format: invalid suffix value
maxLength: exceeds the maximum limit of 9.
# --- truncated at 32 KB (169 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/optum/refs/heads/main/openapi/optum-telecom-format-api-openapi.yml