P21 Developer Reference¶
Welcome to the Epicor Prophet 21 developer reference. This site covers everything you need to build integrations, business rules, and customizations against P21.
What's Here¶
-
:material-api: APIs
Five distinct APIs for reading and writing P21 data, from simple REST calls to full UI automation.
-
:material-code-braces: Business Rules
C# class libraries that extend P21 behavior — validators, event handlers, custom dialogs.
-
:material-file-document: Forms & UI
Crystal Reports form customization and DynaChange portal/screen design.
-
:material-book-open-outline: Internal
Our internal standards, patterns, and "how we do things" documentation.
Quick Start¶
New to P21 development? Start here:
- Authentication & Sessions — Every API call requires a session or token. Start here.
- Which API to Use — Choose the right API for your use case.
- Common Services — Session management, the foundation of all API work.
P21 Extensibility at a Glance¶
| Layer | Tool | Language | Use When |
|---|---|---|---|
| Data access | Data Services API | Any | Read-heavy queries, OData filtering |
| Entity CRUD | Entity API | Any | Standard create/read/update for business records |
| Window automation | Interactive API | Any | Automating P21 as if a user were operating it |
| Business services | Transaction API | Any | Complex transactions, 500+ service coverage |
| In-process logic | Business Rules | C# | Custom validation, calculations, event handling |
| Form customization | Crystal Forms | Crystal | Invoice/report layout customization |
| Screen customization | DynaChange | Config | Portal design, field customization |
API Base URLs¶
| API | Base URL |
|---|---|
| Common Services | https://{server}/uiserver0/ui/common/v1/ |
| Interactive API | https://{server}/uiserver0/ui/interactive/v1/ |
| Transaction API | https://{server}/uiserver0/ui/interactive/transaction/ |
| Entity API | https://{server}/api/entity/ |
| Data Services | https://{server}/api/dataservices/ |
Server URL
Replace {server} with your P21 server hostname. All paths are case-sensitive.
SDK Versions¶
Current SDK versions (as of this documentation):
| Package | Version |
|---|---|
| P21.Extensions.BusinessRule | 25.2.25 |
| P21.DomainObject | 25.2.45 |
| P21.Common | 3.80.4 |
| Target Framework | net48 / net8.0 |