---
title: "Execute an externally initiated route exposure write"
method: POST
path: "/route/exposures/{exposureDescriptorId}/write"
tags: ["RouteExposures"]
---

# Execute an externally initiated route exposure write

`POST /route/exposures/{exposureDescriptorId}/write`

Executes an explicitly registered external-write route exposure. The caller supplies the
authenticated Party context, governed payload envelope, field mappings, governance metadata,
governance metadata, optional idempotency key, and optional Party projection candidates.
VDX evaluates policy server-side before any grant or throttle consumption. The
response is an accepted, minimized, redacted, quarantined, or rejected governed-ingress
receipt with canonical-field mapping, projection-candidate ids, policy lineage, idempotency
result, payload hash, and later-use availability scope.

## Path parameters

- `exposureDescriptorId` string, required — Stable identifier of an externally callable route exposure descriptor.

## Request body

- RouteExposureExternalWriteRequest — Governed request envelope for an externally initiated write through a route exposure descriptor.
  - `authMethod` string, required — Auth or trust method accepted by the exposure descriptor.
  - `callerParty` PartyRef, required — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
    - `partyId` string
    - `externalId` string
    - `partyType` string
    - `displayName` string
    - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
  - `payload` object, required — External payload values supplied by the caller.
  - `fieldMappings` ConnectorFieldMapping[], required
    - `source` ConnectorFieldSelector, required — Selector for a canonical, protocol, form, proof, status, source, data product, or semantic field.
      - `canonicalFieldPath` string
      - `connectorField` string
      - `protocolClaimPath` string
      - `dcqlCredentialQueryId` string
      - `dcqlClaimId` string
      - `formFieldPath` string
      - `proofRef` string
      - `statusRef` string
      - `tokenRef` string
      - `sourceFieldPath` string
      - `dataProductFieldScope` string
      - `contractAgreementTargetRef` string
      - `semanticReference` SemanticReference — Reference to a semantic catalog, profile, attribute, relationship type, policy classification, or vocabulary term.
        - `referenceType` string, required — Semantic model reference type.
        - `referenceId` string, required — Stable semantic reference id.
        - `iri` string — Optional IRI for RDF/JSON-LD and vocabulary alignment.
        - `version` string — Optional semantic reference version.
      - `required` boolean
    - `target` ConnectorFieldSelector, required — Selector for a canonical, protocol, form, proof, status, source, data product, or semantic field.
      - `canonicalFieldPath` string
      - `connectorField` string
      - `protocolClaimPath` string
      - `dcqlCredentialQueryId` string
      - `dcqlClaimId` string
      - `formFieldPath` string
      - `proofRef` string
      - `statusRef` string
      - `tokenRef` string
      - `sourceFieldPath` string
      - `dataProductFieldScope` string
      - `contractAgreementTargetRef` string
      - `semanticReference` SemanticReference — Reference to a semantic catalog, profile, attribute, relationship type, policy classification, or vocabulary term.
        - `referenceType` string, required — Semantic model reference type.
        - `referenceId` string, required — Stable semantic reference id.
        - `iri` string — Optional IRI for RDF/JSON-LD and vocabulary alignment.
        - `version` string — Optional semantic reference version.
      - `required` boolean
    - `required` boolean
  - `governance` ConnectorGovernanceEnvelope — Governance metadata attached to connector records, invocations, and runs before data crosses a protocol, form, vault, dataspace, or external-exchange boundary.
    - `classification` string
    - `sensitivity` string
    - `specialCategory` boolean
    - `legalBasis` string
    - `purpose` string
    - `b2bUsagePurpose` string — B2B or dataspace usage purpose, separate from privacy legal basis and processing purpose.
    - `frameworkAgreementRef` string
    - `contractReference` string
    - `minimizationStatus` 'NOT_EVALUATED' | 'MINIMIZED' | 'REDACTED' | 'FULL_DATASET' | 'EXCESSIVE'
    - `retentionProfileId` string
    - `retention` RetentionSpec — Retention metadata used by governance and future compliance checks. It can be applied to fields, resources, materialized data, or dead-letter payloads.
      - `purpose` string — Processing purpose.
      - `legalBasis` string — Legal or contractual basis for retention.
      - `retentionPeriod` string — ISO-8601 duration, for example P30D or P7Y.
      - `deleteAction` 'DELETE' | 'ANONYMIZE' | 'PSEUDONYMIZE' | 'TOMBSTONE' | 'REVIEW' — Action to apply when retention expires or deletion is required by policy.
      - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
    - `crossBorderRestriction` 'NONE' | 'SAME_COUNTRY' | 'EEA_ONLY' | 'APPROVED_COUNTRIES' | 'CONTRACT_REQUIRED' | 'BLOCKED'
    - `encryptionRequirement` 'NONE' | 'IN_TRANSIT' | 'AT_REST' | 'AT_REST_AND_IN_TRANSIT' | 'CUSTOMER_MANAGED_KEY'
    - `dpiaRequired` boolean
    - `integrity` ConnectorIntegrityReference — Integrity and evidence references carried with governed connector ingress, egress, and run lineage.
      - `originalPayloadHash` string
      - `canonicalPayloadHash` string
      - `transformationHash` string
      - `evidenceRef` string
      - `vaultRef` string
      - `signatureRef` string
      - `sealRef` string
      - `timestampRef` string
      - `sourceAuthenticityVerdict` string
      - `outputManifestHash` string
    - `policyDecisionId` string
    - `relianceVerdict` 'NOT_EVALUATED' | 'RELIABLE' | 'CONDITIONAL' | 'NOT_RELIABLE'
    - `auditCategory` 'PROTOCOL_ISSUANCE' | 'PROTOCOL_VERIFICATION' | 'FORM' | 'PORTAL' | 'WORKFLOW' | 'DATASPACE' | 'INDUSTRIAL' | 'EXTERNAL_EXCHANGE' | 'VAULT' | 'SYSTEM_CATALOG'
  - `idempotencyKey` string
  - `partyProjectionCandidates` PartyProjectionCandidate[]
    - `candidateId` string, required
    - `entityKind` string, required
    - `party` PartyRef — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
      - `partyId` string
      - `externalId` string
      - `partyType` string
      - `displayName` string
      - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
    - `relationships` RelationshipCandidate[]
      - `relationshipType` string, required
      - `fromParty` PartyRef, required — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
        - `partyId` string
        - `externalId` string
        - `partyType` string
        - `displayName` string
        - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
      - `toParty` PartyRef, required — Neutral Party reference carried by EDK connector envelopes without importing the VDX Party repository.
        - `partyId` string
        - `externalId` string
        - `partyType` string
        - `displayName` string
        - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
      - `confidence` string
      - `sourceRef` string
    - `materializationIntent` 'REFERENCE_ONLY' | 'EXISTING_PARTY' | 'NEW_PARTY_CANDIDATE' | 'RELATIONSHIP_CANDIDATE' | 'SEMANTIC_VALUE' | 'EVENT' | 'DPP_RECORD' — How a governed external write or discovery record may materialize into durable Party, relationship, semantic, event, or DPP records.
    - `semanticClassifications` object[]
    - `canonicalFields` object

## Response `200`

Governed external-write receipt.

- ConnectorExternalWriteReceipt — Governed-ingress receipt returned by an externally initiated write exposure.
  - `state` 'ACCEPTED' | 'MINIMIZED' | 'REDACTED' | 'QUARANTINED' | 'REJECTED', required — Result state for governed external write ingress.
  - `runId` string, uuid — Stable identifier for a connector route or operation run.
  - `exposureDescriptorId` string, required — Stable identifier of an externally callable route exposure descriptor.
  - `logicalConnectionBindingId` string, required — Stable identifier of a tenant, OU, brand, legal-entity, or channel usage binding for a physical connector instance.
  - `canonicalFields` object, required — Canonical fields produced after mapping the external payload.
  - `projectionCandidateIds` string[], required
  - `policyDecisionId` string, required
  - `idempotencyResult` string, required
  - `payloadHash` string, required
  - `laterUseAvailabilityScope` ConnectorOwnerSurface[], required

## Other responses

- `400` — Validation error.
- `401` — Authentication is required.
- `403` — The caller is authenticated but not authorized for this connector operation.
- `404` — The requested resource was not found.

---

[API](https://skmtc.net/sphereon-opensource/apis/connector-integration-profile-api.md) · [All operations](https://skmtc.net/sphereon-opensource/apis/connector-integration-profile-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sphereon-opensource/connector-integration-profile-api/versions/60cb8c70871b/schema)
