# API reference: TruckerTech Nexus 1.1.0

OpenAPI 3.1.0 and AsyncAPI 3.0.0. Component versions: canon 2, statusTaxonomy 1, faultTaxonomy 1, webhookEnvelope 1, adapterManifest 1, livePort 1, remoteProtocol tt-nexus-remote/1.

## Operations

### POST /api/nexus/events/{connection}

Deliver one signed Partner event

A Partner delivers one event envelope for one connection. The body is read up to 262144 bytes and never parsed past it. The signature header covers the send time and the raw body; the delivery is accepted only inside the replay window on that send time, and an event id already received is answered as accepted, so a Partner may retry with a fresh send time. Every answer is `no-store`.

Parameters:

- `connection` (path, required; string (uuid)): The connection (account binding) id the delivery is for.
- `x-tt-nexus-signature` (header, required; string): `hmac-sha256;key-id=<key id>;t=<send time, ms since epoch, a safe integer>;value=<64 lowercase hex>`, where `value` is HMAC-SHA-256 over `<t>.` followed by the raw body. The key id names a credential version, never key material.

Request body: `application/json`, PartnerWebhookEnvelope.

Responses:

- 202: The delivery verified and was recorded, or it is a signed retry of an event already received. Stop retrying. Body: IngressOutcome.
- 401: The delivery was refused. An unknown, inactive or malformed connection gets the same answer as a delivery that failed verification, so the answer says nothing about the connection. Body: IngressOutcome.
- 409: A verified delivery reused an event id for different content on this connection. Body: IngressOutcome.
- 413: The body is larger than the ceiling. Decided before the connection is read. Body: IngressOutcome.
- 503: The receipt could not be recorded. Retry with a fresh signed send time. Body: IngressOutcome.

Limits: maxBodyBytes 262144, replayWindowMs 300000, maxEventTimeDistanceMs 3155760000000.

### GET /api/v1/integration/whoami

The integration principal of this credential

Returns the client, its organization, the environment, the credential kind and the effective scopes.

Responses:

- 200: OK
- 400: invalid_request Body: Integration.Error.
- 401: unauthorized, invalid_credential, credential_environment_mismatch Body: Integration.Error.
- 403: credential_not_permitted, suspended, owner_inactive, forbidden_origin, insufficient_scope Body: Integration.Error.
- 429: rate_limited, with Retry-After Body: Integration.Error.
- 503: unavailable Body: Integration.Error.

### GET /api/v1/integration/cores

The Cores your organization created or participates in

Lists the Cores (loads) your organization created or actively participates in, in Core id order: status, mode, planned window, the organizations by display name and the stops. Page with `limit` (1 to 100, default 25) and `after` (the `next_after` of the previous page). In the sandbox these are the Cores of your practice organization's world.

Parameters:

- `limit` (query; integer): Cores per page, 1 to 100; 25 when absent.
- `after` (query; string): The `next_after` of the previous page.

Responses:

- 200: OK
- 400: invalid_request Body: Integration.Error.
- 401: unauthorized, invalid_credential, credential_environment_mismatch Body: Integration.Error.
- 403: credential_not_permitted, suspended, owner_inactive, forbidden_origin, insufficient_scope Body: Integration.Error.
- 429: rate_limited, with Retry-After Body: Integration.Error.
- 503: unavailable Body: Integration.Error.

### GET /api/v1/integration/cores/{coreId}

One Core your organization created or participates in

Returns one Core in the same shape as the list, as `items` of one. A Core your organization does not take part in is answered exactly as one that does not exist: 404 `not_found`.

Parameters:

- `coreId` (path, required; string): The Core id (`core_id`).

Responses:

- 200: OK
- 400: invalid_request Body: Integration.Error.
- 401: unauthorized, invalid_credential, credential_environment_mismatch Body: Integration.Error.
- 403: credential_not_permitted, suspended, owner_inactive, forbidden_origin, insufficient_scope Body: Integration.Error.
- 404: not_found Body: Integration.Error.
- 429: rate_limited, with Retry-After Body: Integration.Error.
- 503: unavailable Body: Integration.Error.

### GET /api/v1/integration/cores/{coreId}/documents

The documents of a Core, as metadata

Lists the documents of one Core your organization created or participates in that your organization may read, in document id order: the id, class, file name, content type, size, recorded time and visibility. Metadata only: the bytes, the digest and the storage location are never returned. Page with `limit` (1 to 100, default 25) and `after` (the `next_after` of the previous page). A Core your organization does not take part in is answered exactly as one that does not exist: 404 `not_found`. In the sandbox the practice world holds no documents, so the list is empty.

Parameters:

- `coreId` (path, required; string): The Core id (`core_id`).
- `limit` (query; integer): Documents per page, 1 to 100; 25 when absent.
- `after` (query; string): The `next_after` of the previous page.

Responses:

- 200: OK
- 400: invalid_request Body: Integration.Error.
- 401: unauthorized, invalid_credential, credential_environment_mismatch Body: Integration.Error.
- 403: credential_not_permitted, suspended, owner_inactive, forbidden_origin, insufficient_scope Body: Integration.Error.
- 404: not_found Body: Integration.Error.
- 429: rate_limited, with Retry-After Body: Integration.Error.
- 503: unavailable Body: Integration.Error.

### POST /oauth/token

Client credentials with private_key_jwt

Issues a ten-minute access token for the client the signed assertion names. No client secret exists; a request presenting one is refused.

Request body: `application/x-www-form-urlencoded`, inline schema.

Responses:

- 200: The access token Body: Integration.TokenResponse.
- 400: RFC 6749 5.2: invalid_request, invalid_scope, unsupported_grant_type
- 401: invalid_client: any failed client authentication, one answer
- 429: rate_limited, with Retry-After

### POST remoteConnector

One signed call to a remote connector (TruckerTech Nexus sends this request to your endpoint.)

TruckerTech POSTs one `tt-nexus-remote/1` message to the endpoint the connector's manifest declares (an allowlisted host and its `endpointPath`) and expects one signed message back. The `op` member of the protected header names the port operation; the body follows that operation's request schema. Signatures are Ed25519 over the canonical form, with keys each side publishes.

Parameters:

- `tt-nexus-protocol` (header, required; const "tt-nexus-remote/1")

Request body: `application/json`, RemoteMessage.

Responses:

- 200: A signed response addressed to the platform, bound to the request by `replyTo`. A verified request whose body does not match its operation is answered here with a signed `invalid-input` refusal. Body: RemoteMessage.
- 401: The request failed verification. The body is empty whatever the reason, so the answer cannot be used to probe the verifier.
- 413: The request is larger than the message ceiling. The body is empty.

Limits: maxMessageBytes 262144, defaultClockSkewMs 60000.

Operations (the `op` member of the protected header):

- `describe`: request RemoteRequestBody.describe, response RemoteResponseBody.describe.
- `authorize`: request RemoteRequestBody.authorize, response RemoteResponseBody.authorize.
- `read`: request RemoteRequestBody.read, response RemoteResponseBody.read.
- `command`: request RemoteRequestBody.command, response RemoteResponseBody.command (status: built-disabled).
- `events`: request RemoteRequestBody.events, response RemoteResponseBody.events.
- `normalize`: request RemoteRequestBody.normalize, response RemoteResponseBody.normalize.
- `health`: request RemoteRequestBody.health, response RemoteResponseBody.health.
- `reconcile`: request RemoteRequestBody.reconcile, response RemoteResponseBody.reconcile.

## Events

### Receive a Partner event

receive on /api/nexus/events/{connection}: 

Messages: PartnerEvent.

### Call a remote connector

send on remoteConnector: 

Messages: RemoteConnectorRequest; reply: RemoteConnectorResponse.

## Messages

- PartnerEvent (`application/json`, payload PartnerWebhookEnvelope): Partner event
- RemoteConnectorRequest (`application/json`, payload RemoteMessage): Remote connector request
- RemoteConnectorResponse (`application/json`, payload RemoteMessage): Remote connector response
- CanonSocket.career.workflow_status.v1 (`application/json`, payload CanonSocket.career.workflow_status.v1): Career workflow status
- CanonSocket.carrier_identity.risk_signals.v1 (`application/json`, payload CanonSocket.carrier_identity.risk_signals.v1): Carrier Identity risk signals
- CanonSocket.communications.channel_message.v1 (`application/json`, payload CanonSocket.communications.channel_message.v1): Communications: channel message
- CanonSocket.documents.document_status.v1 (`application/json`, payload CanonSocket.documents.document_status.v1): Document status
- CanonSocket.driver_lifecycle.background_check.v1 (`application/json`, payload CanonSocket.driver_lifecycle.background_check.v1): Background check
- CanonSocket.driver_lifecycle.clearinghouse_query.v1 (`application/json`, payload CanonSocket.driver_lifecycle.clearinghouse_query.v1): Drug and Alcohol Clearinghouse query
- CanonSocket.driver_lifecycle.dac_report.v1 (`application/json`, payload CanonSocket.driver_lifecycle.dac_report.v1): DAC employment history report
- CanonSocket.driver_lifecycle.mvr_result.v1 (`application/json`, payload CanonSocket.driver_lifecycle.mvr_result.v1): Driver MVR result
- CanonSocket.driver_lifecycle.voe_result.v1 (`application/json`, payload CanonSocket.driver_lifecycle.voe_result.v1): Verification of employment
- CanonSocket.equipment_finance.agreement_status.v1 (`application/json`, payload CanonSocket.equipment_finance.agreement_status.v1): Equipment lease or financing status
- CanonSocket.erp.demand.v1 (`application/json`, payload CanonSocket.erp.demand.v1): ERP demand
- CanonSocket.esignature.envelope_status.v1 (`application/json`, payload CanonSocket.esignature.envelope_status.v1): E-signature envelope status
- CanonSocket.factoring.credit_approval.v1 (`application/json`, payload CanonSocket.factoring.credit_approval.v1): Factoring credit approval
- CanonSocket.factoring.invoice_funding.v1 (`application/json`, payload CanonSocket.factoring.invoice_funding.v1): Factoring and payments: invoice funding
- CanonSocket.factoring.invoice_funding.v2 (`application/json`, payload CanonSocket.factoring.invoice_funding.v2): Factoring and payments: invoice funding (version 2, with the hand-off)
- CanonSocket.freight_audit.invoice_audit.v1 (`application/json`, payload CanonSocket.freight_audit.invoice_audit.v1): Freight invoice audit
- CanonSocket.fuel.price.v1 (`application/json`, payload CanonSocket.fuel.price.v1): Fuel price
- CanonSocket.fuel.transaction.v1 (`application/json`, payload CanonSocket.fuel.transaction.v1): Fuel transaction
- CanonSocket.identity.assurance_result.v1 (`application/json`, payload CanonSocket.identity.assurance_result.v1): Identity assurance result
- CanonSocket.insurance.claim_status.v1 (`application/json`, payload CanonSocket.insurance.claim_status.v1): Insurance claim status
- CanonSocket.load_board.posting.v1 (`application/json`, payload CanonSocket.load_board.posting.v1): Load board posting
- CanonSocket.maintenance.inspection.v1 (`application/json`, payload CanonSocket.maintenance.inspection.v1): Vehicle inspection
- CanonSocket.maintenance.work_order.v1 (`application/json`, payload CanonSocket.maintenance.work_order.v1): Maintenance work order
- CanonSocket.parts.order.v1 (`application/json`, payload CanonSocket.parts.order.v1): Parts order
- CanonSocket.qualification.carrier_compliance.v1 (`application/json`, payload CanonSocket.qualification.carrier_compliance.v1): Carrier qualification and compliance
- CanonSocket.retention.driver_signal.v1 (`application/json`, payload CanonSocket.retention.driver_signal.v1): Driver retention signal
- CanonSocket.safety.csa_monitoring.v1 (`application/json`, payload CanonSocket.safety.csa_monitoring.v1): Safety and CSA monitoring
- CanonSocket.scheduling.appointment.v1 (`application/json`, payload CanonSocket.scheduling.appointment.v1): Scheduling and appointments
- CanonSocket.telematics.hos_status.v1 (`application/json`, payload CanonSocket.telematics.hos_status.v1): Hours-of-service status
- CanonSocket.telematics.vehicle_position.v1 (`application/json`, payload CanonSocket.telematics.vehicle_position.v1): Vehicle position (transaction-scoped)
- CanonSocket.tms.load.v1 (`application/json`, payload CanonSocket.tms.load.v1): TMS loads and orders
- CanonSocket.tms.load.v2 (`application/json`, payload CanonSocket.tms.load.v2): TMS loads and orders (version 2, with commands)
- CanonSocket.tms.tender_response.v1 (`application/json`, payload CanonSocket.tms.tender_response.v1): TMS tender response
- CanonSocket.tolls.transaction.v1 (`application/json`, payload CanonSocket.tolls.transaction.v1): Toll transaction
- CanonSocket.training.course_completion.v1 (`application/json`, payload CanonSocket.training.course_completion.v1): Training course completion
- CanonSocket.visibility.shipment_eta.v1 (`application/json`, payload CanonSocket.visibility.shipment_eta.v1): Visibility and ETA
- CanonSocket.weather.advisory.v1 (`application/json`, payload CanonSocket.weather.advisory.v1): Weather advisory
- CanonSocket.wms.dock_activity.v1 (`application/json`, payload CanonSocket.wms.dock_activity.v1): WMS dock activity
- CanonSocket.yms.trailer_status.v1 (`application/json`, payload CanonSocket.yms.trailer_status.v1): YMS trailer status

## Schemas

### AdapterManifest

object. The capability manifest an adapter version is registered with.

- `manifestVersion` (required): const 1
- `contractVersion` (required): const 1
- `adapterId` (required): string
- `version` (required): string
- `packageName` (required): string
- `displayName` (required): string
- `systemNode` (required): object
- `runtime` (required): object
- `sockets` (required): array of object
- `support` (required): object

### AttributionEnvelope

object. Provider identity, freshness and source class, carried with every canonical fact.

- `origin` (required): enum "truckertech-derived" | "partner-provided-fact" | "partner-advisory" | "partner-executed-action" | "reconciled-canonical"
- `factClass` (required): FactClass
- `providerRef` (required): string | null
- `adapterRef` (required): string | null
- `socketCode` (required): string
- `socketSchemaVersion` (required): integer
- `connectionRef` (required): string | null
- `observedAt` (required): string (date-time)
- `effectiveAt` (required): string (date-time) | null
- `receivedAt` (required): string (date-time)
- `freshness` (required): object
- `derivedFrom` (required): array of string
- `evidenceRefs` (required): array of string
- `displayText` (required): string | null

### CanonFaultClass

enum "none" | "timeout" | "rate_limit" | "duplicate_suppressed" | "out_of_order" | "transient_provider_failure" | "permanent_provider_rejection" | "provider_unavailable"

### CanonSocket.career.workflow_status.v1

object. Application, offer and onboarding status of one candidate as a partner recruiting workflow reported it. References only: no personal data beyond the candidate’s Person reference.

- `socketCode` (required): const "career.workflow_status"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.carrier_identity.risk_signals.v1

object. A Carrier Identity partner’s own assessment of a carrier, the canonical risk signals behind it, counts and watch-list state. The partner’s fact, attributed and as-of; never a TruckerTech verification or score.

- `socketCode` (required): const "carrier_identity.risk_signals"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.communications.channel_message.v1

object. Metadata of one message on a connected channel: parties by reference, thread, delivery state and times. The body is a reference, never content; no email address or phone number is an identifier.

- `socketCode` (required): const "communications.channel_message"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.documents.document_status.v1

object. The state of one document version as a document system reported it: kind, owner, version chain and content digest. The document is a reference, never its content.

- `socketCode` (required): const "documents.document_status"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.driver_lifecycle.background_check.v1

object. The outcome of a background check for one driver as the provider reported it: status, outcome, finding codes and dates. No raw report and no personal data beyond references.

- `socketCode` (required): const "driver_lifecycle.background_check"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.driver_lifecycle.clearinghouse_query.v1

object. The outcome of a Drug and Alcohol Clearinghouse query for one driver as the provider reported it: status, outcome, finding codes and dates. No raw report and no personal data beyond references.

- `socketCode` (required): const "driver_lifecycle.clearinghouse_query"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.driver_lifecycle.dac_report.v1

object. The outcome of a DAC employment history report for one driver as the provider reported it: status, outcome, finding codes and dates. No raw report and no personal data beyond references.

- `socketCode` (required): const "driver_lifecycle.dac_report"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.driver_lifecycle.mvr_result.v1

object. The outcome of a motor vehicle record for one driver as the provider reported it: status, outcome, finding codes and dates. No raw report and no personal data beyond references.

- `socketCode` (required): const "driver_lifecycle.mvr_result"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.driver_lifecycle.voe_result.v1

object. The outcome of a verification of employment for one driver as the provider reported it: status, outcome, finding codes and dates. No raw report and no personal data beyond references.

- `socketCode` (required): const "driver_lifecycle.voe_result"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.equipment_finance.agreement_status.v1

object. The status of one equipment lease or financing agreement: stage, assets by reference and the next payment as evidence. No bank account or payment instruction.

- `socketCode` (required): const "equipment_finance.agreement_status"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.erp.demand.v1

object. Freight demand (an order or forecast) from a shipper ERP: facilities by reference, windows, and metric lines. Read and event only; releasing or tendering demand is an external write.

- `socketCode` (required): const "erp.demand"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.esignature.envelope_status.v1

object. The state of one signature envelope and each signer, by party reference, as an e-signature provider reported it. No signer contact point, name or signature image.

- `socketCode` (required): const "esignature.envelope_status"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.factoring.credit_approval.v1

object. The carrier’s own factor’s credit decision on a broker or shipper, read with the carrier’s recorded authorization; carrier-only, attributed, with its age. TruckerTech computes no score.

- `socketCode` (required): const "factoring.credit_approval"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.factoring.invoice_funding.v1

object. Observed funding and remittance state of one invoice at a factoring or payments provider. Evidence only: no payment destination, instruction or trigger.

- `socketCode` (required): const "factoring.invoice_funding"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.factoring.invoice_funding.v2

object. Version 1 of the invoice funding fact plus the factor’s record version, and the invoice hand-off and withdrawal commands. Evidence by reference; no payment destination; not a funding trigger.

- `socketCode` (required): const "factoring.invoice_funding"
- `schemaVersion` (required): const 2
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.freight_audit.invoice_audit.v1

object. A freight audit partner’s result on one freight invoice: billed and approved amounts and coded adjustments, as evidence. No payment instruction.

- `socketCode` (required): const "freight_audit.invoice_audit"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.fuel.price.v1

object. A station’s retail and discounted price for one fuel, per kilolitre, with the discount program by reference. The station is a reference, never a coordinate.

- `socketCode` (required): const "fuel.price"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.fuel.transaction.v1

object. One fuel purchase from a fuel card or network: card and station by reference, litres, price per kilolitre, total and discount. No card number and no coordinates.

- `socketCode` (required): const "fuel.transaction"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.identity.assurance_result.v1

object. The outcome of identity, document and liveness checks a proofing provider ran for one Person. Carries outcomes and references only; TruckerTech decides the assurance level.

- `socketCode` (required): const "identity.assurance_result"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.insurance.claim_status.v1

object. Where one insurance claim stands with a claims-services partner: coverage, stage, amounts as evidence and documents by reference. A loss carries its date, never its place.

- `socketCode` (required): const "insurance.claim_status"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.load_board.posting.v1

object. A native or external-board load with its source and age, regions by reference, and the strict default filter inputs. Carries no address or coordinates.

- `socketCode` (required): const "load_board.posting"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.maintenance.inspection.v1

object. One vehicle inspection and its defects by governed code and severity. A roadside inspection carries no place or coordinate.

- `socketCode` (required): const "maintenance.inspection"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.maintenance.work_order.v1

object. One repair or service order: asset, shop by reference, stage, job lines, kilometres and total. No place or coordinate.

- `socketCode` (required): const "maintenance.work_order"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.parts.order.v1

object. One parts order from a supplier: parts by reference, quantities, prices as evidence and delivery dates, optionally tied to a work order.

- `socketCode` (required): const "parts.order"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.qualification.carrier_compliance.v1

object. A partner-reported carrier qualification and compliance determination: operating authority, safety rating, insurance and per-requirement state. The determination is the partner’s and stays attributed.

- `socketCode` (required): const "qualification.carrier_compliance"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.retention.driver_signal.v1

object. A retention partner’s signal about one driver, by governed code and severity. Partner estimates stay inferred and attributed; no survey text rides on the socket.

- `socketCode` (required): const "retention.driver_signal"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.safety.csa_monitoring.v1

object. A safety-monitoring partner’s snapshot of one carrier’s CSA BASIC measures, alerts and change codes. Measures are the partner’s and stay attributed; it is not a qualification determination.

- `socketCode` (required): const "safety.csa_monitoring"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.scheduling.appointment.v1

object. A facility appointment window and its partner-reported status. Read and event only in version 1: booking is an external write and stays behind the governed command architecture.

- `socketCode` (required): const "scheduling.appointment"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.telematics.hos_status.v1

object. A driver’s current duty status and remaining drive, shift and cycle minutes as an ELD reported them. Carries no location.

- `socketCode` (required): const "telematics.hos_status"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.telematics.vehicle_position.v1

object. The latest fix for one vehicle. Result-only: the position may be used inside one check and is never stored; only the check’s outcome may persist.

- `socketCode` (required): const "telematics.vehicle_position"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.tms.load.v1

object. One load and the order it serves as a TMS reported it: parties, stage, equipment, metric weight and distance, rate as evidence, and stops by facility and Core reference. Carries no address or coordinates.

- `socketCode` (required): const "tms.load"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.tms.load.v2

object. Version 1 of the TMS load fact plus the provider version, and the load create, update and cancel commands. Canonical parameters only: external writes stay disabled.

- `socketCode` (required): const "tms.load"
- `schemaVersion` (required): const 2
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.tms.tender_response.v1

object. A carrier’s accept or decline of a load tender as the TMS reported it. Observed only: responding to a tender from TruckerTech is a version-2 command.

- `socketCode` (required): const "tms.tender_response"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.tolls.transaction.v1

object. One toll charge from a toll partner: agency, plaza and transponder by reference, axles and amount. No coordinates.

- `socketCode` (required): const "tolls.transaction"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.training.course_completion.v1

object. Where one learner stands on one course from a training partner: state, dates and the certificate by reference. No score detail and no personal data beyond references.

- `socketCode` (required): const "training.course_completion"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.visibility.shipment_eta.v1

object. A shipment milestone and estimated arrival from a visibility provider. Carries no coordinates.

- `socketCode` (required): const "visibility.shipment_eta"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.weather.advisory.v1

object. A weather partner’s advisory for a zone, facility, load or stop, by reference: hazard, severity and validity. Never a coordinate or a polygon.

- `socketCode` (required): const "weather.advisory"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.wms.dock_activity.v1

object. A dock door activity (check-in, door assignment, loading, unloading, release) as a WMS reported it. A door is a reference, never a coordinate.

- `socketCode` (required): const "wms.dock_activity"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonSocket.yms.trailer_status.v1

object. Where a trailer sits in a facility yard (gate, yard slot or door) and whether it is loaded, as a YMS reported it. A slot is a reference, never a coordinate.

- `socketCode` (required): const "yms.trailer_status"
- `schemaVersion` (required): const 1
- `attribution` (required): AttributionEnvelope
- `payload` (required): object

### CanonStatus

enum "accepted" | "received" | "in_review" | "action_required" | "approved" | "declined" | "scheduled" | "completed" | "cancelled" | "expired" | "unknown"

### FactClass

enum "observed" | "supplied" | "derived" | "inferred"

### IngressOutcome

object

- `outcome` (required): enum "accepted" | "refused" | "conflict" | "unavailable"

### PartnerWebhookEnvelope

object. One event a Partner delivers for one connection. `payload` is the Partner event; the connector normalizes it to a canonical socket.

- `envelopeVersion` (required): const 1
- `partnerId` (required): string
- `connectionReference` (required): string
- `eventId` (required): string
- `eventType` (required): string
- `idempotencyKey` (required): string
- `sequenceNumber` (required): integer
- `occurredAtMs` (required): integer
- `payload` (required): any JSON value

### RemoteMessage

object. One `tt-nexus-remote/1` message in canonical form (RFC 8785): the body, the protected header and the Ed25519 signature over both.

- `body` (required): any JSON value
- `protected` (required): RemoteProtectedHeader
- `signature` (required): string

### RemoteProtectedHeader

object

- `alg` (required): string
- `aud` (required): string
- `bodySha256` (required): string
- `iss` (required): string
- `kid` (required): string
- `manifestSha256` (required): string
- `nonce` (required): string
- `op` (required): enum "describe" | "authorize" | "read" | "command" | "events" | "normalize" | "health" | "reconcile"
- `protocol` (required): string
- `replyTo` (required): string | null
- `ts` (required): integer
- `typ` (required): enum "request" | "response"

### RemoteRequestBody.authorize

object

- `invocation` (required): WireInvocation
- `request` (required): object

### RemoteRequestBody.command

object

- `invocation` (required): WireInvocation
- `request` (required): object

### RemoteRequestBody.describe

object

### RemoteRequestBody.events

object

- `invocation` (required): WireInvocation
- `request` (required): object

### RemoteRequestBody.health

object

- `invocation` (required): WireInvocation

### RemoteRequestBody.normalize

object

- `invocation` (required): WireInvocation
- `request` (required): object

### RemoteRequestBody.read

object

- `invocation` (required): WireInvocation
- `request` (required): object

### RemoteRequestBody.reconcile

object

- `invocation` (required): WireInvocation
- `request` (required): object

### RemoteResponseBody.authorize

object | object | object

### RemoteResponseBody.command

object | object | object | object

### RemoteResponseBody.describe

object

- `portVersion` (required): const 1
- `adapterId` (required): string
- `adapterVersion` (required): string
- `manifest` (required): AdapterManifest

### RemoteResponseBody.events

object | object | object

### RemoteResponseBody.health

object

- `state` (required): enum "unknown" | "healthy" | "degraded" | "failed" | "revoked"
- `checkedAt` (required): string
- `latencyMs` (required): integer | null

### RemoteResponseBody.normalize

object | object | object

### RemoteResponseBody.read

object | object | object

### RemoteResponseBody.reconcile

object | object | object

### WireInvocation

object

- `requestId` (required): string
- `correlationId` (required): string
- `connectionReference` (required): string
- `purposeCode` (required): string
- `externalAccountReference` (required): string | null
- `socketCode` (required): string
- `schemaVersion` (required): integer
- `deadlineAtMs` (required): integer

### WireJsonObject

object. Wire JSON: objects, arrays, strings, integers in the IEEE-754 safe range (never -0), true and false, and null. Strings are well-formed Unicode of at most 65536 characters; an object has at most 4096 members and an array at most 4096 items; nesting is at most 32 levels; no member is named __proto__, constructor or prototype at any depth.

### WireJsonValue

object | array | string | integer | boolean | null. Wire JSON: objects, arrays, strings, integers in the IEEE-754 safe range (never -0), true and false, and null. Strings are well-formed Unicode of at most 65536 characters; an object has at most 4096 members and an array at most 4096 items; nesting is at most 32 levels; no member is named __proto__, constructor or prototype at any depth.

### Integration.CoreDocumentList

object

- `items` (required): array of object
- `next_after` (required): string | null

### Integration.CoreItem

object

- `items` (required): array of object

### Integration.CoreList

object

- `items` (required): array of object
- `next_after` (required): string | null

### Integration.Error

object

- `error` (required): object

### Integration.TokenResponse

object

- `access_token` (required): string. tt_<live|sbx>_at_…; ten minutes.
- `token_type` (required): const "Bearer"
- `expires_in` (required): integer
- `scope` (required): string

### Integration.Whoami

object

- `principal` (required): const "integration"
- `client_id` (required): string. A TruckerTech id (a UUID).
- `client_name` (required): string
- `organization_id` (required): string. A TruckerTech id (a UUID).
- `organization_name` (required): string
- `environment` (required): enum "live" | "sbx"
- `credential` (required): enum "api_key" | "access_token"
- `scopes` (required): array of enum "career.postings:read" | "career.postings:write" | "ops.cores:read"
