Appearance
Invoice Paid
Event type: invoice.paid
What it means
Emitted when payment for an invoice has been completed in ChronosHub. Alongside the financial details of the transaction — amount, tax, currency, payment method, and any institutional agreement that applied — the payload carries a shared manuscript-context block (publication and manuscript identity, journal, corresponding author, and agreement) so the event can be reconciled against a manuscript without a separate lookup.
When ChronosHub sends it
ChronosHub sends this event when payment for an invoice has been completed, and your integration is subscribed to invoice.paid. The payment timestamp is in datePaymentCompleted.
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
Manuscript context
| Field | Type | Description |
|---|---|---|
publicationId | string | Identifier of the publication this invoice relates to. |
manuscriptId | string | Publisher-facing manuscript reference for the publication. Empty string when none is recorded. |
manuscriptTitle | string | Title of the manuscript. |
articleType | string | Article type/category (for example, Research Article, Review). Empty string when not set. |
doi | string | DOI of the publication. Empty string when not yet assigned. |
journalId | string | Identifier of the journal the publication belongs to. |
journalName | string | Display name of the journal. |
correspondingAuthorName | string | Full name of the corresponding author. Empty string when not available. |
authorCountry | string | Country of the corresponding author's affiliation. Empty string when not available. |
ringgoldName | string | Institution name of the corresponding author's affiliation (Ringgold-registered organisation name). Empty string when not available. |
ringgoldId | string | Ringgold identifier of the corresponding author's affiliation. Empty string when not available. |
dateSubmitted | string (ISO 8601 date-time, UTC) or null | Timestamp at which the manuscript was submitted. null when not recorded. |
dateAccepted | string (ISO 8601 date-time, UTC) or null | Timestamp at which the manuscript was accepted. null when not recorded. |
dateArticleWithdrawn | string (ISO 8601 date-time, UTC) or null | Timestamp at which the article was withdrawn, if applicable. null for a normal paid invoice. |
institutionalAgreementName | string | Name of the institutional agreement that funded or discounted this invoice (for example, Italy CARE-CRUI Agreement, Research 4 Life - AL, German Academic Consortium Discount). Empty string when no agreement applied. |
institutionalAgreementType | string | Category of the institutional agreement (for example, Voucher, Waiver, Discount). Empty string when no agreement applied. |
agreementDate | string (ISO 8601 date-time, UTC) or null | Start date of the institutional agreement that applied. null when no agreement applied. |
Invoice and payment
| Field | Type | Description |
|---|---|---|
invoiceId | integer | Identifier of the invoice in ChronosHub. |
invoiceDate | string (ISO 8601 date-time, UTC) or null | Timestamp at which the invoice was created. Serves as both the invoice date and the order date. null when not recorded. |
datePaymentCompleted | string (ISO 8601 date-time, UTC) | Timestamp at which the payment was completed. |
invoiceRef | string | Partner- or publisher-facing invoice reference (for example, the printed invoice number). Empty string when no reference is available. |
paymentType | string | How the invoice was paid (for example, CreditCard, Invoice). |
price | decimal | Net price of the invoice, in the currency given by currency. Excludes VAT and payment charges. |
currency | string (ISO 4217) | Three-letter currency code for all monetary fields in this payload (for example, USD, EUR, GBP). |
paymentCharge | decimal | Surcharge applied by the payment provider (for example, a card processing fee), in the same currency as price. Defaults to 0. |
paymentCompletedBy | string | Identifier of the user who completed the payment. |
vat | decimal | VAT amount included in the invoice, in the same currency as price. Defaults to 0. |
vatPercent | number (float) | VAT rate applied to the invoice, expressed as a percentage (for example, 20.0 for 20%). Defaults to 0. |
orderDiscount | decimal | Discount applied to the order, in the same currency as price. Falls back to the institutional agreement's discount when no order-level discount is set. Defaults to 0. |
Example payload
json
{
"publicationId": "PUB-2026-000123",
"manuscriptId": "MS-2026-000123",
"manuscriptTitle": "Advances in Example-Driven Research",
"articleType": "Research Article",
"doi": "10.1234/jes.2026.000123",
"journalId": "JRN-001",
"journalName": "Journal of Example Studies",
"correspondingAuthorName": "Jane Doe",
"authorCountry": "United Kingdom",
"ringgoldName": "Example University",
"ringgoldId": "12345",
"dateSubmitted": "2026-01-15T08:00:00Z",
"dateAccepted": "2026-03-10T11:20:00Z",
"dateArticleWithdrawn": null,
"institutionalAgreementName": "Example University Read & Publish",
"institutionalAgreementType": "ReadAndPublish",
"agreementDate": "2026-01-01T00:00:00Z",
"invoiceId": 987654,
"invoiceDate": "2026-04-19T10:00:00Z",
"datePaymentCompleted": "2026-04-20T14:15:00Z",
"invoiceRef": "INV-2026-000123",
"paymentType": "CreditCard",
"price": 1200.00,
"currency": "USD",
"paymentCharge": 35.50,
"paymentCompletedBy": "user-abc123",
"vat": 240.00,
"vatPercent": 20.0,
"orderDiscount": 100.00
}File links
This event carries no file links.
Related events
- License Signed shares the same manuscript-context block and describes the licensing milestone of the same publication.
- Manuscript Uploaded is the event for a manuscript being uploaded in ChronosHub.
Notes
- All timestamps are serialised as ISO 8601 strings.
- The manuscript context block (identity, journal, corresponding author, and institutional agreement) is shared with the License Signed event, so a partner can build or reconcile a manuscript record from either post-acceptance milestone.
- Nullable date fields (
dateSubmitted,dateAccepted,dateArticleWithdrawn,agreementDate,invoiceDate) are emitted asnullwhen no value is recorded. String fields default to an empty string rather thannull. - The corresponding-author fields describe the first listed corresponding author and their primary affiliation.
- Monetary amounts (
price,paymentCharge,vat,orderDiscount) are expressed in the currency given bycurrencyand are serialised as JSON numbers with decimal precision. - This payload describes the event data only — not the transport-level envelope (event id, event type, signature headers, and so on).