docs.vin

notary

The notary noun — identity, lifecycle, events, and every capability as an anchored section: 13 capabilities, 0 live, 13 sandbox, 0 declared.

notary is one of the estate's 317 automotive nouns — a job a car needs done. It carries 13 capabilities: 0 live, 13 sandbox, 0 declared · doors aggregator.vin.

Identity

Nounnotary
PillarServices (facets: 4 data · 6 services · 3 commerce)
Capabilities13 — 0 live · 13 sandbox · 0 declared
EntitiesNotarization
Doorsaggregator.vin
SDKVin.notary.* from apis.vin
Address/catalog/notary#{action} — the anchor IS the wire name minus notary.

Events

The vocabulary this noun can append to the record — 20 past-tense, versioned event types, each linked to the capability that emits it:

Discover & read

status

notary.status · GET /notaries/status · gate none · sandbox · answers NotaryStatus@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — notary.status
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.status({"vin":"2GC4YPEY3R1108969"})
GET /notaries/status
curl 'https://apis.vin/notaries/status?vin=2GC4YPEY3R1108969'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.442Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryStatus@1",
  "value": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "ceremony": "ceremony_EMVh3MmY1dFQ",
    "identityVerified": true,
    "status": "InReview",
    "externalId": "2GC4YPEY3R1108969"
  },
  "evidence": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "ceremony": "ceremony_EMVh3MmY1dFQ",
    "identityVerified": true,
    "status": "InReview",
    "externalId": "2GC4YPEY3R1108969"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

availability

notary.availability · GET /notaries/availability · gate none · sandbox · answers NotaryAvailability@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — notary.availability
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.availability({"vin":"2GC4YPEY3R1108969"})
GET /notaries/availability
curl 'https://apis.vin/notaries/availability?vin=2GC4YPEY3R1108969'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.345Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryAvailability@1",
  "value": {
    "kind": "ron",
    "available": true,
    "joinRef": "ron-session:serviceorder_8haNGkvAKyOX",
    "slots": [
      {
        "date": "2026-08-11",
        "windows": [
          "09:00-10:00",
          "13:00-14:00"
        ]
      },
      {
        "date": "2026-08-12",
        "windows": [
          "10:00-11:00",
          "15:00-16:00"
        ]
      }
    ]
  },
  "evidence": {
    "kind": "ron",
    "available": true,
    "joinRef": "ron-session:serviceorder_8haNGkvAKyOX",
    "slots": [
      {
        "date": "2026-08-11",
        "windows": [
          "09:00-10:00",
          "13:00-14:00"
        ]
      },
      {
        "date": "2026-08-12",
        "windows": [
          "10:00-11:00",
          "15:00-16:00"
        ]
      }
    ]
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

jurisdictionCheck

notary.jurisdictionCheck · GET /notaries/jurisdiction-check · gate none · sandbox · answers NotaryJurisdictionCheck@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — notary.jurisdictionCheck
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.jurisdictionCheck({"vin":"2GC4YPEY3R1108969"})
GET /notaries/jurisdiction-check
curl 'https://apis.vin/notaries/jurisdiction-check?vin=2GC4YPEY3R1108969'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.349Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryJurisdictionCheck@1",
  "value": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "jurisdiction": {
      "state": "AZ",
      "mode": "RON"
    }
  },
  "evidence": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "jurisdiction": {
      "state": "AZ",
      "mode": "RON"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

commissionVerify

notary.commissionVerify · GET /notaries/commission-verify · gate none · sandbox · answers NotaryCommissionVerify@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — notary.commissionVerify
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.commissionVerify({"vin":"2GC4YPEY3R1108969"})
GET /notaries/commission-verify
curl 'https://apis.vin/notaries/commission-verify?vin=2GC4YPEY3R1108969'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.345Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryCommissionVerify@1",
  "value": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "commission": {
      "notary": "estate-notary",
      "status": "no-commission-registry-posted"
    }
  },
  "evidence": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "commission": {
      "notary": "estate-notary",
      "status": "no-commission-registry-posted"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

identityVerify

notary.identityVerify · POST /notaries/identity-verify · gate offer · sandbox · answers NotaryIdentityVerify@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsNotary.identityVerified@1 · Notary.identityVerifyRequested@1.

the SDK — notary.identityVerify
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.identityVerify({"vin":"2GC4YPEY3R1108969"})
POST /notaries/identity-verify
curl -X POST https://apis.vin/notaries/identity-verify \
  -H 'content-type: application/json' \
  -d '{"vin":"2GC4YPEY3R1108969"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.345Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryIdentityVerify@1",
  "value": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "kba": "pass",
    "idVerify": "pass",
    "proceed": true,
    "status": "InReview"
  },
  "evidence": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "kba": "pass",
    "idVerify": "pass",
    "proceed": true,
    "status": "InReview"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

quote

notary.quote · POST /notaries/quote · gate offer · sandbox · answers NotaryQuote@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsNotary.quoteRequested@1 · Notary.quoted@1.

the SDK — notary.quote
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.quote({"vin":"2GC4YPEY3R1108969"})
POST /notaries/quote
curl -X POST https://apis.vin/notaries/quote \
  -H 'content-type: application/json' \
  -d '{"vin":"2GC4YPEY3R1108969"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.353Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryQuote@1",
  "value": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "fee": {
      "amountCents": 2500,
      "currency": "USD",
      "per": "seal"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "fee": {
      "amountCents": 2500,
      "currency": "USD",
      "per": "seal"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

fee

notary.fee · POST /notaries/fee · gate offer · sandbox · answers NotaryFee@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsNotary.feeCharged@1 · Notary.feeRequested@1.

the SDK — notary.fee
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.fee({"vin":"2GC4YPEY3R1108969"})
POST /notaries/fee
curl -X POST https://apis.vin/notaries/fee \
  -H 'content-type: application/json' \
  -d '{"vin":"2GC4YPEY3R1108969"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.345Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryFee@1",
  "value": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "fee": {
      "amountCents": 2500,
      "currency": "USD",
      "per": "seal"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "fee": {
      "amountCents": 2500,
      "currency": "USD",
      "per": "seal"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

schedule

notary.schedule · POST /notaries/schedule · gate offer · sandbox · answers NotarySchedule@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsNotary.scheduleRequested@1 · Notary.scheduled@1.

the SDK — notary.schedule
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.schedule({"vin":"2GC4YPEY3R1108969"})
POST /notaries/schedule
curl -X POST https://apis.vin/notaries/schedule \
  -H 'content-type: application/json' \
  -d '{"vin":"2GC4YPEY3R1108969"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.353Z · HTTP 200
{
  "type": "OK",
  "answers": "NotarySchedule@1",
  "value": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "ceremony": "ceremony_EMVh3MmY1dFQ",
    "joinRef": "ron-session:serviceorder_8haNGkvAKyOX",
    "externalId": "2GC4YPEY3R1108969",
    "status": "Pending"
  },
  "evidence": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "ceremony": "ceremony_EMVh3MmY1dFQ",
    "joinRef": "ron-session:serviceorder_8haNGkvAKyOX",
    "externalId": "2GC4YPEY3R1108969",
    "status": "Pending"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

pay

notary.pay · POST /notaries/pay · gate offer · sandbox · answers NotaryPay@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsNotary.paid@1 · Notary.payFailed@1 · Notary.payRequested@1.

the SDK — notary.pay
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.pay({"vin":"2GC4YPEY3R1108969"})
POST /notaries/pay
curl -X POST https://apis.vin/notaries/pay \
  -H 'content-type: application/json' \
  -d '{"vin":"2GC4YPEY3R1108969"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.353Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryPay@1",
  "value": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "payment": {
      "id": "PAY-82ef8fe0",
      "amountCents": 2500,
      "currency": "USD",
      "status": "settled"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "payment": {
      "id": "PAY-82ef8fe0",
      "amountCents": 2500,
      "currency": "USD",
      "status": "settled"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Authorize & resolve

notarize

notary.notarize · POST /notaries/notarize · gate offer · sandbox · answers NotaryNotarize@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsNotary.notarizeFailed@1 · Notary.notarizeRequested@1 · Notary.notarized@1.

the SDK — notary.notarize
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.notarize({"vin":"2GC4YPEY3R1108969"})
POST /notaries/notarize
curl -X POST https://apis.vin/notaries/notarize \
  -H 'content-type: application/json' \
  -d '{"vin":"2GC4YPEY3R1108969"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.353Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryNotarize@1",
  "value": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "notarized": true,
    "signature": "signature_Szsixy9NgAUA",
    "ceremony": "ceremony_EMVh3MmY1dFQ",
    "signerRole": "buyer",
    "certificateSha256": "8bfea47b",
    "status": "Complete"
  },
  "evidence": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "notarized": true,
    "signature": "signature_Szsixy9NgAUA",
    "ceremony": "ceremony_EMVh3MmY1dFQ",
    "signerRole": "buyer",
    "certificateSha256": "8bfea47b",
    "status": "Complete"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

journalLog

notary.journalLog · POST /notaries/journal-log · gate offer · sandbox · answers NotaryJournalLog@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsNotary.journalLogRequested@1 · Notary.journalLogged@1.

the SDK — notary.journalLog
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.journalLog({"vin":"2GC4YPEY3R1108969"})
POST /notaries/journal-log
curl -X POST https://apis.vin/notaries/journal-log \
  -H 'content-type: application/json' \
  -d '{"vin":"2GC4YPEY3R1108969"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.346Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryJournalLog@1",
  "value": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "journal": {
      "status": "not-yet-notarized",
      "position": "Draft"
    }
  },
  "evidence": {
    "vin": "2GC4YPEY3R1108969",
    "noun": "notary",
    "asOf": "2026-08-10",
    "id": "RON-846a72fa",
    "documentId": "DOC-4e129238",
    "mode": "RON",
    "signers": [
      {
        "role": "buyer",
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "status": "not-yet-requested"
      },
      {
        "role": "seller",
        "identityId": "DLR-b9066ade",
        "name": "The Estate Store",
        "status": "not-yet-requested"
      }
    ],
    "journal": {
      "status": "not-yet-notarized",
      "position": "Draft"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

stamp

notary.stamp · POST /notaries/stamp · gate offer · sandbox · answers NotaryStamp@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsNotary.stampRequested@1 · Notary.stamped@1.

the SDK — notary.stamp
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.stamp({"vin":"2GC4YPEY3R1108969"})
POST /notaries/stamp
curl -X POST https://apis.vin/notaries/stamp \
  -H 'content-type: application/json' \
  -d '{"vin":"2GC4YPEY3R1108969"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.354Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryStamp@1",
  "value": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "stamped": true,
    "seal": "signature_Szsixy9NgAUA",
    "ceremony": "ceremony_EMVh3MmY1dFQ",
    "certificateSha256": "8bfea47b",
    "status": "Complete"
  },
  "evidence": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "stamped": true,
    "seal": "signature_Szsixy9NgAUA",
    "ceremony": "ceremony_EMVh3MmY1dFQ",
    "certificateSha256": "8bfea47b",
    "status": "Complete"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

witness

notary.witness · POST /notaries/witness · gate offer · sandbox · answers NotaryWitness@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /2GC4YPEY3R1108969 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsNotary.witnessRequested@1 · Notary.witnessed@1.

the SDK — notary.witness
import { notary } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await notary.witness({"vin":"2GC4YPEY3R1108969"})
POST /notaries/witness
curl -X POST https://apis.vin/notaries/witness \
  -H 'content-type: application/json' \
  -d '{"vin":"2GC4YPEY3R1108969"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.442Z · HTTP 200
{
  "type": "OK",
  "answers": "NotaryWitness@1",
  "value": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "witnessed": true,
    "signerRole": "buyer",
    "kba": "pass",
    "idVerify": "pass",
    "status": "InReview"
  },
  "evidence": {
    "orderId": "serviceorder_8haNGkvAKyOX",
    "witnessed": true,
    "signerRole": "buyer",
    "kba": "pass",
    "idVerify": "pass",
    "status": "InReview"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "notary-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Data model

The record shape behind this noun — one entity, each property an evidence field. See the whole estate model on the data model page.

Notarization

Schema

PropertyTypeNotes
idid
documentIdref→Document
modeenumRON|in-person
signersSigner[]

Relationships

FromToCardinalityAs
documentnotary1:0..*notarized via

Modeled

The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 3 diagrams, rendered from the estate model.

Notary · Class model

Notary · State machine

Notary · Sequence


Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.