Platform API

Save current organization W-9

Save profile settings.

PUThttps://app.mindbill.org/partner/v2/organization/w9

Save profile settings. Provider/location writes upsert by id, then externalId; existing records are not deleted. W-9 replaces the current PDF. Stored SSNs are masked on reads; omit taxId to preserve it. Do not send response-only taxIdConfigured or taxIdLast4.

AuthenticationServer API key or browser session + Origin
Permissions by credentialServer: orgs:write · Browser: organization:manage
IdempotencyNot required

Use this URL with a server API key or a browser session and its exact allowed Origin. Both credentials use the same request and response contract. See the component API inventory for exact paths and SDK methods.

Request body

FieldTypeDescription
filenameRequired
string

filename

contentBase64Required
string

Base64 PDF. Decoded maximum 10 MiB; PDF magic bytes are validated.

taxYear
integer

taxYear

Examples

Request
curl 'https://app.mindbill.org/partner/v2/organization/w9' \
  --request PUT \
  --header "Authorization: Bearer $MINDBILL_API_KEY" \
  --header 'Content-Type: application/json' \
  --data @request.json
Request
curl 'https://app.mindbill.org/partner/v2/organization/w9' \
  --request PUT \
  --header "Authorization: Bearer $MINDBILL_BROWSER_TOKEN" \
  --header 'Origin: https://your-app.example' \
  --header 'Content-Type: application/json' \
  --data @request.json

Response

200

Response
Response fields are documented below.
FieldTypeDescription
dataRequired
object

data

data.organizationIdRequired
string

organizationId

data.practiceIdentity
object

Practice identity; stored SSNs are masked with taxIdConfigured and taxIdLast4.

data.billingProvidersRequired
object[]

billingProviders

data.renderingProvidersRequired
object[]

renderingProviders

data.locationsRequired
object[]

locations

data.w9Required
object | null

w9

data.onboardingRequired
object

onboarding