McKesson is a leading distributor of medical and healthcare products. The Flxpoint integration streamlines your operations by automating inventory updates and order fulfillment, connecting via McKesson’s EDI/XML feeds to keep product data current, place orders reliably, and capture shipments and invoices on schedule.
How To Connect
Choose the right Source Type
- You place POs/FRs to the supplier to fulfill orders to your customers.
- You don’t hold this inventory yourself.
- You stock and ship items from your facility.
- Pick/pack/ship is handled by your internal team.
- 3PL or external provider ships your owned inventory.
- You replenish inventory to that partner.
- You only need content enrichment (no fulfillment from this source).
- Use to enhance product details, not to ship orders.
- Yes (Recommended): You can route orders here.
- No: Routing/Shipping steps won’t apply.
- Override: Auto Processing (Use Global / Auto Process / Do NOT Auto Process).
- Commit Stock + Inventory Management Options.
- Allow Backorders / Cancel Unacknowledged Items.
- Yes, Use Rate Shopping (Real-Time Estimates).
- No, Set Up via Rules.
- Name: Standard Ground Policy: Standard/Ground
- Name: Expedited (2-Day) Policy: Expedited/2-Day
- Name: Priority (Overnight) Policy: Priority/Overnight
- Address, City, State/Code, Postal Code, Country/Code
- Optional: Contact Name, Phone, Email
- B2B Key
- Identity
- Shared Secret
- Account Number
- Ship To Number
- Re-enter the B2B Key / Identity / Shared Secret exactly as provided (watch for whitespace).
- Verify the Account Number and Ship To Number match McKesson’s records.
- Ask McKesson B2B to confirm your EDI docs are enabled for the correct trading partner.
- Do NOT add prefixes in Source Inventory (keep supplier SKU exactly as provided by McKesson).
- Create the prefix in the Master SKU only (e.g., transform: "MCK-" + [SupplierSKU]).
- If importing listings, link channel SKUs to this same Master SKU so publishing/updates sync correctly.
Product Operations
Get Inventory (Primary)
McKesson (XML) — Get Inventory [Primary]
Get Inventory [Primary] imports the McKesson catalog from the XML ItemFeed (products, pricing, quantity, images, categories, attributes) and maps it into your Source Inventory. Use this job for first-time population and full-catalog refreshes.
- 1Create/Select Connection: Provide B2B Key, Identity, Shared Secret, Account, and Ship To → Test Connection → Save.
- 2Configure Settings: Choose Image Quality Preference and set Archive/Un-Archive Inventory behavior → Save.
- 3Select Mapping Template: Open Get Source Products and choose (or create) your template → map McKesson fields → Save & Complete.
- 4Run/Schedule: From Configure, click Run Integration or enable Scheduled cadence.
- Three steps: Connect → Configure → Mapping Template, each shows a completion checkmark.
- On run, items are fetched in pages and saved in batches.
| Template | Use Case | What it Covers | Availability | 
|---|---|---|---|
| McKesson Get Inventory [Primary] | Full catalog ingestion | Parents, Variants (UOM), Images, Categories, Attributes, Cost, Quantity | Available | 
| McKesson Field | Maps To | Example | Notes | 
|---|---|---|---|
| itemId | Parent SKU | MK-123456 | Main product identifier. | 
| descriptionoritemDescription | Title | Acetaminophen 500mg | Pick one consistently for titles. | 
| itemFeatures | Description | Capsule; Pain Relief; 100 ct | Multi-line features → body text. | 
| manufacturerNameoritemBrand | Brand | McKesson Brand | Either is acceptable. | 
| majorCategory | Category 1 | OTC | Top-level category. | 
| minorCategory | Category 2 | Pain Relief | Second-level category. | 
| itemImage+ image references | All Images | — | Primary from itemImage; additional from attribute references. | 
| itemAttributes | All Attributes | UPC, dosage, size… | Direct-copy key/value pairs. | 
| McKesson UOM Field | Maps To | Example | Notes | 
|---|---|---|---|
| itemSku | SKU | MK-123456-CS | Often {itemId}-{units}(e.g., EA/PK/CS). | 
| price | Cost | 12.75 | Numeric cost per UOM. | 
| quantityAvailable | Quantity | 42 | Current stock per UOM. | 
| (from itemAttributes) | UPC | 012345678905 | Use a rule to extract UPC from attributes if needed. | 
| units | Option Value | PK | Option Name: UOM; Value from units. | 
Base URL is determined by your Image Quality Preference:
<base-from-image_quality_pref>/{itemImage}Additional images: for each attribute where name starts with “Image Reference Number”, append the value to the same base URL.
| Example Rule | Type | Input | When it Helps | What it Does | 
|---|---|---|---|---|
| Normalize Title | Conditional | String | Mixed casing/punctuation | Standardizes capitalization and removes duplicates. | 
| UPC Extract | Conditional | Map | UPC only in attributes | Finds “UPC” attribute and maps to variant UPC. | 
| Utility | Availability | How You Might Use It | 
|---|---|---|
| Mapping Sets | Optional | Build combined notes (e.g., brand + UOM). | 
| Lists | Optional | Carrier/UOM lookups for rules. | 
| Product Builders | Default | Not typically needed for inventory ingestion. | 
| Capability | Status | Notes | 
|---|---|---|
| Feed Source | XML ItemFeed | https://mms.mckesson.com/services/xml/{b2b_key}/ItemFeed | 
| Pagination | 50 / page | Fetched in pages; saved in batches. | 
| Parents & Variants | Supported | Variants created per UOM. | 
| Images | Supported | Primary + additional via references. | 
| Categories | Supported | Two-level category structure. | 
| Custom Fields | Not used | Attributes are saved as direct-copy. | 
| Archive | Supported | Enable in configuration if desired. | 
- Credentials (B2B Key, Identity, Shared Secret, Account, Ship To) test successfully.
- Image Quality Preference is set and images resolve.
- Only one of Primary/Secondary manages Archive/Un-Archive.
- Template maps Parent + UOM fields as per tables above.
Empty results? Confirm account/ship-to access and correct B2B Key for the ItemFeed.
UPC missing? Add a rule to pull UPC from itemAttributes.
Images not showing? Verify base URL selection matches your Image Quality Preference.
Unexpected archiving? Disable archiving in one of the jobs (Primary vs Secondary).
Get Inventory (Secondary)
McKesson (XML) — Get Inventory [Secondary]
Get Inventory [Secondary] updates variant (UOM) price and quantity from the live McKesson ItemFeed. Use it for high-cadence availability/price refreshes. Optionally allow creation of missing variants.
- 1Create/Verify Connection: Enter B2B Key, Identity, Shared Secret, Account, Ship To → Test Connection → Save.
- 2Configure Settings: Decide on Archive/Un-Archive and whether to Allow Create Variant → Save.
- 3Select Mapping Template: Choose Get Inventory [Secondary] and map UOM fields to Variant fields → Save & Complete.
- 4Run/Schedule: Click Run Integration or enable Scheduled cadence.
| Template | Use Case | What it Covers | Availability | 
|---|---|---|---|
| McKesson Get Inventory [Secondary] | Fast UOM availability/price updates | Variant SKU, Quantity, Cost; optional variant creation | Available | 
| McKesson UOM Field | Maps To | Processing Logic / Notes | 
|---|---|---|
| ItemOut.itemId+ItemUom.units | SKU | Construct SKU as {itemId}-{units}(e.g.,123456-EA). | 
| ItemUom.quantityAvailable | Quantity | Direct map of current stock at the UOM level. | 
| ItemUom.price.value | Cost | Direct map of UOM price/cost. | 
| — | MSRP | Not provided by this feed; typically leave unmapped. | 
| Example Rule | Type | Input | When it Helps | What it Does | 
|---|---|---|---|---|
| Normalize UOM Suffix | Conditional | String | Mixed UOM codes | Standardizes EA/PK/CS suffixes across variants. | 
| Cost Guardrail | Conditional | Number | Unexpected cost spikes | Flags or caps changes over a threshold for review. | 
| Capability | Status | Notes | 
|---|---|---|
| Feed Source | XML ItemFeed | https://mckesson…/services/xml/{b2b_key}/ItemFeed | 
| Scope | Variants Only | Parents are not created by Secondary. | 
| Create Variants | Optional | Enable Allow Create Variant if needed. | 
| Price & Quantity | Supported | Direct map from UOM feed. | 
| Images / Attributes | Not Included | Use Primary for full catalog + images. | 
| Pagination | 50 / page | Processes and saves by page. | 
| Archive | Supported | Manage in configuration; avoid enabling in both jobs. | 
- API credentials validate successfully.
- Template maps SKU, Quantity, and Cost.
- Only one job (Primary or Secondary) manages archiving.
- Allow Create Variant is set to your intended behavior.
No quantity updates? Ensure mapping points to ItemUom.quantityAvailable and the template is selected in Configure.
Variants missing? Enable Allow Create Variant or pre-seed via Primary.
Pricing looks off? Map ItemUom.price.value to Cost and confirm currency assumptions.
Unexpected archiving? Disable archiving in either Primary or Secondary to avoid conflicts.
Order Operation
Send Fulfillment Requests
McKesson (EDI) — Send Fulfillment Requests
Send Fulfillment Requests transmits orders (FRs) to McKesson over EDI via your FTP/FTPS connection. The job formats your order header and line items into McKesson’s expected fields—such as Patient Account Number, ShipTo Number, Buyer’s Item Number (IN), Quantity, and Unit Measurement Code—and drops the file in the outbound directory. You can optionally hold requests for review or send only during business hours.
- 1Create/Select Connection: Enter FTP/FTPS Host, Port, User, Password → Test Connection → Save.
- 2Configure EDI Settings: Set Outbound/Inbound remote folders, your Customer Account Number, and both parties’ ISA Qualifier + ID. Optional timing controls: Hold for X Hours and Only Send During Business Hours.
- 3Select Mapping Template: Open Send Fulfillment Requests template, map header + line fields (see next dropdown) → Save & Complete.
- 4Run/Schedule: Send orders on-demand or enable a schedule from the Configure step.
| Template | Use Case | What it Sends | Availability | 
|---|---|---|---|
| Send Fulfillment Requests | Place order (FR) to McKesson via EDI | Header (Patient Account #, ShipTo #) + Lines (IN/SKU, Qty, UOM, optional Cost) | Available | 
| Your Field | Maps To | Notes | 
|---|---|---|
| Order Number (unique) | Patient Account Number | Must be unique per order; avoid reuse. | 
| Ship-To Code | ShipTo Number | Use when McKesson gives you a coded location; address is then omitted. | 
| Your Field | Maps To | Example | Notes | 
|---|---|---|---|
| SKU | Buyer’s Item Number (IN) | 950225BG | Primary McKesson line identifier. | 
| Quantity | Quantity | 3 | Units to ship for the selected UOM. | 
| Unit of Measure | Unit Measurement Code | EA, PK, CS | Send a valid UOM code supported by McKesson. | 
| Cost (optional) | Cost | 12.75 | Include only if your workflow requires it. | 
| Rule | Type | When it Helps | What it Does | 
|---|---|---|---|
| Normalize UOM | Conditional | Mixed “Ea/ea/EA” inputs | Standardizes to a supported code (e.g., EA). | 
| Fallback Patient Account # | Conditional | Missing order number | Builds a unique reference from channel + timestamp. | 
In most setups, McKesson selects the carrier/service on their side based on your account and item rules. Only send carrier/service indicators if McKesson has explicitly enabled and documented this for your account.
- Standard flow: You send the order data (who/what/how many). McKesson chooses the best way to ship it.
- Optional/advanced: Some accounts can send a carrier code (SCAC) or service level via EDI segments. This is by arrangement only.
- If unsure: Leave shipping method unmapped—your order won’t fail, and McKesson will still ship.
| Concept | What it is | Example Value | When to Use | 
|---|---|---|---|
| Carrier Code (SCAC) | Industry code for the carrier | UPSN, FDXG | Only if McKesson requests a carrier code from you. | 
| Service Level | Requested speed/method | GROUND, 2DAY | Only if a service level field is enabled in your template. | 
| Freight Terms | Who pays shipping | Prepaid, Collect | If your agreement requires sending terms with the order. | 
Examples (only if McKesson has enabled this for you):
- 
Always request ground: Map Service Level = GROUND(static). Leave Carrier Code empty unless required.
- 
Light orders via faster service: Conditional rule: if Total Weight < 1 lb → Service Level = 2DAY; elseGROUND.
If your account isn’t set up for these fields, keep them unmapped—McKesson will handle shipping selection.
- FTP/FTPS connection tests successfully.
- Patient Account Number is unique on each order.
- Lines map IN (SKU), Quantity, and UOM correctly.
- Shipping method fields are unmapped unless McKesson specifically enabled them for you.
| Capability | Status | Notes | 
|---|---|---|
| Transport | FTP/FTPS | Outbound folder for orders; inbound optional for responses. | 
| Header Fields | Supported | Patient Account #, ShipTo # (coded) as needed. | 
| Line Fields | Supported | IN/SKU, Qty, UOM, optional Cost. | 
| Shipping Selection | Vendor-Selected | You typically don’t send a method; McKesson chooses. | 
| Scheduling | Available | Hold X hours; business-hours-only sending. | 
- Files not appearing at vendor: Re-check remote folder paths, credentials, and protocol (FTP vs FTPS).
- Order rejected: Ensure Patient Account # is unique and that IN/SKU, Qty, and UOM are mapped.
- Address omitted unexpectedly: You likely mapped ShipTo Number; that suppresses sending a full address.
- Shipping method errors: Unmap any carrier/service fields unless your account is enabled for them.
Get Shipments
McKesson (EDI) — Get Shipments
Get Shipments imports shipment confirmations from McKesson via EDI 856 (ASN) from your inbound FTP, creates shipments in Flxpoint, and posts a 997 acknowledgment to your outbound folder after a successful import.
- 1Create/Select Connection: Add an EDI FTP connection with host, port, username, and password → Save and Proceed.
- 2Configure: Set Inbound/Outbound directories, Customer Account Number, and both parties’ ISA IDs & Qualifiers. Choose a Lookback window (e.g., 90 days) → Save and Proceed.
- 3Mapping Template: Select your McKesson Get Shipments template → Save and Complete.
- Three steps: Connect → Configure → Mapping Template, each marked complete when finished.
If an 856 includes comma-separated tracking values, Flxpoint splits them into separate shipment records (one tracking per shipment). This improves channel compatibility (e.g., Amazon).
| Template | Use Case | What it Covers | Availability | 
|---|---|---|---|
| McKesson Get Shipments | Shipment confirmations from McKesson (EDI 856) | Shipped date, Tracking, Item SKU, Item Quantity. Supports splitting multiple tracking into separate shipments. | Available | 
These mappings mirror the Mapping Templates view.
| McKesson Field | Flxpoint Shipment Field | Level | Type | Required? | Notes | 
|---|---|---|---|---|---|
| PRF01 (Purchase Order) | Shipment → Purchase Order Number | Header | Text | Yes | Associates shipments to orders/FRs. | 
| Shipped Date | Shipment → Shipped At | Header | Date/Time | No | When the shipment was marked shipped. | 
| Tracking Number | Shipment → Tracking Number | Header | Text | Yes | Comma-separated values are split into separate shipments (one tracking per shipment). | 
| Buyer’s Item Number (IN) | Shipment Item → SKU | Item | Text | Yes | Use this or vendorItemNumberbased on your catalog. | 
| ASN Quantity | Shipment Item → Quantity | Item | Number | Yes | Quantity shipped for the line item. | 
| Example Rule | Type | Input | When it Helps | What it Does | 
|---|---|---|---|---|
| Normalize Tracking Number | Conditional | String | Clean/trim before channel export | Removes spaces, uppercases, validates length. | 
| Fallback Ship Date | Conditional | Date | Missing ship date | Sets today’s date if ship date is omitted. | 
| Utility | Availability | How You Might Use It | 
|---|---|---|
| Mapping Sets | Optional — available | Assemble/format values (e.g., combined notes). | 
| Lists | Optional — available | Reference carriers/methods for conditional handling. | 
| Product Builders | Available (default) | Not commonly needed for shipments; default is fine. | 
Amazon accepts one tracking per shipment. Flxpoint now sends separate shipments when multiple tracking numbers exist, so each tracking appears correctly after re-sync.
- EDI FTP connection saved and valid.
- Inbound/Outbound folders set correctly.
- Lookback window covers the order’s timeframe.
- Mapping template selected and saved.
| Capability | Status | Notes | 
|---|---|---|
| Inbound Format | EDI 856 (ASN) | Read from your inbound FTP directory. | 
| Outbound Ack | EDI 997 | Posted to your outbound directory after a successful import. | 
| Multiple Tracking Numbers | Supported | Comma-separated values are split into separate shipments; improves Amazon sync. | 
| Shipment Item Association | Supported | Match using SKU or vendor item number per your mapping. | 
| Partial Shipments | Supported | Orders may arrive in multiple shipments. | 
| Carrier & Methods | Supported (when provided) | If absent, tracking still imports. | 
Amazon only shows one tracking number — what now?
          Re-sync the order. Because shipments are split per tracking, each tracking will publish individually.
        
How should multiple tracking values be formatted?
          Provide them as a comma-separated list in the 856; Flxpoint splits them automatically.
        
No shipments created?
          Verify the inbound folder path, lookback window, and mapping of PO (PRF01) and item identifiers.
        
Get Invoices
McKesson (EDI) — Get Invoices
Get Invoices retrieves EDI 810 invoice files from your McKesson inbound FTP, maps them to invoice records and line items in Flxpoint, and posts a 997 acknowledgment to your outbound folder after a successful import. Use this job to reconcile costs, quantities, and SKUs against your recent fulfillment requests.
- 1Create or Select Connection: Add an EDI FTP connection with host, port, username, and password → Save and Proceed.
- 2Configure Settings: Choose your Inbound (810 pickup) and Outbound (997 drop-off) directories, enter your Customer Account Number, and both parties’ ISA IDs & Qualifiers. Set the Lookback window for matching invoices to recent FRs (typical: 30 days) → Save and Proceed.
- 3Select a Mapping Template: Choose your McKesson Get Invoices template → Save and Complete.
- Three steps: Connect → Configure → Mapping Template, each marked complete when finished.
- An option to Run on demand or enable Scheduling from the Configure screen.
| Template | Use Case | What it Covers | Availability | 
|---|---|---|---|
| McKesson Get Invoices | Import invoices from McKesson (EDI 810) | Invoice header + line items: Shipped/Invoice date, IN (SKU), Quantity, Per-Unit Cost. | Available | 
These mappings mirror the Mapping Templates view. Adjust to match your catalog identifier strategy.
| McKesson Field | Flxpoint Invoice Field | Level | Type | Required? | Notes | 
|---|---|---|---|---|---|
| Buyer’s Item Number (IN) | Invoice Item → SKU | Item | Text | Yes | Primary line identifier; use this or your vendor item number equivalent. | 
| Quantity | Invoice Item → Quantity | Item | Number | Yes | Quantity invoiced for the line item. | 
| Cost | Invoice Item → Per Unit Cost | Item | Number | Yes | Unit price for the invoiced item. | 
| (Constant) | Invoice Item → Type | Item | Text | No | Set to Product for standard goods (optional but recommended). | 
| (Optional) | Invoice Item → Title | Item | Text | No | Usually not needed; safe to leave unmapped. | 
| Invoice Date | Invoice → Invoiced At | Header | Date/Time | No | Use if you want to store the date the invoice was issued. | 
| Example Rule | Type | Input | When it Helps | What it Does | 
|---|---|---|---|---|
| Normalize SKU | Conditional | String | Mixed SKU formats in vendor files | Trims spaces, uppercases, or pads prefixes to match your catalog. | 
| Fallback Cost | Conditional | Number | Missing/blank cost fields | Sets a safe fallback or flags the row via a custom field for review. | 
| Utility | Availability | How You Might Use It | 
|---|---|---|
| Mapping Sets | Optional — available | Assemble combined notes (e.g., invoice number + PO) or normalize values. | 
| Lists | Optional — available | Reference vendor-specific cost codes for conditional rules. | 
| Product Builders | Available (default) | Not typically required for invoices; the default builder is sufficient. | 
| Capability | Status | Notes | 
|---|---|---|
| Inbound Format | EDI 810 | Invoice files are read from your inbound FTP directory. | 
| Outbound Ack | EDI 997 | Posted to your outbound directory after a successful import. | 
| Line Matching | Supported | Typically Buyer’s Item Number (IN) → SKU. | 
| Lookback Window | Configurable | Default ~30 days to match invoices with recent FRs. | 
| Custom Fields | Optional | Leave unmapped unless you have a defined reporting need. | 
- EDI FTP connection tests successfully; credentials are valid.
- Inbound/Outbound folders match what McKesson provided.
- Lookback window includes the FRs you expect to invoice.
- Mapping template is selected and saved.
          No invoices created — what should I verify?
          Confirm the inbound folder path and that 810 files are present; ensure the lookback covers the FR create date.
        
          Line mismatch between invoice and catalog?
          Make sure Buyer’s Item Number (IN) is mapped to your SKU (or switch to your vendor item number if your catalog uses it).
        
          Costs are missing or zero?
          Verify the vendor’s Cost field is mapped to Per Unit Cost and populated in the 810.
        
          997 not showing up?
          Check outbound folder permissions/connectivity and re-run the job.
        
Troubleshooting Flashcards
McKesson — Source
“Duplicate PO” rejected
EDI 850McKesson requires a unique PO number per order.
- Reusing PO numbers causes EDI rejection.
- Often happens when retrying failed tests in production.
Fix
- Regenerate a unique PO (e.g., YYYYMMDD-####).
- Template rule: always output a unique PO for each submission.
No 855 acknowledgement
EDI 855Order sent, but no McKesson confirmation appears.
- Send Order finished with warnings or partial failure.
- Trading partner IDs / credentials mismatch.
Fix
- Confirm the Send Order job completed successfully (no warnings).
- Verify McKesson EDI credentials and trading partner qualifiers.
- Retry if endpoint indicated a transient error.
Shipments not pulling
EDI 856Recent orders lack tracking updates.
- Fetch window too small for McKesson posting cadence.
- McKesson often returns tracking number only.
Fix
- Increase “Fetch shipments within last X days” (e.g., 7 → 14).
- Expect tracking only; carrier/method fields may be blank.
- Allow multiple partial shipments per order.
Shipping method confusion
EDI Shipping“Do I need carrier codes for McKesson?”
- McKesson EDI does not require sending shipping codes.
- Supplier selects “Best Way” based on item/compliance.
Tip
- Leave shipping-code mapping empty for McKesson EDI.
- If requesting a service, add a note; fulfillment selection remains with supplier.
Item not found / invalid
MappingMcKesson Item # vs NDC mismatch.
- Using NDC where McKesson expects internal Item Number.
- Wrong UOM (EA vs BX/CS) blocks ordering.
Fix
- Prefer McKesson Item Number for linking; validate NDC only if required.
- Match Unit of Measure to supplier’s sell UOM (EA, BX, CS, etc.).
- If using Master SKU + prefixes, ensure it links to the McKesson ID field.
Case pack / minimums failing
Order QtyOrder rejected or auto-adjusted.
- Qty doesn’t align with sell UOM or min qty rules.
Fix
- Map/display sell UOM (e.g., BX of 10) and validate in pre-checks.
- Honor minimums; add rule checks before sending 850.
Inventory zeros / archiving
EDI 846Products archive/unarchive unexpectedly.
- Archiving is enabled in multiple imports simultaneously.
Fix
- Enable archiving in one import only (usually Primary).
- Use Secondary imports for faster qty/price refreshes without archiving.
Pricing not updating
PricingMAP/MSRP or Cost don’t change after 846 import.
- Fields mapped to the wrong destination attributes.
Fix
- Dealer/Net → Cost (USD)
- MAP → MAP
- List/MSRP → MSRP
Address validation fails
AddressOrders declined on address checks.
- PO Boxes or incomplete street data may be rejected.
Tips
- Provide full physical address: Line 1, City, State/Code, Postal, Country/Code.
- Avoid PO Boxes; some products/regions require physical delivery.
Fill or Kill / Hold X Hours
Order TimingSubmissions delayed or cancelled.
- Controls in Send Order can block or defer release.
Tips
- Fill or Kill (Y): cancel if not fully fillable; blank allows partials.
- Hold X Hours: use for manual review; reduce/clear if orders queue.
- Business Hours: enable only if required by your workflow.