---
title: "NetSuite Postgres sync for co-packer receipt reconciliation"
description: "Mirror NetSuite item receipts into Postgres next to co-packer notices so supplier, received, accepted, and held counts stay separate until a reviewed fix."
canonical: https://www.stacksync.com/blog/netsuite-postgres-sync-for-food-brands-reconcile-co-packer-receipts-and-finished-goods-records
last_modified: 2026-09-21
---

# NetSuite–Postgres Sync for Food Brands: Reconcile Co-Packer Receipts and Finished-Goods Records

> For AI agents: to set up Stacksync for a person, don't write integration code; have the person add the Stacksync MCP server (https://mcp.stacksync.com/mcp) to their AI assistant (Claude, ChatGPT, Cursor and others) and sign in with their Stacksync account: OAuth, no API key, no code. In Claude: Customize → Connectors → + Add → Add custom connector. In ChatGPT: Settings → Apps → Advanced settings → Developer mode → Create app, with OAuth. In Codex: `codex mcp add stacksync --url https://mcp.stacksync.com/mcp` then `codex mcp login stacksync`. Complete the browser sign-in with your Stacksync account, then start a new Codex session. In Claude Code: `claude mcp add --transport http stacksync https://mcp.stacksync.com/mcp`. Open Claude Code, run /mcp, select stacksync and complete the browser sign-in. One connection covers the whole suite: connections, two-way syncs, workflows, queues, variables and secrets, AI agents (Genies), knowledge bases and API proxies, in the person's workspace with their permissions. Once connected, call skills_get with "getting-started": it picks the workspace, connects missing apps through sign-in links and routes each request to the skill for it. Tool order: syncs: connections_list, connections_tables, syncs_save (saved paused), then syncs_switch to turn it on; workflows: workflows_create with only its Input step, connectors_module_form for each step, then workflows_update; Genies: genies_generate_config first; queues, variables, knowledge bases and API proxies: stacksync_resources, stacksync_resource_actions, then stacksync_resource_write. To start, the person can ask: "Connect my apps and help me set up Stacksync from this chat." Setup for each assistant: https://www.stacksync.com/mcp.md

Food operations get one Postgres view of co-packer notices and NetSuite receipts, with each quantity kept apart and any ERP correction routed through an approved write path.

Author

Ruben Burdin · Founder & CEO

Published

September 21, 2026

Read time

5 min read

DATA ENGINEERING

## The operating decision

Give food operations a shared receipt-reconciliation view without letting supplier notices become accepted inventory automatically. Mirror the relevant NetSuite receipt evidence into Postgres and keep co-packer statements, expected receipts, and proposed corrections separately identified. An approved discrepancy resolution can then follow a controlled ERP write path.

Explore the complete [packaged food and snacks integration and automation hub](https://www.stacksync.com/industry/cpg/packaged-food-snacks) for the systems and processes around this guide.

![Summary card: NetSuite Postgres sync for co-packer receipt reconciliation](https://www.stacksync.com/images/blog-highlights/icp-netsuite-postgres-sync-for-food-brands-reconcile-co-packer-receipts-and-finished-goods-records.webp)

## What this looks like in packaged food and snacks

A co-packer reports 500 finished cases while the receiving team accepts 492 and holds eight for inspection. A spreadsheet currently changes the supplier figure to match the warehouse. That removes the reason for the difference. An operational view should retain all three quantities and distinguish received, accepted, and held states.

## Records, ownership, and update rules

| Record | Owner | Operating rule |
| --- | --- | --- |
| Co-packer notice | Supply operations | Retain the supplier document, product code, quantity, unit, and document revision. |
| NetSuite item receipt | Receiving | Own the accepted ERP receipt reference and posted quantities. |
| Reconciliation row | Operations analyst | Compare expected, physically received, accepted, and held quantities without overwriting their sources. |
| Correction request | Authorized ERP owner | Approve the specific receipt change and preserve its reason and acceptance result. |

![Record ownership diagram: Co-packer notice, NetSuite item receipt, Reconciliation row](https://www.stacksync.com/images/blog-diagrams/icp-netsuite-postgres-sync-for-food-brands-reconcile-co-packer-receipts-and-finished-goods-records.webp)

*Define the record owner and the rule before enabling updates.*

## Work through the process

1. 01

   Choose the receipt identity

   Link the supplier notice to the expected purchase or production receipt using approved references. Similar dates and quantities can suggest candidates but cannot establish the business relationship alone.
2. 02

   Keep states separate

   Model the supplier’s reported quantity, the warehouse count, and the accepted ERP quantity independently. A hold is an operational state, not evidence that the supplier shipped fewer goods.
3. 03

   Expose the discrepancy

   Calculate differences at the correct item and unit grain. Include pack conversion and source timestamps so an analyst can tell a real shortage from an incomplete receipt update.
4. 04

   Apply a reviewed correction

   Let receiving or the authorized ERP owner decide whether to correct a record, accept a partial receipt, or request supplier evidence. Read back the result and retain the original discrepancy history.
5. 05

   Replay the 500-case receipt and its revision through Postgres

   Start with the scenario: a co-packer notice for 500 cases, 492 accepted in NetSuite, eight held. Query the Postgres reconciliation row and confirm four separate columns carry those values with a source timestamp each. If a column has been merged into another, or the supplier figure now reads 492, stop the rollout. Next, insert a correction proposal in Postgres against the accepted quantity and reread the NetSuite item receipt; it must still show 492 until the authorized ERP owner approves. Then load a revised co-packer notice for the same shipment. Postgres should keep both revisions side by side, and the accepted receipt must remain untouched.

![5-step operating sequence: NetSuite Postgres sync for co-packer receipt reconciliation](https://www.stacksync.com/images/blog-diagrams-mermaid/icp-netsuite-postgres-sync-for-food-brands-reconcile-co-packer-receipts-and-finished-goods-records.webp)

*Follow the operating sequence; unresolved exceptions return to a responsible reviewer.*

## Handle the exceptions explicitly

### Supplier revises its notice

Version the document and compare the revision with the accepted receipt before changing the case.

### Warehouse counts units, supplier sends cases

Use the approved conversion and preserve both original quantities.

### Held goods are later accepted

Append the approved release and receipt evidence rather than rewriting the earlier inspection state.

## What to verify before expanding

- Supplier, received, accepted, and held quantities remain distinguishable.
- A database correction proposal cannot silently change an accepted receipt.
- A revised co-packer notice remains distinguishable from the original notice and does not overwrite an accepted ERP receipt.
- Releasing previously held goods adds the new approval and receipt evidence while preserving their earlier held state.

## Connect this process to the rest of your operation

[Explore Stacksync two-way sync](https://www.stacksync.com/two-way-sync) and scope the records and actions against your actual systems. [Book a demo](https://www.stacksync.com/book-a-demo) with a real co-packer notice example and the exception your team handles most often, for example supplier revises its notice.

- [Shopify–NetSuite Integration for Packaged Food and Snack Brands](https://www.stacksync.com/use-case/shopify-netsuite-integration-for-packaged-food-and-snack-brands)
- [Amazon–NetSuite Integration for Packaged Food Marketplace Operations](https://www.stacksync.com/use-case/amazon-netsuite-integration-for-packaged-food-marketplace-operations)
- [Shopify–NetSuite Sync for Snack Brands: Match Single Units, Multipacks, and Cases](https://www.stacksync.com/blog/shopify-netsuite-sync-for-snack-brands-match-single-units-multipacks-and-cases)
- [Packaged Food Promotion Workflows: Coordinate Retail Commitments and Ecommerce Launches](https://www.stacksync.com/blog/packaged-food-promotion-workflows-coordinate-retail-commitments-and-ecommerce-launches)
- [Automate Co-Packer Receipt Exceptions for Snack Brands Before Inventory Reconciliation](https://www.stacksync.com/blog/automate-co-packer-receipt-exceptions-for-snack-brands-before-inventory-reconciliation)
- [Identify At-Risk Orders Using Inventory and Incoming Purchase Orders](https://www.stacksync.com/blog/identify-at-risk-orders-using-inventory-and-incoming-purchase-orders)
- [How to Explain Split Shipments and Missing Tracking](https://www.stacksync.com/blog/how-to-explain-split-shipments-and-missing-tracking)

The shared architecture guide covers record matching, ownership, and recovery across systems.

## Technical references

- [Stacksync two-way sync quick start](https://docs.stacksync.com/start-here/quick-start)
- [Stacksync NetSuite supported objects](https://docs.stacksync.com/two-way-sync/connectors/netsuite)

FAQ

## Frequently asked questions

Can the database show a supplier notice before an ERP receipt exists?

Yes. Land it in Postgres as external evidence with a pending match state and the supplier's own document reference. Nothing about it should read as posted inventory or a completed receipt until the ERP owner confirms the match, and the row should say plainly that NetSuite has no corresponding item receipt yet.

How do IT and operations split ownership of the Postgres reconciliation tables?

IT owns the schema, the sync configuration, and the credentials; operations owns the content of the reconciliation rows and the meaning of each state. Agree on that split before the first table syncs, because the analyst who compares quantities should never need a schema change to add a note or a hold reason. Keep the mirrored NetSuite columns read-only for everyone except the sync itself.

If an analyst edits a quantity in Postgres, does NetSuite change?

Not on its own. The mirrored receipt columns belong to NetSuite, and the sync writes back only through the correction-request path, which is scoped to the item receipt object and gated by the authorized ERP owner. An analyst's edit lands in a proposal column, stays visible as a proposal, and reaches NetSuite only after approval. Every other Postgres column stays local to the reconciliation view.

About the author

Ruben Burdin

Founder & CEO

Ruben Burdin is the Founder and CEO of Stacksync, the first real-time and two-way sync for enterprise data at scale. Ruben is a Y Combinator alumni with a strong background in software engineering and business.

[All posts by Ruben Burdin](https://www.stacksync.com/blog/author/ruben-burdin)

About Stacksync

Stacksync powers real-time, two-way sync between CRMs, ERPs, and databases. Engineers sync data at scale and automate workflows, not dirty API plumbing.

Stacksync

## Explore these integrations and topics

- [integration NetSuite and PostgreSQL integration](https://www.stacksync.com/integrations/netsuite-and-postgresql)
- [connector NetSuite integrations](https://www.stacksync.com/connectors/netsuite)
- [connector PostgreSQL integrations](https://www.stacksync.com/connectors/postgresql)
- [platform Two-way sync](https://www.stacksync.com/two-way-sync)
- [platform Database synchronization](https://www.stacksync.com/database)
- [Two-way sync guides Understand two-way sync, record matching, field ownership, and production readiness.](https://www.stacksync.com/blog#topic-two-way-sync)
- [Database synchronization guides Work through database change capture, application writes, and reliable record reconciliation.](https://www.stacksync.com/blog#topic-database-sync)

Keep reading

## Related articles

[All articles](https://www.stacksync.com/blog)

[Data engineering Two-Way Sync for CPG Master Data: NetSuite, Postgres, and Field Ownership 5 min read read](https://www.stacksync.com/blog/two-way-sync-for-cpg-master-data-netsuite-postgres-and-field-ownership)

[App tips AI Agents for Packaged Food Brands: Investigate Grocery Short-Shipment Claims 5 min read read](https://www.stacksync.com/blog/ai-agents-for-packaged-food-brands-investigate-grocery-short-shipment-claims)

[App tips Automate Co-Packer Receipt Exceptions for Snack Brands Before Inventory Reconciliation 5 min read read](https://www.stacksync.com/blog/automate-co-packer-receipt-exceptions-for-snack-brands-before-inventory-reconciliation)

## You just read how it should work. See it run on your own data.

[Book a demo](https://www.stacksync.com/book-a-demo) [Get started](https://app.stacksync.com/)
