Start with the HTTP quickstart and downloads to identify a Customer, issue a session and read holdings without an SDK. This documentation targets protocol 0.5.
Version compatibility & availability
Match the current API and SDK examples to a compatible published artifact.
Choose an integration path
Versions and integration
| Client | Availability |
|---|---|
| HTTP | The quickstart and API reference use protocol 0.5; no SDK is required. |
| npm 0.5.0 beta | Published for this guide's protocol 0.5. |
| SDK protocol 0.5 | Published. Install an exact SDK version supporting this protocol. |
| Invoice SDK methods | Available in npm 0.5.0. The server and database must support protocol 0.5; SDK publication does not deploy the service. |
| Swift / Kotlin | Source packages are available; public SPM/Maven releases are not yet available. See the native guides for installation and supported capabilities. |
Choose a compatible client
HTTP
- Availability
- The quickstart and API reference use protocol 0.5; no SDK is required.
npm 0.5.0 beta
- Availability
- Published for this guide's protocol 0.5.
SDK protocol 0.5
- Availability
- Published. Install an exact SDK version supporting this protocol.
Invoice SDK methods
- Availability
- Available in npm 0.5.0. The server and database must support protocol 0.5; SDK publication does not deploy the service.
Swift / Kotlin
- Availability
- Source packages are available; public SPM/Maven releases are not yet available. See the native guides for installation and supported capabilities.
Pin an exact version. For UNSUPPORTED_PROTOCOL_VERSION, use a protocol supported by the service; removing version headers will not upgrade the request.
Capability prerequisites
| Capability | Requirement |
|---|---|
| Customer / holdings | Use one App/environment, correct permissions and verified Customer credentials. Empty holdings are valid. |
| Offering / Paywall | Use published pinned Versions. Paywall requires an Offering; disable unavailable Product choices. |
| Stripe | The purchase path covers Sandbox fixed Prices. Follow the autumn/record_only executor; verified webhooks determine the result. |
| Native and advanced billing | Native purchases, existing-subscription changes, Entity/append and usage-priced checkout are outside the initial integration path; unavailable operations return explicit errors. |
| Funnel / GrowthBook | Use capabilities supported by your environment. See the relevant guides for background waits, external tasks and advanced analysis. |
Handle actual operation results
Customer / holdings
- Requirement
- Use one App/environment, correct permissions and verified Customer credentials. Empty holdings are valid.
Offering / Paywall
- Requirement
- Use published pinned Versions. Paywall requires an Offering; disable unavailable Product choices.
Stripe
- Requirement
- The purchase path covers Sandbox fixed Prices. Follow the autumn/record_only executor; verified webhooks determine the result.
Native and advanced billing
- Requirement
- Native purchases, existing-subscription changes, Entity/append and usage-priced checkout are outside the initial integration path; unavailable operations return explicit errors.
Funnel / GrowthBook
- Requirement
- Use capabilities supported by your environment. See the relevant guides for background waits, external tasks and advanced analysis.
For NOT_CONFIGURED or SERVICE_UNAVAILABLE, retain requestId and check environment configuration/availability. Do not change Customer, environment or request identity to bypass an error.
Version compatibility and support
Current 0.x supports only the current protocol and may introduce breaking changes in a new minor. Pin your package and check the deployed service. Starting at 1.0, minor and patch releases preserve compatibility within the same major; breaking changes require a new major.
After a new stable major is published, its predecessor remains supported for at least 12 calendar months. End of support requires at least 180 days of public notice; the later deadline governs. Support does not end automatically before a successor and a public notice exist.
Compatibility covers public SDK methods/types, request meaning, required response fields, error semantics, identity isolation, idempotency and recovery. Support includes critical bug and security fixes. Migration notices on this page identify the affected/replacement versions, migration steps and final support date, and remain accessible after retirement. Validate upgrades in Sandbox first.
Identify the request protocol
Send X-Indiana-Protocol: 0.5 with HTTP requests. The SDK sends this header and X-Indiana-SDK-Version automatically; the versions must agree. Send credentials separately. The /api/v1 path does not select a protocol version.
Published SDK 0.2.0 sends no version headers. Headerless requests select 0.2 and are refused by a service supporting only 0.5. Response X-Indiana-Protocol identifies the selected contract; X-Indiana-Supported-Protocols lists available protocols.
| HTTP | code | Action |
|---|---|---|
| 400 | INVALID_PROTOCOL_VERSION | Correct malformed or inconsistent SDK/protocol headers. |
| 400 | UNSUPPORTED_PROTOCOL_VERSION | Use a supported protocol and check the deployment. |
| 410 | PROTOCOL_RETIRED | Upgrade following the public migration notice; the request was not executed. |
Protocol errors
400
- code
- INVALID_PROTOCOL_VERSION
- Action
- Correct malformed or inconsistent SDK/protocol headers.
400
- code
- UNSUPPORTED_PROTOCOL_VERSION
- Action
- Use a supported protocol and check the deployment.
410
- code
- PROTOCOL_RETIRED
- Action
- Upgrade following the public migration notice; the request was not executed.
After a deprecation notice takes effect, that protocol's responses include Deprecation (notice Unix timestamp), Sunset (end-of-support HTTP date) and Link (migration notice). Existing requests remain available during the notice period and receive an explicit refusal after retirement.
Protocol support table
| Protocol | Stage | First release | Notice | End of support |
|---|---|---|---|---|
| 0.2 | Development | 2026-10-16T04:05:43.170Z | Not announced | No longer supported |
| 0.3 | Development | 2026-10-16T16:18:04.572Z | Not announced | No longer supported |
| 0.4 | Development | 2026-10-18T12:44:12.148Z | Not announced | No longer supported |
| 0.5 | Development | 2026-10-19T08:12:17.954Z | Not announced | Not scheduled |
Timestamps are UTC. 0.x has no legacy protocol support commitment.
0.2
- Stage
- Development
- First release
- 2026-10-16T04:05:43.170Z
- Notice
- Not announced
- End of support
- No longer supported
0.3
- Stage
- Development
- First release
- 2026-10-16T16:18:04.572Z
- Notice
- Not announced
- End of support
- No longer supported
0.4
- Stage
- Development
- First release
- 2026-10-18T12:44:12.148Z
- Notice
- Not announced
- End of support
- No longer supported
0.5
- Stage
- Development
- First release
- 2026-10-19T08:12:17.954Z
- Notice
- Not announced
- End of support
- Not scheduled