Prepare bytes
Use synthetic data with correct profile/policy/custody; provision the same bytes at the assigned reference.
Prepare configuration, deposit a synthetic record, follow its job and inspect a verification report in one journey.
Start with a backend client, HTTPS + OAuth2 and a synthetic file. Confirm issuer/audience/scopes, profile and byte channel before the example. Operations configure internal adapter mTLS separately; external client mTLS applies only when the provisioned profile requires it.
The Node.js example hashes bytes, deposits, polls, retrieves evidence, requests verification and obtains export metadata. Byte upload/package delivery channels are provisioned separately; no upload API exists among the 26 operations.
Use synthetic data with correct profile/policy/custody; provision the same bytes at the assigned reference.
Retain receipts and poll Job within a client budget; disconnect never automatically resubmits commands.
Read reports and distinguish outcome/state; export metadata does not validate cryptographic packages.
export BASE_URL="<provisioned-api-origin>"
export ACCESS_TOKEN="<test-token-from-secure-channel>"
export IDEMPOTENCY_KEY="<stable-key-for-this-exact-request>"
export REQUEST_FILE="./workflow-archive-request.json"
export DATA_FILE="./workflow-record.txt"
export TRUST_CONTEXT_ID="<assigned-trust-context>"
export RECIPIENT_KEY_ID="<assigned-recipient-key>"
export MAX_POLLS=6
export TIMEOUT_MS=10000
node quickstart-workflow.jsMAX_POLLS and TIMEOUT_MS are client-example budgets, not service limits or SLA. Never enter tokens into this website. If mTLS is required, configure an approved client transport before using this example; native fetch here does not provision client certificates.
| Situation | Example behavior |
|---|---|
| Connection error | Stop and reconcile the original transaction; no automatic POST retry. |
| Job FAILED / CANCELLED | Stop; retain job identity and resolve the failure before continuing. |
| INDETERMINATE / INVALID | Retain the report without upgrading to VALID or starting export. |
Cross-origin resultReference | Refuse to forward tokens to another origin. |
| Export package | Write export-result.json; retrieve over the assigned channel, inventory/hash separately and validate ERS/XMLERS with a suitable tool. |
These files illustrate intake, not full workflows or SDKs. Node.js/cURL are exercised with synthetic fixtures; backend and Java/C# have separate verification status in delivery records.
| Custody | Before API call | Retrieve results |
|---|---|---|
| PROVIDER_MANAGED | Obtain uploadId through the provisioned intake channel; no invented upload endpoint. | Provision authorized download channel, expiry and origin checks. |
| CUSTOMER_MANAGED | Place exact bytes at dataReference; grant read/decrypt and test reread. | Check downloadReference/manifestReference against configuration; no cross-origin token forwarding. |
| HASH_ONLY | Retain external bytes, externalObjectId and digest; agree later byte supply. | Do not infer payload custody; ask the custodian for the exact revision. |