# Create an invoice timeline comment Creates an invoice timeline comment. Endpoint: POST /invoices/{id}/timeline Version: latest Security: SecretApiKey, JWT ## Path parameters: - `id` (string, required) ID of the resource. ## Request fields (application/json): - `message` (string) Describes the message details. ## Response 201 fields (application/json): - `id` (string) ID of the timeline message. Example: "tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC" - `type` (string) Type of timeline message. Enum: "coupon-applied", "email-message-sent", "invoice-abandoned", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-renewal-payment-declined", "invoice-revenue-recognized", "invoice-tax-calculation-failed", "invoice-voided", "quickbooks-credit-memo-created", "quickbooks-credit-memo-voided", "quickbooks-invoice-created", "quickbooks-invoice-task-failed", "quickbooks-invoice-updated", "quickbooks-invoice-voided", "quickbooks-revenue-recognition-created", "timeline-comment-created", "transaction-abandoned", "transaction-approved", "transaction-canceled", "transaction-declined", "transaction-initiated", "transaction-refunded", "transaction-voided" - `triggeredBy` (string) Specifies who, or what, triggered the timeline event. Enum: "rebilly", "app", "direct-api" - `message` (string) Describes the message details. - `extraData` (object) Additional data. - `extraData.actions` (array) Actions available for a timeline message. If no actions are available, this field is empty. - `extraData.tables` (array) Table data that is attached to the timeline message. - `extraData.tables.type` (string) Enum: "list", "one-columns", "two-columns", "three-columns" - `extraData.tables.title` (string) Data table title. - `extraData.tables.footer` (string) Data table footer. - `extraData.author` (object) Author of the timeline message. - `extraData.author.userFullName` (string) Author's full name. - `extraData.author.userId` (string) Author's user ID. Example: "usr_0YVCEENYJ3D7Q9EN6BN16HA0G4" - `extraData.mentions` (object) User mentions, or tags, in a timeline. Example: {"@test@mail.com":"userId-1"} - `extraData.links` (array) Links that are attached to a timeline message. - `extraData.links.resourceType` (string) Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external" - `extraData.links.resourceId` (string) Unique resource ID. - `extraData.links.placeholder` (string) Example: "KYC document" - `extraData.links.externalUrl` (string) Example: "http://example.com" - `occurredTime` (string) Date and time when the timeline message occurred. - `_links` (array) Related links. - `_links.href` (string) Link URL. - `_links.rel` (string) Type of link. Enum: "self" ## Response 401 fields (application/json): - `status` (integer) HTTP status code. - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. ## Response 403 fields (application/json): - `status` (integer) HTTP status code. - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. ## Response 422 fields (application/json): - `status` (integer) HTTP status code. - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. - `invalidFields` (array) Invalid field details. Example: [{"field":"field1","message":"field1 is invalid"},{"field":"subObject.field2","message":"field2 is invalid"},{"field":"subObject.field2","message":"another error in the field2"}] - `invalidFields.field` (string) Name of the field. Dot notation is used for nested object field names. - `invalidFields.message` (string) Message field. ## Response 429 fields (application/json): - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". Example: "about:blank" - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. Example: "Rate Limit Exceeded" - `status` (integer) HTTP status code. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. Example: "A request cannot be executed because the user has sent too many requests within a certain period of time" - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.