# The Off Session Payment object

### The Off Session Payment object

```json
{
  "amount_requested": {
    "value": 2000,
    "currency": "usd"
  },
  "cadence": "recurring",
  "created": "2025-01-01T00:00:00.000Z",
  "customer": "cus_SJjFsJvGPQKfH1",
  "failure_reason": null,
  "id": "osp_test_6pO5OrRN03IzV8rd3BaY",
  "last_authorization_attempt_error": null,
  "latest_payment_attempt_record": "par_test_65ScpVhNz9xBDZWOi8n41LUaWUrHDArR0K",
  "livemode": false,
  "metadata": {},
  "object": "v2.payments.off_session_payment",
  "on_behalf_of": null,
  "payment_method": "pm_1RP6TAG7mvlzf7RNfspLoGQ9",
  "payment_record": "pr_test_65ScpUdmQCOf291sX8n41LUaWUrHDArBhg",
  "retry_details": {
    "attempts": 1,
    "retry_strategy": "smart"
  },
  "statement_descriptor": null,
  "statement_descriptor_suffix": null,
  "status": "succeeded",
  "test_clock": null,
  "transfer_data": null
}
```

## Attributes

- `id` (string)
  Unique identifier for the object.

- `object` (string, value is "v2.payments.off_session_payment")
  String representing the object’s type. Objects of the same type share the same value of the object field.

- [`amount_requested`](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md?query=amount_requested) (object)
  Amount intended to be collected by this payment.

- `application` (string, nullable)
  The application associated with this OffSessionPayment.

- [`application_fee_amount_requested`](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md?query=application_fee_amount_requested) (object, nullable)
  The amount of the application fee requested to be applied to the payment.

- `cadence` (enum)
  The frequency of the underlying payment.
Possible enum values:
  - `recurring`
    Indicates a transaction occurring on a regular interval.

  - `unscheduled`
    Indicates a transaction occurring at irregular periods.

- `created` (timestamp)
  Creation time of the OffSessionPayment. Represented as a RFC 3339 date & time UTC value in millisecond precision, for example: 2022-09-18T13:22:18.123Z.

- `customer` (string)
  ID of the Customer to which this OffSessionPayment belongs.

- `description` (string, nullable)
  An arbitrary string attached to the object. Often useful for displaying to users.

- `failure_reason` (enum, nullable)
  The reason why the OffSessionPayment failed.
Possible enum values:
  - `authorization_expired`
    The payment failed because the authorization expired.

  - `exceeded_retry_window`
    The payment failed because it exceeded its retry window while paused.

  - `no_valid_payment_method`
    The payment failed because there is no valid payment method. This may occur when the payment method is detached from the customer, the underlying card is deleted, or the attached mandate is deactivated.

  - `rejected_by_partner`
    The payment failed because the payment partner returned a terminal failure.

  - `retries_exhausted`
    The payment failed because we ran out of retry attempts.

- `last_authorization_attempt_error` (string, nullable)
  The payment error encountered in the previous attempt to authorize the payment.

- `latest_payment_attempt_record` (string, nullable)
  Payment attempt record for the latest attempt, if one exists.

- `livemode` (boolean)
  Has the value true if the object exists in live mode or the value false if the object exists in test mode.

- `metadata` (map)
  Set of [key-value pairs](https://docs.stripe.com/api/metadata.md) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Learn more about [storing information in metadata](https://docs.stripe.com/payments/payment-intents.md#storing-information-in-metadata).

- `on_behalf_of` (string, nullable)
  The account (if any) for which the funds of the OffSessionPayment are intended.

- `payment_method` (string)
  ID of the payment method used in this OffSessionPayment.

- `payment_record` (string, nullable)
  Payment record associated with the OffSessionPayment.

- [`payments_orchestration`](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md?query=payments_orchestration) (object)
  Details about the payments orchestration configuration.

- [`retry_details`](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md?query=retry_details) (object)
  Details about the OffSessionPayment retries.

- `statement_descriptor` (string, nullable)
  Text that appears on the customer’s statement as the statement descriptor for a non-card charge. This value overrides the account’s default statement descriptor. For information about requirements, including the 22-character limit, see the [Statement Descriptor docs](https://docs.stripe.com/get-started/account/statement-descriptors.md).

- `statement_descriptor_suffix` (string, nullable)
  Provides information about a card charge. Concatenated to the account’s [statement descriptor prefix](https://docs.stripe.com/get-started/account/statement-descriptors.md#static) to form the complete statement descriptor that appears on the customer’s statement.

- `status` (enum)
  Status of this OffSessionPayment, one of `pending`, `pending_retry`, `processing`, `failed`, `canceled`, or `succeeded`.
Possible enum values:
  - `canceled`
    The payment was manually canceled.

  - `failed`
    The payment is terminally failed.

  - `paused`
    The payment was manually paused.

  - `pending`
    Payment has not yet been attempted.

  - `pending_retry`
    The payment failed a previous attempt and will be retried automatically.

  - `processing`
    The payment is currently processing an authorization attempt. Any manual operations on it will be blocked.

  - `succeeded`
    The payment has successfully moved money.

- `target_date` (string, nullable)
  Provides a way to schedule deferred payments for cards and debits, in YYYY-MM-DD format.

- `test_clock` (string, nullable)
  Test clock that can be used to advance the retry attempts in a sandbox.

- [`transfer_data`](https://docs.stripe.com/api/v2/payments/off-session-payments/object.md?query=transfer_data) (object, nullable)
  The data that automatically creates a Transfer after the payment finalizes. Learn more about the use case for [connected accounts](https://docs.stripe.com/payments/connected-accounts.md).
