Provider onboarding

Providers claim by NPI; practices can manage multiple providers.

The provider onboarding path starts with public NPI prefill and ends with an authenticated provider, SCP admin, provider agent, or workforce actor activating bookable services and availability.

LookupGET /prefill/:npi
Prepareprovider/SCP actor
ActivatePOST /activate

Model

Do not model onboarding as an internal-only workflow.

PhysicianCan enter their own NPI, confirm profile details, publish priced services, and add availability after verification.
Practice adminCan onboard and manage multiple providers for the same SCP or clinic organization.
Front desk preparerCan prepare operational details for an authorized approver to attest.
WorkforceCan support or remediate onboarding, but should not be the default product model.

Prefill

Start with a public NPI readback.

Prefill is public and read-only. It tells the UI what OpenDoc knows about the provider before any claim or activation write happens.

curl https://api.opendoc.com/provider-onboarding/prefill/1467980912

Activation gates

Activation makes the provider live; Stripe KYC makes them instant-bookable.

NPI matchThe NPI must resolve in the OpenDoc provider directory/reference source.
ServiceAt least one selected HSO must be bookable and priced with a real cash price.
AvailabilityAt least one open availability slot is required.
ContactA front-office email or phone is required so the practice can be notified on each booking.
PayoutsStripe Connect is not required to activate, but until the practice completes Stripe Connect KYC (charges enabled) the provider is presented as request-visit only: no instant book and no confirmed-price presentation. Bookability turns on automatically the moment KYC completes.

Activation example

Production activation is authenticated.

In production, anonymous activation writes are blocked. The caller must resolve to a provider/SCP access actor, provider agent, or workforce actor with onboarding/catalog permissions.

curl https://api.opendoc.com/provider-onboarding/activate \
  -X POST \
  -H "Authorization: Bearer $OPENDOC_PROVIDER_OR_WORKFORCE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "npi": "1467980912",
    "givenName": "Charles",
    "familyName": "DeCook",
    "displayName": "Charles DeCook, MD",
    "primarySpecialty": "Orthopedic Surgery",
    "practice": {
      "name": "Example Orthopedic Clinic",
      "contactName": "Front Desk",
      "frontOfficeEmail": "[email protected]",
      "frontOfficePhone": "+1-555-0100"
    },
    "services": [
      {
        "hsoId": "00000000-0000-4000-8000-000000000003",
        "cashPriceCents": 27500
      }
    ],
    "availability": [
      {
        "startsAt": "2026-07-08T14:00:00.000Z",
        "endsAt": "2026-07-08T14:30:00.000Z"
      }
    ]
  }'
Separate directory visibility from bookability. A provider can exist in search/reference data before they are claimed, activated, priced, and transactable.