Skip to content
Indiana
Dashboard
Docs
Browse docs / Read a subscription operation

Read a subscription operation

POST/api/v1/subscriptions/operations/read

Read an accepted operation and recover its existing payment and delivery without creating a second provider attempt. Customer tokens supply the verified identity; server keys must specify the customer.

SDK 0.0.1Updated

Make the request

Read an accepted operation and recover its existing payment and delivery without creating a second provider attempt. Customer tokens supply the verified identity; server keys must specify the customer.

Credential
Server API key or customer token. Customer calls cannot select another customer.
Permission
billing:read
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/subscriptions/operations/read" \  -H "Authorization: Bearer $GROOVE_CUSTOMER_TOKEN" \  -H "X-Groove-Project: $GROOVE_PROJECT_ID" \  -H "X-Groove-Environment: sandbox" \  -H "Content-Type: application/json" \  -d '{  "operationId": "00000000-0000-4000-8000-000000000001"}'

The response is illustrative, not the result of a live request.

Request parameters

JSON body

operationIduuidRequired

Business operation UUID. Subscription execution references operationId from previewAttach; balance refunds reference the original consumption.

customerIduuidOptional

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

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"

operationobjectRequired

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

Show child fields
operationIduuidRequired

Business operation UUID. Subscription execution references operationId from previewAttach; balance refunds reference the original consumption.

orderIduuidRequired

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

statusenumRequired

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

Show allowed values

"pending""complete""cancelled""failed"

checkoutUrluri | nullRequired

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

currencyenumRequired

Currency code supported by the published price.

Show allowed values

"USD""EUR""CNY""GBP""JPY""CAD""AUD""NZD""CHF""HKD""SGD""KRW""INR""BRL""MXN""TWD""THB""IDR""MYR""PHP""VND""ZAR""AED""SAR""SEK""NOK""DKK""PLN""CZK""HUF""ILS""TRY""RON"

catalogAmountMinorintegerRequired

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

min: 0 · max: 100000000

taxMinorintegerRequired

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

min: 0 · max: 100000000

totalMinorinteger | nullRequired

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

quoteFinalizedbooleanRequired

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

nativePurchaseobject | nullRequired

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

Show child fields
type"native_purchase"Required

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

receiptIduuidRequired

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

orderIduuidRequired

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

productVersionIduuidRequired

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

providerenumRequired

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

Show allowed values

"apple""google"

productIdstringRequired

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

minLength: 1 · maxLength: 255

productKindenumRequired

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

Show allowed values

"membership""credit_pack""lifetime"

replacementobject | nullRequired

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

Show child fields
sourceOrderIduuidRequired

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

sourceProductIdstringRequired

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

minLength: 1 · maxLength: 255

policyenumRequired

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

Show allowed values

"apple_store""google_full_price"

sourceAccountTokensarrayRequired

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

maxItems: 50

appAccountTokenuuidOptional

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

obfuscatedAccountIdstringOptional

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

minLength: 1 · maxLength: 64

obfuscatedProfileIduuidOptional

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

basePlanIdstringOptional

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

minLength: 1 · maxLength: 255

offerIdstringOptional

ID of an offer claimed by this customer; mutually exclusive with promotionCode.

minLength: 1 · maxLength: 255

offerKindenumRequired

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

Show allowed values

"none""introductory""promotional"

currencyenumRequired

Currency code supported by the published price.

Show allowed values

"USD""EUR""CNY""GBP""JPY""CAD""AUD""NZD""CHF""HKD""SGD""KRW""INR""BRL""MXN""TWD""THB""IDR""MYR""PHP""VND""ZAR""AED""SAR""SEK""NOK""DKK""PLN""CZK""HUF""ILS""TRY""RON"

catalogAmountMinorintegerRequired

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

min: 0 · max: 100000000

discountMinorintegerRequired

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

min: 0 · max: 100000000

trialDaysinteger | nullRequired

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

seatBundlearrayRequired

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

maxItems: 20

Show child fields
keystringRequired

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

pattern: ^[a-z][a-z0-9_]{0,63}$

quantityintegerRequired

Use the declared field type for business quantity. Credit operations use decimal strings to avoid floating-point error. quote/reserve/confirm/refund require positive quantities; consume can record zero-cost events.

min: 1 · max: 10000

applePromotionalOfferobject | nullRequired

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

Show child fields
offerIdstringRequired

ID of an offer claimed by this customer; mutually exclusive with promotionCode.

minLength: 1 · maxLength: 255

keyIdstringRequired

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

minLength: 1 · maxLength: 255

nonceuuidRequired

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

signaturestringRequired

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

minLength: 1 · maxLength: 1024

timestampintegerRequired

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

min: 0 · max: 9007199254740991

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