Salfio
APIReference

Update the caller's organization

Updates the whitelisted fields on the caller's organization. Only `name`, `defaultTimezone`, and `defaultCurrency` are writable. **`plan` is billing-bound** — an attempt to update it is rejected with `400 invalid_argument` rather than silently ignored, so a partner misreading the spec gets a clear error rather than a false sense of success. **`slug` is stable** for the same reason — changing it breaks dashboard deep links and other external references. Both return 400 when present in the body. Other unknown fields are silently ignored.

PUT
/organization

Authorization

bearerAuth
AuthorizationBearer <token>

Salfio API tokens start with the literal prefix sk_live_ followed by 32 base62 characters (≈190 bits of entropy). Tokens are hashed at rest with argon2id and shown to the user only once at creation.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://api.salfio.com/v1/organization" \  -H "Content-Type: application/json" \  -d '{}'
{
  "meta": {
    "cursor": "string",
    "hasMore": true
  },
  "data": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "name": "Acme Inc.",
    "slug": "acme",
    "plan": "free",
    "defaultTimezone": "Europe/Amsterdam",
    "defaultCurrency": "EUR",
    "rateLimits": {
      "organizationPerMinute": 100,
      "endpointPerMinute": 50
    },
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z"
  }
}
{
  "error": {
    "code": "invalid_argument",
    "message": "limit must be an integer between 1 and 100"
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "Authentication required"
  }
}
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded",
    "details": {
      "retry_after_seconds": 30
    }
  }
}