Skip to main content

TagadaPay for Partners

Who this is for — Companies who run their own merchant-facing product (PSPs, marketplaces, embedded-payments platforms, recurring-billing tools, virtual terminals) and want to use TagadaPay as their infrastructure for both the merchant control plane (orders, stores, customers, subscriptions) and card processing.Your merchants never see TagadaPay. They see your brand, your dashboard, your support. TagadaPay sits behind your service.Building a single store for yourself instead? You’re in the wrong tab — head to Developer Tools for merchant SDKs (Headless, Plugin, Node, Studio MCP…).

The one thing to understand first: two domains

Everything in the platform — API URLs, SDK namespaces, keys, docs — is organized along one primary axis: CRM vs Processing.

CRM domain

The merchant control plane: stores, products, orders, customers, subscriptions, promotions.
  • Base URL: /api/public/v1
  • Key: CRM Key (sk_crm_…, legacy UUID still works)
  • Scoped to a merchant (acc_xxx)

Processing domain

TagadaPay Processing: provisioning TPAs, KYB, documents, and charging cards / APMs.
  • Base URL: /api/tagadapay/v1
  • Key: Processing Key (tp_sk_…)
  • Scoped to a TPA (tpa_xxx)
A merchant can use CRM only, Processing only, or both — they are independent. You (directly or on behalf of your merchants) pick what you need. The secondary axis is who is acting: a direct merchant managing their own data, or a partner acting on behalf of its sub-merchants. In the SDK that’s the difference between the top-level namespaces and partners.*.

Entities & ids — never confuse these two

accountId (acc_xxx) and tpaId (tpa_xxx) are different ids. A CRM Key knows its acc_xxx; a Processing Key knows its tpa_xxx. Mixing them up is the #1 integration mistake.

What you can do as a partner


The SDK in one diagram

partners.crm.* and partners.processing.* mirror the platform’s two domains. CRM-only partners submit entity applications (applications.create) or embed — tpas.create returns 403 payfac_required. Payfac partners keep tpas.create. Direct merchants use processing.applications.create() with a CRM key.

Mental model in 30 seconds

The keys are the security boundary: a leaked CRM Key exposes one merchant’s CRM data; a leaked Processing Key exposes one TPA’s charging — never your whole partner account.

Humans (Ops) vs machines (API keys)

Two auth models — do not mix them up: Full matrix: IAM Overview. Deprecated / removed aliases (tagadapaymentAdmin, partner_ops, hubadmin, partnerstaff) must not be granted — use payment_ops + scope.
A Partner Key (tp_sk_…) never makes you an Ops user. Mint keys for your backend; invite humans with Clerk roles for the dashboard.

Where to start

Quick Start

The end-to-end flow in a few steps: provision a TPA → mint a Processing Key → tokenize → charge. ~10 minutes to a successful payment.

API keys & authentication

The three keys — CRM Key, Processing Key, Partner Key — their scopes, rotation, and blast radius.

CRM provisioning (merchants)

Create acc_xxx merchants and mint CRM Keys for the public API. CRM-only merchants are valid.

Apply for TagadaPay Processing

Same payload for direct merchants (processing.applications.create) and CRM-only partners (partners.processing.applications.create({ accountId, … })). Payfac partners: see Processing provisioning.

Processing provisioning (TPAs)

Create tpa_xxx TPAs, handle KYB requirements and documents, mint Processing Keys.

Embed onboarding (iframe)

Mount TagadaPay’s KYB form inside your app via iframe — partner-branded, same backend as the dashboard form.

Merchant-of-Record sub-merchants (beta)

Beta. Are YOU the merchant-of-record? Provision sub-merchants under your own payfac umbrella (shared balance account, per-sub-merchant statement descriptors, no KYB) — returned active immediately.

Merchant automation (REST)

The raw HTTP routes behind both domains, for backends that don’t use the Node SDK.

Server-to-server payments

Card flow, instruments, 3DS, refunds, captures, MIT.

Alternative payment methods

Apple Pay, Google Pay, Klarna, iDEAL — native vs through-processor.

Full end-to-end example

A complete partner integration: provision → charge → refund, in one place.

What this section is NOT

The “Partners” section assumes you’re acting on behalf of many merchants and need the multi-tenant primitives (merchants, TPAs, scoped keys).