NCR Counterpoint to iPaaS.com Product Inventory Mapping Documentation
Summary
This mapping collection brings a product's stock figures from NCR Counterpoint into iPaaS.com for the first time, creating the inventory record that ties a product to the location its stock sits at. It carries the quantity available, the quantity on hand, the average cost at that location, the location itself, and the link to the product the inventory belongs to.
ID Format
Manual Sync id: the item number and the location id, joined by a pipe. This collection reads inbound from Counterpoint, so the id entered on the Manual Sync page is built from Counterpoint-side values, not iPaaS.com values. An item number of ADM-TL3 held at a location named MAIN gives ADM-TL3|MAIN. That example illustrates the shape only — both values come from a demonstration installation and are not values to copy.
External ID saved after transfer: once an inventory record has been transferred, iPaaS.com records those same joined Counterpoint values as the external ID on a dedicated platform-managed external-ID record. That record — not any field on the inventory record itself — is the primary match that routes subsequent transfers of the same item-and-location combination to Update NCR Counterpoint Product Inventory TO iPaaS.com rather than adding it a second time. The LocationId mapping writes the resolved iPaaS.com location onto the inventory record itself, which gives subscribers visibility of where the stock sits and serves as a fallback collision key alongside the product link where no external-ID record exists yet.
Deleted Record Support
This family does not itself carry deletions. Where a separate Delete collection exists for this entity it handles removals from Counterpoint to iPaaS.com; otherwise a removal in Counterpoint is not propagated. See NCR Counterpoint Known Limitations.
Mapping Collection Status
Status: Enabled. A mapping filter is applied, which narrows which inventory records this collection processes.
Trigger Events: see Transfer Methods in the collection description; automatic transfers require the relevant Outbound/Inbound Data Flow subscriptions to be enabled.
Duplicate or Conflicting Mappings
Update NCR Counterpoint Product Inventory TO iPaaS.com: carries later changes to an inventory record this collection has already created — principally the quantity figures. It is the complement of this collection, not an alternative, and the two are normally enabled together.
Add/Update NCR Counterpoint Product Inventory TO iPaaS.com: operates on the same entity, but is dispatched as part of the transfer of its parent collection Add/Update NCR Counterpoint Product TO iPaaS.com rather than by a trigger of its own.
Important: these collections operate on the same NCR Counterpoint inventory records. This collection and Update NCR Counterpoint Product Inventory TO iPaaS.com share the same trigger set, and routing between them is decided by the external-ID link rather than by which trigger fired, so enabling both is the normal configuration. Add/Update NCR Counterpoint Product Inventory TO iPaaS.com reaches the same records by a different route, as part of a product transfer. Subscribers or their MiSP should review all three collections' filters and Add/Update settings before enabling any of them, and should treat NCR Counterpoint as the source of truth for stock figures where the same products are also maintained in another connected system.
System Caveats
NCR Counterpoint Caveats
Available quantity can be negative: NCR Counterpoint allows commitments to exceed stock on hand, and the figure is passed on as-is rather than corrected in transit. Subscribers whose downstream systems cannot accept a negative availability should apply a formula that floors the value at zero rather than assuming it never occurs.
Cost is a blended figure: the cost transferred is NCR Counterpoint's rolling average for the item at that location, recalculated as stock is received, rather than the price paid on any single purchase order. Subscribers who cost their inventory on a different basis should replace the mapping with the source that matches their accounting practice.
Over-length values are truncated: where a Counterpoint value is longer than the field it is written to, it is silently shortened rather than rejected, so the transfer succeeds carrying a shortened value.
iPaaS.com Caveats
Locations must exist in iPaaS.com first: the location named on the Counterpoint inventory record must exist as a location in iPaaS.com before the first transfer of inventory from that location. If it does not, the location cannot be resolved and the transfer of that inventory record fails, because the location is required. Subscribers or their MiSP must do one of two things before enabling this collection: EITHER transfer Counterpoint's locations to iPaaS.com so that a matching location exists for every location that holds stock, OR create those locations in iPaaS.com by hand with names matching the Counterpoint location names. One of the two must be done at install time. Errors surface at Dashboard / Integration Monitoring / Error Logs.
Locations are matched by name: subscribers whose iPaaS.com locations are named differently from their Counterpoint locations should apply a Lookup Translation that maps each Counterpoint location name to the correct iPaaS.com location, rather than renaming records in either system.
Integration Flow
No records are transferred as prerequisites for this collection. The records it references are expected to exist already.
The record is sent to iPaaS.com, where subsequent transfers are routed by the external ID recorded on transfer.
Mappings
Add NCR Counterpoint Product Inventory TO iPaaS.com
Mapping Filter
var external = await GetSpaceportIdAsync(ITEM_NO, "Product", SpaceportSystemId);
if (IsEmpty(external)){return false;} else {return true;}
Filter Description.
The filter takes the Counterpoint item number from the inventory record and looks it up against the products already transferred into iPaaS.com. Where no matching product is found the filter returns false and the inventory record is skipped; where a match is found it returns true and the record transfers.
The effect is that this collection creates inventory only for products iPaaS.com already knows about. The product link this collection needs is resolved by the same lookup, so subscribers or their MiSP who widen or remove this filter should be aware that records admitted without a matching product have no product to attach to.
Mapping Type | Source Field (NCR Counterpoint) | Destination Field (iPaaS.com) | Description |
Field |
| QtyAvailable | Recommended. . |
Field |
| QtyOnHand | Recommended. . |
Field |
| Cost | Optional. . |
Dynamic Formula |
| LocationId | Required. IPaaS.com rejects the inventory record without it, and the value must be a valid iPaaS.com location id. |
Dynamic Formula |
| ParentId | Required. IPaaS.com rejects the inventory record without it, and the value must be greater than zero. |
QtyAvailable — Field
Source: QTY_AVAIL · Destination: QtyAvailable
This is a recommended field. The endpoint description for inventory does not list it as required, so iPaaS.com accepts an inventory record without it, but available quantity is the figure most downstream systems read to decide what can be sold, so it should be mapped for any meaningful inventory sync.
The quantity available at this location as NCR Counterpoint calculates it — on-hand stock less amounts already committed to orders. It is carried across unchanged as a decimal. This is a point-in-time figure that reflects the value when the transfer ran, not a live one; subsequent movements arrive through the sibling Update NCR Counterpoint Product Inventory TO iPaaS.com collection.
Available quantity can legitimately be negative in NCR Counterpoint where commitments exceed stock on hand. The endpoint description records this field as a decimal and documents no floor at zero, so a negative figure is passed on as-is rather than being corrected in transit. Subscribers whose downstream systems cannot accept a negative availability should apply a formula that floors the value at zero rather than assuming it never occurs.
QtyOnHand — Field
Source: QTY_ON_HND · Destination: QtyOnHand
This is a recommended field. The endpoint description for inventory does not list it as required, so iPaaS.com accepts an inventory record without it, but it should be mapped for any meaningful inventory sync.
The physical stock held at this location as recorded in NCR Counterpoint, carried across unchanged as a decimal. This differs from QtyAvailable in the same collection: on-hand is what is present, available is what is left once commitments are taken into account. Subscribers should map both where downstream systems need to distinguish physical stock from sellable stock.
Cost — Field
Source: AVG_COST · Destination: Cost
This is an optional field. The endpoint description for inventory does not list it as required, and iPaaS.com accepts an inventory record without it.
NCR Counterpoint's rolling average cost for the item at this location, carried across unchanged as a decimal. Counterpoint recalculates this figure as stock is received, so it reflects a blended cost across receipts rather than the price paid on any single purchase order.
Subscribers who cost their inventory on a different basis should replace this mapping with the source that matches their accounting practice. Subscribers who do not want cost figures leaving Counterpoint at all can remove the mapping; the inventory record still transfers without it.
LocationId — Dynamic Formula
Source: return await LocationIdFromNameAsync(LOC_ID); · Destination: LocationId
This is a required field — iPaaS.com rejects the inventory record without it, and the value must be a valid iPaaS.com location id.
An inventory record states how much stock exists at a particular place, so the place has to be identified. NCR Counterpoint identifies its locations by name; iPaaS.com identifies them by id. The formula bridges that by taking the Counterpoint location name from the inventory record and resolving it to the matching iPaaS.com location id.
The location named on the Counterpoint inventory record MUST exist as a location in iPaaS.com before the first transfer of inventory from that location. If it does not, the formula resolves to nothing and the transfer of that inventory record fails, because the location is required. This is a hard prerequisite, not a preference. Subscribers and their MiSP must do one of two things before enabling this collection: EITHER (a) transfer Counterpoint's locations to iPaaS.com so that a matching location exists for every location that holds stock, OR (b) create the locations in iPaaS.com by hand with names matching the Counterpoint location names. One of the two MUST be done at install time.
Locations are matched by name, so the names must correspond between the two systems. Subscribers whose iPaaS.com locations are named differently from their Counterpoint locations should replace this mapping with a Lookup Translation that maps each Counterpoint location name to the correct iPaaS.com location, rather than renaming records in either system.
ParentId — Dynamic Formula
Source: return await GetSpaceportIdAsync(ITEM_NO, "Product", SpaceportSystemId); · Destination: ParentId
This is a required field — iPaaS.com rejects the inventory record without it, and the value must be greater than zero. It identifies the product the inventory belongs to.
The formula takes the Counterpoint item number and looks up the matching product already transferred into iPaaS.com, returning that product's iPaaS.com id. This is the same lookup the collection filter performs, which is why the two always agree: the filter has already established that the product exists before any mapping in this collection runs, so by the time this formula evaluates, the lookup succeeds.
This mapping appears only in this collection and not in the sibling Update NCR Counterpoint Product Inventory TO iPaaS.com. The reason is cost. Resolving the product requires a lookup against iPaaS.com on every inventory record, and inventory typically changes far more often than products do. Paying that lookup is acceptable when an inventory record is first created, which happens once per product and location; paying it on every quantity change is not. The Update collection instead identifies the existing inventory record directly, so it does not need to resolve the product again.
The value is supplied automatically by the lookup. Subscribers should not replace it with a fixed value — a hardcoded or zero product id causes the transfer to be rejected.
Update NCR Counterpoint Product Inventory TO iPaaS.com
Mapping Type | Source Field (NCR Counterpoint) | Destination Field (iPaaS.com) | Description |
Field |
| QtyAvailable | Recommended. . |
Field |
| QtyOnHand | Recommended. . |
Field |
| Cost | Optional. . |
Dynamic Formula |
| LocationId | Required. IPaaS.com rejects the update without it, and the value must be a valid iPaaS.com location id. |
QtyAvailable — Field
Source: QTY_AVAIL · Destination: QtyAvailable
This is a recommended field. The endpoint description for inventory does not list it as required, so iPaaS.com accepts the update without it, but available quantity is the figure most downstream systems read to decide what can be sold, and keeping it current is the main reason this collection runs.
The quantity available at this location as NCR Counterpoint calculates it — on-hand stock less amounts already committed to orders. It is carried across unchanged as a decimal, and reflects the value at the moment the transfer ran.
Available quantity can legitimately be negative in NCR Counterpoint where commitments exceed stock on hand. The endpoint description records this field as a decimal and documents no floor at zero, so a negative figure is passed on as-is rather than being corrected in transit. Subscribers whose downstream systems cannot accept a negative availability should apply a formula that floors the value at zero rather than assuming it never occurs.
QtyOnHand — Field
Source: QTY_ON_HND · Destination: QtyOnHand
This is a recommended field. The endpoint description for inventory does not list it as required, so iPaaS.com accepts the update without it, but it should be mapped for any meaningful inventory sync.
The physical stock held at this location as recorded in NCR Counterpoint, carried across unchanged as a decimal. This differs from QtyAvailable in the same collection: on-hand is what is present, available is what is left once commitments are taken into account. Subscribers should map both where downstream systems need to distinguish physical stock from sellable stock.
Cost — Field
Source: AVG_COST · Destination: Cost
This is an optional field. The endpoint description for inventory does not list it as required, and iPaaS.com accepts the update without it.
NCR Counterpoint's rolling average cost for the item at this location, carried across unchanged as a decimal. Counterpoint recalculates this figure as stock is received, so it reflects a blended cost across receipts rather than the price paid on any single purchase order. Because this collection runs on inventory movements, the cost is refreshed as those movements occur.
Subscribers who cost their inventory on a different basis should replace this mapping with the source that matches their accounting practice, and should make the same change in the sibling Add NCR Counterpoint Product Inventory TO iPaaS.com collection so that a record's cost does not change basis between creation and its first update. Subscribers who do not want cost figures leaving Counterpoint at all can remove the mapping from both collections; the inventory record still transfers without it.
LocationId — Dynamic Formula
Source: return await LocationIdFromNameAsync(LOC_ID); · Destination: LocationId
This is a required field — iPaaS.com rejects the update without it, and the value must be a valid iPaaS.com location id.
An inventory record states how much stock exists at a particular place, so the place has to be identified on an update as well as on a create. NCR Counterpoint identifies its locations by name; iPaaS.com identifies them by id. The formula takes the Counterpoint location name from the inventory record and resolves it to the matching iPaaS.com location id.
The location named on the Counterpoint inventory record MUST exist as a location in iPaaS.com before the first transfer of inventory from that location. If it does not, the formula resolves to nothing and the transfer of that inventory record fails, because the location is required. This is a hard prerequisite, not a preference. Subscribers and their MiSP must do one of two things before enabling this collection: EITHER (a) transfer Counterpoint's locations to iPaaS.com so that a matching location exists for every location that holds stock, OR (b) create the locations in iPaaS.com by hand with names matching the Counterpoint location names. One of the two MUST be done at install time.
Locations are matched by name, so the names must correspond between the two systems. Subscribers whose iPaaS.com locations are named differently from their Counterpoint locations should replace this mapping with a Lookup Translation that maps each Counterpoint location name to the correct iPaaS.com location, rather than renaming records in either system. Any such replacement should be made identically in the sibling Add NCR Counterpoint Product Inventory TO iPaaS.com collection, so that updates resolve to the same location the record was created against.
Error Handling
Errors raised while transferring these records surface at Dashboard / Integration Monitoring / Error Logs. The specific messages, their causes and their resolutions are documented in NCR Counterpoint Error Messages. A record stopped by an error is not retried automatically; it must be resolved manually.
Testing & Validation
Replace every placeholder value called out above with one from the target Counterpoint installation, and confirm each exists in Counterpoint.
Transfer a single record through Manual Sync and confirm it appears in Counterpoint as expected.
Confirm any child records transferred with the parent.
Enable the relevant triggers and confirm a new record transfers automatically, and that a change updates the same Counterpoint record rather than creating a second one.
Attempt a transfer with a missing required field and confirm the expected error appears at Dashboard / Integration Monitoring / Error Logs.
Additional Notes
Stock figures are point-in-time: at the time this documentation was written, the quantities transferred reflect the values at the moment the transfer ran, not live values. Movements made afterwards arrive on the next update of the inventory record.
These and other runtime behaviors are documented in NCR Counterpoint Known Limitations.
Related Documents
NCR Counterpoint Connections and Settings: the credentials and subscription settings that connect iPaaS.com to Counterpoint.
NCR Counterpoint Installation Instructions: installing CPHive and CPWebhooks on the Counterpoint server.
NCR Counterpoint Known Limitations: what the integration does not do, and the values to replace before go-live.
NCR Counterpoint Error Messages: the errors a transfer can raise, what causes them, and how to resolve them.
NCR Counterpoint API Endpoints: the CPHive endpoints the integration calls.
