UCP Procurement
Thyris exposes UCP-compatible procurement endpoints under:
https://merchant.thyris.cloud/api/protocols/ucp/procurement
These endpoints use the same authentication, scope enforcement, payload shape, and response model as the REST Procurement API.
For required and optional fields, see Request Field Requirements.
Authentication
Authorization: Bearer tr_live_your_key_here
or:
X-Procurement-API-Key: tr_live_your_key_here
Endpoint Summary
| Method | Endpoint | Equivalent REST Endpoint |
|---|---|---|
GET | /stores | GET /api/v1/procurement/stores |
GET | /suppliers | GET /api/v1/procurement/suppliers |
POST | /suppliers | POST /api/v1/procurement/suppliers |
GET | /inventory | GET /api/v1/procurement/inventory |
POST | /inventory | POST /api/v1/procurement/inventory |
GET | /orders | GET /api/v1/procurement/orders |
POST | /orders | POST /api/v1/procurement/orders |
PATCH | /orders/{orderId} | PATCH /api/v1/procurement/orders/{orderId} |
POST | /quotes | Deprecated. Quote creation is reserved for the supported supplier quote intake flow. |
Supplier Example
curl -X POST "https://merchant.thyris.cloud/api/protocols/ucp/procurement/suppliers" \
-H "Authorization: Bearer tr_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"storeId": "STORE_UUID",
"name": "UCP Supplier",
"domain": "supplier.example.com",
"channel": "google_ucp",
"status": "connected",
"capabilities": ["inventory_feed", "quote_api"]
}'
Inventory Example
curl -X POST "https://merchant.thyris.cloud/api/protocols/ucp/procurement/inventory" \
-H "Authorization: Bearer tr_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"storeId": "STORE_UUID",
"sku": "UCP-PACK-001",
"name": "UCP Packaging Item",
"status": "healthy",
"quantityOnHand": 500,
"reorderPoint": 100,
"unitCost": 0.35,
"currency": "USD"
}'
Order Example
curl -X POST "https://merchant.thyris.cloud/api/protocols/ucp/procurement/orders" \
-H "Authorization: Bearer tr_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"storeId": "STORE_UUID",
"supplierId": "SUPPLIER_UUID",
"status": "requested",
"source": "ucp",
"reason": "UCP procurement order request demo.",
"items": [
{
"name": "UCP Packaging Item",
"quantity": 400,
"unitCost": 0.35,
"currency": "USD"
}
]
}'
Notes
- Use the REST Procurement API documentation for field definitions and error behavior.
- Scope rules are identical to REST procurement endpoints.
- Procurement has no cart workflow. Use quote and purchase order statuses instead.
- Procurement inventory and catalog products are independent datasets.
- Create order requests with
status=requestedto start the supplier quote request workflow. - Supplier quotes are created only through the supported quote intake flow. Do not manually post quote payloads or manually set quote statuses.
- Procurement creation, supplier communication, inbound quote intake, policy updates, and status updates can trigger outbound procurement webhooks.