ERPNext subcontracting setup

ERPNext subcontracting setup models outsourced production with service items, subcontracting BOMs, supplier warehouses and receipts so that issued materials and processing charges land correctly in valuation. This page explains the decisions, sequence, data work and effort drivers, and what a partner would hand over.

On this page

ERPNext subcontracting setup for teams that outsource part of production

ERPNext subcontracting setup lets a manufacturer record work sent to a contract processor so that stock and cost stay correct while the work is outside its own walls. Teams configure it when they send a defined operation, such as plating, machining, heat treatment or assembly, to a supplier who returns finished or semi-finished goods. Without it, raw materials leave the books, the returned goods arrive with no traceable cost, and the processing charge lands somewhere it does not belong. The setup connects four things: a service item for the processing charge, a subcontracting BOM that states which materials the finished item needs, a supplier warehouse that holds materials issued to the processor, and the transactions that move stock and cost between them.

The setup starts with item and BOM design. The service item represents the operation itself and is purchased from the processor, so its charge flows through purchasing like any other supply. The subcontracting BOM links the finished good to the service item and to the raw materials that will be issued. Next comes the supplier warehouse, which holds issued materials while they are at the processor. Teams should decide whether one warehouse per supplier is needed, since that choice shapes how stock on hand at each processor is reported and reconciled. Confirm in the ERPNext documentation for your version which fields on the supplier, warehouse and BOM control this behavior, and check the exact names of the transactions before you build the process on them.

The transaction flow is where cost correctness is won or lost. A Subcontracting Order records what is being sent out, a stock entry issues the raw materials to the supplier warehouse, and a Subcontracting Receipt records returned goods and their processing charge. Valuation then depends on how materials consumed and the service charge are added to the finished item. Before go-live, run one test cycle end to end, then compare stock balances and the general ledger against expected values. Ask your implementation partner to document each step, the roles allowed to post each document, and how partial returns and rejected goods are handled. The exact accounting entries generated at each step should be checked against the ERPNext documentation for your version, since behavior has changed between releases.

What ERPNext subcontracting does for outsourced production

Subcontracting in ERPNext links four things: the service you pay a contractor for, the finished item and inputs it produces, the raw materials you send them, and the cost that lands on the finished goods. Each element below needs a decision before the first contractor order is raised.

Service items for processing charges

A service item is a non-stock item that represents the contractor's processing fee, such as machining, plating or assembly labor. It carries no physical stock, so the charge is what you negotiate per unit or per job. Decide the item group, the expense or valuation treatment and the default rate before you create the first Subcontracting Order, because these defaults flow into every later receipt. Confirm the exact item settings with the ERPNext subcontracting documentation.

Subcontracting BOMs for finished items

A subcontracting BOM defines the finished item the contractor returns and the raw materials that must be issued to them to make it. It is the basis for calculating how much material to send for each order. Decide which components you will supply, which the contractor sources locally and how scrap or yield variation is handled. Confirm with the documentation how the subcontracting flag is set on the BOM and how multiple active BOMs for one item are selected.

Supplier warehouses for issued materials

When you send materials to a contractor, the stock leaves your main warehouse but still belongs to you. ERPNext holds it in a supplier warehouse linked to the contractor's supplier record, so you can see what is at each site. Decide one warehouse per contractor, who may move stock in and out, and how you will reconcile material on hand at the contractor against what the returned goods consumed. Confirm the supplier warehouse setup with the subcontracting documentation.

Subcontracting Orders

A Subcontracting Order is the purchase commitment to a contractor for a finished item, quantity and delivery date, based on the subcontracting BOM. It records what you expect back and triggers the transfer of raw materials to the supplier warehouse. Decide who approves orders, how partial quantities are handled and whether the order is raised from a purchase or production plan. Confirm the document flow and the status fields with the ERPNext documentation before building approval rules.

Subcontracting Receipts

A Subcontracting Receipt records the finished goods returned from the contractor and the raw materials they consumed. Posting it moves the finished item into your stock and reduces the supplier warehouse for the consumed inputs. Decide who verifies quantities at goods-in, how rejected or short items are recorded and whether quality inspection applies on receipt. Confirm the receipt fields and the handling of excess or shortage material in the subcontracting documentation.

Valuation of consumed materials and charges

The finished item's cost combines the raw materials the contractor consumed with the processing charge from the service item. Materials consumed carry their valuation from your stock ledger, and the service charge adds labor or conversion cost. Decide how the processing charge is valued and whether any landed cost such as freight is allocated to the returned goods. Test the valuation on a single order before going live, and confirm the posting behavior with the subcontracting documentation.

Which configuration decisions to settle before building subcontracting

This table compares the configuration choices that shape an ERPNext subcontracting model, with the options for each and the conditions that favor them. Read each row before building, because the answers determine which warehouses, items and approval steps you need. Settle the material supply and warehouse questions first, since they drive the rest of the setup.

DecisionOptionsWhen each option fits
Who supplies the raw materialsYour stock issued to the contractor, or the contractor supplies its ownIssuing your stock needs a supplier warehouse and transfer records to track it. Contractor-sourced material keeps your stock simpler but reduces your visibility of material cost and yield.
Supplier warehouse scopeOne warehouse per contractor, or one shared warehouseA warehouse per contractor keeps issued stock separate and easier to reconcile. A shared warehouse suits a few contractors at one site, but balances mix and reconciliation gets harder.
Processing charge modelService item priced per unit, or per batch or lotPer unit fits repeatable operations with a stable rate. Per batch fits setup-heavy work or minimum charges. Confirm how the service item and rate carry onto the Subcontracting Order in your version.
Partial receiptsReceive in part against an open Subcontracting Order, or receive complete lots onlyPartial receipts fit long runs or staged deliveries and let stock move sooner. Complete lots keep costing and invoice matching simpler but delay availability.
Rejected unitsReturn to contractor for rework, or record as scrapReturn fits when the contractor reworks at its own cost under the same order. Scrap fits when material value is lost. Confirm how scrap and rejected quantities post to valuation in your version.
Backflush basis for materialsConsume materials per subcontracting BOM, or per materials actually transferredPer BOM suits stable yields and predictable consumption. Per transfer suits variable consumption. Confirm the exact Buying Settings option name in your ERPNext version.
Approval before a Subcontracting OrderRequire internal approval first, or create orders directlyApproval fits high-value or regulated work. Direct creation fits low-value, frequent jobs. Approval rules are a separate ERPNext feature, so confirm how they apply to this document type.

How the setup changes by subcontracting situation

When your organization issues all raw materials to the contractor, the setup must show those components leaving your main warehouse and sitting in a supplier warehouse until the finished goods come back. The stock ledger has to represent materials in transit to the contractor, so the consumed quantity is visible when the receipt is booked. Valuation carries the issued components at their cost, and the processing charge from the service item is added on receipt, so the finished item reflects both.

  • Supplier warehouse: Confirm that each contractor has a dedicated warehouse flagged for subcontracting so issued stock is tracked separately from your own inventory.
  • Service item cost: Decide whether the processing charge is a per-unit rate or a lump sum, since this drives how the receipt values the output.
  • Subcontracting BOM: Check that every component the contractor needs is listed, because only components on the order are transferred.
  • Consumption at receipt: Verify that the quantity consumed matches what the contractor reports, including scrap, before the receipt is submitted.
  • Test: Run one order end to end and reconcile the supplier warehouse balance to zero after receipt.

Confirm the exact configuration this case needs with the ERPNext subcontracting documentation for your version.

How to roll out ERPNext subcontracting in order

This sequence takes outsourced production from a documented process to a tested, monitored flow in ERPNext, with each step leaving a record your finance and stores teams can check. Work through it in order, since later steps depend on the item and warehouse design settled earlier.

  1. Map outsourced operations and materials

    Start with the production team and the finance lead. List each product or operation sent to a subcontractor, the raw materials you issue to them, the finished or semi-finished goods that come back, and any scrap or rework that is expected. Record who owns each handover and where stock sits at each point. The output is a process map with one row per outsourced operation, showing the issued materials, the returned goods and the accounts that will carry the processing charge. The step is done when the operations lead and the controller both sign off the map.

  2. Configure items and service items

    Create the finished goods, the raw materials that are issued to subcontractors and a service item for each processing charge the subcontractor bills. Confirm the item group, unit of measure, valuation method and default accounts for each one, and decide which items are tracked by serial or batch number. The output is an item register that lists every item, its type and its purpose in the subcontracting flow. Review the register with the stores and accounting leads, then check that no outsourced operation depends on an item that is missing from it.

  3. Build subcontracting BOMs and supplier warehouses

    Create a subcontracting BOM for each outsourced product, listing the raw materials consumed and the service item that represents the processing charge. Set up a supplier warehouse for each subcontractor so that issued materials are held in a location that is separate from your own stock. Check the quantities on each BOM against the engineering or production documents. The output is a BOM register and a warehouse tree that match the process map. Confirm that each subcontractor has a supplier record linked to the correct warehouse before moving on.

  4. Run a test cycle with valuation checks

    Use a test company or a copy of your site to walk one product through the full cycle: a Subcontracting Order, a Stock Entry that transfers raw materials to the supplier warehouse, a Subcontracting Receipt when finished goods return, and the purchase invoice for the processing charge. After each document, compare stock balances, general ledger postings and the valuation of the returned item against manual calculations. The output is a test log that records each document, the expected result, the actual result and any variance. Repeat the cycle for a scrap or partial-return case before you accept the design.

  5. Train purchasing and stores users

    Prepare a user runbook that describes, step by step, how purchasing raises a Subcontracting Order, how stores issues materials to the supplier warehouse, how receipts are booked on return and how discrepancies are reported. Run a training session with each group using the test site, and have each user complete the cycle without help. Confirm role permissions so that users can post only the documents their job requires. The output is a signed-off runbook and a short record of which users completed the exercise.

  6. Go live with receipt and stock monitoring

    Move the configured items, BOMs and warehouses into the live company and run the first real orders under close supervision. Each week, review open Subcontracting Orders, receipts awaiting booking, and the stock held at each supplier warehouse against the expected balance. Ask finance to reconcile the processing charges and the value of materials consumed to the general ledger at period close. The output is a monitoring report that lists open orders, aged materials at subcontractors and any valuation variances, reviewed by the controller until the flow runs without exceptions.

Moving open subcontracting work and supplier stock into ERPNext

The main risk when moving subcontracting into ERPNext is counting the same material twice: once in your own warehouse records and again in the supplier warehouse where the contractor physically holds it. Before go-live, list every open Subcontracting Order, every item currently issued to a contractor, and every finished or semi-finished good still at the contractor's site. Reconcile each contractor's stock statement against the supplier warehouses you plan to create, and agree the quantities and valuation rates with finance. Record only what you can match to a physical or contractual source. Anything the contractor cannot confirm should stay on a open question list rather than being loaded as opening stock.

Loading the master data is where volume becomes a problem. The ERPNext Data Import tool accepts CSV or Excel files with child table rows, which covers Item records and the BOM lines that depend on them. The Data Import documentation advises importing only a few thousand records at a time, so split large item and subcontracting BOM loads into batches, import parent records before the child rows that reference them, and keep a log of which batch each record came from. Stock Reconciliation entries for opening balances should follow the item load, not precede it.

Close the migration with a test run on a copy of the site, not the live bench. Confirm, with a test migration, that the valuation of each supplier warehouse matches the contractor's statement, and that open Subcontracting Orders show the same quantities, rates and delivery dates as the source records. Then post one test Subcontracting Receipt against an open order and check that the raw materials leave the right supplier warehouse and the processing charge lands where your accountant expects. Ask your finance lead to sign off these balances before the cutover date is fixed.

What drives subcontracting setup effort and how to keep it down

This table lists the factors that add setup and upkeep work for ERPNext subcontracting, why each one matters, and how to reduce it. Read the one-time rows as the build cost and the recurring rows as the running cost after go-live. The main takeaway is that item and BOM data quality and the number of contractor relationships usually decide the effort more than the ERPNext configuration itself.

DriverWhy it adds workHow to reduce it
Number of outsourced operations (one-time)Each process a contractor performs, such as plating or cutting, needs its own service item, cost treatment and receipt flow to test.Limit the first release to the operations that carry the most volume and add the rest in later phases.
Number of contractors and their material arrangements (one-time, then recurring)Some contractors receive your raw materials, others supply their own. Each arrangement changes which supplier warehouse and transfers are used.Group contractors by material arrangement and standardize one pattern per group before onboarding the next.
Finished items with subcontracted routes (one-time)Every finished item that is made partly outside needs a subcontracting BOM and a reviewed list of components to be issued.Start with a short list of high-volume finished items and confirm their components before creating more BOMs.
Quality of existing item and BOM data (one-time)Duplicate item codes, missing units of measure or outdated component lists lead to wrong issues, receipts and costs.Cleanse item masters and BOMs before go-live and assign an owner for changes to them.
Valuation methods and multi-company or multi-currency rules (one-time, then recurring)Consumed materials and processing charges must post to the right accounts and currencies for each company, which multiplies test cases.Confirm valuation method and account mapping in writing for each company and currency before building the flow.
Reconciliation of contractor-held stock (recurring)Materials sent to a contractor stay on your books until consumed or returned, so counts and open balances need regular checks.Set a fixed reconciliation cadence and report open supplier warehouse balances to the people who own the contracts.
Number of users who must be trained (one-time, then recurring for new staff)Purchasing, stores, production and finance each use different documents, and staff turnover repeats the training.Write short role-based procedures with screenshots from your own setup and keep them with the configuration record.
Scope of the written agreement (one-time)Cost and duration depend on the number of operations, contractors, companies and users in the written scope, so changes after signing add work.Ask for a quote that lists each driver above as a separate line, and confirm in writing which items are excluded.

How subcontracting connects to purchasing, stock, manufacturing and accounting

Subcontracting touches four ERPNext modules at once: buying records the service charge, stock tracks the materials you send out and receive back, manufacturing holds the subcontracting BOM, and accounting values the finished goods. Set each link deliberately, because a gap in one module shows up later as a mismatch in another.

Buying for the service charge

The processing fee you pay the subcontractor is a service item on a Purchase Order, separate from the raw materials you issue. Check that the service item is non-stock, that its rate is agreed in the Subcontracting Order, and that the supplier's tax treatment matches your purchasing setup. The procurement setup topic covers purchase orders, approvals and supplier controls in more depth.

Supplier warehouses for issued stock

Materials you ship to a subcontractor should sit in a supplier warehouse, so they remain visible in stock but are not available for your own production. Confirm that each subcontractor has its own warehouse, that receipts return goods from that warehouse, and that any scrap or shortfall is handled by a stock entry. The inventory and warehouse topic explains the warehouse tree and stock reconciliation.

Subcontracting BOMs and production planning

The subcontracting BOM lists the raw materials consumed per finished item and is the source for what gets issued to the supplier. Review its quantities and scrap allowances before the first order, because planning and material requests read from it. Confirm how your planning run treats subcontracted items so they are not double counted as internal production.

Valuation and the general ledger

Materials consumed at the subcontractor and the processing charge both flow into the valuation of the finished goods on receipt. Test one full cycle end to end, then check that the stock ledger and general ledger balance for the warehouse and expense accounts you chose. Ask your finance team which accounts receive the work-in-transit and the service cost before you post live transactions.

Data Import for master data

Item, supplier, warehouse and BOM records are usually loaded before the first subcontracting order, and the Data Import tool handles CSV or Excel templates with child table rows. The documentation advises importing only a few thousand records at a time, so split large item lists into batches and reconcile counts after each run. Keep the source file under version control so you can repeat the load in a test site.

Server Scripts for custom checks

Server Scripts can run Python on document events, for example to block a receipt when the issued quantity is missing. From version 15 they are disabled by default and must be enabled with the server_script_enabled setting, and Frappe Cloud public shared benches do not allow them. Confirm your hosting option supports them before you design a check that depends on one.

What buyers ask before setting up subcontracting in ERPNext

What does it cost to set up subcontracting in ERPNext?

ERPNext itself is free to self-host, according to the ERPNext pricing page, so the cost of a subcontracting setup is the labor and the infrastructure around it. The main components are configuration work (service items, subcontracting BOMs, supplier warehouses and the order and receipt flow), testing with real production data, any custom scripts or reports you need, and training for the people who will post receipts. Implementation is available through certified partners, and a quote follows from the written scope. Ask for line items per component, whether testing and training are included, and which parts recur, such as hosting and upgrades. Implementation is available through certified partners, so compare quotes against a written scope rather than a day rate alone.

How long does subcontracting setup take, and what drives it?

The duration depends mostly on how many subcontracted processes you run, how many suppliers are involved, and how clean your existing item and BOM data is. A single finished product sent to one supplier is a far smaller job than several components issued to multiple processors with different rework paths. The other drivers are whether your valuation rules need custom reporting, whether stock is tracked by serial or batch, and how many people must be trained before go-live. No duration figure is given here because it depends on the written scope. Ask any provider to break the timeline into design, configuration, test cycles and cutover.

What does our team need to provide for a subcontracting project?

The work needs people who know your production process and people who own the accounting outcome. On the process side, you need the bill of materials for each subcontracted item, the list of suppliers who process it, and the rules for what material leaves your site and what comes back. On the finance side, someone must confirm how processing charges should be valued and which accounts they post to. You also need a test environment, a sample of recent transactions to replay, and a named owner who can approve the design. Missing any of these usually extends the project, so confirm them before the scope is signed.

Can our own team configure subcontracting in ERPNext without a partner?

Yes, a team with ERPNext experience can configure subcontracting in-house, provided it has someone who understands both manufacturing flows and stock valuation. The steps are learnable from the documentation, but the risk lies in the decisions: how supplier warehouses are structured, how issued materials are tracked, and how processing charges enter valuation. Mistakes in those decisions are expensive to unwind after transactions are posted. Many teams keep ownership internally and bring in a partner only for design review or for the parts they have not done before. Be honest about who will maintain the setup after go-live, because that is where in-house efforts often stall.

What goes wrong most often with subcontracting in ERPNext?

The most common problems come from the flow of materials and the warehouse design. Teams often issue raw materials without a supplier warehouse, so stock on the supplier's site is not visible. Others create a subcontracting BOM that does not match the physical process, which leads to wrong consumption quantities on receipt. Processing charges are sometimes recorded as separate purchase invoices without a clear link to the receipt, which makes costs hard to trace. Scrap and partial receipts are also frequently mishandled. Test each path with a short cycle: issue, partial receipt, rework and final receipt, before you rely on the numbers.

How do we check that valuation is correct after subcontracting goes live?

Valuation is correct when the finished goods carry the cost of the materials consumed at the supplier plus the processing charge, and when the stock ledger and general ledger agree. Start by reconciling one finished item end to end: the raw material issued, the quantity consumed on receipt, the service item charge and the resulting valuation rate. Then compare stock balances in the supplier warehouse with the physical count. Run the same check after a period close to confirm no residual balances are left over. Keep a written test script so the check can be repeated after changes, and have finance sign off on the reconciliation rather than relying on the system report alone.

How does subcontracting change after an ERPNext version upgrade?

The setup itself usually survives an upgrade, but every upgrade needs a test cycle covering subcontracting. ERPNext releases are frequent, and both supported major versions receive regular minor releases, so you should plan a repeatable test of the full flow before moving production. Check the release notes for changes to stock, subcontracting or valuation behavior, and re-run your reconciliation script on a copy of production data. Custom scripts and reports are the most likely to break, so review them first. Frappe support also depends on being on a listed version, which is a reason to confirm your target version against the supported versions page before planning the upgrade.

How DeployOpen scopes and delivers subcontracting setup

DeployOpen is a Chainscore Labs company that plans, implements, customizes, documents and supports self-hosted open-source platforms inside your own infrastructure. For ERPNext subcontracting setup, we start with a written scope that maps your outsourced production flows to ERPNext configuration, then build and test them against your own item and cost data before handover.

How we scope

  • Map which items are sent out for processing and which are bought finished from subcontractors
  • Confirm the subcontracting BOMs, supplier warehouses and raw materials issued to each supplier
  • Agree in writing how processing charges should flow into item valuation and the accounting entries
  • Ask your team to confirm the valuation method and the warehouse structure before any build starts

How we build

  • Configure service items, subcontracting BOMs and supplier warehouses in a non-production ERPNext site
  • Test Subcontracting Orders, Receipts and material transfers with sample transactions from your own process
  • Verify stock balances, valuation and general ledger postings against expected results for each scenario
  • Keep customizations to standard configuration where possible and document any scripts or custom fields

How we hand over

  • Provide written documentation of the configured item, BOM, warehouse and posting setup
  • Walk your inventory and accounting staff through the transaction sequence and the common corrections
  • Record the test cases used and their results so your team can repeat them after future upgrades
  • Confirm handover criteria with you in the written scope before the engagement closes

How we support

  • Offer ongoing support, upgrades and testing as a retainer after go-live, scoped separately in writing
  • Review the setup when your ERPNext version changes, since minor releases arrive frequently
  • Assist with reviewing subcontracting transactions that do not reconcile with physical stock
  • Confirm with your auditors which controls and evidence they expect from the production flow

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.