Developer Documentation

Integrate UMP in a day, not a quarter.

Simple REST API. SDKs for major platforms. Clear documentation.

[01] QUICKSTARTSHIP TODAY

Three calls to issue. Two to verify.

Issue a credential

JavaScript / TypeScript
// Issue a credential in 3 calls

// 1. Register the asset
const asset = await ump.post('/v1/assets', {
  identifier: 'urn:vin:1HGCM82633A004352',
  name: '2024 Komatsu PC210',
})

// 2. Create the event
const event = await ump.post('/v1/events/draft', {
  assetId: asset.id,
  type: 'oil_change',
  meterReading: 4892,
  evidence: [{ hash, uri }],
})

// 3. Sign and anchor
const credential = await ump.post(`/v1/events/${event.id}/issue`)

Verify a credential

JavaScript / TypeScript
// Verify a credential in 2 calls

// 1. Fetch the passport
const passport = await ump.get(`/v1/passports/${assetId}`)

// 2. Verify any credential
const result = await ump.post('/v1/verify', {
  credential: passport.events[0].credential,
})

// { signature: true, ledger: true, evidence: true, riskFlags: [] }
[02] CONCEPTSMENTAL MODEL

Core concepts you need to know.

UMP doesn't replace your database; it adds cryptographic proofs.

Asset
A physical item tracked by UMP (vehicle, aircraft, equipment, battery).
Event
A maintenance or inspection occurrence recorded as a credential.
Verifiable Credential (VC)
A W3C-standard signed JSON object representing an event.
Passport Pack
A bundle of events and proofs for a specific asset, shareable as JSON or PDF.
MXM Mark
The certification badge indicating an asset has verifiable maintenance history.
[03] API & SDKSYOUR TOOLKIT

REST API and client libraries.

OpenAPI Spec

Full API documentation with request/response schemas.

Request API access

Client Libraries

TypeScript, Python, and Swift SDKs available.

Request SDK access
[04] INTEGRATION PATTERNSCHOOSE YOUR DEPTH

Choose your integration depth.

Verify-only

Fastest integration. Verify passports without issuing credentials.

  1. 1.Call /v1/verify with credential
  2. 2.Check signature, ledger, evidence status
  3. 3.Display results to user

Effort: Hours

Export-on-close

CAMP-style integration. Export events when work orders close.

  1. 1.Listen for work order close events
  2. 2.Call /v1/events/draft with event data
  3. 3.Call /v1/events/:id/issue to sign and anchor

Effort: Days

Embedded offline capture

Full integration with offline-capable event capture.

  1. 1.Embed issuer SDK in your app
  2. 2.Capture events offline with reliable sync
  3. 3.Auto-issue when online

Effort: Weeks

[05] PARTNER TYPESFIND YOUR FIT

Who integrates with UMP?

CMMS / Aviation / Telematics Platform

Add UMP to your existing platform. Give customers portable, verifiable records.

Fleet / Operator with In-house IT

Build custom integrations with your internal systems.

OEMs & Marketplaces

Embed verification or issuance in your products and listings.

Partner Dashboard

Every partner gets a dedicated dashboard to manage API keys, configure webhooks, view usage analytics, and switch between sandbox and production environments. Self-service administration — no support tickets required.

[06] EMBED WIDGETSCOPY, PASTE, DONE

Add verification to your listings in 5 minutes.

Embed passport verification in auction listings, loan applications, or marketplace pages. Copy, paste, done.

Option 1: Simple iframe

Fastest setup
HTML
<!-- Simple iframe embed -->
<iframe
  src="https://verify.maintenancepassport.com/embed/{passportId}"
  width="100%"
  height="400"
  frameborder="0"
  allow="clipboard-write"
></iframe>

Drop-in solution. No JavaScript required. Works anywhere you can embed HTML.

Option 2: Shadow DOM SDK

3KB gzipped
HTML / JavaScript
<!-- Shadow DOM SDK (3KB gzipped) -->
<script src="https://sdk.maintenancepassport.com/embed.js"></script>
<div id="ump-widget"></div>
<script>
  UMP.embed('#ump-widget', {
    passportId: 'abc123',
    theme: 'dark',
    showEvents: true,
    onVerified: (result) => console.log(result)
  })
</script>

<!-- Widget renders in Shadow DOM - won't affect your styles -->

Shadow DOM isolation — widget styles won't conflict with your page. Callbacks for verification events. Theming support.

Whitelabel

Custom colors, logo, and branding

Responsive

Works on mobile and desktop

Callbacks

JavaScript events on verification

Analytics

Track impressions and engagement

Widget & API Analytics

Track widget impressions, referrer sources, and user engagement. Monitor API usage with per-endpoint metrics, error rates, and latency tracking. All analytics available via the partner dashboard.

[07] WEBHOOKSPUSH, NOT POLL

Real-time events via webhooks.

Subscribe to events and trigger workflows when passports are verified or credentials issued.

passport.verified

Fired when a passport verification completes. Includes signature, ledger, and evidence status.

event.issued

Fired when a new maintenance event credential is issued and anchored to the ledger.

risk_flag.added

Fired when a risk flag (METER_ANOMALY, OVERDUE_PM) is detected on a passport.

passport_pack.generated

Fired when a shareable passport pack is generated for an asset.

Use case: Trigger underwriting workflows when a passport is verified. Automatically update risk assessments when new flags are detected.

Reliability built-in

  • Exponential backoff retry — failed deliveries retry with 5s → 30s → 2m → 5m intervals, up to 5 attempts
  • Signature verification — every webhook includes HMAC signature for authenticity
  • Delivery logs — track every attempt in the partner dashboard
[08] SANDBOXSAFE TO BREAK THINGS

Test safely in sandbox.

Pre-configured test passports for every scenario. No production data required.

Test scenarios

Clean passport

10 events, all signatures valid, no risk flags. Use for happy-path testing.

Risk flags present

Passport with METER_ANOMALY and OVERDUE_PM flags. Test flag display and handling.

Missing evidence

Events where evidence files return 404. Test MISSING_EVIDENCE flag handling.

Tampered evidence

Events where evidence hash doesn't match. Test EVIDENCE_TAMPERED detection.

Expired signatures

Credentials with expired signing keys. Test signature validation edge cases.

Sandbox API keys available upon request. Same API, isolated environment.

Request sandbox access

Ready to build?

Get API access and start integrating today.