Vehicle History Verification (NMVTIS) - Notifications
1. Overview & Introduction
The NMVTIS Notifications API lets your integration receive asynchronous event notifications when NMVTIS vehicle history data relevant to a submitted request becomes available or is updated. Rather than repeatedly polling for results, you register a callback endpoint (a webhook) and Vitu delivers notifications to it as data changes.
The domain model is small and centers on two nouns:
- Subscription — the registration that binds your integration to a single callback URL. It represents "where Vitu should deliver notifications." The subscription-retrieval operation exposes the currently registered callback URL; the subscribe and unsubscribe operations manage its lifecycle.
- Callback security configuration — the settings that tell Vitu how to authenticate and secure delivery to your callback endpoint (for example, Basic auth, HMAC signing, OAuth client credentials, custom headers, or mTLS). This is configuration you provide about your own receiving endpoint; it is distinct from how you authenticate to Vitu.
Directionality note. This API involves two authentication directions. You authenticate to Vitu using OAuth 2.0 client credentials (see §3). Vitu authenticates to your callback endpoint using whatever you configure via the callback-security operation. Do not conflate the two.
Environments are selected through the env server variable and correspond to production (api), staging (api-stage), and test (api-test). See the spec's servers block for exact URLs. Credentials are issued per environment by Vitu.
Because this API concerns NMVTIS vehicle history data, treat both the notification payloads delivered to your callback and the data they reference as potentially regulated. See §Data sensitivity & compliance notes.
2. Getting Started / First Call
Prerequisites
- A Vitu-issued OAuth 2.0 client credential (client ID and secret). Obtain these from the Key Management area within Vitu's Developer Portal.
- A publicly resolvable HTTPS callback endpoint you control, capable of receiving notification requests.
Minimal happy path
- Obtain a token. Exchange your client credentials for an access token at the token endpoint defined by the
oneVituOauthscheme (see §3). - Configure callback security (recommended before subscribing). Use the callback-security operation (
SetCallbackSecurity) to tell Vitu how to authenticate to your endpoint. See §3 and §5 for why this should come first. - Subscribe. Call the
Subscribeoperation, supplying your callback URL. On success the subscription is registered. - Confirm. Call the
GetSubscriptionoperation to verify the registered callback URL. - Receive notifications. Vitu delivers event notifications to your callback endpoint as NMVTIS data becomes available or is updated.
Note: The completion callback's payload is CallbackDTO; its
refNumberandinquiryIDmap directly to the Inquiry product's retrieval operations.
Corresponding NMVTIS Inquiry product: The Vehicle History Verification (NMVTIS) product serves as a complementary offering to this NMVTIS Notifications service. Together, the inquiry and notification capabilities provide a complete ecosystem for both initiating vehicle history verification requests and staying informed of relevant updates through secure, automated notifications. See that product in the Catalog for more details.
3. Authentication & Access Walkthrough
The formal scheme is defined in the spec as oneVituOauth (OAuth 2.0 client credentials grant), with the scope oneapi:access. Do not treat the following as a redefinition — it is operational guidance.
Obtaining credentials
Client credentials are issued by Vitu and are retrieved from the Key Management area within Vitu's Developer Portal. Credentials are environment-specific.
Obtaining and attaching a token
- POST your client ID and secret to the token endpoint defined in the
oneVituOauthscheme, requesting theoneapi:accessscope. - Attach the returned access token as a Bearer token on every request to this API.
Token lifecycle
- Access tokens expire. Cache and reuse a token until shortly before expiry, then request a new one.
- On an authentication failure (the spec's 401 response), obtain a fresh token and retry once. If it still fails, treat the credential as invalid rather than retrying in a loop.
Environment differences
Each environment (api, api-stage, api-test) uses its own credentials and base URL.
Only one scheme (oneVituOauth) exists for authenticating to this API. There is no API-key or Basic alternative for inbound calls. (Basic, HMAC, OAuth, and mTLS options in the spec's schemas apply only to outbound callback delivery to your endpoint — see §4 and §5.)
4. Key Concepts & Glossary
| Term | Meaning |
|---|---|
| Subscription | The single registration binding your integration to one callback URL. Managed via subscribe / unsubscribe / get-subscription operations. |
| Callback URL | The HTTPS endpoint you own, to which Vitu delivers notifications. Must be publicly resolvable and use HTTPS. |
| Callback security configuration | Settings describing how Vitu authenticates and secures delivery to your callback endpoint. |
| Notification / event | An asynchronous message Vitu sends to your callback when relevant NMVTIS data becomes available or is updated. (Payload shape not defined in the spec — see §2 gap flag.) |
| HMAC signing | Optional integrity mechanism: Vitu signs callback deliveries with a shared key so your endpoint can verify authenticity. The signature header name is configurable (defaults to X-HMAC per the spec's HMAC settings schema). |
| mTLS | Optional mutual-TLS: Vitu presents a client certificate when delivering, and can optionally validate your server certificate against a supplied CA bundle. |
Relationships and lifecycle
- Callback security is configuration about your endpoint; a subscription is where deliveries go. Configure security first, then subscribe (see §5), so no delivery ever occurs against an unsecured endpoint.
- The subscription is effectively a single registration keyed to the callback URL exposed by the get-subscription operation. Subscribe registers it; unsubscribe removes it.
5. Common Use Cases & Integration Patterns
Scenario A - Stand up notification delivery (first-time setup)
- Configure callback security (
SetCallbackSecurity) — establish how Vitu will authenticate to your endpoint (Basic, HMAC, OAuth, headers, and/or mTLS) before any delivery can occur. - Subscribe (
Subscribe) — register your HTTPS callback URL. - Verify (
GetSubscription) — confirm the registered URL. - Handle inbound notifications at your endpoint.
Intent: securing the endpoint before subscribing prevents Vitu from delivering to an unauthenticated receiver.
Scenario B - Rotate callback security (e.g., new HMAC key or credentials)
- Update your receiver to accept both old and new secrets during the transition.
- Configure callback security (
SetCallbackSecurity) with the new settings. - Retire acceptance of the old secret once you have confirmed deliveries succeed.
Intent: avoid a window where in-flight deliveries fail verification.
Scenario C - Change destination endpoint
- Configure callback security for the new endpoint (
SetCallbackSecurity). - Subscribe (
Subscribe) with the new callback URL.
Scenario D - Tear down
- Unsubscribe (
Unsubscribe) to stop deliveries.
Pattern guidance
This API is push (webhook), not poll. Your integration should host a resilient, idempotent receiver rather than polling for results. Correlate incoming notifications back to your original NMVTIS requests using identifiers carried in the payload.
6. Behavioral & Operational Notes
- Callback delivery is asynchronous. Notifications arrive at your endpoint at an unspecified later time relative to the underlying data change. Do not assume synchronous or ordered delivery unless the API owner confirms it.
- Configure security before subscribing. Subscribing first can expose your endpoint to unauthenticated deliveries.
- HTTPS is enforced for callback URLs. The spec constrains the callback URL to an
https://scheme. - HMAC header is configurable. If you enable HMAC, the signature is placed in the header you name, defaulting to
X-HMAC(per the HMAC settings schema). Verify signatures on every inbound delivery. - Receiver idempotency. Because retries and duplicate deliveries are common in webhook systems, design your receiver to tolerate duplicate notifications.
7. Rate Limiting & Quotas
The spec defines a rate-limit response (429, TooManyRequests) but does not publish specific limits or documented rate-limit headers. When you receive the rate-limit response, back off and retry after the window resets. Read any rate-limit headers present on the response at runtime rather than hard-coding values.
8. Error Handling & Troubleshooting
Errors use the spec's Errors / Error schema (a list of messages, each optionally tied to a field). Handle by class, not by memorizing codes:
| Class | Meaning | Retryable? | Action |
|---|---|---|---|
| Authentication (401) | Missing/expired/invalid token | Once, after refresh | Obtain a new token; if still failing, treat credentials as invalid. |
Validation (400, BadRequest) | Malformed request (e.g., non-HTTPS or over-length callback URL) | No | Fix the request per the spec's schema/constraints. |
Rate limit (429, TooManyRequests) | Too many requests | Yes | Back off, then retry after the window resets. |
Server (500, ServerError) | Transient server-side failure | Yes | Retry with exponential backoff and jitter; stop after a bounded number of attempts. |
Use exponential backoff with jitter for retryable classes. Do not retry validation failures.
9. Data Sensitivity & Compliance Notes
NMVTIS vehicle history data is regulated. Notification payloads delivered to your callback may reference or contain such data. Handling expectations:
- Terminate callback delivery on HTTPS only (enforced) and prefer HMAC or mTLS to guarantee authenticity and integrity.
- Restrict access to received notification data to authorized systems and personnel.
- Do not log full payloads in systems that are not authorized to retain regulated data.
This is handling guidance, not legal advice. Confirm your specific NMVTIS compliance obligations with the API owner and your compliance function.
10. Support & Resources
For any API assistance, contact Vitu's API support team at [email protected].