{ "opencollection": "1.0.0", "info": { "name": "Basis Theory API", "version": "1.0" }, "request": { "auth": { "type": "apikey", "apikey": { "key": "BT-API-KEY", "value": "{{BT_API_KEY}}", "in": "header" } } }, "items": [ { "info": { "name": "Tokens", "type": "folder" }, "items": [ { "info": { "name": "Create a token", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/tokens", "body": { "type": "json", "data": "{\"type\":\"card\",\"data\":{\"number\":\"4242424242424242\",\"expiration_month\":12,\"expiration_year\":2030,\"cvc\":\"123\"},\"metadata\":{\"customer_id\":\"abc123\"}}" } }, "docs": "Tokenizes a single piece of sensitive data and stores it in the vault." }, { "info": { "name": "List tokens", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/v2/tokens?size=20" }, "docs": "Returns a cursor-paginated list of tokens for the tenant." }, { "info": { "name": "Get a token", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/tokens/{{tokenId}}" }, "docs": "Retrieves a specific token by id." }, { "info": { "name": "Update a token", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.basistheory.com/tokens/{{tokenId}}", "body": { "type": "json", "data": "{\"metadata\":{\"status\":\"verified\"}}" } }, "docs": "Partially updates a token using JSON merge patch semantics." }, { "info": { "name": "Delete a token", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.basistheory.com/tokens/{{tokenId}}" }, "docs": "Removes a token from the vault." } ] }, { "info": { "name": "Tokenize / Detokenize", "type": "folder" }, "items": [ { "info": { "name": "Tokenize", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/tokens/tokenize", "body": { "type": "json", "data": "{\"card\":{\"type\":\"card\",\"data\":{\"number\":\"4242424242424242\",\"expiration_month\":12,\"expiration_year\":2030}},\"ssn\":{\"type\":\"social_security_number\",\"data\":\"123-45-6789\"}}" } }, "docs": "Batch tokenization of an arbitrary object graph." }, { "info": { "name": "Detokenize", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/tokens/detokenize", "body": { "type": "json", "data": "{\"card_number\":\"{{ token: | json: '$.number' }}\"}" } }, "docs": "Batch detokenization resolving expressions back to plaintext." } ] }, { "info": { "name": "Token Intents", "type": "folder" }, "items": [ { "info": { "name": "Create a token intent", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/token-intents", "body": { "type": "json", "data": "{\"type\":\"card\",\"data\":{\"number\":\"4242424242424242\",\"expiration_month\":12,\"expiration_year\":2030,\"cvc\":\"123\"}}" } }, "docs": "Creates a short-lived token intent that captures sensitive data." }, { "info": { "name": "Get a token intent", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/token-intents/{{tokenIntentId}}" }, "docs": "Retrieves a token intent by id." }, { "info": { "name": "Delete a token intent", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.basistheory.com/token-intents/{{tokenIntentId}}" }, "docs": "Deletes a token intent by id." } ] }, { "info": { "name": "Applications", "type": "folder" }, "items": [ { "info": { "name": "Create an application", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/applications", "body": { "type": "json", "data": "{\"name\":\"Backend Service\",\"type\":\"private\",\"permissions\":[\"token:create\",\"token:read\",\"token:use\"]}" } }, "docs": "Creates an application (API credential) with permissions and rules." }, { "info": { "name": "List applications", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/applications" }, "docs": "Lists applications for the tenant." }, { "info": { "name": "Get an application", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/applications/{{applicationId}}" }, "docs": "Retrieves an application by id." }, { "info": { "name": "Get application by key", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/applications/key" }, "docs": "Returns the application associated with the BT-API-KEY used on the request." }, { "info": { "name": "Update an application", "type": "http" }, "http": { "method": "PUT", "url": "https://api.basistheory.com/applications/{{applicationId}}", "body": { "type": "json", "data": "{\"name\":\"Backend Service\",\"permissions\":[\"token:create\",\"token:read\"]}" } }, "docs": "Updates an application." }, { "info": { "name": "Delete an application", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.basistheory.com/applications/{{applicationId}}" }, "docs": "Deletes an application." } ] }, { "info": { "name": "Proxy", "type": "folder" }, "items": [ { "info": { "name": "Create a pre-configured proxy", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/proxies", "body": { "type": "json", "data": "{\"name\":\"Process Payment Proxy\",\"destination_url\":\"https://api.example.com/charges\",\"require_auth\":true}" } }, "docs": "Creates a pre-configured proxy." }, { "info": { "name": "List pre-configured proxies", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/proxies" }, "docs": "Lists pre-configured proxies." }, { "info": { "name": "Get a pre-configured proxy", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/proxies/{{proxyId}}" }, "docs": "Retrieves a pre-configured proxy by id." }, { "info": { "name": "Update a pre-configured proxy", "type": "http" }, "http": { "method": "PUT", "url": "https://api.basistheory.com/proxies/{{proxyId}}", "body": { "type": "json", "data": "{\"name\":\"Process Payment Proxy\",\"destination_url\":\"https://api.example.com/charges\",\"require_auth\":true}" } }, "docs": "Replaces a pre-configured proxy." }, { "info": { "name": "Patch a pre-configured proxy", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.basistheory.com/proxies/{{proxyId}}", "body": { "type": "json", "data": "{\"require_auth\":false}" } }, "docs": "Partially updates a pre-configured proxy." }, { "info": { "name": "Delete a pre-configured proxy", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.basistheory.com/proxies/{{proxyId}}" }, "docs": "Deletes a pre-configured proxy." }, { "info": { "name": "Invoke ephemeral proxy (POST)", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/proxy", "body": { "type": "json", "data": "{\"card_number\":\"{{ token: | json: '$.number' }}\"}" } }, "docs": "Invokes the ephemeral proxy. Supply the BT-PROXY-URL header with the destination base URL." }, { "info": { "name": "Invoke pre-configured proxy (POST)", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/proxy", "body": { "type": "json", "data": "{\"amount\":1000}" } }, "docs": "Invokes a pre-configured proxy. Supply the BT-PROXY-KEY header with the proxy key." } ] }, { "info": { "name": "Reactors", "type": "folder" }, "items": [ { "info": { "name": "Create a reactor", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/reactors", "body": { "type": "json", "data": "{\"name\":\"Charge Card Reactor\",\"code\":\"module.exports = async function (req) { return { raw: { ok: true } }; };\",\"configuration\":{\"API_KEY\":\"sk_test_123\"}}" } }, "docs": "Creates a serverless reactor function." }, { "info": { "name": "List reactors", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/reactors" }, "docs": "Lists reactors for the tenant." }, { "info": { "name": "Get a reactor", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/reactors/{{reactorId}}" }, "docs": "Retrieves a reactor by id." }, { "info": { "name": "Update a reactor", "type": "http" }, "http": { "method": "PUT", "url": "https://api.basistheory.com/reactors/{{reactorId}}", "body": { "type": "json", "data": "{\"name\":\"Charge Card Reactor\",\"code\":\"module.exports = async function (req) { return { raw: { ok: true } }; };\"}" } }, "docs": "Replaces a reactor." }, { "info": { "name": "Delete a reactor", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.basistheory.com/reactors/{{reactorId}}" }, "docs": "Deletes a reactor." }, { "info": { "name": "Invoke a reactor", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/reactors/{{reactorId}}/react", "body": { "type": "json", "data": "{\"args\":{\"card\":\"{{ token: }}\"}}" } }, "docs": "Invokes a reactor, detokenizing tokens referenced in args." } ] }, { "info": { "name": "3D Secure", "type": "folder" }, "items": [ { "info": { "name": "Create a 3DS session", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/3ds/sessions", "body": { "type": "json", "data": "{\"token_id\":\"{{tokenId}}\",\"type\":\"customer\",\"device\":\"browser\"}" } }, "docs": "Creates a 3D Secure session against a tokenized card." }, { "info": { "name": "Get a 3DS session", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/3ds/sessions/{{sessionId}}" }, "docs": "Retrieves a 3DS session by id." }, { "info": { "name": "Authenticate a 3DS session", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/3ds/sessions/{{sessionId}}/authenticate", "body": { "type": "json", "data": "{\"authentication_category\":\"payment\",\"authentication_type\":\"payment-transaction\",\"purchase_info\":{\"amount\":\"1000\",\"currency\":\"840\"}}" } }, "docs": "Runs frictionless or challenge authentication for the session." }, { "info": { "name": "Get a 3DS challenge result", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/3ds/sessions/{{sessionId}}/challenge-result" }, "docs": "Retrieves the challenge outcome for a session." } ] }, { "info": { "name": "Tenants & Logs", "type": "folder" }, "items": [ { "info": { "name": "Get the current tenant", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/tenants/self" }, "docs": "Retrieves the current tenant." }, { "info": { "name": "Update the current tenant", "type": "http" }, "http": { "method": "PUT", "url": "https://api.basistheory.com/tenants/self", "body": { "type": "json", "data": "{\"name\":\"My Tenant\",\"settings\":{\"deduplicate_tokens\":true}}" } }, "docs": "Updates the current tenant." }, { "info": { "name": "Get the tenant usage report", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/tenants/self/reports/usage" }, "docs": "Retrieves the tenant monthly active token usage report." }, { "info": { "name": "List logs", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/logs?size=20" }, "docs": "Lists audit log entries for the tenant." } ] }, { "info": { "name": "Webhooks", "type": "folder" }, "items": [ { "info": { "name": "Create a webhook", "type": "http" }, "http": { "method": "POST", "url": "https://api.basistheory.com/webhooks", "body": { "type": "json", "data": "{\"name\":\"Token Events\",\"url\":\"https://example.com/webhooks/basis-theory\",\"notify_email\":\"ops@example.com\",\"events\":[\"token.created\",\"token.deleted\"]}" } }, "docs": "Registers a webhook URL and subscribes to event types." }, { "info": { "name": "List webhooks", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/webhooks" }, "docs": "Lists webhooks for the tenant." }, { "info": { "name": "Get a webhook", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/webhooks/{{webhookId}}" }, "docs": "Retrieves a webhook by id." }, { "info": { "name": "Update a webhook", "type": "http" }, "http": { "method": "PUT", "url": "https://api.basistheory.com/webhooks/{{webhookId}}", "body": { "type": "json", "data": "{\"name\":\"Token Events\",\"url\":\"https://example.com/webhooks/basis-theory\",\"events\":[\"token.created\"]}" } }, "docs": "Updates a webhook subscription." }, { "info": { "name": "Delete a webhook", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.basistheory.com/webhooks/{{webhookId}}" }, "docs": "Deletes a webhook subscription." }, { "info": { "name": "List webhook event types", "type": "http" }, "http": { "method": "GET", "url": "https://api.basistheory.com/webhooks/event-types" }, "docs": "Lists the available webhook event types." } ] } ], "bundled": true }