审批发起(成员 JWT):六类 kind 判别载荷;幂等键 UNIQUE(org,requester,key) 重放回原单;payload_hash 入库防事后改写;unlock_experimental 恒 level=platform
POST
/v1/approvals
const url = 'https://api.tansr.com/v1/approvals';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"kind":"expand_model","beneficiaryUserId":"example","payload":{"resourceType":"model","resourceIds":["example"],"dailyTokenLimit":1,"appId":"example","note":"example"},"idempotencyKey":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.tansr.com/v1/approvals \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "kind": "expand_model", "beneficiaryUserId": "example", "payload": { "resourceType": "model", "resourceIds": [ "example" ], "dailyTokenLimit": 1, "appId": "example", "note": "example" }, "idempotencyKey": "example" }'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”x-tansr-org
string
Org 作用域声明(org 公开 id);服务端校验成员资格与角色,非成员恒 404、角色不够 403
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
kind
required
beneficiaryUserId
受益人(缺省=申请人);owner/admin 可代他人发起
string
payload
required
idempotencyKey
required
string
Responses
Section titled “Responses”已建(幂等重放回原单 200)
Media typeapplication/json
object
approval
required
object
id
required
string
orgId
required
string
kind
required
requesterUserId
required
string
payload
required
object
payloadHash
required
Payload 稳定序列化 sha256(决策对象防换)
string
currentStep
required
integer
createdAt
required
string
Example
{ "approval": { "kind": "expand_model", "level": "org", "status": "pending", "decisions": [ { "action": "approve" } ] }}Org_ceiling_exceeded(expand_* 引用越 C)/ validation_failed
Media typeapplication/json
object
error
required
object
code
required
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
string
message
required
string
requestId
required
string
detail
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}本文是否有帮助?
感谢反馈,我们会持续改进这篇文章。