Docs

Native SDKs & no-code plugins

The same contract as the JavaScript SDK, for iOS, Android and Flutter — plus drop-in WordPress and Shopify integrations for teams that would rather not touch code.

Native mobile SDKs

TripticonsentSDK (iOS/macOS/tvOS, Swift + CryptoKit) and the Android SDK (Kotlin, OkHttp, Google Tink) mirror @tripticonsent/sdk method for method: recordConsent, getConsentState, getPurposes, the tag-gating gate(), and offline Ed25519 receipt verification performed on-device. A Flutter plugin bridges both over a MethodChannel, so one Dart call reaches whichever native SDK is running underneath.

Apps send no Origin header, so create the app's pk_ key with Allow native apps enabled — otherwise every call returns 403. For a signed-in user, also pass an identity token signed by your backend (identityToken option / setIdentityToken) — see Guide: identifying logged-in users.
import TripticonsentSDK

let tc = TripticonsentClient(TripticonsentOptions(baseUrl: "https://api.tripticonsent.tripticode.com", apiKey: "pk_live_…"))
try await tc.recordConsent(
    RecordConsentParams(subject: .email("user@example.com"), purpose: "marketing_email", state: .granted, channel: "app"),
    idempotencyKey: UUID().uuidString
)
val tc = TripticonsentClient(TripticonsentOptions(baseUrl = "https://api.tripticonsent.tripticode.com", apiKey = "pk_live_…"))
tc.recordConsent(
    RecordConsentParams(SubjectRef.email("user@example.com"), "marketing_email", ConsentInputState.GRANTED, channel = "app"),
    idempotencyKey = UUID.randomUUID().toString(),
)
final tc = TripticonsentClient(baseUrl: 'https://api.tripticonsent.tripticode.com', apiKey: 'pk_live_…');
await tc.recordConsent(
  RecordConsentParams(subject: SubjectRef.email('user@example.com'), purpose: 'marketing_email', state: ConsentInputState.granted, channel: 'app'),
  idempotencyKey: yourOwnUniqueId(),
);
The mobile SDKs are in early access — source-complete and tested, ahead of publishing to the CocoaPods/SPM registry, Maven Central, and pub.dev. Talk to your account contact to get set up. As with the browser SDK, never ship an sk_ key inside an app binary — pk_ only.

No-code plugins

For sites that would rather not write integration code, the same banner served by @tripticonsent/sdk packages into two plugins:

  • WordPress (tripticonsent-consent) — a Settings page for your pk_ key, a script_loader_tag filter that attaches the right data-tc-* attributes automatically, and two shortcodes: [tripticonsent_cookie_declaration] and [tripticonsent_preferences_link].
  • Shopify — an app embed block (toggle it on in Theme Editor → App embeds, no theme code edits) that also bridges decisions into Shopify’s own customerPrivacy.setTrackingConsent, so checkout and analytics honor them too. Currently finishing validation against Shopify’s CLI tooling.
Both plugins wrap the same cmp.js bundle used by the <script data-tc-api-key> tag — no separate consent logic to keep in sync.