Skip to content
Indiana
Dashboard
Docs
Browse docs / Manage standalone balance grants

Manage standalone balance grants

POST/api/v1/balances/grants/manage

The trusted server creates one-time or recurring grants, adjusts available funds, changes future grants and expiry, or revokes a grant. Frozen funds and historical usage remain intact.

SDK 0.0.1Updated

Make the request

The trusted server creates one-time or recurring grants, adjusts available funds, changes future grants and expiry, or revokes a grant. Frozen funds and historical usage remain intact.

Credential
Server API key only. Call from your trusted backend.
Permission
credits:manage
Set the base URL and App ID from SDK setup. These examples use placeholders and do not execute requests. Never put a server key in browser code.
request.shShell
curl -X POST "$GROOVE_BASE_URL/api/v1/balances/grants/manage" \  -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": {    "action": "create",    "requestId": "00000000-0000-4000-8000-000000000001",    "entitlementVersionId": "00000000-0000-4000-8000-000000000001",    "entityId": null,    "name": "Monthly gift",    "amount": "100",    "startsAt": "2026-10-03T12:00:00.000Z",    "expiresAt": null,    "reset": {      "interval": "month",      "count": 1    },    "rollover": null,    "nextResetAt": null  }}'

The response tab lists field types, not an example payload. Actual values depend on customer state.

Request parameters

JSON body

customerIduuidRequired

Indiana customer ID mapped from a verified identity on the server. Omit for customer-token calls, which use the token-bound customer.

commandobject | object | object | objectRequired

The command value for this operation. Its accepted type and constraints are listed above and below.

Show child fields
action"create" | "update" | enum | "revoke"Required

Business action. Target fields and quantity requirements vary by action; see the request structure and example.

requestIduuid | uuid | uuid | uuidRequired

Business request UUID. Reuse for retries of one operation; generate a new value for a new operation.

entitlementVersionIduuidOptional

The entitlementVersionId value for this operation. Its accepted type and constraints are listed above and below.

entityIduuid | nullOptional

Entity ID within the current customer scope, for configured entity and license features.

namestring | stringOptional

Display name of the customer or object; not an identity key.

amountstring | null | string | null | stringOptional

Credit or ledger amount, using the field’s decimal-string or integer type.

startsAtdate-timeOptional

The startsAt value for this operation. Its accepted type and constraints are listed above and below.

expiresAtdate-time | null | date-time | nullOptional

ISO 8601 UTC expiry. Expired sessions and reservations cannot be reused.

resetobject | nullOptional

The reset value for this operation. Its accepted type and constraints are listed above and below.

Show child fields
intervalenumRequired

The interval value for this operation. Its accepted type and constraints are listed above and below.

Show allowed values

"minute""hour""day""week""month""quarter""semi_annual""year"

countintegerRequired

The count value for this operation. Its accepted type and constraints are listed above and below.

min: 1 · max: 1000

rolloverobject | null | object | nullOptional

The rollover value for this operation. Its accepted type and constraints are listed above and below.

Show child fields
capstring | null | string | nullRequired

The cap value for this operation. Its accepted type and constraints are listed above and below.

capPercentagenumber | null | number | nullRequired

The capPercentage value for this operation. Its accepted type and constraints are listed above and below.

cyclesinteger | null | integer | nullRequired

The cycles value for this operation. Its accepted type and constraints are listed above and below.

nextResetAtdate-time | null | date-time | nullOptional

The nextResetAt value for this operation. Its accepted type and constraints are listed above and below.

grantIduuid | uuid | uuidOptional

The grantId value for this operation. Its accepted type and constraints are listed above and below.

revisioninteger | integer | integerOptional

Revision returned by profile reads; updates use it to detect concurrent changes.

Response fields

Successful responses include requestId and scope. Use the actual business status or accepted field to determine the result. Optional fields are omitted when unavailable.

HTTP 200 · application/json

requestIduuidRequired

Server-generated HTTP request UUID. Include it when reporting a failed request.

scopeobjectRequired

The App and environment of this response. Headers only verify scope; they cannot switch key scope.

Show child fields
projectIdstringRequired

App ID bound to the credential.

minLength: 1

environmentenumRequired

Separate data scope: sandbox or live.

Show allowed values

"sandbox""live"

grantobjectRequired

The grant value for this operation. Its accepted type and constraints are listed above and below.

Show child fields
iduuidRequired

The id value for this operation. Its accepted type and constraints are listed above and below.

entitlementVersionIduuidRequired

The entitlementVersionId value for this operation. Its accepted type and constraints are listed above and below.

entityIduuid | nullRequired

Entity ID within the current customer scope, for configured entity and license features.

namestringRequired

Display name of the customer or object; not an identity key.

amountobject | nullRequired

Credit or ledger amount, using the field’s decimal-string or integer type.

resetobject | nullRequired

The reset value for this operation. Its accepted type and constraints are listed above and below.

Show child fields
intervalenumRequired

The interval value for this operation. Its accepted type and constraints are listed above and below.

Show allowed values

"minute""hour""day""week""month""quarter""semi_annual""year"

countintegerRequired

The count value for this operation. Its accepted type and constraints are listed above and below.

min: 1 · max: 1000

rolloverobject | nullRequired

The rollover value for this operation. Its accepted type and constraints are listed above and below.

Show child fields
capobject | nullRequired

The cap value for this operation. Its accepted type and constraints are listed above and below.

capPercentagenumber | nullRequired

The capPercentage value for this operation. Its accepted type and constraints are listed above and below.

cyclesinteger | nullRequired

The cycles value for this operation. Its accepted type and constraints are listed above and below.

nextResetAtdate-time | nullRequired

The nextResetAt value for this operation. Its accepted type and constraints are listed above and below.

startsAtdate-timeRequired

The startsAt value for this operation. Its accepted type and constraints are listed above and below.

expiresAtdate-time | nullRequired

ISO 8601 UTC expiry. Expired sessions and reservations cannot be reused.

revisionintegerRequired

Revision returned by profile reads; updates use it to detect concurrent changes.

min: 0 · max: 9007199254740991

revokedbooleanRequired

The revoked value for this operation. Its accepted type and constraints are listed above and below.

availablestringRequired

The available value for this operation. Its accepted type and constraints are listed above and below.

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

heldstringRequired

The held value for this operation. Its accepted type and constraints are listed above and below.

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

spentstringRequired

The spent value for this operation. Its accepted type and constraints are listed above and below.

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

Handle errors

Common failures
CodeRecovery
UNAUTHENTICATEDVerify the key or refresh the expired customer token once.
FORBIDDENCheck current key permissions and customer access.
INVALID_REQUESTCheck field types, UUIDs, decimal strings and mutually exclusive fields.
SCOPE_MISMATCHUse the App and environment bound to the credential.

Common failures

  • UNAUTHENTICATED

    Recovery
    Verify the key or refresh the expired customer token once.
  • FORBIDDEN

    Recovery
    Check current key permissions and customer access.
  • INVALID_REQUEST

    Recovery
    Check field types, UUIDs, decimal strings and mutually exclusive fields.
  • SCOPE_MISMATCH

    Recovery
    Use the App and environment bound to the credential.

Related:All request and error conventions·Back to endpoint index