1 operation. Every schema and example on this page is generated from the platform contract.
Idempotent. A store that already has any connected account, half-finished onboarding included, is returned untouched, and a store that has already gone live is never touched at all. Provisioning is best-effort: on failure the store is left exactly as it was, unable to take a payment, which is what it already was.
Store to give a sandbox till to (also authorises the merchant; owner only).
'existing' means the store already had a connected account and nothing was done, including a store that has already gone live, which is never touched.
createdexistingfailedWhether the account can actually take a card right now.
Why it did nothing, or why it failed. Present for diagnosis, not for display.
curl -X POST "https://www.membber.com/api/v1/payments/sandbox-account" \
-H "Authorization: Bearer $MEMBBER_TOKEN" \
-H "Idempotency-Key: 1f0e2d3c-4b5a-4678-9abc-def012345678" \
-H "Content-Type: application/json" \
-d '{
"store_id": "6659c139-0000-4000-8000-d0c500000066"
}'import { createMembberClient } from "@membber/sdk-ts";
const membber = createMembberClient({
getAccessToken: () => process.env.MEMBBER_TOKEN,
});
const { data, error } = await membber.raw.POST("/api/v1/payments/sandbox-account", {
body: {
store_id: "6659c139-0000-4000-8000-d0c500000066"
},
headers: { "Idempotency-Key": crypto.randomUUID() },
});
if (error) {
// Typed error envelope: { error: { code, message, requestId } }
throw new Error(`${error.error.code}: ${error.error.message}`);
}
console.log(data);import MembberSwift
let client = MembberClient(
serverURL: MembberClient.productionServerURL,
tokenProvider: { session.accessToken }
)
let response = try await client.api.createSandboxAccount(
body: .json(.init(
storeId: "6659c139-0000-4000-8000-d0c500000066"
))
).ok.body.json
print(response){
"outcome": "created",
"stripe_account_id": "8d79cf9f-0000-4000-8000-d0c50000008d",
"charges_enabled": true,
"stripe_mode": "<stripe_mode>",
"reason": "Added at the front desk"
}