# Retrieve a customer timeline message

Retrieves a customer message with a specified ID.

Endpoint: GET /customers/{id}/timeline/{messageId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `messageId` (string, required)
  ID of the customer timeline message.

## Response 200 fields

- `id` (string)
  ID of the customer timeline custom event.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "account-password-reset-requested", "account-verification-requested", "aml-list-was-possibly-matched", "deposit-request-completed", "deposit-request-created", "deposit-request-expired", "deposit-request-started", "coupon-applied", "coupon-redeemed", "coupon-redemption-canceled", "custom-event", "custom-event-processed", "custom-fields-changed", "customer-bank-account-blocked", "customer-blocked", "customer-comment-created", "customer-created", "customer-merged", "customer-payment-card-blocked", "customer-requested-otp", "customer-tagged", "customer-untagged", "default-payment-instrument-changed", "email-message-sent", "experian-check-performed", "invoice-abandoned", "invoice-created", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-revenue-recognized", "invoice-voided", "kyc-document-accepted", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-fulfilled", "lead-source-changed", "order-activated", "order-canceled", "order-churned", "order-completed", "order-created", "order-downgraded", "order-change-applied", "order-change-canceled", "order-change-created", "order-paid-early", "order-reactivated", "order-renewed", "order-trial-ended", "order-upgraded", "payment-card-expiration-was-modified", "payment-card-expired", "payment-instrument-created", "payment-instrument-deactivated", "primary-address-changed", "quickbooks-customer-created", "quickbooks-customer-task-failed", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-order-attached", "quote-recalled", "quote-rejected", "quote-updated", "refund-was-reflected-in-invoices", "subscription-pause-created", "subscription-pause-revoked", "subscription-paused", "subscription-resumed", "subscription-trial-end-changed", "transaction-abandoned", "transaction-amount-discrepancy-found", "transaction-approved", "transaction-canceled", "transaction-declined", "transaction-discrepancy-found", "transaction-disputed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-voided", "transaction-waiting-gateway", "wallet-admin-credited", "wallet-admin-debited"
- `customEventType` (string | null)
  Timeline custom event type. Used with `custom-event` type. This value must be defined using the Create customer timeline custom event type operation.
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Detailed message description.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `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)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `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", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## Response 401 fields

- `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

- `status` (integer)
  HTTP status code.
- `error` (string)
  Message that describes why the request is forbidden. Most responses use a descriptive message, such as `Not allowed to change security settings`. If the organization requires multi-factor authentication (MFA) and MFA verification has not been completed for the session, this value is `mfa_required`. If the request sets `requireMfa` to `true` and MFA verification has not been completed for the session, this value is `mfa_required_for_caller`. If the organization restricts access to a list of IP addresses and the request comes from an IP address that is not in the list, this value is `ip_not_allowed`.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `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 404 fields

- `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.
