Skip to content

Manuscript Uploaded ​

Event type: manuscript.uploaded

This page documents version 2 of the manuscript.uploaded contract. Version 1 is deprecated, see Versions.

What it means ​

A manuscript has been uploaded to ChronosHub blob storage and is available for you to download and check. The event carries a download link to the manuscript file, a correlationId that identifies the check request, and optional submission details about the publisher, journal and manuscript.

When ChronosHub sends it ​

ChronosHub sends this event to your webhook on every manuscript upload, not only the first, provided your integration is subscribed to manuscript.uploaded. You only receive it if the event type is enabled for your integration.

Direction ​

Outbound. ChronosHub delivers it to your webhook as a signed HTTP POST. See Outbound Events for the delivery format, retries and signature verification.

Field reference ​

fileUrl and correlationId are required. The top level does not allow any other properties (additionalProperties is false), so the only fields at the top level are fileUrl, correlationId and data.

Inside data, optional fields are omitted when unknown and are never sent as null. Ignore any field you do not know, as fields may be added over time.

Top level ​

FieldTypeRequiredDescription
fileUrlstring (URI)yesShort-lived, read-only Azure Blob SAS URL to the manuscript file, which is a .doc, .docx, .pdf or .tex file. Fetch server-to-server; the URL carries its own expiry. See File links.
correlationIdstringyesChronosHub-assigned reference for this check request. Opaque to the partner. Must be echoed back unchanged on every event sent in response.
dataobjectnoSubmission details. Currently sent for technical checks only. If data is present, it contains all three of journal, publisher and manuscript. Partners that do not use it ignore it.

data.journal ​

Always present when data is sent.

FieldTypeRequiredDescription
journalIdstringyesChronosHub journal id. Opaque: ISSN-shaped for older journals, a GUID for newer ones.
journalNamestringnoThe journal title.
issnstringnoPrint ISSN.
eissnstringnoElectronic ISSN.

data.publisher ​

Always present when data is sent.

FieldTypeRequiredDescription
publisherIdstringyesChronosHub customer code, lower case (for example acs).
publisherNamestringnoThe publisher's display name.

data.manuscript ​

Always present when data is sent.

FieldTypeRequiredDescription
stagestringyesSubmission stage. NEW for a first submission. Other values may be sent.
manuscriptTypestringnoThe manuscript type as the submitting system names it.

Example payload ​

The signature in the file link is redacted. The names and identifiers are placeholders.

json
{
  "fileUrl": "https://files.example.com/manuscripts/b6f1c2de/main_manuscript.pdf?sv=2024-11-04&se=2026-10-30T12%3A00%3A00Z&sr=b&sp=r&sig=REDACTED",
  "correlationId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "data": {
    "journal": {
      "journalId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
      "journalName": "Journal of Advanced Materials Research",
      "issn": "1234-5678",
      "eissn": "8765-4321"
    },
    "publisher": {
      "publisherId": "example",
      "publisherName": "Example Science Publishing"
    },
    "manuscript": {
      "stage": "NEW",
      "manuscriptType": "Original Research Article"
    }
  }
}

fileUrl is a download link. Treat it as follows:

  • Valid for 2 hours. The link stops working after that, so download the file promptly rather than storing the URL for later.
  • Opaque. Do not parse the host, path or query string, and do not build links yourself. Use the value exactly as delivered.
  • Plain GET. Fetch it server-to-server with a GET request. No Authorization header or API key is needed, and you should not send one.
  • Secret. Anyone holding the link can download the file until it expires, so do not log full URLs or share them.

Responding ​

What you send back after checking the manuscript, if anything, is up to you. Any event you send in response must echo the correlationId from this event unchanged.

Versions ​

VersionStatusChange
2ActiveAdds the optional data object (publisher, journal, manuscript) for technical checks. The top level is still closed; the objects inside data are open, so fields can be added there later without a breaking change.
1DeprecatedOnly fileUrl and correlationId.

A version 1 payload is also a valid version 2 payload, because data is optional.

  • A partner might, for example, send information back to ChronosHub about a manuscript it checked, using an inbound event, echoing the correlationId unchanged. Which inbound event types you can send is agreed during onboarding.
  • License Signed and Invoice Paid are other events in the catalog, covering the licensing and payment of a publication.