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 yourpk_key, ascript_loader_tagfilter that attaches the rightdata-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.