Epicor Business Object Service Reference (Erp.BO Services, Tables and Keys)
When building integrations or BPMs you constantly need the exact business object name and the main table behind it. This reference keeps the most common Epicor services, their primary tables and keys in one searchable place.
| Service | Main table | Primary key field | GetNew method | Area |
|---|---|---|---|---|
Erp.BO.PartSvc | Part | PartNum | GetNewPart | Inventory / Engineering |
Erp.BO.CustomerSvc | Customer | CustID (CustNum internal) | GetNewCustomer | Sales / CRM |
Erp.BO.VendorSvc | Vendor | VendorID (VendorNum internal) | GetNewVendor | Purchasing |
Erp.BO.SalesOrderSvc | OrderHed | OrderNum | GetNewOrderHed | Sales |
Erp.BO.QuoteSvc | QuoteHed | QuoteNum | GetNewQuoteHed | Sales |
Erp.BO.JobEntrySvc | JobHead | JobNum | GetNewJobHead | Production |
Erp.BO.POSvc | POHeader | PONUM | GetNewPOHeader | Purchasing |
Erp.BO.LaborSvc | LaborHed | LaborHedSeq | GetNewLaborHed | Shop floor |
Service, table and method names are shown as commonly used. Always confirm in the Epicor Help or the REST help page at /api/help on your instance, since fields and extra methods vary by version. Standard methods on most services include GetByID, GetRows, GetList, Update and DeleteByID.
Plan a safe Epicor integration
Optional: talk through an integration or AI use case on Epicor data.
Optional. The tool and every export work without this. No spam.
How to use the reference
Search for the table you know, such as JobHead, to find the service that maintains it, or search the service to see its key and the method used to create a new record. Use the names in REST URLs, for example Erp.BO.JobEntrySvc, or when adding a service reference in a C# integration. Export to Excel to keep a team cheat sheet.
Standard method pattern
Most Epicor business objects follow the same pattern. GetNew methods return a blank row with defaults and key fields populated, GetByID returns a full record with its child tables, GetRows runs a where clause and returns lists, and Update commits changes from a dataset. The RowMod column on each temp table row tells the object whether to add, update or delete.
- GetNewXxx: blank row with defaults
- GetByID: record with child tables
- GetList and GetRows: filtered lists
- Update: saves the dataset, fires BPMs
- DeleteByID: removes a record where allowed
Common mistakes
Skipping GetNew and building rows by hand misses defaults that business logic expects. Another is updating without setting RowMod correctly, so nothing saves or duplicates occur. Writing directly to database tables bypasses BPMs, security and audit trails and is unsupported. Also remember that child tables such as JobOper or OrderDtl are changed through their parent service.
Frequently Asked Questions
How do I find all methods for a service?
Use the REST help page on your instance or the Epicor Help documentation for the service. It lists every method and its parameters for your exact version, which is more reliable than a generic list.
Why use a service instead of SQL?
Business objects enforce validation, security, BPMs and audit. SQL writes skip all of that and can corrupt data relationships. SQL is fine for read-only reporting on a copy.
What is the difference between GetRows and GetList?
GetList returns a lightweight list of key columns for a where clause, suitable for lookups. GetRows returns the full dataset including child tables. Use GetList when you only need to find records.
Do the same services exist in Epicor 10 and Kinetic?
The core services listed here exist across both generations, though details and additional methods change. Confirm against your own instance before coding.
If you are mapping Epicor services into integrations or AI agents, Netray can help design safe, read-first access.
Related Tools
Epicor BAQ OData REST URL Builder
Builds Epicor REST v2 OData URLs and curl commands for BAQs and business object services, with API key header and filters.
EpicorEpicor BPM Custom Code Block Generator
Generates a C# custom code block for an Epicor method directive that validates a field on a temp table and raises an error or message.
EpicorEpicor Job Lifecycle Flags Reference
Lookup table of the job status flags on Erp.JobHead and related tables, what they mean and how to use them in BAQs.
EpicorEpicor DMT Data Load Checklist
Checklist for planning and running Epicor DMT loads: prerequisites, load order, BPM impact, validation and rollback.
More Epicor tools
See all- Epicor Kinetic Customization Change Request Form Template
- Epicor Kinetic Go-Live Cutover Plan Template
- Epicor Kinetic User Access Request Form Template
- Epicor Kinetic BPM Directive Inventory Worksheet
- Epicor Kinetic Scheduled Task Register Worksheet
- Epicor Kinetic Custom Report Inventory Worksheet
- Epicor Kinetic Data Migration Mapping Worksheet
- Epicor Kinetic Data Load Effort Calculator
- Epicor Business Object Services Reference