OP Posted at 26-07-2026, 07:57 PM
(This post was last modified: 26-07-2026, 07:59 PM by ImJustPro.)
Limited will be patched very quick maybe while I post this who knows
Leaked by SpooK api
Leaked by SpooK api
[ Hidden Content! ]
Quote:1- Add tampermonkey extension to your browser , and add the script below
2- Create a claude account , select a plan (for example claude max monthly)
3- In payment page , select Germany then refresh page and select Germany again and select SEPA as payment method
4- Now fill the informations with details from this website https://fakeit.receivefreesms.co.uk/c/de/
5- For the IBAN , go to this website http://randomiban.com/ , copy it and paste it. Check terms and privacy box and click continue
6- Wait for few seconds , it will succeed. Go back to claude.ai and now you have subscription for free!
Code:
// ==UserScript==
// @name SpooK api Cassia Response Injection
// @namespace local.testexample.checkout
// @version 1.3.0
// @description Force cassia checkout flow and inject SEPA into the Stripe elements session
// @match *://claude.ai/*
// @match *://*.claude.ai/*
// @run-at document-start
// @grant none
// @sandbox raw
// ==/UserScript==
(function () {
"use strict";
const TARGET_HOST = "claude.ai";
const CAPABILITIES_PATH =
/^\/api\/organizations\/[^/]+\/subscription\/checkout_capabilities\/?$/;
// Broad scope: checkout_capabilities + the elements-session endpoint that
// actually carries payment_method_types. We only modify bodies that carry
// one of the known markers, and pass everything else through untouched.
const SUBSCRIPTION_PATH =
/^\/api\/organizations\/[^/]+\/subscription(\/|$)/;
function isPlainObject(value) {
return (
value !== null &&
typeof value === "object" &&
!Array.isArray(value)
);
}
function byteLength(text) {
return new TextEncoder().encode(text).byteLength;
}
function tryParse(text) {
try {
return JSON.parse(text);
} catch {
return null;
}
}
// Add SEPA to the Stripe elements session so the SEPA Payment Element shows.
function injectSepaSession(obj) {
const params = obj.server_built_elements_session_params;
if (isPlainObject(params) && isPlainObject(params.deferred_intent)) {
const di = params.deferred_intent;
if (!Array.isArray(di.payment_method_types)) {
di.payment_method_types = [];
}
if (!di.payment_method_types.includes("sepa_debit")) {
di.payment_method_types.push("sepa_debit");
}
}
if (obj.sepa_debit_info === null || obj.sepa_debit_info === undefined) {
// Mock mandate data so the SEPA element has creditor text to render.
obj.sepa_debit_info = {
creditor_name: "Anthropic, PBC",
creditor_identifier: "DE98ZZZ09751234567890",
mandate_reference: "SMO-0001234567890",
mandate_descriptor: "Anthropic Claude subscription"
};
}
}
// Returns { body, changed }. changed=false means "leave the response alone".
function transformBody(url, realText) {
const isCapabilities = CAPABILITIES_PATH.test(url.pathname);
let parsed = realText ? tryParse(realText) : null;
const hasSession =
isPlainObject(parsed) && !!parsed.server_built_elements_session_params;
if (!isCapabilities && !hasSession) {
return { body: realText, changed: false };
}
if (!isPlainObject(parsed)) parsed = {};
if (isCapabilities) {
parsed.checkout_flow = "cassia";
}
if (parsed.server_built_elements_session_params) {
injectSepaSession(parsed);
}
return { body: JSON.stringify(parsed), changed: true };
}
function makeMockResponse(text, real, url) {
const status = real ? real.status : 200;
const statusText = real ? real.statusText : "OK";
const headers = new Headers({
"content-type": "application/json; charset=utf-8",
"content-length": String(byteLength(text)),
"cache-control": "no-store"
});
const resp = new Response(text, { status, statusText, headers });
try {
Object.defineProperties(resp, {
url: { value: real ? real.url : url.href, configurable: true },
redirected: { value: real ? real.redirected : false, configurable: true },
type: { value: real ? real.type : "basic", configurable: true }
});
} catch (_) {}
return resp;
}
// Rebuild a real response from already-read text. Reading .text() consumes
// the original, so passthroughs must be reconstructed. Strip content-encoding
// / length so the browser does not try to double-decompress the plaintext.
function rebuildResponse(text, real) {
const headers = new Headers(real.headers);
headers.delete("content-encoding");
headers.delete("content-length");
headers.delete("content-md5");
headers.delete("etag");
const resp = new Response(text, {
status: real.status,
statusText: real.statusText,
headers
});
try {
Object.defineProperties(resp, {
url: { value: real.url, configurable: true },
redirected: { value: real.redirected, configurable: true },
type: { value: real.type, configurable: true }
});
} catch (_) {}
return resp;
}
function getTargetUrl(input) {
try {
let rawUrl;
if (typeof input === "string" || input instanceof URL) {
rawUrl = String(input);
} else if (input && typeof input.url === "string") {
rawUrl = input.url;
} else {
return null;
}
const url = new URL(rawUrl, location.href);
const hostMatched =
url.hostname === TARGET_HOST ||
url.hostname.endsWith("." + TARGET_HOST);
if (!hostMatched) return null;
if (!SUBSCRIPTION_PATH.test(url.pathname)) return null;
return url;
} catch (error) {
console.error("[Cassia Mock] URL parse failed:", error);
return null;
}
}
/*
* Fetch interception
*/
const nativeFetch = window.fetch;
window.fetch = async function (input, init) {
const targetUrl = getTargetUrl(input);
if (!targetUrl) return nativeFetch.apply(this, arguments);
const isCapabilities = CAPABILITIES_PATH.test(targetUrl.pathname);
let real = null;
try {
real = await nativeFetch.apply(this, arguments);
} catch (error) {
if (isCapabilities) {
console.warn(
"[Cassia Mock] Real fetch failed, mocking capabilities:",
error
);
return makeMockResponse(
JSON.stringify({ checkout_flow: "cassia" }),
null,
targetUrl
);
}
throw error;
}
if (isCapabilities) {
let realText = "";
try {
realText = await real.text();
} catch (_) {}
const { body } = transformBody(targetUrl, realText);
console.warn("[Cassia Mock] Fetch rewritten:", targetUrl.href);
return makeMockResponse(body, real, targetUrl);
}
// Other subscription endpoints: only touch JSON, and only modify when the
// body carries the elements session. Otherwise pass through unchanged.
const contentType = real.headers.get("content-type") || "";
if (!contentType.includes("json")) return real;
let realText = "";
try {
realText = await real.text();
} catch (_) {
return real;
}
const { body, changed } = transformBody(targetUrl, realText);
if (!changed) return rebuildResponse(realText, real);
console.warn("[Cassia Mock] Fetch rewritten (session):", targetUrl.href);
return makeMockResponse(body, real, targetUrl);
};
/*
* XHR interception
*/
const XhrPrototype = XMLHttpRequest.prototype;
const xhrInfo = new WeakMap();
const nativeOpen = XhrPrototype.open;
const nativeSend = XhrPrototype.send;
const nativeGetResponseHeader = XhrPrototype.getResponseHeader;
const nativeGetAllResponseHeaders = XhrPrototype.getAllResponseHeaders;
const nativeResponseTextGetter = Object.getOwnPropertyDescriptor(
XhrPrototype,
"responseText"
)?.get;
const nativeResponseGetter = Object.getOwnPropertyDescriptor(
XhrPrototype,
"response"
)?.get;
XhrPrototype.open = function (method, url) {
let absoluteUrl;
try {
absoluteUrl = new URL(String(url), location.href).href;
} catch (_) {
absoluteUrl = String(url);
}
xhrInfo.set(this, {
method: String(method || "GET").toUpperCase(),
url: absoluteUrl,
mockResolved: false,
mocked: false,
mockBody: "",
mockJson: null,
mockLength: 0
});
return nativeOpen.apply(this, arguments);
};
function getMatchedXhr(xhr) {
const info = xhrInfo.get(xhr);
if (!info || xhr.readyState !== XMLHttpRequest.DONE) return null;
return getTargetUrl(info.url);
}
function readRealXhrText(xhr) {
try {
if (xhr.responseType === "json" || xhr.responseType === "document") {
const realJson = nativeResponseGetter
? nativeResponseGetter.call(xhr)
: null;
return realJson ? JSON.stringify(realJson) : "";
}
if (nativeResponseTextGetter) {
return nativeResponseTextGetter.call(xhr) || "";
}
} catch (_) {}
return "";
}
function ensureMock(xhr) {
const info = xhrInfo.get(xhr);
if (!info) return null;
if (!info.mockResolved) {
info.mockResolved = true;
const targetUrl = getTargetUrl(info.url);
if (!targetUrl) {
info.mocked = false;
} else {
const realText = readRealXhrText(xhr);
const { body, changed } = transformBody(targetUrl, realText);
info.mockBody = body;
info.mockLength = byteLength(body);
info.mockJson = tryParse(body);
info.mocked = changed;
}
}
return info;
}
function replaceXhrGetter(propertyName, replacement) {
const descriptor = Object.getOwnPropertyDescriptor(
XhrPrototype,
propertyName
);
if (
!descriptor ||
typeof descriptor.get !== "function" ||
descriptor.configurable === false
) {
console.warn(`[Cassia Mock] Cannot override XHR.${propertyName}`);
return;
}
const nativeGetter = descriptor.get;
Object.defineProperty(XhrPrototype, propertyName, {
...descriptor,
get: function () {
if (!getMatchedXhr(this)) return nativeGetter.call(this);
return replacement.call(this, nativeGetter);
}
});
}
replaceXhrGetter("responseText", function (nativeGetter) {
if (this.responseType !== "" && this.responseType !== "text") {
return nativeGetter.call(this);
}
const info = ensureMock(this);
return info && info.mocked ? info.mockBody : nativeGetter.call(this);
});
replaceXhrGetter("response", function (nativeGetter) {
const info = ensureMock(this);
if (!info || !info.mocked) return nativeGetter.call(this);
const t = this.responseType;
if (t === "json") return info.mockJson;
if (t === "" || t === "text") return info.mockBody;
return nativeGetter.call(this);
});
// Status is preserved from the real response (we only change the body), so
// no status/statusText override is needed.
XhrPrototype.getResponseHeader = function (name) {
const info = ensureMock(this);
if (!info || !info.mocked) {
return nativeGetResponseHeader.apply(this, arguments);
}
switch (String(name).toLowerCase()) {
case "content-type":
return "application/json; charset=utf-8";
case "content-length":
return String(info.mockLength);
case "cache-control":
return "no-store";
case "content-encoding":
case "etag":
case "content-md5":
return null;
default:
return nativeGetResponseHeader.apply(this, arguments);
}
};
XhrPrototype.getAllResponseHeaders = function () {
const info = ensureMock(this);
if (!info || !info.mocked) {
return nativeGetAllResponseHeaders.apply(this, arguments);
}
const original = nativeGetAllResponseHeaders.apply(this, arguments);
const kept = String(original || "")
.split(/\r?\n/)
.filter(Boolean)
.filter((line) => {
const name = line.split(":", 1)[0].trim().toLowerCase();
return ![
"content-type",
"content-length",
"content-encoding",
"cache-control",
"etag",
"content-md5"
].includes(name);
});
kept.push(
"content-type: application/json; charset=utf-8",
`content-length: ${info.mockLength}`,
"cache-control: no-store"
);
return kept.join("\r\n") + "\r\n";
};
XhrPrototype.send = function () {
this.addEventListener("readystatechange", () => {
if (this.readyState !== XMLHttpRequest.DONE) return;
const targetUrl = getMatchedXhr(this);
if (targetUrl) {
const info = ensureMock(this);
if (info && info.mocked) {
console.warn("[Cassia Mock] XHR rewritten:", targetUrl.href);
}
}
});
return nativeSend.apply(this, arguments);
};
/*
* Status badge
*/
function showStatusBadge() {
if (!document.documentElement) {
document.addEventListener("DOMContentLoaded", showStatusBadge, {
once: true
});
return;
}
if (document.getElementById("cassia-mock-badge")) return;
const badge = document.createElement("div");
badge.id = "cassia-mock-badge";
badge.textContent = "Cassia Mock ON";
Object.assign(badge.style, {
position: "fixed",
right: "12px",
bottom: "12px",
zIndex: "2147483647",
padding: "7px 11px",
color: "#ffffff",
background: "#167c3a",
borderRadius: "6px",
fontSize: "12px",
fontFamily: "sans-serif",
boxShadow: "0 2px 8px rgba(0,0,0,.3)"
});
document.documentElement.appendChild(badge);
}
window.__cassiaMockInstalled = true;
console.info("[Cassia Mock] loaded:", location.href);
showStatusBadge();
})();Not working!This leak has been rated as not working 0 times this week. (3 in total)


![[Image: tblsVbp.gif]](https://i.imgur.com/tblsVbp.gif)