WalletD developers
Platform administration

Provision a tenant with its system accounts (platform staff only)

Provisions a partner loop: the tenant's ledger is created first, then the tenant row, so the tenant id is minted alongside its books.

POST/v1/tenants

Provisions a partner loop: the tenant's ledger is created first, then the tenant row, so the tenant id is minted alongside its books. Requires a platform staff token holding platform:manage; every other principal is refused platform_scope_only (403). A missing body, a blank name or a currency the service rejects give invalid_request (400). The change is audited.

Authorization

bearerAuth
AuthorizationBearer <token>

A tenant API key (sk_{env}_{id}_{secret}), a wallet user token, or an IdP access token. Which principal the credential resolves to decides the scopes it carries; see the authentication guide.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/v1/tenants" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "currency": "string"  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "name": "string",  "currency": "string",  "status": "string",  "fees": {    "payment": {      "bps": 0,      "flat": 0,      "min_fee": 0,      "max_fee": 0    },    "subscription": {      "bps": 0,      "flat": 0,      "min_fee": 0,      "max_fee": 0    },    "commission": {      "bps": 0,      "flat": 0,      "min_fee": 0,      "max_fee": 0    },    "p2p": {      "bps": 0,      "flat": 0,      "min_fee": 0,      "max_fee": 0    },    "topup": {      "bps": 0,      "flat": 0,      "min_fee": 0,      "max_fee": 0    },    "payout": {      "bps": 0,      "flat": 0,      "min_fee": 0,      "max_fee": 0    }  },  "commission_mode": "deduct",  "created_at": "2019-08-24T14:15:22Z"}