---
title: "Provisional patent application"
url: https://services.dev/docs/examples/legal/provisional-patent
captured: [legal-build.txt, legal-patent.txt, legal-self.txt, of-record.txt]
---
# Provisional patent application

URL: https://services.dev/docs/examples/legal/provisional-patent

> The legal brand's fullest Service. A stamped signature by a registered practitioner, a filing whose receipt releases the charge, a practitioner who stays of record, and a second price for applicants who sign and file themselves.

*legal's words: matter is a job, asset is a subject, review is a task, signer is a member, network is a pool, outcome is a end (examples/legal/brand.ts).*

The applicant consents and answers a few questions. The AI drafts the application and an adversarial panel examines it under four lenses. A registered practitioner signs it, stamped, and the brand files it with the office, whose receipt releases the charge. The practitioner who signed stays of record on the patent family after the matter ends.

```bash
cat services/provisional-patent.ts
```

```txt title="magic values: none"
    draft: { by: 'ai', cite: 'source' },
    examine: { review: 'adversarial', lenses: ['eligibility', 'novelty', 'obviousness', 'written description'], rounds: 3, exhausted: 'second_look' },
    second_look: { by: 'practitioner', routed: true, est: '1h' },
    sign: { by: 'practitioner', stamp: true, est: '1h', checklist: ['the claims read on the disclosure', 'every inventor is named', 'a reasonable inquiry was made'] },
    file: { submit: 'https://filings.example.test/patent-office', to: 'USPTO', receipt: 'application_number', wait: '2d', rejected: 'draft' },
  subject: {
  price: { usd: 199, self: 79, release: 'file', within: '5d' },
```

[The whole file](https://services.dev/docs/examples/legal/build.md#servicesprovisional-patentts), and `check` after it.

## Two prices, two boundaries

The rules let the applicant sign and file for themselves, so `price.self` sells a second boundary, and `check` prints both:

```bash
npx services.dev check
```

```txt title="magic values: applicant.email = signs@example.test, member = mbr_eligible"
services/provisional-patent.ts · 24 lines · $199 per job, within 5 days, charged on file's receipt.
  who     A patent attorney or agent signs every application before it is filed. (rules 2026-10) The applicant consents first and answers at questions.
  self    The applicant may sign and file it themselves, for $79.
  roles   practitioner · patent attorney or agent · * · from attorneys · $150 an act
  steps   consent · applicant · consent → questions · applicant · answer → draft · ai · cites source → examine · ai · adversarial · 4 lenses · exhausted → second_look → second_look · patent practitioner · * · routed → sign · patent practitioner · * · stamped · 3-item checklist → file · USPTO
  subject patent family · keyed by application_number · the practitioner who does sign stays of record · then practitioner, then brand
  bounds  reserved second_look, sign and file to patent attorney or agent · refused litigate
          self: reserved second_look to patent attorney or agent · the applicant performs sign and file, in their own name · refused litigate
  agent   order_matter · 30 of 30 words · add "such as …" to applicant and inventors for an agent to try it
  ledger  +$199.00 · AI $2.10 (example) · practitioner $150.00 (rail brand) · coverage $4.00 · you $42.90
          +$79.00 · AI $2.10 (example) · you $76.90 · self
  margin  at least $5.20 when the first practitioner signs ($199.00 − $150.00 practitioner − $39.80 AI cap − $4.00 coverage) · $0.00 at the ladder's cap, the lower of 50% and what the floor leaves · −$148.80 after a decline and a second practitioner · −$148.80 when a routed step runs
          a job that stops costs you at most $189.80
  apps    customer portal · delivery portal · owner console
```

With a practitioner, the matter waits on the review, and their $150 is on the ledger:

```txt
→ POST /matters {"service":"provisional-patent","invention":["disclosure.pdf"],"applicant":{"name":"Ada","email":"signs@example.test"},"inventors":[{"name":"Ada","email":"ada@example.com"}],"entity_size":"micro","posture":"full","max_usd":199,"key":"full"}
```

```txt title="magic values: applicant.email = signs@example.test, member = mbr_eligible"
← job_7Hq2 · waiting · on claim · $199.00 held · sign · tsk_7Hq2
# mbr_eligible, in its own session: the sheet, the claim, the clearance, the packet, and the attestation
→ GET /reviews/tsk_7Hq2/sheet · POST /reviews/tsk_7Hq2/claim · POST /reviews/tsk_7Hq2/clear · POST /attorneys/matters/job_7Hq2/approve {"checklist":["the claims read on the disclosure","every inventor is named","a reasonable inquiry was made"]}
← job_7Hq2 · delivered · $199.00 charged · posture full · rules 2026-10
  record  consent · applicant · consent | questions · applicant · answer | draft · ai | examine · ai · adversarial · 4 lenses · pass | sign · person · patent attorney · * · mbr_eligible | file · USPTO · accepted · rcp_7Hq2
  ledger  +$199.00 · AI $2.10 · practitioner $150.00 (rail brand) · you $46.90
```

Under `posture: 'self'`, the applicant performs `sign` and `file` in their own name, and the price is $79:

```txt
→ POST /matters {"service":"provisional-patent","invention":["disclosure.pdf"],"applicant":{"name":"Ada","email":"signs@example.test"},"inventors":[{"name":"Ada","email":"ada@example.com"}],"entity_size":"micro","posture":"self","max_usd":79,"key":"self"}
```

```txt title="magic values: applicant.email = signs@example.test, member = mbr_eligible"
← job_7Hq3 · delivered · $79.00 charged · posture self · rules 2026-10
  record  consent · applicant · consent | questions · applicant · answer | draft · ai | examine · ai · adversarial · 4 lenses · pass | sign · applicant · sign | file · applicant · answer
  ledger  +$79.00 · AI $2.10 · you $76.90
```

Its page shows both:

```bash
open http://localhost:8787/provisional-patent   # the two prices and the two boundaries, side by side
```

```txt title="magic values: applicant.email = signs@example.test, member = mbr_eligible"
With a professional · $199 per matter, within 5 days, charged on file's receipt.
  second_look: reserved to patent attorney or agent · Judgment on a draft the review still flags is the practitioner's.
  sign: reserved to patent attorney or agent · Signed by a registered practitioner, or by the applicant for themselves.
  file: reserved to patent attorney or agent · Filing for another is practice before the office.
  litigate: never performed here · Litigation is retained directly, never ordered here.
Yourself · $79 per matter, within 5 days, charged when file is done.
  second_look: reserved to patent attorney or agent · Judgment on a draft the review still flags is the practitioner's.
  sign: the applicant performs it, in their own name · Signed by a registered practitioner, or by the applicant for themselves.
  file: the applicant performs it, in their own name · Filing for another is practice before the office.
  litigate: never performed here · Litigation is retained directly, never ordered here.
```

## The receipt releases the charge

`release: 'file'` holds the $199 until the office answers; with one submit step it's the default. The owner's read of [one patent matter](https://services.dev/docs/examples/legal/walk.md) shows the order: the submission, the receipt, then the charge.

```txt
→ GET /owner/matters/job_7Hq2   # the owner console
```

```txt title="magic values: metadata.sandbox.review = flag_once, member = mbr_eligible"
← job_7Hq2 · delivered · $199.00 charged
  record  consent · applicant · consent | questions · applicant · answer | draft · ai | examine · ai · adversarial · 4 lenses · flagged | draft · ai · redo | examine · ai · adversarial · 4 lenses · pass | sign · person · patent attorney · * · mbr_eligible | file · USPTO · accepted · rcp_7Hq2
  ledger  +$199.00 · AI $4.20 · practitioner $150.00 (rail brand) · you $44.80
  events  matter.ordered · charge.held · ask.opened · matter.paused · consent.given · ask.done · step.proposed · step.committed · ask.opened · matter.paused · ask.done · step.proposed · step.committed · decision.made · step.proposed · step.committed · decision.made · decision.made · decision.made · decision.made · review.done · step.proposed · step.committed · decision.made · step.proposed · step.committed · decision.made · decision.made · decision.made · decision.made · review.done · step.proposed · step.committed · matter.paused · review.posted · review.offered · review.claimed · matter.paused · step.proposed · step.committed · pay.accrued · submission.sent · receipt.accepted · step.proposed · step.committed · charge.collected · matter.delivered
```

## Of record

The practitioner who signs is named of record on the patent family the receipt keys. It's theirs until they withdraw, naming who takes it on:

```txt
→ GET /assets/sbj_7Hq2
```

```json title="200 · magic values: applicant.email = signs@example.test"
{
  "id": "sbj_7Hq2",
  "object": "subject",
  "livemode": false,
  "kind": "patent family",
  "key": {
    "field": "application_number",
    "value": "rcp_7Hq2"
  },
  "created": "2026-10-25T14:02:11.000Z",
  "jobs": [
    "job_7Hq2"
  ],
  "of_record": {
    "role": "practitioner",
    "member": "mbr_7Hq2",
    "named_at": "sign",
    "since": "2026-10-25T14:02:11.000Z",
    "status": "of_record"
  },
  "history": [
    "opened",
    "of_record · mbr_7Hq2"
  ],
  "facts": {},
  "periods": [],
  "simulated": true
}
```

```txt
→ POST /assets/sbj_7Hq2/withdraw {}   # as mbr_7Hq2
```

```txt title="magic values: applicant.email = signs@example.test"
← 422 input_invalid: Withdrawal names a successor: the mbr_ id of the signer who becomes of record.
→ POST /assets/sbj_7Hq2/withdraw {"successor":"mbr_7Hq3"}   # as mbr_7Hq2
← 200 of record mbr_7Hq2 since 2026-10-25T14:02:11.000Z

→ POST /attorneys/signers/mbr_7Hq3/verify {"facts":{"credentials":{"patent agent":["US-CA"]},"coverage":{"per_act":1000000,"until":"2026-10-01T00:00:00Z"}}}   # the verifier: the policy lapsed
```

The seat stays theirs until the successor clears conflicts and accepts. Above, the successor's policy lapsed, so the asset still reads withdrawing, with the successor named:

```txt
→ GET /assets/sbj_7Hq2
```

```json title="200 · magic values: applicant.email = signs@example.test"
{
  "id": "sbj_7Hq2",
  "object": "subject",
  "livemode": false,
  "kind": "patent family",
  "key": {
    "field": "application_number",
    "value": "rcp_7Hq2"
  },
  "created": "2026-10-25T14:02:11.000Z",
  "jobs": [
    "job_7Hq2"
  ],
  "of_record": {
    "role": "practitioner",
    "member": "mbr_7Hq2",
    "named_at": "sign",
    "since": "2026-10-25T14:02:11.000Z",
    "successor": "mbr_7Hq3",
    "status": "withdrawing"
  },
  "history": [
    "opened",
    "of_record · mbr_7Hq2",
    "withdrawing · mbr_7Hq2 · mbr_7Hq3"
  ],
  "facts": {},
  "periods": [],
  "simulated": true
}
```

[Of record](https://services.dev/docs/people/of-record.md) covers custodians and coverage.

## The conversion clock

A provisional lapses unless a nonprovisional follows within 12 months. The clock sits on the patent family, keyed by the application number, and its practitioner of record owns it. It rings at 9, 11 and 11½ months, then offers the nonprovisional, ordered from the same family.

---

- Up: [The legal example](https://services.dev/docs/examples/legal.md)
- Previous: [The attorneys' Pool](https://services.dev/docs/examples/legal/pool.md)
- Next: [Contract review](https://services.dev/docs/examples/legal/contract-review.md)
