canonical: https://jentic.com/apis/phantasm.digital/phantasm

# Phantasm Digital PhantasmERP

The PhantasmERP API powers the B2B storefronts and warehouse picking of distributors running PhantasmERP, with servers such as begsd.phantasm.digital and several phantasm.solutions hosts. Customers browse brand and category product listings, search products, manage a cart and wishlist, apply discounts, add checkout addresses, and place an order, then read their orders and invoices or request a return. Warehouse staff log in separately to work their picking orders: start and end picking time, pick quantities, mark orders picked or verified, and revert shortages.

## For AI agents

Browse PhantasmERP distributor product listings, manage a customer's cart and checkout, place orders, read orders and invoices, and run warehouse picking and verification for staff.

## Scope

Does not process card payments directly, buy shipping labels, or run accounting ledgers. Use for PhantasmERP distributor storefront, customer order, and warehouse picking operations only.

## Capabilities

- Browse products by brand or category with perPage and sort options, and search products with the s parameter
- Add, reduce, and remove cart items, empty the cart, and apply a customer discount
- Save checkout addresses and place the final order with paymentType and shippingType
- Read a customer's orders and invoices, print an order, and submit an invoice return
- List a picker's assigned picking orders, record picked quantities, and log picking start and end time
- Mark a picking order as picked or verified and revert shortage changes
- Configure custom discount rules such as BOGO, product adjustment, and free-shipping offers

## Use cases

### Reorder assistant agent through Jentic

A wholesale buyer asks an AI agent to restock familiar products. Through Jentic the agent searches for 'search PhantasmERP products', loads the search operation with its input schema, finds the products, adds them to the cart, and places the order with the customer's saved checkout address. The customer's bearer token is injected at call time by your own Jentic One instance.

Example prompt: Call GET `/api/search` with s='glass' and perPage=10, add the chosen item with POST /cart, read GET `/api/checkout-address`, then submit POST `/api/process-order` with paymentType, shippingType, and nonce

### Customer account self-service

Distributor customers often ask where an order is or need an invoice copy. The API lists a customer's orders and invoices page by page, opens a single order for both order and invoice detail, prints the order as HTML from the ERP, updates the customer's address, and submits an invoice return.

Example prompt: Call GET `/api/customer/my-invoices` with page=1 and summarise the newest invoices, then call GET `/api/customer/my-orders` for matching orders

### Warehouse picking and verification

Warehouse pickers and verifiers work orders through a staff login separate from customers. A picker lists the picking orders assigned to them, records a start time, picks quantities item by item, and records an end time; a verifier marks a picked order as verified with type=verifier or takes an unassigned picked order to verify. Shortage changes can be reverted.

Example prompt: Call GET `/api/staff/picking-orders`, then POST `/api/staff/picking-order/start-time` for the first order and POST `/api/staff/picking-order/status` once all items are picked

### Promotion setup

Store admins configure offers that the cart applies by priority: product adjustment and buy-x-get-y offers first, then cart adjustment, then free shipping. The custom discounts operations list existing rules, add a BOGO rule, and update a discount rule.

Example prompt: Call GET /custom-discounts to list current rules, then POST /custom-discounts to add a BOGO rule for a chosen product

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/api/customer/login` | Log in a customer |
| GET | `/api/search` | Search products |
| POST | `/cart` | Create or update a cart item |
| GET | `/api/cart` | Get the cart |
| POST | `/api/process-order` | Place the final order |
| GET | `/api/customer/my-invoices` | List the customer's invoices |
| GET | `/api/staff/picking-orders` | List a picker's orders |
| POST | `/api/staff/picking-order/status` | Mark an order picked or verified |

## Key resources

- **Products and brands** — Brand and category product listings, product detail with variations for authenticated customers, and product search
- **Cart, wishlist, and checkout** — Cart items, discounts, wishlist entries, checkout addresses, and the final process-order call
- **Customer orders and invoices** — Order and invoice history, printable orders, address updates, returns, and cancellation
- **Staff picking orders** — Picker and verifier workflow with start and end time, picked quantities, status, verify, and revert

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 33 / 100
- **Maturity:** Non-Ready
- **Dimensions:**
  - Foundational Compliance: 49 / 100
  - Developer Experience & Jentic Compatibility: 66 / 100
  - AI-Readiness & Agent Experience: 15 / 100
  - Agent Usability: 93 / 100
  - Security: 30 / 100
  - AI Discoverability: 46 / 100
- **View full report:** https://jentic.com/apis/phantasm.digital/phantasm/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring PhantasmERP by hand means logging in through separate customer and staff login operations to obtain a bearer token, choosing the right distributor host, and working around a spec captured from browser traffic with many browser headers. Through Jentic you install once, import PhantasmERP from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** PhantasmERP carries most targets, such as cart items, picking orders, and discount details, in the request body, so rules bound which operations your agent may call, not which order. You choose the operations it may call, so actions like POST `/api/process-order` or emptying the cart are not included unless you add them.
- **Credential handling:** Your PhantasmERP bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'add an item to the cart' or 'list my picking orders', and Jentic returns the matching PhantasmERP operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Shopify REST Admin API** — Products, orders, and customers for stores built on Shopify
- **BigCommerce Catalog API** — Product listing management for BigCommerce stores
- **ShipStation API** — Shipping labels and tracking after orders are picked and verified

## FAQ

### What authentication does the PhantasmERP API use?

The PhantasmERP OpenAPI spec declares two schemes: bearerAuth, an HTTP bearer token issued by POST `/api/customer/login` for customers or POST `/api/staff/login` for warehouse staff, and noauthAuth, a placeholder that marks operations such as registration, forgot-password, and public product listings as callable without a login. Many of those listing and cart operations still accept an Authorization header, and product variations only appear for an authenticated customer. Through Jentic the bearer token is stored by your own instance and attached at call time.

### Can I place an order with the PhantasmERP API?

Yes. Build the cart with POST /cart, add an address with POST /checkout-address, then call POST `/api/process-order`, which the spec describes as the final call for order creation and which takes paymentType, shippingType, and nonce as form fields.

### What are the rate limits for the PhantasmERP API?

The OpenAPI spec does not specify numeric rate limits. It notes that customer login is throttled and returns a JSON response once the limit is exceeded. The spec links no public documentation, so confirm limits with the distributor running your PhantasmERP host.

### Is there a PhantasmERP MCP server?

You don't need an MCP server to give your agent PhantasmERP. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls the product, cart, and order operations on demand without loading another server's tool definitions into its context.

### How do I search PhantasmERP products through Jentic?

Search Jentic for 'search PhantasmERP products', load the GET `/api/search` operation, and execute it with the search term in s plus optional perPage and page. Your agent can then open a product or add it to the cart. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the PhantasmERP API?

Yes. Write a rule that allows only GET `/api/search`, GET `/api/customer/my-orders`, and GET `/api/customer/my-invoices`, and the agent can look up products, orders, and invoices while placing orders, cancelling sales, and editing discount rules stay out of its allowed set. Every call it makes is logged for review.
