Skip to content
Indiana
Dashboard
Docs
Browse docs / Preview invoice refund

Preview invoice refund

POST/api/v1/subscriptions/refunds/preview

The trusted server quotes a full or partial refund of the customer's paid Stripe invoice and whether to end the plans it paid for. The quote holds the amount and does not initiate a refund.

API v1Updated

Make the request

The trusted server quotes a full or partial refund of the customer's paid Stripe invoice and whether to end the plans it paid for. The quote holds the amount and does not initiate a refund.

Credential
Server API key only. Call from your trusted backend.
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 "$INDIANA_BASE_URL/api/v1/subscriptions/refunds/preview" \  -H "Authorization: Bearer $INDIANA_SECRET_KEY" \  -H "X-Indiana-Project: $INDIANA_PROJECT_ID" \  -H "X-Indiana-Protocol: 0.5" \  -H "X-Indiana-Environment: sandbox" \  -H "Content-Type: application/json" \  -d '{  "customerId": "00000000-0000-4000-8000-000000000001",  "requestId": "00000000-0000-4000-8000-000000000001",  "invoiceId": "00000000-0000-4000-8000-000000000001",  "mode": "partial",  "amountMinor": 100,  "entitlementAction": "retain"}'

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

Request parameters

JSON body

requestIduuidRequired

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

invoiceIduuidRequired

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

modeenumRequired

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

Show allowed values

"full""partial"

amountMinorintegerOptional

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

max: 200000000

entitlementActionenumRequired

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

Show allowed values

"retain""revoke"

customerIduuidRequired

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"

quoteobjectRequired

The quote 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.

invoiceIduuidRequired

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

providerInvoiceIdstringRequired

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

pattern: ^in_[A-Za-z0-9]+$

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"

paidMinorintegerRequired

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

min: 0 · max: 200000000

refundedMinorintegerRequired

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

min: 0 · max: 200000000

pendingMinorintegerRequired

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

min: 0 · max: 200000000

amountMinorintegerRequired

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

max: 200000000

modeenumRequired

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

Show allowed values

"full""partial"

entitlementActionenumRequired

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

Show allowed values

"retain""revoke"

revokesobjectRequired

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

Show child fields
customerProductIdsarrayRequired

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

maxItems: 100

subscriptionIdsarrayRequired

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

maxItems: 20

executionobjectRequired

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

Show child fields
provider"stripe"Required

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

executorenumRequired

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

Show allowed values

"indiana""merchant"

accountIdstringRequired

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

pattern: ^acct_[A-Za-z0-9]+$

invoicestringRequired

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

pattern: ^in_[A-Za-z0-9]+$

amountMinorintegerRequired

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

max: 200000000

currencystringRequired

Currency code supported by the published price.

pattern: ^[a-z]{3}$

metadataobjectRequired

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

Show child fields
indianaRefundIduuidRequired

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

idempotencyKeystringRequired

Stable business idempotency key. The same key and payload replay the result; do not randomize on retries.

pattern: ^indiana-refund-[0-9a-f-]{36}$

cancelSubscriptionsarrayRequired

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

maxItems: 20

expiresAtdate-timeRequired

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

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