# The OffSessionPayment object

### The OffSessionPayment object

```json
{
  "amount_requested": {
    "value": 2000,
    "currency": "usd"
  },
  "cadence": "recurring",
  "compartment_id": "wksp_test_6OdsB30MSQB61rhH1uYqVKa",
  "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)
  ID of the OSP.

- `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/off-session-payments/object.md?query=amount_requested) (object)
  The amount you requested to be collected on the OSP upon creation.

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

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

- `compartment_id` (string)
  ID of owning compartment.

- `created` (timestamp)
  Timestamp of creation.

- `customer` (string)
  Customer owning the supplied payment method.

- `failure_reason` (enum, nullable)
  Reason why the OSP failed.
Possible enum values:
  - `rejected_by_partner`
    OSP failed because the payment partner returned a terminal failure.

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

- `last_authorization_attempt_error` (string, nullable)
  Last error returned by the financial partner for a failed authorization.

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

- `livemode` (boolean)
  True if the txn is livemode, false otherwise.

- `metadata` (map)
  Metadata you provided.

- `on_behalf_of` (string, nullable)
  OBO, same as on the PI.

- `payment_method` (string)
  ID of payment method.

- `payment_record` (string, nullable)
  Payment record associated with the OSP. consistent across attempts.

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

- `statement_descriptor` (string, nullable)
  Statement descriptor you provided.

- `statement_descriptor_suffix` (string, nullable)
  Statement descriptor suffix you provided, similar to that on the PI.

- `status` (enum)
  Status of the OSP.
Possible enum values:
  - `canceled`
    User canceled the OSP.

  - `failed`
    OSP is terminally failed.

  - `pending`
    OSP has not yet been attempted.

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

  - `processing`
    OSP is currently processing an attempt. Do not operate on it.

  - `requires_capture`
    OSP is awaiting capture.

  - `succeeded`
    OSP successfully moved money.

- `test_clock` (string, nullable)
  Test clock to be used to advance the retry attempts.

- [`transfer_data`](https://docs.stripe.com/api/v2/off-session-payments/object.md?query=transfer_data) (object, nullable)
  Instructions for the transfer to be made with this OSP after successful money movement.
