# Update an Outbound Setup Intent

Update an OutboundSetupIntent object.

## Request

```curl
curl -X POST https://api.stripe.com/v2/money_management/outbound_setup_intents/osi_test_61SITa5aMrGNcpWTI16QsOpAPpE97EJALhqt1U5mC85I \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-03-25.preview" \
  --json '{
    "payout_method_data": {
        "type": "card"
    }
  }'
```

### Response

```json
{
  "id": "osi_test_61SITa5aMrGNcpWTI16QsOpAPpE97EJALhqt1U5mC85I",
  "object": "v2.money_management.outbound_setup_intent",
  "created": "2025-04-01T14:17:05.000Z",
  "next_action": null,
  "payout_method": {
    "id": "card_test_61SITa59fSaPfOGuU16QsOpAPpE97EJALhqt1U5mC1lg",
    "object": "v2.money_management.payout_method",
    "available_payout_speeds": [
      "standard",
      "instant"
    ],
    "card": {
      "archived": false,
      "exp_month": "12",
      "exp_year": "2030",
      "fingerprint": "k2E5yfcy8efOo0G1",
      "last4": "5556"
    },
    "created": "2025-04-01T14:17:05.425Z",
    "latest_outbound_setup_intent": "osi_test_61SITa5aMrGNcpWTI16QsOpAPpE97EJALhqt1U5mC85I",
    "type": "card",
    "usage_status": {
      "payments": "eligible",
      "transfers": "eligible"
    },
    "livemode": false
  },
  "status": "succeeded",
  "usage_intent": "payment",
  "livemode": false
}
```

## Parameters

- `payout_method` (string, optional)
  If provided, the existing payout method resource to link to this outbound setup intent.

- [`payout_method_data`](https://docs.stripe.com/api/v2/money-management/outbound-setup-intents/update.md?query=payout_method_data&api-version=2026-03-25.preview) (object, optional)
  If no payout_method provided, used to create the underlying credential that is set up for outbound money movement. If a payout_method provided, used to update data on the credential linked to this setup intent.

## 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`](https://docs.stripe.com/api/v2/money-management/outbound-setup-intents/update.md?query=next_action&api-version=2026-03-25.preview) (object, nullable)
  Specifies which actions needs to be taken next to continue setup of the credential.

- [`payout_method`](https://docs.stripe.com/api/v2/money-management/outbound-setup-intents/update.md?query=payout_method&api-version=2026-03-25.preview) (object)
  Use the PayoutMethods API to list and interact with PayoutMethod objects.

- `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 |
| --- | --- | --- |
| 400 | archived_payout_method_card | Returned when attempting to update an archived card. |
| 400 | blocked_payout_method_card | Returned in cases where the card cannot be used due to suspicious activity. |
| 400 | cannot_update_terminal_outbound_setup_intent | Returned when attempting to update an outbound setup intent in a terminal state (canceled or succeeded). |
| 400 | invalid_payout_method_card | Returned in cases where the PayoutMethodCard object is not valid. |
| 400 | payout_method_cannot_be_updated | Returned when attempting to update a Payout Method controlled by another resource. |
| 404 | not_found | The resource wasn’t found. |
