Workshops are the production partners that fulfill Krafta print orders. Each workshop has a geographic base, a daily production capacity, a service-level agreement expressed in days, and a payment policy that governs when Krafta pays the partner. TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/PloutusLab/krafta-web/llms.txt
Use this file to discover all available pages before exploring further.
GET endpoint is public so the platform can display available workshops; all write operations require the ADMIN role.
GET /api/workshops
Returns all workshops withactive: true. No authentication required. The response is drawn from the database; if the database is unreachable or returns no rows, a built-in seed list (Taller Creativo Barquisimeto and Taller Cabudare Premium) is returned as a fallback.
Response
Always
true on success.Array of active
Workshop objects.POST /api/workshops ADMIN
Create a new workshop record. Requires theADMIN role. The generated workshopId follows the pattern taller-{7 random alphanumeric chars} and is returned in the response.
Request body
Display name of the workshop (e.g.,
"Taller Express Caracas").Full name of the primary contact person at the workshop.
Venezuelan mobile number for WhatsApp and order coordination.
Email address for formal communication and order notifications.
City where the workshop is physically located. Defaults to
"Barquisimeto" if omitted.Venezuelan state of the workshop’s location. Defaults to
"Lara" if omitted.Maximum units producible per day. Parsed as an integer. Defaults to
10 if omitted or non-numeric.Production SLA in business days. Parsed as an integer. Defaults to
3 if omitted or non-numeric.When the workshop expects payment from Krafta. Accepted values:
DEPOSITO_TOTAL, DEPOSITO_PARCIAL, PAGO_AL_FINALIZAR, PAGO_CONTRA_ENTREGA. Defaults to "PAGO_AL_FINALIZAR" if omitted.Response
Error responses
| Status | Condition |
|---|---|
400 | name, contactName, phone, or email missing. |
401 / 403 | Caller does not hold the ADMIN role. |
500 | Unexpected server error. |
PUT /api/workshops ADMIN
Update an existing workshop’s details. All fields exceptid follow the same defaults as the POST endpoint. The active flag is not modified by this operation — use DELETE to deactivate.
Request body
UUID (or seed-style slug) of the workshop to update.
Updated display name.
Updated contact person name.
Updated contact phone number.
Updated contact email address.
Updated city. Defaults to
"Barquisimeto" if omitted.Updated state. Defaults to
"Lara" if omitted.Updated daily capacity. Defaults to
10 if omitted or non-numeric.Updated SLA in days. Defaults to
3 if omitted or non-numeric.Updated payment policy. Defaults to
"PAGO_AL_FINALIZAR" if omitted.Response
Error responses
| Status | Condition |
|---|---|
400 | id, name, contactName, phone, or email missing. |
401 / 403 | Caller does not hold the ADMIN role. |
500 | Unexpected server error. |
DELETE /api/workshops?id= ADMIN
Deactivate a workshop. In the database, this setsactive: false on the Workshop record (a soft delete). In the local filesystem fallback, the workshop entry is removed from public/workshops.json. Requires the ADMIN role.
Query parameters
UUID or slug of the workshop to deactivate.
Response
Error responses
| Status | Condition |
|---|---|
400 | id query parameter missing. |
401 / 403 | Caller does not hold the ADMIN role. |
500 | Unexpected server error. |
PaymentPolicy values
ThepaymentPolicy field controls when Krafta transfers production cost to the workshop after an order is fulfilled.
| Value | Meaning |
|---|---|
DEPOSITO_TOTAL | Full production cost is paid to the workshop before work begins. |
DEPOSITO_PARCIAL | A partial deposit is paid upfront; the remainder is paid on completion. |
PAGO_AL_FINALIZAR | Full payment is made to the workshop once production is complete and verified. |
PAGO_CONTRA_ENTREGA | Payment is made to the workshop only after the order has been delivered to the customer. |
