Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.tagada.io/llms.txt

Use this file to discover all available pages before exploring further.

SDKs at a glance

TagadaPay ships five SDKs plus several CLI / MCP tools. Each one targets a specific job. Use this page to pick the right one in 30 seconds.
Rule of thumb: the further “down” you go in this list, the more control you get and the more code you write. Start at the top — if it covers your use case, stop there.

Decision flowchart

What are you building?

├─ Just a "Buy Now" button on a static site
│  → Web Integration (no SDK, just a snippet)

├─ A custom checkout for ONE store you own
│  ├─ I want it hosted on TagadaPay   → Plugin SDK
│  └─ I want it on my own domain      → Headless SDK

├─ A platform that charges cards for MANY merchants
│  → Partners (Node SDK + core-js) ◄── this is the new section

├─ A backend automation (CI / agent / batch job)
│  → Node SDK

├─ A native mobile app or embedded form
│  → core-js + REST (low-level)

└─ AI agents that edit my Studio templates
   → Studio MCP

The five SDKs

1. @tagadapay/core-js — Browser primitives

LayerBrowser, low-level
Use it forCard / Apple Pay / Google Pay tokenization, 3DS challenges, wallet availability checks, Stripe Express
Don’t use it forAnything stateful (cart, session, customer) — that’s the headless-sdk
Carries a session?No
Best companion@tagadapay/node-sdk (server)
DocLow-level payments · Partners
Mental model: a thin, framework-agnostic wrapper around BasisTheory + Apple Pay + Google Pay APIs that returns a tagadaToken. Use it whenever sensitive payment data needs to leave the browser without touching your server.

2. @tagadapay/headless-sdk — Custom checkouts

LayerBrowser, session-based orchestration
Use it forBuilding a custom checkout on your own domain with React / Vue / vanilla JS
Don’t use it forServer automation, batch jobs, cross-merchant platforms
Carries a session?Yes — built around checkoutSession
Best companion@tagadapay/node-sdk (for everything not session-related)
DocHeadless SDK introduction
Mental model: take your existing storefront, wire a useCheckout() hook, point it at a TagadaPay store. Cart, promotions, shipping, payment, upsells — all session-based. Internally uses core-js for tokenization.

3. @tagadapay/plugin-sdk — Plugins on the TagadaPay platform

LayerBrowser, React framework for in-platform plugins
Use it forCheckout pages, landing pages, customer portals deployed on TagadaPay’s runtime (e.g. via the Plugin CLI)
Don’t use it forPages hosted on your own domain (use headless-sdk)
Carries a session?Yes — reads window.__TGD_STEP_CONFIG__ injected by the runtime
Best companion@tagadapay/plugin-cli (deployment)
DocPlugin SDK introduction
Mental model: write a React app that runs INSIDE TagadaPay’s funnel runtime. The runtime hands you the session, the step config, the customer state — you only write the UI. Internally uses core-js for tokenization.

4. @tagadapay/node-sdk — Server-side, the big one

LayerServer, Stripe-style resource client
Use it forAll server operations: payments, refunds, customers, stores, products, subscriptions, checkout sessions, webhooks, and partner provisioning (partners.*)
Don’t use it forAnything that needs to run in a browser
Carries a session?No (you choose the storeId per call)
Best companionAny of the browser SDKs
DocNode SDK quick start · Partners
Mental model: think of it as the stripe-node of TagadaPay. Resource-keyed (tagada.payments.process(), tagada.customers.create(), etc.). The tagada.partners.* namespace covers partner provisioning end-to-end (sub-merchants, API keys, requirements, documents).

When two SDKs are involved

Most real integrations need exactly two SDKs working together:
ScenarioBrowserServer
Custom checkout on your domainheadless-sdknode-sdk
Plugin deployed on TagadaPayplugin-sdk(none — runtime handles the server side)
Partner platform (Suby-style)core-jsnode-sdk (with partners.*)
Mobile app / native checkoutcore-jsnode-sdk
Backend automation only(none)node-sdk

Side-by-side comparison

core-jsheadless-sdkplugin-sdknode-sdk
Runs inBrowserBrowserBrowserServer (Node 18+)
Card tokenization✅ Direct✅ via core-js✅ via core-js
Apple/Google Pay tokenization✅ via core-js✅ via core-js
3DS challenges
Checkout sessions✅ Built-in✅ via runtime✅ Create/manage
Cart / promotions / shipping✅ Server-side
Stores / products / customersRead-onlyRead-only✅ Full CRUD
Payments S2S
Subscriptions
Partner provisioning✅ (partners.*)
Webhooks✅ Verify + manage

What about the CLI / MCP tools?

These aren’t SDKs — they’re separate tools:
ToolPurposeDoc
@tagadapay/plugin-cli (tgd)Package and deploy plugins from the command linePlugin CLI
@tagadapay/studio-mcpLet AI agents edit Tagada Studio templatesStudio MCP
@tagadapay/crm-mcpLet AI agents read your account configurationCRM MCP

Common pitfalls

Don’t mix headless-sdk and plugin-sdk in the same app. They have different runtime assumptions. If you’re hosting on your own domain, pick headless-sdk. If you’re deploying to TagadaPay, pick plugin-sdk. Never both.
Don’t use the partner key in your charging path. Mint a sub-key per merchant and use the sub-key for payments.process. The partner key has too much power for hot-path credentials. See API keys.
Don’t call core-js from your server. It’s a browser library — the bundled BasisTheory client expects browser APIs. Server-side, all tokenization is done implicitly via the public API endpoints exposed by node-sdk.

Migration map

Coming from…Go to…
@tagadapay/plugin-sdk/v2/standalone (Apple/Google Pay primitives)@tagadapay/core-js (same primitives, same signatures)
Direct REST API callsOne of the SDKs above — pick from the decision flowchart