POST/v1/customers/{external_id}/usage:claim
Claim a benefit
Reports what a service cost in the customer's currency and pays the benefit the customer's plans set, the whole cost when none sets one, rounded by the feature's rule and capped at what is left of the limit. Requires idempotencyKey; occurredAtMs is the date of service. Not available to customer tokens. Needs usage:write.
curl -X POST 'https://api.entitler.co/v1/customers/ada/usage:claim' \
-H "Authorization: Bearer $ENTITLER_KEY" \
-H "Content-Type: application/json" \
-d '{"cost":1,"currency":"currency","featureKey":"featureKey","idempotencyKey":"idempotencyKey","occurredAtMs":1,"target":{"environmentId":"environmentId","projectId":"projectId","teamId":"teamId"},"zone":"zone"}'Credentials
Send any one of these:
- Bearer token
Path parameters
| Name | Type | Description |
|---|---|---|
external_idrequired | string | The customer's external ID, or me for the customer a customer token or identity token names. |
Request body
object
costintegerat least 0; at most 18446744073709552000
currencystringfeatureKeystringidempotencyKeystringoccurredAtMsintegerat least 0; at most 18446744073709552000
targetProductTargetenvironmentIdstringprojectIdstringteamIdstring
zonestring
Responses
200The ClaimBenefitResponse message.
ClaimBenefitResponse
trackedTrackedUsageasOfintegerrequiredat least 0; at most 18446744073709552000
customerEntitledCustomercustomerIdstringexternalIdstringrequired
entitlementEntitlementbenefitThousandthsinteger (int64)at least 0; at most 4294967295
currencystringrequireddecimalsinteger (int64)requiredat least 0; at most 4294967295
entitledbooleanrequiredfeatureKeystringrequiredhomeZonesarray of ZonedEntitlementrequiredentitledbooleanrequiredremainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequiredbenefitThousandthsinteger (int64)at least 0; at most 4294967295
featureKeystringrequiredgroupcommon.GroupValuemeteredcommon.Limitmoneycommon.MarketLimitssettingcommon.SettingValueswitchbooleanwaitcommon.Wait
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequiredlimitcommon.LimitmarketIdstringrequired
settingcommon.SettingValuechoicestringnumbercommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
textstring
switchboolean
zonestringrequired
hoursEntitledHoursclosesAtintegerat least 0; at most 18446744073709552000
openbooleanrequiredopensAtintegerat least 0; at most 18446744073709552000
kindEntitledFeatureKindrequiredOne of
ENTITLED_FEATURE_KIND_UNSPECIFIED,ENTITLED_FEATURE_KIND_SWITCH,ENTITLED_FEATURE_KIND_METERED,ENTITLED_FEATURE_KIND_SETTING,ENTITLED_FEATURE_KIND_GROUP.memberMeterMeterbankedintegerrequiredat least 0; at most 18446744073709552000
heldintegerrequiredat least 0; at most 18446744073709552000
remainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
resetsAtintegerat least 0; at most 18446744073709552000
topUpLeftintegerrequiredat least 0; at most 18446744073709552000
topUpSpentintegerrequiredat least 0; at most 18446744073709552000
usedintegerrequiredat least 0; at most 18446744073709552000
memberValuecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
meterMeterbankedintegerrequiredat least 0; at most 18446744073709552000
heldintegerrequiredat least 0; at most 18446744073709552000
remainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
resetsAtintegerat least 0; at most 18446744073709552000
topUpLeftintegerrequiredat least 0; at most 18446744073709552000
topUpSpentintegerrequiredat least 0; at most 18446744073709552000
usedintegerrequiredat least 0; at most 18446744073709552000
perUsecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
sharedBystringsharedValuecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
sourcesarray of EntitlementSourcerequiredaddOnAddOnSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredquantityinteger (int64)requiredat least 0; at most 4294967295
throughFeatureKeystringvaluecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
versionNumberintegerrequiredat least 0; at most 18446744073709552000
defaultPlanDefaultPlanSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstringthroughFeatureKeystringversionNumberintegerrequiredat least 0; at most 18446744073709552000
grantGrantSourcegrantIdstringrequiredthroughFeatureKeystringuntilintegerat least 0; at most 18446744073709552000
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
groupGroupSourcefeatureKeysarray of stringrequired
planPlanSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstringthroughFeatureKeystringvaluecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
versionNumberintegerrequiredat least 0; at most 18446744073709552000
segmentKeystring
uncountedZonesarray of stringrequiredupgradesarray of UpgraderequiredactionUpgradeActionrequiredOne of
UPGRADE_ACTION_UNSPECIFIED,UPGRADE_ACTION_BUY,UPGRADE_ACTION_CONTACT.kindUpgradeKindrequiredOne of
UPGRADE_KIND_UNSPECIFIED,UPGRADE_KIND_PLAN,UPGRADE_KIND_ADD_ON.moveUpgradeMoverequiredOne of
UPGRADE_MOVE_UNSPECIFIED,UPGRADE_MOVE_SUBSCRIBE,UPGRADE_MOVE_UPGRADE,UPGRADE_MOVE_SWITCH,UPGRADE_MOVE_ADD,UPGRADE_MOVE_REPLACE.planIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstring
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequiredbenefitThousandthsinteger (int64)at least 0; at most 4294967295
featureKeystringrequiredgroupcommon.GroupValuemeteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchbooleanwaitcommon.Waitcountinteger (int64)requiredat least 0; at most 4294967295
unitcommon.WaitUnitrequiredOne of
WAIT_UNIT_UNSPECIFIED,WAIT_UNIT_DAYS,WAIT_UNIT_MONTHS.
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequiredlimitcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
marketIdstringrequired
settingcommon.SettingValuechoicestringnumbercommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
textstring
switchboolean
waitingUntilintegerat least 0; at most 18446744073709552000
memberEntitledMemberexternalIdstringrequiredmemberIdstringrequired
servedServedCataloguechangeIdstringnothingNothingServedreleaseServedReleaseidstringrequirednumberintegerrequiredat least 0; at most 18446744073709552000
trackServedTrackidstringrequirednamestringrequired
sharedEntitlementbenefitThousandthsinteger (int64)at least 0; at most 4294967295
currencystringrequireddecimalsinteger (int64)requiredat least 0; at most 4294967295
entitledbooleanrequiredfeatureKeystringrequiredhomeZonesarray of ZonedEntitlementrequiredentitledbooleanrequiredremainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequiredbenefitThousandthsinteger (int64)at least 0; at most 4294967295
featureKeystringrequiredgroupcommon.GroupValuemeteredcommon.Limitmoneycommon.MarketLimitssettingcommon.SettingValueswitchbooleanwaitcommon.Wait
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequiredlimitcommon.LimitmarketIdstringrequired
settingcommon.SettingValuechoicestringnumbercommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
textstring
switchboolean
zonestringrequired
hoursEntitledHoursclosesAtintegerat least 0; at most 18446744073709552000
openbooleanrequiredopensAtintegerat least 0; at most 18446744073709552000
kindEntitledFeatureKindrequiredOne of
ENTITLED_FEATURE_KIND_UNSPECIFIED,ENTITLED_FEATURE_KIND_SWITCH,ENTITLED_FEATURE_KIND_METERED,ENTITLED_FEATURE_KIND_SETTING,ENTITLED_FEATURE_KIND_GROUP.memberMeterMeterbankedintegerrequiredat least 0; at most 18446744073709552000
heldintegerrequiredat least 0; at most 18446744073709552000
remainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
resetsAtintegerat least 0; at most 18446744073709552000
topUpLeftintegerrequiredat least 0; at most 18446744073709552000
topUpSpentintegerrequiredat least 0; at most 18446744073709552000
usedintegerrequiredat least 0; at most 18446744073709552000
memberValuecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
meterMeterbankedintegerrequiredat least 0; at most 18446744073709552000
heldintegerrequiredat least 0; at most 18446744073709552000
remainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
resetsAtintegerat least 0; at most 18446744073709552000
topUpLeftintegerrequiredat least 0; at most 18446744073709552000
topUpSpentintegerrequiredat least 0; at most 18446744073709552000
usedintegerrequiredat least 0; at most 18446744073709552000
perUsecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
sharedBystringsharedValuecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
sourcesarray of EntitlementSourcerequiredaddOnAddOnSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredquantityinteger (int64)requiredat least 0; at most 4294967295
throughFeatureKeystringvaluecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
versionNumberintegerrequiredat least 0; at most 18446744073709552000
defaultPlanDefaultPlanSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstringthroughFeatureKeystringversionNumberintegerrequiredat least 0; at most 18446744073709552000
grantGrantSourcegrantIdstringrequiredthroughFeatureKeystringuntilintegerat least 0; at most 18446744073709552000
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
groupGroupSourcefeatureKeysarray of stringrequired
planPlanSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstringthroughFeatureKeystringvaluecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
versionNumberintegerrequiredat least 0; at most 18446744073709552000
segmentKeystring
uncountedZonesarray of stringrequiredupgradesarray of UpgraderequiredactionUpgradeActionrequiredOne of
UPGRADE_ACTION_UNSPECIFIED,UPGRADE_ACTION_BUY,UPGRADE_ACTION_CONTACT.kindUpgradeKindrequiredOne of
UPGRADE_KIND_UNSPECIFIED,UPGRADE_KIND_PLAN,UPGRADE_KIND_ADD_ON.moveUpgradeMoverequiredOne of
UPGRADE_MOVE_UNSPECIFIED,UPGRADE_MOVE_SUBSCRIBE,UPGRADE_MOVE_UPGRADE,UPGRADE_MOVE_SWITCH,UPGRADE_MOVE_ADD,UPGRADE_MOVE_REPLACE.planIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstring
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequiredbenefitThousandthsinteger (int64)at least 0; at most 4294967295
featureKeystringrequiredgroupcommon.GroupValuemeteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchbooleanwaitcommon.Waitcountinteger (int64)requiredat least 0; at most 4294967295
unitcommon.WaitUnitrequiredOne of
WAIT_UNIT_UNSPECIFIED,WAIT_UNIT_DAYS,WAIT_UNIT_MONTHS.
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequiredlimitcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
marketIdstringrequired
settingcommon.SettingValuechoicestringnumbercommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
textstring
switchboolean
waitingUntilintegerat least 0; at most 18446744073709552000
usageUsageResultamountintegerrequiredat least 0; at most 18446744073709552000
benefitThousandthsinteger (int64)at least 0; at most 4294967295
cappedbooleanrequiredcappedByCappedByOne of
CAPPED_BY_UNSPECIFIED,CAPPED_BY_FEATURE,CAPPED_BY_MEMBER,CAPPED_BY_SHARED,CAPPED_BY_SHARED_MEMBER.costintegerat least 0; at most 18446744073709552000
countedbooleanrequiredexpiresAtMsintegerat least 0; at most 18446744073709552000
holdIdstringlatebooleanrequiredmemberOverByintegerrequiredat least 0; at most 18446744073709552000
meterChangeinteger (int64)requiredmodeUsageModerequiredOne of
USAGE_MODE_UNSPECIFIED,USAGE_MODE_GATE,USAGE_MODE_OBSERVE.occurredAtMsintegerat least 0; at most 18446744073709552000
opensAtintegerat least 0; at most 18446744073709552000
outcomeUsageOutcomerequiredOne of
USAGE_OUTCOME_UNSPECIFIED,USAGE_OUTCOME_RECORDED,USAGE_OUTCOME_REFUSED,USAGE_OUTCOME_DUPLICATE,USAGE_OUTCOME_CANCELLED,USAGE_OUTCOME_HELD,USAGE_OUTCOME_SETTLED,USAGE_OUTCOME_RELEASED,USAGE_OUTCOME_ADJUSTED.overByintegerrequiredat least 0; at most 18446744073709552000
perUsecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
perUseOverByintegerrequiredat least 0; at most 18446744073709552000
refusalUsageRefusalOne of
USAGE_REFUSAL_UNSPECIFIED,USAGE_REFUSAL_NOT_ENTITLED,USAGE_REFUSAL_OVER_ALLOWANCE,USAGE_REFUSAL_NO_BENEFIT,USAGE_REFUSAL_WAITING,USAGE_REFUSAL_OUTSIDE_HOURS,USAGE_REFUSAL_OVER_PER_USE,USAGE_REFUSAL_MEMBER_OVER_ALLOWANCE,USAGE_REFUSAL_SHARED_OVER_ALLOWANCE.replayedbooleanrequiredsaturatedbooleanrequiredsharedOverByintegerrequiredat least 0; at most 18446744073709552000
usageIdstringwaitingUntilintegerat least 0; at most 18446744073709552000
ErrorA refusal, with the HTTP status of its gRPC code.
Error
errorobjectrequiredcodestringrequiredparametersobjectrequiredEach value: string
reasonstringor nullrequired