Appendix

Reference information for working with the Concord eVault API.

HTTP status codes

CodeNameDescriptionWhen used
200OKRequest succeededGET, PATCH, PUT successful
201CreatedResource created successfullyPOST that creates a new resource
202AcceptedRequest accepted for processingAsync operations (certified prints)
204No ContentRequest succeeded with no response bodyDELETE successful, some POST operations
400Bad RequestInvalid request parameters or bodyValidation errors, invalid input
401UnauthorizedMissing or invalid authenticationNo Access Key, invalid key, expired key
403ForbiddenValid authentication but insufficient permissionsMissing scope, resource access denied
404Not FoundResource does not existInvalid ID, resource in different vault
409ConflictRequest conflicts with current stateDuplicate names, business rule violations
422Unprocessable EntityRequest understood but cannot be processedSemantic errors in valid JSON
429Too Many RequestsRate limit exceededPer-minute or per-hour limit exceeded
500Internal Server ErrorUnexpected server errorServer-side failure (include traceId)

Error response format

All error responses follow the RFC 7807 Problem Details format:

{
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
  "title": "Bad Request",
  "status": 400,
  "detail": "Additional information about the error.",
  "traceId": "00-1234567890abcdef1234567890abcdef-1234567890abcdef-00"
}
FieldTypeDescription
typestringURI reference identifying the problem type
titlestringShort, human-readable summary
statusintegerHTTP status code
detailstringHuman-readable explanation (optional)
traceIdstringUnique identifier for support troubleshooting

Validation errors

Validation errors include an errors object with field-specific messages:

{
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
  "title": "One or more validation errors occurred.",
  "status": 400,
  "errors": {
    "name": ["The Name field is required."],
    "pageSize": ["The field pageSize must be between 1 and 100."]
  },
  "traceId": "00-1234567890abcdef1234567890abcdef-1234567890abcdef-00"
}

Rate limit error

{
  "title": "Too Many Requests",
  "status": 429,
  "detail": "Rate limit exceeded for this access key. Please retry after the specified time.",
  "retryAfterSeconds": 60
}

Pagination

List endpoints return paginated responses in one of two formats.

Standard format

{
  "data": [...],
  "metadata": {
    "page": 1,
    "pageSize": 25,
    "totalCount": 150
  }
}

Legacy format

Some endpoints use this format:

{
  "items": [...],
  "totalCount": 150,
  "page": 1,
  "pageSize": 25
}

Response fields

FieldTypeDescription
data/itemsarrayArray of items for the current page
totalCountintegerTotal number of items across all pages
pageintegerCurrent page number (1-indexed)
pageSizeintegerNumber of items per page

Pagination parameters

ParameterTypeDefaultMaxDescription
pageinteger1Page number to retrieve
pageSizeinteger25100Items per page

Data types

GUID

Globally Unique Identifiers are used for all resource IDs. Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6. Case-insensitive (lowercase recommended).

DateTime

All timestamps are in ISO 8601 format with UTC timezone. Format: YYYY-MM-DDTHH:mm:ss.sssZ. Example: 2024-01-15T10:30:00.000Z. Timezone is always UTC (indicated by the Z suffix).

File sizes

File sizes are returned in bytes as integers.

SizeBytesExample use
1 KB1,024Small text files
1 MB1,048,576Typical PDF document
1 GB1,073,741,824Large package collections

Enumerations

Package types

ValueDescription
AuthoritativeCopyThe legally binding version of the document
ReceiptAcknowledgment or receipt document
UploadReceiptReceipt generated upon upload
UploadStandard uploaded document

Package sources

ValueDescription
ApiCreated via API (Draft Package workflow)
TransferReceived via transfer from another vault
UploadUploaded directly via portal

Draft package status

ValueDescription
PendingCreated but has no files
ReadyHas files, ready to be completed
ProcessingBeing converted to a vault package
CompletedSuccessfully converted to package
CancelledCancelled, files being cleaned up

Certified print status

ValueDescription
PendingRequest received, queued for generation
ProcessingPDF is being generated
CompletedPDF ready for download
FailedGeneration failed (see errorMessage)

Workflow status

ValueDescription
ReadyWorkflow created, ready for use
ProcessingCSV is being matched against packages
CompletedProcessing finished successfully
FailedProcessing failed (see errorMessage)
AwaitingConfigurationCSV uploaded, awaiting lookup column selection

Unmatched item reasons

ValueDescription
InvalidGuidValue is not a valid GUID format
NotFoundPackage ID not found in vault

Rate limiting

API requests are subject to rate limiting to ensure fair usage and protect the system.

Limit typeLimitWindow
Per-minute120 requestsSliding 1-minute window
Per-hour5,000 requestsFixed 1-hour window

Rate limits are applied per Access Key. Both limits must be satisfied for a request to succeed.

Rate limit response

When you exceed the rate limit, you'll receive a 429 Too Many Requests response:

HTTP/1.1 429 Too Many Requests
Retry-After: 60
Content-Type: application/json

{
  "title": "Too Many Requests",
  "status": 429,
  "detail": "Rate limit exceeded for this access key. Please retry after the specified time.",
  "retryAfterSeconds": 60
}

Rate limit headers

HeaderDescription
Retry-AfterSeconds to wait before retrying

Handling rate limits

Best practices: implement exponential backoff when retrying failed requests; respect the Retry-After header (wait the specified time before retrying); cache responses when possible to reduce request volume; use pagination efficiently (larger page sizes mean fewer requests); batch operations (use bulk endpoints where available); and monitor your usage (track requests to avoid hitting limits).

API versioning

The Concord eVault API is currently at version 1.0. The API version is not included in the URL path.

Versioning strategy

Backward-compatible changes: New fields, new endpoints, and new optional parameters are added without version changes. Breaking changes: Major version increments for breaking changes (rare). Deprecation notice: Minimum 6-month notice before removing any endpoint or field.

Backward-compatible changes (no version bump)

The following changes are considered backward compatible: adding new API endpoints; adding new optional request parameters; adding new response fields; adding new enum values; changing the order of response fields; adding new HTTP headers.

What constitutes a breaking change

Removing an endpoint; removing a request parameter; removing a response field; changing the type of an existing field; changing the meaning of an existing field; renaming fields or endpoints.

Deprecation policy

Announcement: Deprecated features are announced via release notes and documentation. Warning period: Deprecated features continue to work for at least 6 months. Documentation: Deprecated features are marked in documentation with migration guidance. Removal: After the warning period, features may be removed in a major version.

Common MIME types

ExtensionMIME type
.pdfapplication/pdf
.docapplication/msword
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
.xlsapplication/vnd.ms-excel
.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.pngimage/png
.jpgimage/jpeg
.tiffimage/tiff
.xmlapplication/xml
.csvtext/csv

Note: The Draft Packages API only accepts PDF files (application/pdf).

Glossary

TermDefinition
Access KeyAPI credential for authenticating requests to Concord eVault
Authoritative CopyThe legally binding, controlling version of an electronic document that has legal effect
BreadcrumbThe hierarchical path of folders from root to current location
Certified PrintA printed document with certification marks, timestamps, and audit information
Custody ChainThe documented sequence of custody and control of an electronic document
Draft PackageA package in preparation before being finalized into the vault
eVaultElectronic vault system for storing and managing authoritative copies of electronic records
ESIGN ActElectronic Signatures in Global and National Commerce Act (US federal law)
FolderA container for organizing packages in a hierarchical structure
GUIDGlobally Unique Identifier — a 128-bit identifier used for resource IDs
PackageA collection of related documents stored as a single unit in the vault
Package FileAn individual document within a package
Rate LimitMaximum number of API requests allowed within a time window
ScopePermission that controls what API endpoints an Access Key can access
UETAUniform Electronic Transactions Act (US state-level law for electronic transactions)
VaultA secure storage container within an organization for electronic documents
Vault FieldCustom metadata field defined for a vault to capture business-specific information
WatermarkVisual indicator applied to downloaded documents indicating their type and authenticity
WorkflowA named group of packages that can span across folders

Support

Getting help

ChannelContactUse for
Technical Supportsupport@concordfinance.comAPI issues, bug reports, technical questions
Account ManagementYour account representativeAccess Key requests, scope changes
DocumentationYour account representativeDocumentation errors, improvement requests

Reporting API issues

When reporting API issues, please include request information (full request URL without sensitive data, HTTP method, request headers excluding Authorization, request body if applicable), response information (HTTP status code, response body, the traceId from the error response), and context (what you were trying to accomplish, when the issue occurred, whether the issue is reproducible).

Example issue report

Subject: 500 Error on Package Search

Request:
POST /api/packages/search
Content-Type: application/json
{"query": "loan", "pageSize": 25}

Response:
HTTP 500
{
  "title": "Internal Server Error",
  "status": 500,
  "traceId": "00-abc123def456-789ghi012-00"
}

Context:
Searching for packages containing "loan" in the name.
Issue occurs consistently since 2024-01-15 10:00 UTC.

Quick reference

Authentication header

Authorization: Bearer vv_live_your_access_key_here

Common request headers

HeaderValueRequired
AuthorizationBearer {key}Yes
Content-Typeapplication/jsonFor POST/PATCH/PUT
Acceptapplication/jsonOptional

Base URL pattern

https://instance.evault.com/api/{endpoint}

Scope quick reference

ScopeReadWrite
packagesYesYes
packages:readYes 
packages:write Yes
draft-packagesYesYes
draft-packages:readYes 
draft-packages:write Yes
foldersYesYes
folders:readYes 
folders:write Yes
workflowsYesYes
workflows:readYes 
workflows:write Yes
certified-printsYesYes
certified-prints:readYes 
certified-prints:write Yes
vault-fieldsYes 
vault-fields:readYes