跳到正文
Indiana
控制台
文档
章节目录 / 执行余额操作

执行余额操作

POST/api/v1/balances/execute

可信服务端消费、预占、确认、释放或退款,同一操作复用幂等键。

SDK 0.0.1更新于

发起请求

可信服务端消费、预占、确认、释放或退款,同一操作复用幂等键。

调用凭据
仅服务端 API Key。由可信后端调用。
所需权限
credits:consume
base URL 和 App ID 来自 SDK 接入页。示例使用占位值,不会执行请求。服务端 Key 不可放入浏览器。
request.shShell
curl -X POST "$GROOVE_BASE_URL/api/v1/balances/execute" \  -H "Authorization: Bearer $GROOVE_SECRET_KEY" \  -H "X-Groove-Project: $GROOVE_PROJECT_ID" \  -H "X-Groove-Environment: sandbox" \  -H "Content-Type: application/json" \  -d '{  "customerId": "00000000-0000-4000-8000-000000000001",  "command": {    "operation": "consume",    "entitlementId": "00000000-0000-4000-8000-000000000001",    "quantity": "1",    "properties": {},    "idempotencyKey": "job:job_123:consume"  }}'

响应选项卡列出字段类型,不是响应示例;实际值由客户状态决定。

请求参数

JSON 请求体

customerIduuid必填

Indiana 客户 ID。服务端从已验证身份关联;客户 Token 调用时省略并使用 Token 绑定的客户。

commandobject | object | object | object | object | object必填

本次操作的 command 值,类型和约束见字段标注。

展开子字段
operation"quote" | "consume" | "reserve" | "confirm" | "refund" | "release"必填

本次操作的 operation 值,类型和约束见字段标注。

overageBehaviorenum | enum可选

cap 接受当前许可及上限内的最大数量,可为 0;overflow 请求完整数量并检查超额许可、用量上限和现金预算。省略时维持整次不足就拒绝。

entitlementIduuid | uuid | uuid可选

本次操作的 entitlementId 值,类型和约束见字段标注。

entityIduuid | uuid | uuid可选

当前客户范围内的实体 ID;只用于已配置的实体和许可功能。

quantitystring | string | string | string | string可选

业务数量按字段标注类型传入;积分操作用十进制字符串,避免浮点误差。quote/reserve/confirm/refund 要求正数;consume 可记录零费用事件。

propertiesobject | object | object | object可选

服务端校验的计价属性,用于匹配维度和倍率。

occurredAtdate-time | date-time可选

本次操作的 occurredAt 值,类型和约束见字段标注。

idempotencyKeystring | string | string | string | string可选

稳定的业务幂等 Key。同一 Key 和同一参数返回同一结果;不要每次重试随机生成。

expiresInSecondsinteger可选

本次操作的 expiresInSeconds 值,类型和约束见字段标注。

min: 1 · max: 86400

operationIduuid | uuid | uuid可选

业务操作 UUID;订阅执行引用 previewAttach 返回的 operationId,余额退款引用原消费操作。

响应字段

成功响应包含 requestId 和 scope。结合实际业务状态或 accepted 判断操作结果;可选字段不可用时省略。

HTTP 200 · application/json

requestIduuid必填

服务端生成的 HTTP 请求 UUID,排查请求时提供这个值。

scopeobject必填

响应实际所属的 App 和环境。Header 只能核对,不能切换 Key 范围。

展开子字段
projectIdstring必填

凭据绑定的 App ID。

minLength: 1

environmentenum必填

独立数据范围:sandbox 或 live。

查看允许值

"sandbox""live"

receiptobject必填

本次操作的 receipt 值,类型和约束见字段标注。

展开子字段
iduuid必填

本次操作的 id 值,类型和约束见字段标注。

entitlementIduuid必填

本次操作的 entitlementId 值,类型和约束见字段标注。

kindenum必填

本次操作的 kind 值,类型和约束见字段标注。

查看允许值

"consume""reserve""confirm""refund""release""expire"

originalIduuid | null必填

本次操作的 originalId 值,类型和约束见字段标注。

quantityobject必填

业务数量按字段标注类型传入;积分操作用十进制字符串,避免浮点误差。quote/reserve/confirm/refund 要求正数;consume 可记录零费用事件。

requestedQuantityobject可选

显式 cap/overflow 的原请求数量;quantity 是实际接受或拒绝的数量。

overageBehaviorenum可选

cap 接受当前许可及上限内的最大数量,可为 0;overflow 请求完整数量并检查超额许可、用量上限和现金预算。省略时维持整次不足就拒绝。

查看允许值

"cap""overflow"

acceptedboolean必填

操作是否被业务规则接受。HTTP 200 不等于 accepted 为 true。

reasonenum | null必填

拒绝原因或账本操作说明;结合 accepted / 状态判断结果。

createdAtdate-time必填

记录创建时的 ISO 8601 UTC 时间。

reservationStatusenum | null必填

本次操作的 reservationStatus 值,类型和约束见字段标注。

expiresAtdate-time | null必填

ISO 8601 UTC 到期时间;会话和预占到期后不能继续使用。

allocationsarray必填

本次规则计算或账本操作涉及的余额分配明细。

maxItems: 500

展开子字段
funding"unbilled" | "prepaid" | "postpaid"必填

本次操作的 funding 值,类型和约束见字段标注。

unitsobject | object | object必填

本次操作的 units 值,类型和约束见字段标注。

sourceIduuid可选

本次操作的 sourceId 值,类型和约束见字段标注。

amountstring可选

积分或账本金额,按字段的十进制字符串或整数类型传入。

pattern: ^(0|[1-9]\d{0,12})(\.\d{1,12})?$

pricingarray可选

本次操作的 pricing 值,类型和约束见字段标注。

minItems: 1 · maxItems: 12

展开子字段
creditVersionIduuid | null必填

本次操作的 creditVersionId 值,类型和约束见字段标注。

meteredVersionIduuid必填

本次操作的 meteredVersionId 值,类型和约束见字段标注。

dimensionstring必填

本次操作的 dimension 值,类型和约束见字段标注。

minLength: 1 · maxLength: 64

counterKeystring必填

本次操作的 counterKey 值,类型和约束见字段标注。

minLength: 1 · maxLength: 240

cycleStartdate-time必填

本次操作的 cycleStart 值,类型和约束见字段标注。

unitCostobject必填

本次操作的 unitCost 值,类型和约束见字段标注。

unitsobject必填

本次操作的 units 值,类型和约束见字段标注。

amountstring必填

积分或账本金额,按字段的十进制字符串或整数类型传入。

pattern: ^(0|[1-9]\d{0,12})(\.\d{1,12})?$

tierinteger | null必填

本次操作的 tier 值,类型和约束见字段标注。

invoiceLineIduuid | null可选

本次操作的 invoiceLineId 值,类型和约束见字段标注。

authorizationIduuid可选

本次操作的 authorizationId 值,类型和约束见字段标注。

处理错误

常见失败
错误码处理方式
UNAUTHENTICATED核对 Key,或将过期客户 Token 重新签发一次。
FORBIDDEN核对当前 Key 权限与客户访问范围。
INVALID_REQUEST检查字段类型、UUID、十进制字符串和互斥字段。
SCOPE_MISMATCH使用凭据绑定的 App 和环境。

常见失败

  • UNAUTHENTICATED

    处理方式
    核对 Key,或将过期客户 Token 重新签发一次。
  • FORBIDDEN

    处理方式
    核对当前 Key 权限与客户访问范围。
  • INVALID_REQUEST

    处理方式
    检查字段类型、UUID、十进制字符串和互斥字段。
  • SCOPE_MISMATCH

    处理方式
    使用凭据绑定的 App 和环境。

相关:完整请求与错误约定·返回接口索引