Product syncing APIs
Products must exist in Product Information Manager before serial number information can be synced to allow members of the downstream supply chain to verify against those products. These APIs allow Producers to sync product master data to Product Information Manager, which can automatically generate Product Directory records against which members of the downstream supply chain can verify.
Once product master data has been added or updated this way, Producers can configure rules that determine how data is synced from Master Data Exchange to Product Information Manager, specifying the target markets in which those rules should apply. Product master data must be complete and up to date in Master Data Exchange before sync rules can be set.
Add or Update Product Master Data (XML)
Producers add or update product master data in Master Data Exchange using the Product Master Data asynchronous message, which captures the full master data record for products that are subject to track and trace requirements. Producers use this message to provide data for each product, whether added or updated, in a single message. When providing updates to existing product master data, providing an entire list of all records is not required. Only the Product Master Data records for products whose master data has changed need to be submitted. However, when submitting an updated record, the entire product record must be submitted.
Once product master data is added and updated via this API, Producers can set data sync rules to automatically populate Product Directory records in Product Information Manager (Product Verification), removing the need to manually upload and maintain product information.


Data Element | Occurs Length |
Type | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
mdx:MDXProductMasterMessage | - |
1...1- | Required. Root element of message. | ||||||
mdx:ControlFileHeader | - |
1...1- | Required. XML file control header record. | ||||||
cmn:FileSenderNumber | 1/20 |
1...1String | Required. File sender's company identifier.1 | ||||||
cmn:FileReceiverNumber | 1/20 |
1...1String | Required. File recipient's company identifier.2 | ||||||
cmn:FileControlNumber | 1/* |
1...1String | Required. Unique file control ID number.3 | ||||||
cmn:FileDate | 10/10 |
1...1Date | Required. Date file generated in XML YYYY-MM-DD format.4 | ||||||
cmn:FileTime | 9/9 |
1...1Time | Required. Time file generated in XML HH:MM:SSZ format (must be GMT).5 | ||||||
mdx:MessageBody | - |
1...1- | Required. Main body of message. | ||||||
mdx:ProductMasterItem | - |
1...*- | Required. Captures the full master data record for a product. This is a repeating element to enable the ability to provide data for each product in a single message. When providing updates to existing product master data, a full master data dump is not required. Only the product master data records for products whose master data has changed need to be submitted. However, when submitting a change record, the entire product record should be submitted. | ||||||
cmn:PrimaryItemCode | 1/* |
1...1String | Required. Primary product identifier that is used as the key for updating the product master data record. 6 | ||||||
@type | 1/* |
1...1String |
Required. Attribute identifies the item code types and includes same values as above. See the ItemCodeType enumeration list for |
||||||
cmn:NewPrimaryItemCode | 0/* |
0...1String | New primary product identifier to replace the original primary identifier, which will be used as the new key for updating the product master data. 8 | ||||||
@type | 1/* |
1...1String |
Required. Attribute identifies the item code types and includes same values as above. See the ItemCodeType enumeration list for |
||||||
cmn:ProductGroupCode | 0/* |
0...1String | Group product code that associates like products together (e.g. group code for all variations of MigraineMed).10 | ||||||
cmn:ProductStatus | 1/* |
1...1String |
Required. Status of product in the
marketplace or company. See the ProductStatus enumeration list for valid values. |
||||||
cmn:EffectiveDate | 10/10 |
0...1Date | Date that the master data record became effective in YYYY-MM-DD format.12 | ||||||
cmn:RecordStatus | 1/* |
1...1String |
Required. Indicates if the master data
record status is See the RecordStatus enumeration list for valid values. |
||||||
mdx:AlternateItemCodes | - |
0...1- | A list of one or more alternate item codes used to refer to this product. The regulatory or national drug code should be included if it is not the primary item code. For US NDCs, both the 10-digit NDC and 11-digit NDC542 may be included. If receiving messages from trade partners that could be in different NDC formats, such as ASNs, both NDC formats should be included. Multiple internal material numbers can be provided (useful when different internal systems use different item codes). | ||||||
cmn:AlternateItemCode | 1/* |
1...*String | Required. Alternate product identifier that is used to identify the product.14 | ||||||
@type | 1/* |
1...1String |
Required. Attribute identifies the item code types.15 See the ItemCodeType enumeration list for valid values. |
||||||
@action | 0/* |
0...1String | Attribute defining if the
alternate product identifier should be deleted. The DELETE action will only
occur if explicitly set.16 |
||||||
mdx:TargetMarketList | - |
0...1- | Required. A list of one or more target
market countries where the product may be distributed. |
||||||
mdx:TargetMarket | - |
0...*- |
Required. It is highly recommended that this field is populated for all countries. |
||||||
cmn:CountryMarket | 1/3 |
1...1String |
Required.The country using the standard two- or three-letter abbreviation specified in ISO 3166-1alpha-2:1997 country code. 17 ![]() See the ISOCountryCode enumeration list for valid values. |
||||||
cmn:PointOfDispenseVerificationReqt | - |
0...1Boolean | Indicates if product has a
point of dispense verification requirement.18![]() true if left blank. |
||||||
cmn:TraceabilityReqt | - |
0...1Boolean |
Required. Indicates if product has a US
Traceability requirement.
If product is exempt, this value must be set to
|
||||||
cmn:ProductOrigin | 0/* |
0...1String |
Required. Identifies how product was sourced by the company selling the product. This field is used to determine the fields that are populated in the outbound Transaction History / Information / Statement based on how the product was sourced (e.g. omit lot number, omit initial transaction date, etc.).20
See the ProductOrigin enumeration list for valid values. |
||||||
cmn:ProductType | 0/* |
0...1String |
Required. Identifies the type of product.21
For example, only cmn:ProductDescription, cmn:DrugName, and cmn:Manufacturer are required. See the ProductType enumeration list for valid values. |
||||||
cmn:ScheduledDrug | 0/* |
0...1Boolean |
Indicates if a drug is classified under one of the given schedules in India's Drugs and Cosmetic Rules 1945. Specific guidelines for storage, sale, display and prescription pertains to each given schedule. |
||||||
cmn:ManufacturedBy | 0/* |
0...1String | Manufacturer of the product. | ||||||
cmn:ProductionType | 0/* |
0...1String | Identifies the product as an import (Imported ), manufactured locally (LocallyManufactured ), or imported and sub-packed locally (ImportedAndRepackagedLocally ). |
||||||
cmn:MarketingAuthorizationHolderId | 0/* |
0...1String |
Required. Identifier for the marketing authorization holder (MAH) in any company identifier type enumerated by the type attribute.
|
||||||
@type | 0/* |
1...1String |
Required. Attribute that identifies the company ID types for the MAH identifier. See the LocationId enumeration list for valid values. |
||||||
cmn:ContractManufacturerId | 0/* |
0...1String | Identifier for the contract manufacturer organization (CMO) in any company identifier type enumerated by the @type attribute. | ||||||
@type | 0/* |
1...1String |
Required. Attribute that identifies the company ID types for the CMO identifier. See the LocationId enumeration list for valid values. |
||||||
cmn:VirtualContractManufacturerId | 0/* |
0...1String | Identifier for the virtual CMO in any company identifier type enumerated by the type attribute. | ||||||
@type | 0/* |
1...1String |
Attribute that identifies the company ID types for the virtual CMO identifier. See the LocationId enumeration list for valid values. |
||||||
cmn:DistributionPartnerId | 0/* |
0...5String |
Identifies the distribution partner. The field is optional as the MAH may not make use of authorized distributors and distribute the products directly in a market. Any Partner Company or Partner Location can be specified but must resolve to a Partner Company or Partner Location configured in Partner Master Data.22
|
||||||
@type | 1/* |
1...1String |
Required. Identifies the company id types for the distribution partner identifier. See the LocationId enumeration list for valid values. |
||||||
cmn:ProductImage | 0/* |
0...1String | The image of the product, which is uploaded into the DAVA portal, to enable India government to display an image of the product associated with the product data. With a maximum size of 10KB, the image of the product is encoded in base64 format. | ||||||
@mimeType | 0/* |
1...1String |
Mime type of the image from the permitted enumeration list.23 See the ProductImage enumeration list for valid values. |
||||||
@fileName | 0/* |
0...1String | Optional file name of the image.
If the file name is not provided, value defaults to ProductImage.<mimeType> .24 |
||||||
cmn:ProductCategoryIdentifier | 0/* |
0...1String | Product category identifier. | ||||||
cmn:MAHInternalMaterialCode | 0/* |
0...1String | Internal Material Code that the MAH uses in that Target Market, which may be different than the Internal Material Code on the Item Codes tab. | ||||||
cmn:CMOInternalMaterialCode | 0/* |
0...1String | Internal Material Code that the CMO uses in that Target Market, which may be different than the Internal Material Code on the Item Codes tab. | ||||||
cmn:VCMOInternalMaterialCode | 0/* |
0...1String | Represents the Internal Material Code that the Virtual CMO uses in that Target Market. | ||||||
cmn:ReportingItemCode | 1/* |
0...1String | Reporting item code specified for the product and the associated target market.25 | ||||||
@type | 1/* |
1...1String |
Required. Identifies the reporting code types.26 See the ItemCodeType enumeration list for valid values. |
||||||
cmn:RegistrationClassification | 1/* |
0...1String |
Registration classification of the product. See the RegistrationClassification enumeration list for valid values. |
||||||
cmn:PrescriptionDrugType | 1/* |
0...1String |
Prescription drug type indicating the nature of the drug, regulations and requirements, accepted medical use, or potential for abuse. See the PrescriptionDrugType enumeration list for valid values. |
||||||
cmn:PermanentImportLicense | 1/* |
0...1String | Registration number of the imported drug license for drugs that cannot be exported and will remain in the country permanently.27 | ||||||
@endDate | 10/10 |
0...1Date | Last valid date for the imported drug license in XML YYYY-MM-DD format.28 | ||||||
cmn:TemporaryImportLicense | 1/* |
0...1String | Registration number of the imported drug license for drugs that will remain in the country temporarily before being re-exported.29 | ||||||
@endDate | 10/10 |
0...1Date | Last valid date for the imported drug license in XML YYYY-MM-DD format.30 | ||||||
cmn:ImporterId | 1/* |
0...1String | Identifier for the company that is importing the product into the target market.31 | ||||||
@type | 1/* |
1...1String |
Required. Attribute identifying the company ID types for the importer identifier. See the CompanyId enumeration list for valid values. |
||||||
cmn:RepackagingLicenseNumber | 1/* |
0...1String | Repackaging license number. For imported drugs, this is the unique proprietary number of a specific drug produced by a domestic manufacturer, then reviewed and approved by regulatory authorities.32 | ||||||
@endDate | 10/10 |
0...1Date | The repackaging license number end date in YYYY-MM-DD format.33 | ||||||
cmn:RepackagerId | 1/* |
0...1String |
Identifier for the drug repackaging organization. Examples of repackaging include:34
|
||||||
@type | 1/* |
1...1String |
Required. Attribute identifying the company ID types for the sub-packager identifier. See the CompanyId enumeration list for valid values. |
||||||
mdx:DeleteTargetMarket | - |
0...1- | Populate this element only to delete one or more entire market entries from the master data record. It deletes the cmn:CountryMarket and the associated cmn:PointOfDispenseVerification and US Traceability requirement elements. | ||||||
cmn:CountryMarket | 1/3 |
1...*String | Required. The country using the standard two- or three-letter abbreviation specified in ISO 3166-1alpha-2:1997 country code.35 | ||||||
mdx:ExportMarketList | - |
0...1- | List of export to and export from countries including any exemption data. | ||||||
mdx:ExportMarket | - |
0...*- | Indicates the cmn:ExportFromCountry and cmn:ExportToCountry along with exemption data and pricing information. | ||||||
cmn:ExportFromCountry | 0/3 |
1...1String |
The country port where the product is shipped (from the seller to a buyer that is abroad). The country is identified using the standard two or three-letter abbreviation specified in ISO 3166-1alpha-2:1997 country code. See the ISOCountryCode enumeration list for valid values. |
||||||
cmn:ExportToCountry | 0/3 |
0...1String |
The country where the exported products are being received. The country is identified using the standard two or three-letter abbreviation specified in ISO 3166-1alpha-2:1997 country code. See the ISOCountryCode enumeration list for valid values. |
||||||
cmn:UnitPrice | 1/* |
0...1Decimal | Price per unit of the product in the target market. The currency symbol should not be provided. The decimal separator must be a period (. ). There is no restriction on the number of places after the decimal point to support countries that may use three positions. Thousands separator must be omitted.36 |
||||||
@currencyCode | 3/3 |
1...1String |
The currency code in ISO 4217:2015 format. See the ISOCurrencyCode enumeration list for valid values. |
||||||
cmn:TargetMarketExemption | 0/* |
0...1Boolean | Indicates whether the exported product is exempted from complying with the local regulations of the country of the manufacturer in order to comply with regulations of target market that will be importing the drug. | ||||||
cmn:ExportCountryExemptionCode | 1/* |
0...1String |
Specifies the exemption category code for exempted product with the enumeration values. See the ExportCountryExemptionCode enumeration list for valid values. |
||||||
cmn:TargetMarketExemptionReference | 0/* |
0...1String | The name of the law or regulation in the destination country for which the exporter has obtained exemption permission. | ||||||
cmn:TargetMarketExemptionDate | 0/* |
0...1Date | Specifies the date the exemption request is granted to the exporter by the governing agency of the destination country (can be the date of the published law). | ||||||
cmn:ManufacturedBy | 0/* |
0...1String | Manufacturer of the product. Valid values include CMO (contract manufacturer) and MAH (marketing authorization holder). | ||||||
cmn:ManufacturerId | 0/* |
0...1String | Identifier for the CMO in any company identifier type enumerated by the type attribute. | ||||||
@type | 0/* |
1...1String |
Attribute that identifies the company ID types for the CMO identifier. See the CompanyId enumeration list for valid values. |
||||||
mdx:DeleteExportMarket | - |
0...*- | Populate this element only to delete one or more of the entire export market entries from the master data record. The cmn:ExportFromCountry and cmn:ExportToCountry elements are used to identify the record to delete. It will delete the cmn:ExportFromCountry and the associated cmn:ExportToCountry (if there is one), cmn:UnitPrice, cmn:TargetMarketExemption, cmn:TargetMarketExemptionReference, and cmn:TargetMarketExemptionDate elements. | ||||||
cmn:ExportFromCountry | 0/3 |
1...1String |
The country that ships the product (shipped by the seller to a buyer that is abroad). The country is specified using the standard two- or three-letter abbreviation specified in ISO 3166-1alpha-2:1997 country code. See the ISOCountryCode enumeration list for valid values. |
||||||
cmn:ExportToCountry | 0/3 |
0...1String |
The country receiving the exported products. The country is identified using the standard two or three-letter abbreviation specified in ISO 3166-1alpha-2:1997 country code. See the ISOCountryCode enumeration list for valid values. |
||||||
mdx:ItemInfoList | - |
1...1- | Required. Contains product attributes. At least one mdx:ItemInfo attribute must be provided. Additional mdx:ItemInfo attributes can be provided in different languages for products that are distributed in multiple markets. | ||||||
mdx:ItemInfo | - |
1...*- | Required. A list of product attributes in one or more languages. Different countries require different product attributes for regulatory reporting purposes. The country-specific requirements are listed with each data element. | ||||||
cmn:LanguageCode | 1/3 |
1...1String |
Required. The language using the standard two- or three-letter abbreviation specified in ISO 639-1 language code.37 See the Language enumeration list for valid values. |
||||||
cmn:ProductDescription | 1/* |
1...1String | Required. Description of the drug
product (e.g. ALLERGY MED 90 MG CAPS 30 ).38 |
||||||
cmn:Composition | 1/* |
0...1String | Specifies the active and inactive ingredients of the drug product. | ||||||
cmn:Remarks | 0/* |
0...1String | Comments or notes about the product. | ||||||
cmn:ProductCode | 0/* |
0...1String | The regulatory product code associated with the drug product. | ||||||
cmn:DrugName | 1/* |
1...1String | Required. Name of the drug that is displayed on the product label. | ||||||
cmn:GenericName | 0/* |
0...1String | Required. Indicates the chemical name assigned to a drug product. The generic name describes the chemical make up (atomic or molecular structure) of the drug in contrast to the brand name that is used to market the drug. | ||||||
cmn:Manufacturer | 1/* |
1...1String | Required. Name of the manufacturer or re-packager as it appears on the product label. | ||||||
cmn:ManufacturerId | 0/* |
0...1String |
Identifier of the manufacturer of the drug.39
|
||||||
@type | 1/* |
0...1String |
Attribute identifies the company ID types.40 See the CompanyId enumeration list for valid values. |
||||||
cmn:Strength | 0/* |
0...1String |
Required. Strength of the product (e.g. 30 mg, 50 ml). |
||||||
cmn:DosageForm | 0/* |
0...1String | Required. Dosage form of the product (e.g. tablet, capsule).41 | ||||||
cmn:PackageSize | 0/* |
0...1String |
Required. Quantity in the unit package (e.g. 30 count).42 |
||||||
cmn:MinTemperature | 0/* |
0...1String | Indicates the coldest temperature to which the product can be exposed to without compromising its quality and safety. | ||||||
cmn:MaxTemperature | 0/* |
0...1String |
Indicates the hottest temperature to which the product can be exposed to without compromising its quality and safety. |
||||||
cmn:TemperatureScale | 0/* |
0...1String |
The temperature scale.43 See the TemperatureScale enumeration list for valid values. |
||||||
cmn:LightSensitive | - |
0...1Boolean |
Indicates if the product is sensitive to light. Valid values:
|
||||||
cmn:MarketDosageForm | 0/* |
0...1String |
Form in which the product is dispensed.44 See the MarketDosageForm enumeration list for valid values. |
||||||
cmn:ShelfLife | 0/* |
0...1Integer | The time period for which the product remains viable. | ||||||
@shelfLifeUOT | 0/* |
0...1String |
Shelf life unit of time. Valid values:
|
||||||
mdx:DeleteItemInfo | - |
0...1- | Populate this element only to delete one or more entire ItemInfo entries from the master data record. It will delete all ItemInfo data elements associated with the specified language. | ||||||
cmn:LanguageCode | 1/3 |
1...*String |
Required. The language using the
standard two- or three-letter abbreviation specified in ISO 639-1 language
code. |
||||||
mdx:PackagingInfoList | - |
0...1- | A list of one or more packaging item codes and associated serialization attributes. This information is used for both serialization management and for populating regulatory reporting. Country specific requirements are identified with each field. | ||||||
mdx:PackagingInfo | - |
0...1- | - | ||||||
cmn:PackagingCode | 1/* |
1...1String | Required. Serialization packaging code
identifier value for the unit of measure (e.g. each, inner pack, case).46
|
||||||
@type | 1/* |
1...1String |
Required. Enumeration of serialization
packaging code identifier types. See the PkgCode enumeration list for valid values. |
||||||
cmn:PackagingUOM | 1/* |
1...1String |
Required. Unit of measure for the
packaging code. See the UOM enumeration list for valid values. |
||||||
cmn:MaxBatchSize | - |
0...1Integer |
The maximum batch size that is acceptable for the product.49
|
||||||
cmn:AcceptableYield | - |
0...1Decimal |
Conditionally required when cmn:MaxBatchSize is populated. The low end percentage of a standard acceptable range of the Batch size.50
|
||||||
cmn:MinimumYield | - |
0...1Decimal |
Conditionally required when cmn:MaxBatchSize is populated. The lowest end percentage of an acceptable Batch size. Permitted values range from
|
||||||
cmn:ContainerAggregationQty | 0/* |
0...1String |
Required. The number of serial numbers that will be aggregated to the Packaging UOM.52
|
||||||
cmn:PackagingRatio | 0/* |
0...1String | The ratio for the UOM conversion factor (e.g. 1:48:2304). 1:5:10 refers to one large container (the case) having 5 smaller containers (inner pack/bundle) which have a total of 10 units (each inner pack/bundle has 2 units). 1:50 refers to one container (the case) having 50 units.53 | ||||||
cmn:SerializationType | 0/* |
0...1String |
Indicates the type of serialization required for the product packaging code.54 See the Serialization enumeration list for valid values. |
||||||
cmn:RequiresAggregation | 0/* |
0...1String |
Identifies if the product is configured to be aggregated or not aggregated.55 See the Aggregation enumeration list for valid values. |
||||||
cmn:FilterValue | 0/* |
0...1String | Filter value associated with GTIN-14.56 | ||||||
cmn:CompanyPrefix | 0/* |
0...1String | Required. GS1 Company Prefix in GTIN-14.57 | ||||||
cmn:CodeVersion | 0/* |
0...1String | Product code version number (e.g. 81, 88), per configuration of China Master Data with China CFDA application.58 | ||||||
cmn:CodeLevel | 0/* |
0...1String | Packaging level associated
with the CN ResCode, with 1 being innermost level, per configuration of China
Master Data with China CFDA application.59 |
||||||
cmn:RecordStatus | 1/* |
1...1String |
Required. Indicates if packaging code
master data record is See the RecordStatus enumeration list for valid values. |
||||||
mdx:DeletePackagingInfo | - |
0...1- | Populate this element only to delete one or more entire PackagingInfo entries from the master data record. It will delete all PackagingInfo data elements associated with the packaging code. | ||||||
cmn:PackagingCode | 1/* |
1...*String | Required. Serialization packaging code
identifier value for the unit of measure (e.g. each, inner pack, case).![]() |
||||||
@type | 1/* |
1...1String |
Required. Enumeration of serialization packaging code identifier types.61 See the PkgCode enumeration list for valid values. |

Below is a message example for updating an existing master data item for US serialized product for DSCSA requirements (PackingInfoList is added with GTIN serialization information for Eaches and Cases).
When a master data record is changed, the entire record must be resubmitted.
<?xml version="1.0" encoding="UTF-8"?> <mdx:MDXProductMasterMessage xmlns:mdx="urn:tracelink:mapper:sl:master_data_exchange" xmlns:cmn="urn:tracelink:mapper:sl:mdx:commontypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <mdx:ControlFileHeader> <cmn:FileSenderNumber>8888884043588</cmn:FileSenderNumber> <cmn:FileReceiverNumber>8888884043588</cmn:FileReceiverNumber> <cmn:FileControlNumber>20180612063032012</cmn:FileControlNumber> <cmn:FileDate>2018-06-12</cmn:FileDate> <cmn:FileTime>06:30:42Z</cmn:FileTime> </mdx:ControlFileHeader> <mdx:MessageBody> <mdx:ProductMasterItem> <cmn:PrimaryItemCode type="INTERNAL_MATERIAL_CODE">133991</cmn:PrimaryItemCode> <cmn:ProductGroupCode>10003</cmn:ProductGroupCode> <cmn:ProductStatus>Released</cmn:ProductStatus> <cmn:EffectiveDate>2018-06-14</cmn:EffectiveDate> <cmn:RecordStatus>Active</cmn:RecordStatus> <mdx:AlternateItemCodes> <cmn:AlternateItemCode type="US_NDC542">05552-9900-33</cmn:AlternateItemCode> </mdx:AlternateItemCodes> <mdx:TargetMarketList> <mdx:TargetMarket> <cmn:CountryMarket>US</cmn:CountryMarket> <cmn:TraceabilityReqt>true</cmn:TraceabilityReqt> <cmn:ProductOrigin>DirectPurchaseManufacturer</cmn:ProductOrigin> </mdx:TargetMarket> </mdx:TargetMarketList> <mdx:ItemInfoList> <mdx:ItemInfo> <cmn:LanguageCode>EN</cmn:LanguageCode> <cmn:ProductDescription>FLU MED 120MG CAPS 90CT</cmn:ProductDescription> <cmn:DrugName>Flu Med</cmn:DrugName> <cmn:Manufacturer>Clara Manufacturing</cmn:Manufacturer> <cmn:Strength>120MG</cmn:Strength> <cmn:DosageForm>CAPS</cmn:DosageForm> <cmn:PackageSize>90</cmn:PackageSize> </mdx:ItemInfo> </mdx:ItemInfoList> <mdx:PackagingInfoList> <mdx:PackagingInfo> <cmn:PackagingCode type="GTIN-14">00882026050906</cmn:PackagingCode> <cmn:PackagingUOM>EA</cmn:PackagingUOM> <cmn:SerializationType>Sequential</cmn:SerializationType> <cmn:RequiresAggregation>Aggregated</cmn:RequiresAggregation> <cmn:FilterValue>1</cmn:FilterValue> <cmn:CompanyPrefix>088202</cmn:CompanyPrefix> <cmn:RecordStatus>Active</cmn:RecordStatus> </mdx:PackagingInfo> <mdx:PackagingInfo> <cmn:PackagingCode type="GTIN-14">50882026050901</cmn:PackagingCode> <cmn:PackagingUOM>CA</cmn:PackagingUOM> <cmn:SerializationType>Sequential</cmn:SerializationType> <cmn:RequiresAggregation>Aggregated</cmn:RequiresAggregation> <cmn:FilterValue>2</cmn:FilterValue> <cmn:CompanyPrefix>088202</cmn:CompanyPrefix> <cmn:RecordStatus>Active</cmn:RecordStatus> </mdx:PackagingInfo> </mdx:PackagingInfoList> </mdx:ProductMasterItem> </mdx:MessageBody> </mdx:MDXProductMasterMessage>

Data Element | Error Message | Description |
---|---|---|
Class 1 Errors | ||
cmn:PrimaryItemCode | @type | Valid Primary Item Code Type is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
cmn:NewPrimaryItemCode | @type | New primary item code type attribute is required when source NewPrimaryItemCode is populated !!! | The error occurs if cmn:NewPrimaryItemCode is populated, but the source is empty or null. |
Valid New Primary Item Code Type is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. | |
cmn:ProductStatus | ProductStatus is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
ProductStatus is required !!! | The error occurs if the source is empty or null. | |
cmn:RecordStatus | RecordStatus is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
RecordStatus is required !!! | The error occurs if the source is empty or null. | |
cmn:AlternateItemCode | Alternate item code in the source AlternateItemCode is required !!! | The error occurs if the source is missing or empty and mdx:AlternateItemCodes is present. |
cmn:AlternateItemCode | @type | Alternate item code type attribute is required when source AlternateItemCode is populated !!! | The error occurs if the source is missing or empty, but cmn:AlternateItemCode is populated. |
Valid AlternateItemCode type is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. | |
cmn:AlternateItemCode | @action | AlternateItemCode action is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
mdx:TargetMarket | cmn:ProductOrigin | ProductOrigin is required for US market !!! | The error occurs if the source
cmn:ProductOrigin is missing or empty for US cmn:CountryMarket. |
mdx: TargetMarket | cmn:ProductType | Invalid value provided for ProductType !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
mdx:TargetMarket | cmn:ReportingItemCode | @type | Valid Reporting Item Code Type is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
cmn:ScheduledDrug | ScheduledDrug required for Product <CountryDrugCode type> <CountryDrugCode>!!! | The error occurs if cmn:CountryMarket = IN or cmn:ExportFromCountry = IN , and the source is null or empty.
|
cmn:ManufacturedBy | Valid ManufacturedBy value is required !!! | The error occurs if source does not equal CMO or MAH . |
cmn:ProductionType | Valid ProductionType is required !!! | The error occurs if the source does not equal Imported , LocallyManufactured , or ImportedandRepackagedLocally . |
cmn:MarketingAuthorizationHolderId | @type | Valid MarketingAuthorizationHolderId type is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
If MarketingAuthorizationHolderId present, type attribute is required !!! | The error occurs if cmn:MarketingAuthorizationHolderId is populated, but the source is empty or null. | |
cmn:ContractManufactureId | @type | Valid ContractManufacturerId type is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
If ContractManufacturerId present, type attribute is required !!! | The error occurs if cmn:ContractManufacturerId is populated, but the source is empty or null. | |
cmn:VirtualContractManufacturerId | @type | If VirtualContractManufacturerId present, type attribute is required !!! | The error occurs if cmn:VirtualContractManufacturerId is populated, but the source is empty or null. |
Valid VirtualContractManufacturerId type is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. | |
cmn:DistributionPartnerId | @type | Valid distribution partner ID type is required !!! | The error occurs if a partner identifier value is provided, but it is considered invalid against the partner master data lookup (i.e. a mismatch). |
If Distribution partner ID present, type attribute is required !!! | The error occurs if cmn:DistributionPartnerId is populated, but the source is empty or null. | |
Distribution Partner ID Type Value must be, "BR_CNPJ", "BR_CPF", "BR_CNES", "BR_PROF_REG", "CN_CHINA_ID", "COMPANYID", "DUNS", "DUNS4", "GCP", "GLN", "SGLN", "COMPANYSITEID", "DEA", "HIN", "IN_COMPANY_ID", "KR_BUS_REG_NUMBER", "KR_PROVIDER_CODE". | The error occurs if the source is not a valid value from the enumeration list. | |
cmn:ProductImage | @mimeType | Valid Export From Country is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
mdx:ExportMarket | cmn:ExportFromCounty | Valid Export From Country is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
ExportFromCountry is required for ExportMarketList !!! | The error occurs if mdx:ExportMarketList is populated, but the source is empty or null. | |
mdx:ExportMarket | cmn:ExportToCountry | Valid Export To Country is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
cmn:ExportCountryExemptionCode | Valid Export Country Exemption Code is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
mdx:ExportMarket | cmn:ManufacturerId | @type | ManufacturerId attribute type is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
Valid ManufacturerId type is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. | |
If ManufacturerId present, type attribute is required !!! | The error occurs if cmn:ManufacturerId is populated, but the source is empty or null. | |
mdx:DeleteExportMarket | cmn:ExportFromCounty | Valid Export From Country is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
ExportFromCountry is required for DeleteExportMarket !!! | The error occurs if mdx:DeleteExportMarket is populated, but the source is empty or null. | |
mdx:DeleteExportMarket | cmn:ExportToCountry | Valid Export To Country is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
ItemInfo | cmn:LanguageCode | LanguageCode is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
EN LanguageCode is required for US and EU FMD markets !!! | The error occurs if the source cmn:LanguageCode is missing or empty for US or an EU
cmn:CountryMarket.
|
|
LanguageCode is required !!! | The error occurs if the source is empty or null. | |
mdx:ItemInfo | cmn:ManufacturerId | @type | ManufacturerId attribute type is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
Manufacturer Id type attribute is required when source ManufacturerId is populated !!! | The error occurs if cmn:ManufacturerId is populated, but the source is empty or null. | |
Valid ManufacturerId type is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. | |
If ManufacturerId present, type attribute is required !!! | The error occurs if cmn:ManufacturerId is populated, but the source is empty or null. | |
mdx:ItemInfo | cmn:Strength | Strength is required !!! | The error occurs if the source is missing or empty for
any TargetMarketList | TargetMarket cmn:ProductType = PHARMACEUTICAL in any
language. |
mdx: ItemInfo | cmn:DosageForm | DosageForm is required for US market and EN Language !!!" | The error occurs if the source cmn:ProductCode is missing or empty for US cmn:CountryMarket and cmn:ProductType = PHARMACEUTICAL for EN cmn:ItemInfo. |
mdx:ItemInfo | cmn:PackageSize | PackageSize is required for US and EU markets and EN Language !!! | The error occurs if the source cmn:PackageSize is missing or empty for US or EU
cmn:CountryMarket AND cmn:ProductType = PHARMACEUTICAL , in EN cmn:ItemInfo. |
mdx:DeleteItemInfo | cmn:LanguageCode | Valid LanguageCode is required !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
mdx:PackagingInfo | cmn:PackagingCode | PackagingInfo is present: Packaging code in the source PackagingCode is required !!!" | The error occurs if the required source is missing or null. |
cmn:PackagingCode | @type | Packaging code type attribute is required when source PackagingCode is populated !!! | The error occurs if cmn:PackagingCodeis populated, but the source is empty or null. |
PackagingCode attribute type is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. | |
mdx:PackagingInfo | cmn:PackagingUOM | If a value is provided in the source that is not in the enumerator list, the error results. PackagingUOM is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
PackagingUOM is required !!! | The error occurs if the source is empty or null. | |
cmn:AcceptableYield | Acceptable yield value is between 1 and 100 !!! | The error occurs if the source is less than 1 or greater than 100 , cmn:MaxBatchSize is populated, and cmn:PackagingUOM = EA . |
Acceptable yield value is required if maximum batch size is populated !!! | The error occurs if cmn:MaxBatchSize is populated and cmn:PackagingUOM = EA , but the source is not populated.
|
|
cmn:MinimumYield | Minimum yield value is required if maximum batch size is populated !!! | The error occurs if the cmn:MaxBatchSize is populated, cmn:PackagingUOM = EA , but source is not populated.
|
Minimum yield value must be between 1 and the acceptable yield value !!! | The error occurs if the source is less than 1 or greater than the cmn:AcceptableYield, cmn:MaxBatchSize is populated, and cmn:PackagingUOM = EA . |
|
mdx:PackagingInfo | cmn:SerializationType | SerializationType is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
mdx: PackagingInfo | cmn:RequiresAggregation | RequiresAggregation is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
mdx:PackagingInfo | cmn:CompanyPrefix | CompanyPrefix is required for GTIN-13 and GTIN-14 PackagingCode types !!! | The error occurs if the source cmn:CompanyPrefix is missing or empty for GTIN-13 or GTIN-14 CompanyPrefix type. |
mdx:PackagingInfo | cmn:RecordStatus | RecordStatus is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
RecordStatus is required !!! | The error occurs if the source is empty or null. | |
mdx:DeletePackagingInfo | cmn:PackagingCode | Packaging code in the source PackagingCode is required !!! | The error occurs if mdx:DeletePackagingInfo is populated, but the source is empty or null. |
mdx:DeletePackagingInfo | cmn:PackagingCode | @type | PackagingCode attribute type is not one of the allowed enumeration values !!! | The error occurs if the source is present, but there is no matching entry in the lookup file. |
Packaging code type attribute is required when source PackagingCode is populated !!! | The error occurs if cmn:PackagingCode is populated, but the source is empty or null. | |
Class 2 Errors | ||
cmn:DistributionPartnerId | Submit up to 100 Distribution Partner IDs, but no more. | The error occurs if the Distribution Partners list is larger than 100. |
DistributionPartnerId <distributionPartner> is not an existing Partner Company or Partner Location in Partner Master Data. | The error occurs if the Distribution Partners list does not contain a valid ID from Master Data. | |
At least one Distribution Partner value required for <targetMarketMD.country>. | The error occurs if the source is empty or null. | |
cmn:PackageSize | PackageSize can only be a positive whole number. | The error occurs if the source is not a positive integer for an EU country with a language set to EN . |
cmn:CompanyPrefix | companyPrefix must be a valid positive whole number. | The error occurs if the entered source is less than or equal to 0. |
cmn:CompanyPrefix | CompanyPrefix cannot be missing or empty. | The error occurs if the required source is missing or null. |
cmn:ContainerAggregationQty | ContainerAggregationQty cannot be missing or empty. | |
cmn:ContainerAggregationQty | ContainerAggregationQty must be a valid number greater than or equal to zero. | The error occurs if the entered source is less than or equal to 0. |
country, language | <languageType.toString> for <displayLanguage> must be entered as a LanguageCode if <country> is a target market. | The error occurs if a specific target market is set, but no corresponding language exists. |
deleteCountry | Unable to delete CountryMarket <deleteCountry> for this product since it does not exist. (deleteCountry). | The error occurs if deletion of a specified country market is attempted, but that market does not exist for that product. |
deleteFromCountry | Unable to delete ExportFromCountry <deleteFromCountry> with ExportToCountry <deleteToCountry> for this product since it does not exist. (deleteFromCountry, deleteToCountry). | The error occurs if deletion of a specific export from country with an export to country is attempted, but it does not exist. |
deleteToCountry | Unable to delete ExportFromCountry <deleteFromCountry> with ExportToCountry <deleteToCountry> for this product since it does not exist. (deleteFromCountry, deleteToCountry). | The error occurs if deletion of a specific export from country with an export to country is attempted, but it does not exist. |
deleteLanguage | Unable to delete LanguageCode <deleteLanguage> for this product since it does not exist. (deleteLanguage) | The error occurs if deletion of a language code is attempted, but it does not exist for the specified product. |
deletePackagingCode.getType,deletePackagingCode.getValue | Unable to delete PackagingCode <deletePackagingCode.getType> <deletePackagingCode.getValue> since it does not exist. (deletePackagingCode.getType, deletePackagingCode.getValue) | The error occurs if deletion of a packaging code is attempted, but it does not exist. |
cmn:EMVSFormTypeEN | EMVSFormTypeEN cannot be missing or empty. | The error occurs if any EU or EU FMD country is specified as the cmn:CountryMarket, but the source is empty or null. |
cmn:FilterValue | FilterValue cannot be missing or empty. | The error occurs if the required source is missing or null. |
genericName | GenericName cannot be missing or empty. | The error occurs if any EU or EU FMD country is specified as the cmn:CountryMarket, but the source is empty or null. |
itemInfo.getDosageForm | DosageForm cannot be missing or empty. | The error occurs if the required source is missing or null. |
itemInfo.getManufacturer | <itemInfo.getManufacturer> cannot be missing or empty. | The error occurs if the required source is missing or null. |
itemInfo.getProductCode | ProductCode cannot be missing or empty. | The error occurs if the required source is missing or null. |
itemInfo.getProductDescription | ProductDescription cannot be missing or empty. | The error occurs if the required source is missing or null. |
itemInfo.getStrength | Strength cannot be missing or empty. | The error occurs if the cmn:CountryMarket is CN , or any EU or EU FMD country, but the source is empty or null. |
itemInfoMD.drugName | DrugName cannot be missing or empty. | The error occurs if the required source is missing or null. |
itemInfoMD.manufacturer | Manufacturer cannot be missing or empty. | The error occurs if the required source is missing or null. |
label | <label> cannot be null. | The error occurs if the required source is missing or null. |
cmn:LanguageCode | LanguageCode <language> is listed more than once for this product (language). | The error occurs if more than one language code is listed for a product. |
EN (for English) must be entered as a LanguageCode if a European target market is included. | The error occurs if any EU or EU FMD country is specified as the cmn:CountryMarket, but the source does not equal EN . |
|
cmn:ManufacturerId | @type | ManufacturerId must be of type GCP. | The error occurs if the target country is India and the language code is English, but the
cmn:ManufacturerId | @type is not GCP . |
manufacturerIdType, manufacturerIdValue | Invalid ManufacturerId <mfgId.getType> <mfgId.getValue> since it does not exist in Company Master Data or Partner Master Data (mfgId.getType, mfgId.getValue). | The error occurs if a manufacturer ID was specified, but it does not exist in company master data or partner master data. |
cmn:MarketingAuthorizationHolderId | Country Market MAH ID value required for <targetMarketMD.country>. | The error occurs if the Manufacturer ID is missing when required (EU or EU FMD market). |
mkt | CountryMarket <mkt> is listed more than once for this product (mkt). | The error occurs if a country market is listed more than once for a product. |
cmn:newPrimaryItemCode | <newPrimaryItemCode> cannot be added. PrimaryItemCode <productEntry.getPrimaryItemCode> does not exist. | The error occurs if a new primary item code is attempted to be set, but one does not previously exist. |
cmn:PackagingCode | PackagingCode.value cannot be missing or empty. | The error occurs if the required source is missing or null. |
packagingInfo.getCodeLevel | CodeLevel cannot be missing or empty. | |
packagingInfo.getCodeVersion | CodeVersion cannot be missing or empty. | |
packagingInfo.getPackagingUOM, packagingInfo.getPackagingCode | Invalid PackagingUOM <packagingInfo.getPackagingUOM> for <packagingInfo.getPackagingCode>. Must be PR, EA, PK, CA or PL. (packagingInfo.getPackagingUOM, packagingInfo.getPackagingCode). | The error occurs if packaging info fails verification. |
Invalid PackagingUOM <packagingInfo.getPackagingUOM> for <packagingInfo.getPackagingCode>. Must be EA, PK, CA or NONE. | ||
packagingInfoMD.codeVersion | Code Version must be 2 digits long. | The error occurs if the code version is not two digits long. |
packagingItemCode | Cannot <deactivate> PackagingCode < packagingItemCode> since it is in use in Serial Number Manage or Serial Number Exchange for a serial number template or profile" (deactivate, packagingItemCode). | The error occurs if deactivation of a currently active product is attempted. |
packagingItemCodeType | Invalid value for PackagingCode.type: <packagingItemCodeType>. | The error occurs if a packaging code type fails validation. |
cmn:PackagingRatio | PackagingRatio cannot be missing or empty. | The error occurs if the required source is missing or null. |
PointOfDispenseVerificationReqt | PointOfDispenseVerificationReqt must be set to "true" or "false" for CountryMarket <mkt>. | The error occurs if the source is empty or null. |
productEntry.getPrimaryItemCode | PrimaryItemCode <productEntry.getPrimaryItemCode>: PrimaryItemCode <productEntry.getPrimaryItemCode> in use but is not a primary identifier (productEntry.getPrimaryItemCode). | The error occurs if an identifier already exists, but it is not the primary identifier and is therefore disallowed. |
cmn:ProductImage | File size limit is 10 KB. | The error occurs if a cmn:ProductImage is set, but its file size is greater than 10 KB. |
File type must be BMP, JPG, GIF, or PNG. | The error occurs if a cmn:ProductImage is set, but it is not a valid file type. | |
ProductImage field must contain a Base 64 encoded image. | The error occurs if the source is present, but it is not Base64 encoded. | |
productMDEntry.getPrimaryIdentifer | This transaction would result in product <productMDEntry.getPrimaryIdentifier> having multiple identifiers of type <MDItemCodeTypeEnum.value>:<identifierValue>. | The error occurs if a transaction would result in a product having multiple identifiers. |
productMDEntry.itemInfoList | You must define one or more ItemInfo records. | The error occurs if no item information is defined. |
cmn:ScheduledDrug | ScheduledDrug field is required if IN is target market and value must be "true" or "false". | The error occurs if India is the target market and the cmn:ScheduledDrug field is not set. |
serviceID | Service <serviceId> not found. | The error occurs if the specified service cannot be found. |
targetMarket.country+ | Invalid country <targetMarket.country>. Value is required and must be standard two-letter abbreviation specified in ISO 3166-1alpha-2:1997 country code. (targetMarket.country). | The error occurs if an entered target market fails validation. |
Class 3 Errors | ||
The following is thrown for all Class 3 errors: “INTERNALERROR=Internal error from server [server details].” Please contact Support if this error is encountered. |
Set Master Data Exchange Sync Rules (REST)
Producers use this call to create or update a rule for automatically syncing product master data located in Master Data Exchange to Product Information Manager (Master Data Share). A sync rule specifies one or more target markets, whether Product Information Manager automatically creates a new Product Directory record in Product Information Manager (Product Verification), and whether the shared status of the record is set to public or limited to only the Producer who owns the product. Product master data must be complete and up to date in Master Data Exchange before sync rules can be set.


Guidelines
Product Information Exchange validates sync rules in the following order:
- If there is no existing rule with the given targetMarketCountryCode, Product Information Exchange creates a new sync rule.
- If there is an existing rule with the given targetMarketCountryCode, Product Information Exchange updates the rule by updating either the createPvRecord or mdDownload value, or both.
Multiple sync rules cannot apply to the same target market.
Element | Type | Description | |
---|---|---|---|
records | Array | Required. A list of target markets, the auto-product directory creation indicator, and Master Data Share public record indicator that define the Master Data Exchange sync rule. | |
targetMarketCountryCode | Enum | Required. Indicates the target markets for the Master Data Exchange sync rule. Valid values:
|
|
createPvRecord | Boolean | Indicates if Product Information Exchange automatically creates new Product Directory records in Product Verification. Valid values:
If a value is not specified, this element defaults to |
|
mdDownload | Boolean | Sets the shared status of the product master data records in Master Data Share.
Valid values:
If a value is not specified, this element defaults to |
Example
{ "t": { "v": 1, "m": "pie--set-mdx-custom-sync-rules--v1", "app-id": "267765d3-f913-4c44-85ae-3c25ba7f2b18" }, "p": { "records": [ { "targetMarketCountryCode":"US", "createPvRecord": true, "mdDownload": true }, { "targetMarketCountryCode":"PR", "createPvRecord": true, "mdDownload": false }, { "targetMarketCountryCode":"UM" } ] } }

Guidelines
Element | Type | Description |
---|---|---|
targetMarketCountryCodes | Array | Required. A list of target market country codes identifying the Master Data Exchange sync rules that are successfully
created or updated. Valid values:
|
Example
{ "t": { "v": 1, "m": "pie--set-mdx-custom-sync-rules-response--v1", "app-id": "267765d3-f913-4c44-85ae-3c25ba7f2b18" }, "p": { "targetMarketCountryCodes": ["US", "PR", "UM"] } }
Query Master Data Exchange Sync Rules (REST)
Producers use this call to query for their Master Data Exchange sync rules. Producers establish sync rules to facilitate the syncing of product master data between Master Data Exchange and Product Information Manager. Sync rules are created or updated in the Set Master Data Exchange Sync Rule API.

Guidelines
Element | Type | Description | |||
---|---|---|---|---|---|
query-metadata | Array | Required. A list containing the maximum limit of records returned and possible fields. | |||
control | Object | Required. The set of controls determining how to return the result set. | |||
limit | Integer | Sets the maximum number of records in the query response. | |||
query-token | String | A token available in the query response. The query token can be used in a new request to return the next set of results when more than one page of results are available. | |||
select | Object | The information about the filters that can be applied to a query. | |||
fields | Array | Each field has a name and an expression that indicates the value being queried. | |||
name | String | The name of the field to retrieve. | |||
expression | String | The expression indicating the field to retrieve (e.g. $.mdDownload ). |
|||
query-filter | String | Required. A list containing possible query filters. | |||
targetMarketCountryCodes | Array | A list of target market country codes identifying the Master Data Exchange sync rules to retrieve. If this element is not present, all Master Data Exchange sync rules stored for the Producer in Product Information Exchange are returned in the query response. Valid values:
|
Example
{ "t": { "v": 1, "m": "pie--query-mdx-custom-sync-rules--v1", "app-id": "393C3176-6F7C-438D-B06F-DDCDA21C2E5C" }, "p": { "query-metadata": { "control": { "limit": 100 }, "select": { "fields": [ { "name": "createPvRecord", "expression": "$.createPvRecord" }, { "name": "mdDownload", "expression": "$.mdDownload" } ] } }, "query-filter": { "targetMarketCountryCodes": ["US", "UM"] } } }

Guidelines
Element | Type | Description | ||
---|---|---|---|---|
query-metadata-response | Array | The array containing the maximum limit of records returned and possible fields. | ||
control | String | Required. The information about the number of records that can be returned per query. | ||
total-results | Integer | Required. The total number of results from the query request. | ||
limit | Integer | Required. Indicates the maximum number of records that can be returned per query. | ||
query-token | String | A token available in the query response. The query token can be used in a new request to return the next set of results when more than one page of results are available. | ||
results | Array | A list of one or more target market country codes with Master Data Exchange sync rules. The initial query determines the results in this response. | ||
targetMarketCountryCode | Enum | Required. target market country code. Valid values:
|
||
createPvRecord | Boolean | Indicates if Product Information Exchange automatically creates new Product Directory records in Product Information Manager. Valid values:
|
||
mdDownload | Boolean | Sets the shared status of the product master data records in Master Data Share.
Valid values:
|
Example
{ "t": { "v": 1, "m": "pie--query-mdx-custom-sync-rules-response--v1", "app-id": "393C3176-6F7C-438D-B06F-DDCDA21C2E5C", "cid": "22e135c7-bf91-4171-95dc-cbd5afeb633r" }, "p": { "query-metadata-response": { "control": { "total-results": 2, "limit": 100 } }, "results": [ { "targetMarketCountryCode":"US", "createPvRecord": true, "mdDownload": true }, { "targetMarketCountryCode":"UM", "createPvRecord": true, "mdDownload": false } ] } }
Delete Master Data Exchange Sync Rules (REST)
Producers use this call to delete one or more existing Master Data Exchange sync rules, which disables the automatic synchronization of product master data between Master Data Exchange and Product Information Manager for the specified target markets.

Guidelines
Element | Type | Description |
---|---|---|
targetMarketCountryCodes | Array | Required. A list of target markets identifying the Master Data Exchange sync rules to delete. Valid values:
|
Example
{ "t": { "v": 1, "m": "pie--delete-mdx-custom-sync-rules--v1", "app-id": "403C3176-6F7C-438D-B06F-FFCDA21C2E5C" }, "p": { "targetMarketCountryCodes": ["UM", "US"] } }

Guidelines
Element | Type | Description |
---|---|---|
targetMarketCountryCodes | Array | Required. A list of target market country codes indicating the successfully deleted Master Data Exchange sync rules. Deletes and returns target markets with a previously existing sync rule. |
Example
{ "t": { "v": 1, "m": "pie--delete-mdx-custom-sync-rules-response--v1", "app-id": "403C3176-6F7C-438D-B06F-FFCDA21C2E5C" }, "p": { "targetMarketCountryCodes": ["UM", "US"] } }
Query Product Master Data (REST)
Producers use this message to query for product master data records they own in Product Information Manager. Producers can query against a variety of record details, including date and time, packaging code type, and specified fields, which allows them determine which master data currently exists in Product Information Manager (Master Data Share), as well confirm whether data has synced correctly from Master Data Exchange.

Guidelines
Element | Type | Description | |||
---|---|---|---|---|---|
query-metadata | Object | Required. Contains the maximum limit and possible fields. | |||
control | Object | Required. The set of controls that determines how to return the result set back to the requester. | |||
limit | Integer | Sets the maximum number of records that can be returned per query. | |||
select | Object | The information about the filters that can be applied to a query. | |||
fields | Array | Each field has a name and an expression that indicates the value being queried. | |||
name | String | The name of the field in the product master data record to retrieve. | |||
expression | String |
The expression indicating the field in the product master data record to retrieve. |
|||
query-filter | Object | The object containing possible query filters. | |||
records | Array |
The array containing packaging codes to retrieve, defined as a code and type. |
|||
packagingCode | Integer | Required. Indicates the serialized product's packaging code. | |||
packagingCodeType | Enum |
Required. Indicates the type of the serialized product's associated packaging code. Valid values:
|
|||
manufacturerName | String | The name of the Pharmaceutical Manufacturer as it appears on the product label. | |||
countryDrugCode | Integer | The country drug code of the product. | |||
countryDrugCodeType | String | The type of country drug code of the product. | |||
productName | String | The brand name of the product as it appears on the product label. | |||
productType | Enum |
Indicates the type of product identified on the record. Valid values:
|
|||
targetMarketCountryCodes | Array | A list of target market country codes. See Country Code for valid values. | |||
exemptedFromReporting | Enum |
Indicates if the product is subject to or exempt from traceability requirements in the market. Valid values:
|
|||
shareStatus | Enum |
The share status of the record. Valid values:
|
|||
mdxItemStatus | String | The status of the item in TraceLink Master Data Exchange. | |||
search-keywords | Array |
A list of keywords by which to further filter the result set. The keywords reference values of the specified indexed fields. |
Example
{ "t": { "v": 1, "m": "pim--producer-query-mds--v1", "app-id": "393C3176-6F7C-438D-B06F-DDCDA21C2E5C", }, "p": { "query-metadata": { "control": { "skip": 0, "limit": 100, "query-token": "aef431" }, "time": { "past": { "amount": "2", "unit": "MINUTES" }, "range": { "timestamp": { "start": "1523229645000", "end": "1523229646000" }, "date-time": { "start": "2018-04-08T23:28:50Z", "end": "2018-04-08T23:30:50Z" }, "mode": "DATETIME" }, "since": { "timestamp": "1523229646000", "date-time": "2018-04-08T23:30:50Z", "mode": "TIMESTAMP" }, "exclusive": false, "field-name": "example-field", "mode": "SINCE" }, "select": { "fields": [ { "name": "field-name", "expression": "$.field-name" } ] } }, "query-filter": { "records": [ { "packagingCode": "17384983938401", "packagingCodeType": "GTIN-14" } ], "productType": "PRESCRIPTION_DRUG", "targetMarketCountryCodes": [ "US" ], "exemptedFromReporting": "EXEMPT", "shareStatus": "SHARED" }, "search-keywords": "[ 'ProductName', 'Description' ]" } }

Guidelines
Element | Type | Description | ||
---|---|---|---|---|
query-metadata-response | Object | Required. Contains the query limits and results. | ||
control | Object | Required. The set of controls that determines how to return the result set back to the requester. | ||
limit | Integer | Required. The maximum number of records returned in the result set. | ||
total-results | Integer | Required. The total number of results returned. | ||
results | Array | A list of all records and information in response to the query parameters. |
Example
{ "t": { "v": 1, "m": "pim--producer-query-mds-response--v1", "app-id": "393C3176-6F7C-438D-B06F-DDCDA21C2E5C", "cid": "ea1b6f71-9dee-4459-b9d9-ca17ffda98de" }, "p": { "query-metadata-response": { "control": { "total-results": 1, "skip": 1, "limit": 100, } } "results": [ {} ] } }
Download Product Master Data (REST)
Producers use this message to asynchronously download product master data records they own in Product Information Manager. Use the processingId that is returned in the response to check the status of the download in the Poll Product Master Data Download Processing API.

Guidelines
Element | Type | Description | |
---|---|---|---|
records | Array | Required. The array containing all shared packaging codes, defined as a code and type. | |
packagingCode | Integer | Required. The serialized product's packaging code. | |
packagingCodeType | Enum |
Required. Indicates the type of the serialized product's associated packagingCode. Valid value: |
Example
{ "t": { "v": 1, "m": "pie--producer-download-mds--v1", "app-id": "393C3176-6F7C-438D-B06F-DDCDA21C2E5C" }, "p": { "records": [ { "packagingCode": "10312345678910", "packagingCodeType": "GTIN-14" }, { "packagingCode": "00312345678913", "packagingCodeType": "GTIN-14" } ] } }

Guidelines
Element | Type | Description |
---|---|---|
processingId | String | Required. The unique identifier the Producer uses in the Poll product Master Data Download Processing API to check the status of the download request and receive a pre-signed S3 URL link to a CSV file containing the requested product master data records. |
Example
{ "t": { "v": 1, "m": "pie--producer-download-mds-response--v1", "app-id": "393C3176-6F7C-438D-B06F-DDCDA21C2E5C", "cid": "c6e272e2-dd05-45c5-b387-ecad892e65ed" }, "p": { "processingId": "8f126820-gd3t-401a-b3cd-8c5cd32f4etw" } }
Poll Product Master Data Download Processing (REST)
Producers use this message to check the status of the asynchronously processed Download Product Master Data Records API request. Use the processingId that is returned in the initial Download Product Master Data Records response to check the status of the download.

Guidelines
Element | Type | Description |
---|---|---|
processingId | String | Required. The unique identifier a Producer uses to check the status of a download request for product master data. |
Example
{ "t": { "v": 1, "m": "pie--producer-poll-processing-mds--v1", "app-id": "393C3176-6F7C-438D-B06F-DDCDA21C2E5C" }, "p": { "processingId": "8f996823-gd3f-405t-b3cd-9c5cd33f4e1f" } }

Guidelines

Element | Type | Description |
---|---|---|
processingState | String |
Required. Reflects one of the following statuses for the download request:
|
fileUrl | String |
The pre-signed S3 URL linking to the CSV file of requested product master data records. ![]() COMPLETE , the fileUrl is present and contains the pre-signed S3 URL link to the product master data records. |
Example
{ "t": { "v": 1, "m": "pie--producer-poll-processing-mds-response--v1", "app-id": "393C3176-6F7C-438D-B06F-DDCDA21C2E5C", "cid": "pf8442b59-3ddc-78ia-a569-f192e930led" }, "p": { "processingState": "COMPLETE", "fileUrl": "s3://bucket/path/file.csv" } }

Guidelines
This CSV file contains the downloaded master data records the Producer owns in Product Information Manager.

Field | Occurs | Format | Notes |
---|---|---|---|
additionalTradeItemIdentification | 0...* | String | Required. Country drug code. |
additionalTradeItemIdentificationTypeCode | 0...* | Enum | Required.Country drug code type. See Country Drug Code Type for valid values. |
brandOwnerPartyIdentificationValue | 0...* | String | Conditionally required for India and EU. Marketing Authorization Holder (MAH) identifier. |
co-licensedPartnerIDTypeCode | 0...* | String | Co-licensed partner ID code type. |
co-licensedPartnerIDValue | 0...* | String | Co-licensed partner ID value. |
co-licensedPartnerName | 0...* | String | Co-licensed partner name. |
companyPrefix | 1...1 | Integer | Conditionally required if the packaging code type is GTIN . The 6- to 12-digit GS1 Company Prefix value unique to your company. |
containedPackagingCode | 0...1 | Integer | For Each or packaging code type of NTIN , do not pass in a value. Packaging code. |
containedPackagingCodeType | 0...1 | Enum | For Each or packaging code type of NTIN , do not pass in a value. Type of packaging code. See Packaging Code Type for valid values. |
deletionDateTime | 0...1 | DateTime | Date and time the record was deleted from the repository. |
dosageFormType | 1...* | String | Required. Type of dosage form. |
effectiveDateTime | 0...1 | DateTime | Time the event became effective. |
endAvailabilityDateTime | 0...1 | DateTime | End of the date-time range for the product's availability. |
exclusiveDistributorIDTypeCode | 0...* | String | Type of exclusive distributor ID. |
exclusiveDistributorIDValue | 0...* | String | Exclusive distributor ID. |
exclusiveDistributorName | 0...* | String | Exclusive distributor name. |
exemptedFromRegulatoryReporting | 1...* | Boolean | Product is exempt from regulatory reporting if value is true . |
genericName | 1...* | Boolean | Conditionally required for the US target market. May indicate the GS1 generic name, functional name, or regulated chemical name. |
languageCode | 1...* | Enum | The language using the standard two- or three-letter abbreviation specified in ISO 639-1 language code. See Language Code for valid values. |
lastChangeDateTime | 0...1 | DateTime | Last change made to the date and time. |
mahIdType | 0...* | String | Conditionally required for India and EU. MAH identifier type. |
manufacturerOfTradeItemPartyName | 1...* | String | Manufacturer Name. |
netContentDescription | 1...1 | String | Quantity. |
packageTypeCode | 1...1 | Enum | Packaging level. See Packaging Level for valid values. |
packagingCode | 1...1 | Integer | Required. Serialization packaging code identifier value for the unit of measure (e.g. each, inner pack, case). |
packagingCodeType | 1...1 | Enum | Required. Enumeration of serialization packaging code identifier types. See Packaging Code Type for valid values. |
partyName | 0...* | String | Conditionally required for India and EU. Name of the MAH. |
productType | 1...* | Enum | Enumeration of serialization product code identifier types. See Product Type for valid values. |
quantityOfLowestSaleableUnit | 1...1 | Integer | Required. If Each, the value equals 0 . Lowest saleable unit. |
registrationDate | 0...1 | DateTime | Registration date of the serialized product. |
regulatedProductName | 1...* | String | Required. Name of the serialized product that falls under the target market's regulatory requirement. |
strengthDescription | 1...1 | String | Required. Indicates the strength of the product. |
targetMarketCountryCode | 1...* | Enum | Required. target market country code. See Country Code for valid values. |
totalQuantityOfNextLowerLevelTradeItem | 1...1 | Integer | Required. If Each, the value equals 0 . Contained quantity. |
tradeItemDescription | 1...* | String | Required. Description of the product. |
Query Product Directory Records (REST)
Producers use this message to query Product Directory records in Product Information Manager (Product Verification) that they own, allowing them to confirm that records have synced. Producers query against a variety of record details, including date and time, packaging code type, and other specified fields.

Guidelines
Element | Type | Description | |||
---|---|---|---|---|---|
query-metadata | Array | Required. The array containing the maximum limit of records returned and possible fields. | |||
control | Object | Required. The information about the number of records that can be returned per query. | |||
limit | Integer | Sets the maximum number of records that can be returned per query. | |||
query-token | String | A token available in the query response. The query token can be used in a new request to return the next set of results when more than one page of results are available. | |||
select | Object | The information about the filters that can be applied to a query. | |||
fields | Array | Each field has a name and an expression that indicates the value being queried. | |||
name | String | The name of the field in the Product Directory to retrieve. | |||
expression | String |
The expression indicating the field in the Product Directory to retrieve (e.g. |
|||
query-filter | String | A list containing possible query filters. | |||
records | Array |
A list containing packaging codes to retrieve, defined as a code and type. If this is an empty array, the query filters for all packagingCode | packagingCodeType. |
|||
packagingCode | Integer | The serialized product's packaging code. | |||
packagingCodeType | Enum |
Indicates the type of the serialized product's associated packagingCode. Valid values:
If a value is not specified, this element defaults to |
|||
verificationTypes | Array | A list of verification types allowed against a serialized product's associated packaging code. Valid values:
|
|||
lots | Array | A list of lot numbers a Producer has specified as excluded from verification. If no value is present, Product Verification performs verification across all lot numbers. | |||
recordOwner | String | The labeler code identifying the Product Directory entry's owner for this GTIN. | |||
startExpDate | String | The start of the expiration date range for the serialized product in YYMMDD format. | |||
endExpDate | String | The end of the expiration date range for the serialized product in YYMMDD format. | |||
status | Enum | Indicates the status of the record. The
response returns one of three values:
|
|||
nextRecordOwner | String | The labeler code identifying the next owner for this GTIN. |
Example
{ "t": { "v": 1, "m": "pie--producer-query-directory-pvs--v1", "app-id": "393C3176-6F7C-438D-B06F-DDCDA21C2E5C" }, "p": { "query-metadata": { "control": { "limit": 100, "query-token": "aef431" }, "select": { "fields": [ { "name": "recordOwner", "expression": "$.recordOwner" }, { "name": "packagingCode", "expression": "$.packagingCode" } ] } }, "query-filter": { "verificationTypes": ["VRS"], "records": [ { "packagingCode": "00300015555015", "packagingCodeType": "GTIN-14" } ], "startExpDate": "170728", "endExpDate": "201031", "status": "active" } } }

Guidelines
Element | Type | Description | ||
---|---|---|---|---|
query-metadata-response | Array | The array containing the maximum limit and possible fields. | ||
control | String | The information about the number of records that can be returned per query. | ||
total-results | Integer | The total number of results from the query request. | ||
limit | Integer | Indicates the maximum number of records that can be returned per query. | ||
query-token | String | A token available in the query response. The query token can be used in a new request to return the next set of results when more than one page of results are available. | ||
results | Array | The list of returned query fields. The initial query determines the results in this response. If the query does not match any records, this response returns an empty results list. | ||
packagingCode | Integer |
Required. The serialized product's packaging code. |
||
packagingCodeType | Enum |
Required. Indicates the type of the serialized product's associated packagingCode. Valid value: |
||
verificationTypes | Enum | A list of verification types allowed against a serialized product's associated packaging code. Valid values:
|
||
lots | Array | A list of lot numbers. | ||
recordGuid | String | A globally unique identifier (GUID) created by the source VRS system. Based on version 4 universally unique identifier (UUID4). The GUID
is shared between Verification Router Services. If a value is present, the existing record is updated. If a value is empty, a new UUID4 is generated. |
||
recordOwner | String | The labeler code identifying the Product Directory entry's owner for this GTIN. | ||
startExpDate | Date/Time | The start of the expiration date range for the serialized product in YYMMDD format. | ||
endExpDate | Date/Time | The end of the expiration date range for the serialized product in YYMMDD format. | ||
status | Enum | Indicates the status of the record. The
response returns one of three values:
|
||
nextRecordOwner | String | The labeler code identifying the next owner for this GTIN. |
Example
{ "t": { "v": 1, "m": "pie--producer-query-directory-pvs-response--v1", "app-id": "393C3176-6F7C-438D-B06F-DDCDA21C2E5C", "cid": "62ed6960-1e6a-4cb9-92b8-59d216afd689" }, "p": { "query-metadata-response": { "control": { "total-results": 3, "limit": 100 } }, "results": [ { "recordOwner": "12345", "packagingCode": "00300015555015", "recordGuid": "30001ee7-2550-483c-ab5a-e095879cca23" }, { "recordOwner": "12345", "packagingCode": "00300015555016", "recordGuid": "bfe44f4d-36ab-4274-a347-603008708a40" }, { "recordOwner": "67890", "packagingCode": "10300015555015", "recordGuid": "ea97cdd8-b184-4c45-a4cf-e6f3af0480de" } ] } }