API keys

Every request authenticates with a Bearer key. Keys come in two types, each

scoped to a mode (test or live); an intent's mode is set by the key that

created it.

Platform-wide concepts (auth, idempotency, versioning, errors) live on the

reference index.

Key types

TypePrefixScopingUse case
Secretsk_test_… / sk_live_…Full account access, TLS onlyServer-side: intents, webhooks, links
Publishablepk_test_… / pk_live_…Create intents + drive hosted checkout onlyClient-side: checkout embed

Publishable keys are forbidden everywhere else

(permission_error / publishable_key_forbidden). Rate limits on intent

creation: secret 10,000 req/min, publishable 120 req/min.

Create a key

POST /api-keys

Request:


POST /api-keys
Authorization: Bearer sk_test_...
Content-Type: application/json

{ "type": "secret", "mode": "test" }

Response (200):


{
  "key": {
    "id": "key_...",
    "mode": "test",
    "type": "secret",
    "plaintext": "sk_test_..."
  }
}

The plaintext is returned once only — store it. Later listings show only

the prefix.

Manage keys

GET /api-keys

List keys (ID, type, mode; values masked).

POST /api-keys/{id}/rotate

Issue a new secret that shadows the old for 72h before the old stops working.

POST /api-keys/{id}/revoke

Revoke a key immediately.

Code examples:

LanguageExample
Pythontransxact.api_keys.create({"mode": "test"})
Node.jsawait transxact.apiKeys.create({ mode: "test" })

You can also self-serve keys in the Developer section of the

dashboard without writing any code.