> ## Documentation Index
> Fetch the complete documentation index at: https://docs.byblend.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How do I keep prescriber state licenses current?

> POST /api/v1/prescribers/{prescriber_id}/qualifications to add a state license. Updating a state's license with a new number automatically deactivates the old one. You can address a license by state abbreviation instead of its UUID.

A prescription can only be filled if the prescriber holds a valid license covering the relevant state. Add licenses with `POST /api/v1/prescribers/{prescriber_id}/qualifications`, giving at minimum a `state` and a `license_number`.

Expired or missing licenses are one of the most common reasons an order gets stuck, so keeping this current is worth automating.

## Add a license

```bash theme={null}
curl -X POST https://api.byblend.com/api/v1/prescribers/1234567890/qualifications \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "state": "OH",
    "license_number": "35-098765",
    "description": "Nurse Practitioner, Family",
    "expiration_date": "2027-03-15"
  }'
```

The prescriber path accepts a UUID or a 10-digit NPI.

## Renew one without knowing its ID

Blend accepts a **two-letter state abbreviation** wherever a qualification UUID is expected, which resolves to that state's currently-active license:

```bash theme={null}
curl -X PUT https://api.byblend.com/api/v1/prescribers/1234567890/qualifications/OH \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "state": "OH",
    "license_number": "35-098765",
    "expiration_date": "2029-03-15"
  }'
```

This means a renewal script needs only the NPI and the state — no Blend identifiers at all.

<Note>
  **Updating a state's license with a new number automatically deactivates the old one.** You don't need to deactivate the previous license first; the history is retained.
</Note>

<Warning>
  `DELETE` on a qualification **deactivates** it rather than removing it. Licensing history is preserved for compliance, so a deactivated license still appears in the record.
</Warning>

## See what's on file

```bash theme={null}
curl https://api.byblend.com/api/v1/prescribers/1234567890 \
  -H "Authorization: Bearer {access_token}"
```

The prescriber record returns `qualifications`, `credentials`, `addresses`, and `restrictions` together.

## Catching expiries before they cause a problem

Auditing expiration dates tells you which licenses lapse soon. It doesn't tell you which ones **matter** soon. [Refill risk](/guides/refill-risk) does — it compares each prescriber's license coverage against the predicted next fill date for each prescription:

```bash theme={null}
curl "https://api.byblend.com/api/v1/prescriptions?refill_risk=true" \
  -H "Authorization: Bearer {access_token}"
```

A license expiring in three months is irrelevant if no fill is due; one expiring next week against a fill due Tuesday is urgent. Sort by `days_until_next_fill`, not by expiration date.

<Tip>
  Blend also monitors prescriber credentials independently and flags problems it finds — see [does Blend track prescriber license status for me?](/guides/prescriber-license-monitoring). Licenses are editable in the Blend Dashboard under Prescribers, which is where most compliance staff work.
</Tip>

<CardGroup cols={2}>
  <Card title="Create a license/qualification" icon="id-card" href="/api-reference/prescribers/create-a-licensequalification">
    POST .../qualifications
  </Card>

  <Card title="Update a license/qualification" icon="pen" href="/api-reference/prescribers/update-a-licensequalification">
    Accepts a state abbreviation
  </Card>

  <Card title="Deactivate a license/qualification" icon="xmark" href="/api-reference/prescribers/deactivate-a-licensequalification">
    Soft-delete, history kept
  </Card>

  <Card title="Get a prescriber's details" icon="notes-medical" href="/api-reference/prescribers/get-a-prescribers-details">
    All licenses and credentials
  </Card>
</CardGroup>
