# CheckoutError The Flow `CheckoutError` class is a sealed class that extends the standard Kotlin `Exception` class. There are four types as follows: * `CheckoutError.Integration` * `CheckoutError.Request` * `CheckoutError.PaymentMethod` * `CheckoutError.Submit` Each type contains the following properties: | Property | Type | Description | | --- | --- | --- | | `message` | `String` | A human-readable description of the error. The description is subject to change. For example, to improve clarity. To ensure you catch errors correctly, reference the values returned by the `type` and `code` fields instead. | | `code` | `CheckoutErrorCode` | A code representing the error. To see how to resolve it, see [Error codes](https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-mobile-app/flow-for-mobile-library-reference/android/error-codes.md). | | `details` | `CheckoutErrorDetails` | Additional error properties.

All error types provide the following properties in the `CheckoutErrorDetails` object:

- `mobileSessionId`
- `paymentSessionId`
- `type`
- `CheckoutError.Request` | ## CheckoutError.Integration Integration errors are caused by an invalid use of the Flow for mobile SDK. `CheckoutError.Integration` contain the following properties within the `CheckoutErrorDetails.Integration` object: | Property | Type | Description | | --- | --- | --- | | `mobileSessionId` | `String` | The unique identifier of the browser session that created the `FlowComponent`. | | `paymentSessionId` | `String` | The unique identifier of the [payment session response](https://api-reference.checkout.com/tag/Flow/#operation/CreatePaymentSession!c=201&path=id&t=response). | | `type` | `PaymentMethodName?` | The name of the payment method used for the payment, if applicable. | ## CheckoutError.Request Request errors are caused by network request failures. `CheckoutError.Request` contain the following properties within the `CheckoutErrorDetails.Request` object: | Property | Type | Description | | --- | --- | --- | | `mobileSessionId` | `String` | The unique identifier of the browser session that created the FlowComponent. | | `paymentSessionId` | `String` | The unique identifier of the provided [payment session response](https://api-reference.checkout.com/tag/Flow/#operation/CreatePaymentSession!c=201&path=id&t=response). | | `type` | `PaymentMethodName?` | The name of the payment method used for the payment, if applicable. | | `paymentId` | `String?` | The unique identifier for the declined payment request. | | `requestErrorCodes` | `List\?` | Additional error codes returned from the network request. | | `requestId` | `String?` | The unique identifier for the network request. | | `status` | `Int?` | The HTTP response status code for the network request. | ## CheckoutError.PaymentMethod Payment method errors are caused by unexpected failures when integrating a payment method's client-side library. `CheckoutError.PaymentMethod` contain the following properties within the `CheckoutErrorDetails.`PaymentMethod object: | Property | Type | Description | | --- | --- | --- | | `mobileSessionId` | `String` | The unique identifier of the browser session that created the `FlowComponent` | | `paymentSessionId` | `String` | The unique identifier of the provided [payment session response](https://api-reference.checkout.com/#operatioCreatePaymentSession!c=201&path=id&t=response). | | `type` | `PaymentMethodName` | The name of the payment method used for the payment, if applicable | ## CheckoutError.Submit Submit errors are caused by invalid attempts to submit a payment request. `CheckoutError.Submit` contain the following properties within the `CheckoutErrorDetails.Submit` object: | Property | Type | Description | | --- | --- | --- | | `mobileSessionId` | `String` | The unique identifier of the browser session that created the `FlowComponent`. | | `paymentSessionId` | `String` | The unique identifier of the provided [payment session response](https://api-reference.checkout.com/tag/Flow/#operation/CreatePaymentSession!c=201&path=id&t=response). | | `type` | `PaymentMethodName` | The name of the payment method used for the payment, if applicable. |