# Retrieve an Outbound Setup Intent

Retrieve an OutboundSetupIntent object.

## Returns

## Response attributes

- `id` (string)
  ID of the outbound setup intent.

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

- `created` (timestamp)
  Created timestamp.

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

- `next_action` (object, nullable)
  Specifies which actions needs to be taken next to continue setup of the credential.

  - `next_action.confirmation_of_payee` (object, nullable)
    Confirmation of Payee details.

    - `next_action.confirmation_of_payee.object` (string)
      The type of the credential.

    - `next_action.confirmation_of_payee.status` (enum)
      The Confirmation of Payee status.
Possible enum values:
      - `awaiting_acknowledgement`
        The check resulted in a non-match, partial match, or the service was unavailable. Explicit acknowledgement is required to make payments to this account.

      - `confirmed`
        Either the account matches what was provided or there was explicit acknowledgement of the status. OutboundPayments can be made to the bank account.

      - `uninitiated`
        No confirmation of payee check has happened on this account. Use InitiateConfirmationOfPayee to check the user’s information against bank records before making OutboundPayments.

  - `next_action.type` (enum)
    The type of next action.
Possible enum values:
    - `confirmation_of_payee`
      Confirmation of Payee must be performed in order to make this payout method usable for the specified outbound money movement.

- `payout_method` (object)
  Use the PayoutMethods API to list and interact with PayoutMethod objects.

  - `payout_method.id` (string)
    ID of the PayoutMethod object.

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

  - `payout_method.alternative_reference` (object, nullable)
    The alternative reference for this payout method, if it’s a projected payout method.

    - `payout_method.alternative_reference.id` (string)
      The ID of the alternative resource being referenced.

    - `payout_method.alternative_reference.type` (enum)
      The type of the alternative reference (e.g., external_account for V1 external accounts).
Possible enum values:
      - `external_account`
        V1 External Account.

      - `payment_method`
        V1 Payment Method.

  - `payout_method.available_payout_speeds` (array of enums)
    A set of available payout speeds for this payout method.
Possible enum values:
    - `instant`
      Instant.

    - `standard`
      Standard.

  - `payout_method.bank_account` (object, nullable)
    The PayoutMethodBankAccount object details.

    - `payout_method.bank_account.archived` (boolean)
      Whether this PayoutMethodBankAccount object was archived. PayoutMethodBankAccount objects can be archived through the /archive API, and they will not be automatically archived by Stripe. Archived PayoutMethodBankAccount objects cannot be used as payout methods and will not appear in the payout method list.

    - `payout_method.bank_account.bank_account_type` (enum)
      The type of bank account (checking or savings).
Possible enum values:
      - `checking`
        Checking account.

      - `savings`
        Savings account.

    - `payout_method.bank_account.bank_name` (string)
      The name of the bank this bank account is in. This field is populated automatically by Stripe.

    - `payout_method.bank_account.branch_number` (string, nullable)
      The branch number of the bank account, if present.

    - `payout_method.bank_account.country` (string)
      The country code of the bank account.

    - `payout_method.bank_account.enabled_delivery_options` (array of strings)
      List of enabled flows for this bank account (wire or local).

    - `payout_method.bank_account.financial_connections_account` (string, nullable)
      The ID of the Financial Connections Account used to create the bank account.

    - `payout_method.bank_account.last4` (string)
      The last 4 digits of the account number.

    - `payout_method.bank_account.routing_number` (string, nullable)
      The routing number of the bank account, if present.

    - `payout_method.bank_account.supported_currencies` (array of strings)
      The list of currencies supported by this bank account.

    - `payout_method.bank_account.swift_code` (string, nullable)
      The swift code of the bank or financial institution.

  - `payout_method.card` (object, nullable)
    The PayoutMethodCard object details.

    - `payout_method.card.archived` (boolean)
      Whether the PayoutMethodCard object was archived. PayoutMethodCard objects can be archived through the /archive API, and they will not be automatically archived by Stripe. Archived PayoutMethodCard objects cannot be used as payout methods and will not appear in the payout method list.

    - `payout_method.card.exp_month` (string)
      The month the card expires.

    - `payout_method.card.exp_year` (string)
      The year the card expires.

    - `payout_method.card.fingerprint` (string)
      Uniquely identifies this particular card number. You can use this attribute to check whether two recipients who’ve signed up with you are using the same card number, for example.

    - `payout_method.card.last4` (string)
      The last 4 digits of the card number.

    - `payout_method.card.supported_currencies` (array of strings)
      The list of currencies supported by this bank account.

  - `payout_method.created` (timestamp)
    Created timestamp.

  - `payout_method.latest_outbound_setup_intent` (string, nullable)
    ID of the underlying active OutboundSetupIntent object, if any.

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

  - `payout_method.restricted` (boolean)
    Whether the Payout Method is currently unusable for money movement, despite potentially being correctly set up. Please reach out to Stripe Support for more information.

  - `payout_method.type` (enum)
    The type of payout method.
Possible enum values:
    - `bank_account`
      Bank account.

    - `card`
      Card.

    - `crypto_wallet`
      Crypto wallet.

  - `payout_method.usage_status` (object)
    Indicates whether the payout method has met the necessary requirements for outbound money movement.

    - `payout_method.usage_status.payments` (enum)
      Payments status - used when sending OutboundPayments (sending funds to recipients).
Possible enum values:
      - `eligible`
        Resources that have met all the necessary requirements.

      - `invalid`
        Resources that can’t ever support the specified flow (e.g credit cards for transfers).

      - `requires_action`
        Resources that need to meet more requirements / need to do more actions in order to be made usable.

    - `payout_method.usage_status.transfers` (enum)
      Transfers status - used when making an OutboundTransfer (sending funds to yourself).
Possible enum values:
      - `eligible`
        Resources that have met all the necessary requirements.

      - `invalid`
        Resources that can’t ever support the specified flow (e.g credit cards for transfers).

      - `requires_action`
        Resources that need to meet more requirements / need to do more actions in order to be made usable.

- `status` (enum)
  Status of the outbound setup intent.
Possible enum values:
  - `canceled`
    The user may cancel the outbound setup intent at any time prior to reaching the succeeded status. The outbound setup intent will no longer be usable. This is a terminal status.

  - `requires_action`
    Some additional setup steps need to be done to fully set up the credential for the specified usage intent. Additional steps are specified in next_action.

  - `requires_payout_method`
    When the outbound setup intent is created, it begins in this status if no payout_method_data is provided. The outbound setup intent will also transition back to this status if a setup failure occurs. The user will then need to provide new payout_method_data to continue.

  - `succeeded`
    If no additional setup actions need to be done i.e. credential is fully set up for the specified usage intent. This is a terminal status.

- `usage_intent` (enum)
  The intended money movement flow this payout method should be set up for, specified in params.
Possible enum values:
  - `payment`
    Setup for outbound payments.

  - `transfer`
    Setup for outbound transfers.

## Error Codes

| HTTP status code | Code      | Description                |
| ---------------- | --------- | -------------------------- |
| 404              | not_found | The resource wasn’t found. |

```curl
curl https://api.stripe.com/v2/money_management/outbound_setup_intents/osi_test_61SITWK7KhLsQIGAK16QsOpAPpE97EJALhqt1U5mC4kq \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-03-25.preview"
```

### Response

```json
{
  "id": "osi_test_61SITWK7KhLsQIGAK16QsOpAPpE97EJALhqt1U5mC4kq",
  "object": "v2.money_management.outbound_setup_intent",
  "created": "2025-04-01T14:13:12.000Z",
  "next_action": {
    "confirmation_of_payee": {
      "object": "core.vault.gb_bank_account",
      "status": "uninitiated"
    },
    "type": "confirmation_of_payee"
  },
  "payout_method": {
    "id": "gbba_test_61SITWKOFwHCpdRSV16QsOpAPpE97EJALhqt1U5mCDyS",
    "object": "v2.money_management.payout_method",
    "available_payout_speeds": [
      "standard"
    ],
    "bank_account": {
      "archived": false,
      "bank_name": "Test Bank",
      "country": "GB",
      "enabled_delivery_options": [
        "local"
      ],
      "last4": "2345",
      "routing_number": "108800",
      "supported_currencies": [
        "gbp"
      ],
      "bank_account_type": "checking"
    },
    "created": "2025-04-01T14:13:12.295Z",
    "latest_outbound_setup_intent": "osi_test_61SITWK7KhLsQIGAK16QsOpAPpE97EJALhqt1U5mC4kq",
    "type": "bank_account",
    "usage_status": {
      "payments": "requires_action",
      "transfers": "eligible"
    },
    "livemode": false
  },
  "status": "requires_action",
  "usage_intent": "payment",
  "livemode": false
}
```
