Developer platform
TEIBOS SDK
@teibos/sdkv0.1.0Internal preview
A generated TypeScript client for the published TEIBOS web contracts. Server-side only, private preview.
What the SDK is (and is not)
The SDK is a generated, thin client of the published <module>.web.v1 contracts. It maps TypeScript calls to ORDS requests and returns typed results; it is not a second business layer.
Hard limits
- Server-side onlyRun it in a BFF or a worker. Never ship it to the browser.
- No business decisionsBusiness validation, authorization and rounding stay in the database packages that own them.
- Agents use ORDSAI agents keep their own ORDS channel; they do not go through the SDK.
- Not on npmThe package is private and is not published to the npm registry.
Specimen
Request
const page = await listOrders(ctx, {
org_id: "1", from: "2026-09-01", to: "2026-09-30", tab: "ALL",
});Response
{
"items": [{ "doc_id": "99461599164628992", "total_amount": "376.5" }],
"next": null
}Request
const preview = await createOrder(ctx, { ...draft, mode: "preview" });
const receipt = await createOrder(ctx, { ...draft, mode: "execute" }, crypto.randomUUID());Response
{
"mode": "PREVIEW",
"guards_failed": []
}{
"mode": "EXECUTED"
}
// same key again → "REPLAY" · same key, other body → WebError kind "conflict"Call context and wire rules
Context
- baseUrl
string- bearer
string | BearerSource- sessionToken
string- fetch
typeof fetch
Headers
- Session
X-Teibos-Session- Idempotency
Idempotency-Key
Wire rules
- Identifier
^[0-9]{1,20}$- Decimal
^-?[0-9]+(\.[0-9]+)?$- Date
YYYY-MM-DD- Max body
1048576 bytes
Error kinds
| Status | Kind | Meaning |
|---|---|---|
| 400 | parse | The request body or values did not match the contract. |
| 401 | unauthenticated | The session or token is missing, expired or invalid. |
| 403 | forbidden | The caller is authenticated but not allowed to run this operation. |
| 404 | not_found | The referenced record does not exist in the caller scope. |
| 409 | conflict | The state changed, or the idempotency key was reused with a different body. |
| 413 | too_large | The JSON body is over the size ceiling. |
| 422 | invalid | The contract rejected a field value as invalid. |
| 503 | unavailable | A dependency is temporarily unavailable; retry with backoff. |
| 500 | server | An unexpected server error; the caller should not read the body as a result. |
Operations
sal.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listOrders | GET | /orders | Required | Not required |
createOrder | POST | /orders | Required | Idempotency-Key on execute |
listExceptions | GET | /exceptions | Required | Not required |
listExceptionsV2 | GET | /exceptions/v2 | Required | Not required |
listOrderCounts | GET | /orders/counts | Required | Not required |
allocateOrderIds | POST | /orders/ids | Required | Not required |
getOrder | GET | /orders/{doc_id} | Required | Not required |
readOrderRevision | GET | /orders/{doc_id}/revise | Required | Not required |
reviseOrder | POST | /orders/{doc_id}/revise | Required | Idempotency-Key on execute |
quoteOrderRevision | POST | /orders/{doc_id}/revise-price | Required | Not required |
getOrderActions | GET | /orders/{doc_id}/actions | Required | Not required |
getOrderLineage | GET | /orders/{doc_id}/lineage | Required | Not required |
getOrderAudit | GET | /orders/{doc_id}/audit | Required | Not required |
openOrder | POST | /orders/{doc_id}/open | Required | Idempotency-Key on execute |
cancelOrder | POST | /orders/{doc_id}/cancel | Required | Idempotency-Key on execute |
amendLine | POST | /orders/{doc_id}/lines/{line_id}/amend | Required | Idempotency-Key on execute |
closeShortLine | POST | /orders/{doc_id}/lines/{line_id}/close-short | Required | Idempotency-Key on execute |
getOrderPricing | GET | /orders/{doc_id}/pricing | Required | Not required |
getOrderPrint | GET | /orders/{doc_id}/print | Required | Not required |
deriveLine | POST | /lines/derive | Required | Not required |
previewOrderDraftPosting | POST | /orders/draft-posting | Required | Not required |
readOrderDraftStock | POST | /orders/draft-stock | Required | Not required |
estimateOrderDraftTax | POST | /orders/draft-tax | Required | Not required |
quotePrice | POST | /pricing/quote | Required | Not required |
requestPriceOverride | POST | /pricing/override-requests | Required | Idempotency-Key on execute |
listCurrencies | GET | /lov/currencies | Required | Not required |
listItems | GET | /lov/items | Required | Not required |
listCustomers | GET | /lov/customers | Required | Not required |
listItemUoms | GET | /lov/items/{item_id}/uoms | Required | Not required |
listPaymentTerms | GET | /lov/payment-terms | Required | Not required |
listShipTos | GET | /lov/ship-to | Required | Not required |
listBillTos | GET | /lov/bill-to | Required | Not required |
listContacts | GET | /lov/contacts | Required | Not required |
listPriceLists | GET | /lov/price-lists | Required | Not required |
listWarehouses | GET | /lov/warehouses | Required | Not required |
listDimensionValues | GET | /lov/dimensions/{dim_code} | Required | Not required |
listReasons | GET | /lov/reasons | Required | Not required |
getSiteSummary | GET | /sites/{site_id}/summary | Required | Not required |
getOrganizationSummary | GET | /organization/summary | Required | Not required |
getFxPreview | GET | /orders/fx-preview | Required | Not required |
getCustomerSummary | GET | /customers/{customer_id}/summary | Required | Not required |
getCustomerOpenCash | GET | /customers/{customer_id}/open-cash | Required | Not required |
previewCiDraft | POST | /export/ci-draft/preview | Required | Not required |
allocatePiIds | POST | /export/pi/ids | Required | Not required |
createPi | POST | /export/pi | Required | Idempotency-Key on execute |
openPi | POST | /export/pi/{doc_id}/open | Required | Idempotency-Key on execute |
cancelPi | POST | /export/pi/{doc_id}/cancel | Required | Idempotency-Key on execute |
allocateCiIds | POST | /export/ci/ids | Required | Not required |
createCiDraft | POST | /export/ci | Required | Idempotency-Key on execute |
requestOrderRevisionApproval | POST | /orders/{doc_id}/revise-approval | Required | Not required |
listPriceLevels | GET | /lov/price-levels | Required | Not required |
sec.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
loginBegin | POST | /login/begin | None | Not required |
loginComplete | POST | /login/complete | None | Not required |
me | GET | /me | Required | Not required |
setCompany | POST | /session/company | Required | Not required |
setActiveAssign | POST | /session/role | Required | Not required |
listPages | GET | /pages | Required | Not required |
myLearning | GET | /me/learning | Required | Not required |
putMyLearning | PUT | /me/learning/{track_code} | Required | Not required |
logout | POST | /logout | Required | Not required |
logoutAll | POST | /logout/all | Required | Not required |
sec.admin.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listRoles | GET | /roles | Required | Not required |
getRoleVersion | GET | /roles/{role_code}/versions/{role_ver} | Required | Not required |
getEntitlement | GET | /entitlement | Required | Not required |
listPrincipals | GET | /principals | Required | Not required |
onboardPrincipal | POST | /principals | Required | Idempotency-Key on execute |
getPrincipalAccess | GET | /principals/{principal_id}/access | Required | Not required |
assignRole | POST | /principals/{principal_id}/assignments | Required | Idempotency-Key on execute |
revokeAssignment | POST | /assignments/{assign_id}/revoke | Required | Idempotency-Key on execute |
listCapabilities | GET | /capabilities | Required | Not required |
createRoleVersion | POST | /roles/{role_code}/versions | Required | Idempotency-Key on execute |
addRoleCap | POST | /roles/{role_code}/versions/{role_ver}/caps | Required | Idempotency-Key on execute |
publishRoleVersion | POST | /roles/{role_code}/versions/{role_ver}/publish | Required | Idempotency-Key on execute |
retireRole | POST | /roles/{role_code}/retire | Required | Idempotency-Key on execute |
sec.approval.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listInbox | GET | /inbox | Required | Not required |
countInbox | GET | /inbox/counts | Required | Not required |
previewApprovalDecision | POST | /approvals/{approval_id}/preview | Required | Not required |
decideApproval | POST | /approvals/{approval_id}/decision | Required | Not required |
mdm.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listEntities | GET | /entities | Required | Not required |
listOrgs | GET | /orgs | Required | Not required |
listLocations | GET | /locations | Required | Not required |
createLocation | POST | /locations | Required | Idempotency-Key on execute |
getLocation | GET | /locations/{location_id} | Required | Not required |
updateLocation | POST | /locations/{location_id} | Required | Idempotency-Key on execute |
listOrgTree | GET | /orgs/tree | Required | Not required |
listWarehouseMasters | GET | /warehouses | Required | Not required |
createWarehouse | POST | /warehouses | Required | Idempotency-Key on execute |
getWarehouse | GET | /warehouses/{warehouse_id} | Required | Not required |
updateWarehouse | POST | /warehouses/{warehouse_id} | Required | Idempotency-Key on execute |
listBins | GET | /locations/{location_id}/bins | Required | Not required |
createBin | POST | /locations/{location_id}/bins | Required | Idempotency-Key on execute |
getBin | GET | /bins/{bin_id} | Required | Not required |
updateBin | POST | /bins/{bin_id} | Required | Idempotency-Key on execute |
mdm.party.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listParties | GET | /parties | Required | Not required |
createParty | POST | /parties | Required | Idempotency-Key on execute |
listPartyOptions | GET | /parties/options | Required | Not required |
getParty | GET | /parties/{party_id} | Required | Not required |
renameParty | POST | /parties/{party_id}/name | Required | Idempotency-Key on execute |
changePartyTaxGroup | POST | /parties/{party_id}/tax-group | Required | Idempotency-Key on execute |
changePartySalesDefault | POST | /parties/{party_id}/sales-defaults | Required | Idempotency-Key on execute |
changePartyRole | POST | /parties/{party_id}/roles | Required | Idempotency-Key on execute |
changePartySite | POST | /parties/{party_id}/sites/{site_id} | Required | Idempotency-Key on execute |
addPartySite | POST | /parties/{party_id}/sites | Required | Idempotency-Key on execute |
updatePartyRecord | POST | /parties/{party_id}/record | Required | Idempotency-Key on execute |
mdm.entity.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listEntityBranches | GET | /entities/{entity_id}/branches | Required | Not required |
getEntityBranch | GET | /entities/{entity_id}/branches/{branch_code} | Required | Not required |
updateBranchContact | POST | /entities/{entity_id}/branches/{branch_code}/contact | Required | Idempotency-Key on execute |
mdm.ref.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listUomRegister | GET | /uoms | Required | Not required |
createUom | POST | /uoms | Required | Idempotency-Key on execute |
listCurrencyRegister | GET | /currencies | Required | Not required |
createCurrency | POST | /currencies | Required | Idempotency-Key on execute |
listPaymentTermRegister | GET | /payment-terms | Required | Not required |
createPaymentTerm | POST | /payment-terms | Required | Idempotency-Key on execute |
mdm.geo.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listGeoCountries | GET | /geo/countries | Required | Not required |
listGeoLocalities | GET | /geo/localities | Required | Not required |
mdm.item.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listMasterItems | GET | /items | Required | Not required |
createItem | POST | /items | Required | Idempotency-Key on execute |
listItemOptions | GET | /items/options | Required | Not required |
getItem | GET | /items/{item_id} | Required | Not required |
renameItem | POST | /items/{item_id} | Required | Idempotency-Key on execute |
addItemConversion | POST | /items/{item_id}/conversions | Required | Idempotency-Key on execute |
changeItemCategory | POST | /items/{item_id}/category | Required | Idempotency-Key on execute |
updateItemRecord | POST | /items/{item_id}/record | Required | Idempotency-Key on execute |
putItemCapability | POST | /items/{item_id}/capability | Required | Idempotency-Key on execute |
closeItemCapability | POST | /items/{item_id}/capability/close | Required | Idempotency-Key on execute |
putItemOrgPolicy | POST | /items/{item_id}/policies | Required | Idempotency-Key on execute |
closeItemOrgPolicy | POST | /items/{item_id}/policies/close | Required | Idempotency-Key on execute |
decideItemPolicyRequest | POST | /items/{item_id}/policy-requests/{request_id}/decision | Required | Idempotency-Key on execute |
mdm.dim.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listDimensionTypes | GET | /dimension-types | Required | Not required |
listDimTypeValues | GET | /dimension-types/{dim_code}/values | Required | Not required |
createDimensionValue | POST | /dimension-types/{dim_code}/values | Required | Idempotency-Key on execute |
listDimensionTree | GET | /dimension-types/{dim_code}/tree | Required | Not required |
listDimensionTreeVersions | GET | /dimension-types/{dim_code}/tree-versions | Required | Not required |
createDimensionTreeVersion | POST | /dimension-types/{dim_code}/tree-versions | Required | Idempotency-Key on execute |
listDimensionTreeNodes | GET | /dimension-types/{dim_code}/tree-versions/{tree_ver_id}/nodes | Required | Not required |
putDimensionTreeNode | POST | /dimension-types/{dim_code}/tree-versions/{tree_ver_id}/nodes | Required | Idempotency-Key on execute |
removeDimensionTreeNode | POST | /dimension-types/{dim_code}/tree-versions/{tree_ver_id}/nodes/{value_id}/remove | Required | Idempotency-Key on execute |
activateDimensionTreeVersion | POST | /dimension-types/{dim_code}/tree-versions/{tree_ver_id}/activate | Required | Idempotency-Key on execute |
getDimensionValue | GET | /dimension-values/{value_id} | Required | Not required |
updateDimensionValue | POST | /dimension-values/{value_id} | Required | Idempotency-Key on execute |
mdm.setup.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
readCompanySetupReview | GET | /proposals/{proposal_id} | Required | Not required |
decideCompanySetup | POST | /proposals/{proposal_id}/decision | Required | Not required |
ops.schema.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
getSchemaCatalog | GET | /schema/catalog | Required | Not required |
listSchemaTables | GET | /schema/tables | Required | Not required |
getSchemaTable | GET | /schema/tables/{table_name} | Required | Not required |
ops.perf.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
ingestPerformanceBatch | POST | /performance/batches | None | Not required |
listPerformanceSeries | GET | /performance/series | Required | Not required |
apw.task.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listTasks | GET | /tasks | Required | Not required |
getTask | GET | /tasks/{task_id} | Required | Not required |
apw.policy.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listPolicies | GET | /policies | Required | Not required |
createPolicyDraft | POST | /policies | Required | Not required |
getPolicy | GET | /policies/{doc_type} | Required | Not required |
listPolicyOptions | GET | /policy-options | Required | Not required |
requestPolicyPublish | POST | /policies/{doc_type}/versions/{ver}/request-publish | Required | Not required |
publishPolicyVersion | POST | /policies/{doc_type}/versions/{ver}/publish | Required | Not required |
requestPolicyRetire | POST | /policies/{doc_type}/versions/{ver}/request-retire | Required | Not required |
retirePolicyVersion | POST | /policies/{doc_type}/versions/{ver}/retire | Required | Not required |
prj.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listProjects | GET | /projects | Required | Not required |
inv.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listTransferOrders | GET | /transfers | Required | Not required |
createTransferOrder | POST | /transfers | Required | Idempotency-Key on execute |
getTransferOrder | GET | /transfers/{doc_id} | Required | Not required |
shipTransferOrder | POST | /transfers/{doc_id}/ship | Required | Idempotency-Key on execute |
receiveTransferOrder | POST | /transfers/{doc_id}/receive | Required | Idempotency-Key on execute |
cancelTransferOrder | POST | /transfers/{doc_id}/cancel | Required | Idempotency-Key on execute |
rpt.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
describeReport | GET | /reports/{report}/{major} | Required | Not required |
readReportPage | POST | /page | Required | Not required |
submitReportExport | POST | /exports | Required | Not required |
getReportExport | GET | /exports/{work_id} | Required | Not required |
cancelReportExport | POST | /exports/{work_id}/cancel | Required | Not required |
getReportExportChunk | GET | /exports/{work_id}/chunks/{chunk_no} | Required | Not required |
doc.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listAttachments | GET | /attachments | Required | Not required |
beginUpload | POST | /uploads | Required | Not required |
getUploadTarget | POST | /uploads/{object_id}/target | Required | Not required |
completeUpload | POST | /uploads/{object_id}/complete | Required | Not required |
getDownload | GET | /attachments/{object_id}/download | Required | Not required |
detachAttachment | POST | /attachments/{object_id}/detach | Required | Not required |
getTenantBrand | GET | /brand | Required | Not required |
getBrandDownload | GET | /brand/{object_id}/download | Required | Not required |
getScanQueue | GET | /scans | None | Not required |
recordScan | POST | /scans/{object_id} | None | Not required |
publishTemplate | POST | /templates/{template_id}/versions | Required | Idempotency-Key on execute |
getTemplate | GET | /templates/{template_id} | Required | Not required |
listTemplateAssignments | GET | /template-assignments | Required | Not required |
assignTemplate | POST | /template-assignments | Required | Idempotency-Key on execute |
cor.doc_no.web.v1
| Function | Method | Path | Session | Idempotency |
|---|---|---|---|---|
listRules | GET | /rules | Required | Not required |
draftRule | POST | /rules | Required | Idempotency-Key on execute |
listRuleVersions | GET | /rules/{rule_id}/versions | Required | Not required |
listAssignments | GET | /assignments | Required | Not required |
listGaps | GET | /gaps | Required | Not required |
previewPattern | POST | /patterns/preview | Required | Not required |
requestPublish | POST | /publish-requests | Required | Idempotency-Key on execute |
Usage standards
| Authority | The database packages own validation, authorization and rounding; the SDK only carries the request and the typed answer. |
|---|---|
| Execution | Commands are idempotent and run against the published contract; a preview never writes. |
| Failure mode | A non-2xx response becomes a typed error with a kind. The only retry is one fresh bearer when ORDS rejects the token (401 without a code); nothing falls back silently. |
| AI boundary | Agents use their own ORDS channel. The SDK is for server-side services, not model tool calls. |
| Mobile / Server | Run on the server; the browser never holds a token or the package. Touch targets stay at least 44 px. |