Use the OutboundSetupIntent API to create and setup usable payout methods.
Attributes
- idstring
ID of the outbound setup intent.
- objectstring, 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.
- createdtimestamp
Created timestamp.
- livemodeboolean
Has the value
trueif the object exists in live mode or the valuefalseif the object exists in test mode. - next_
actionnullable object Specifies which actions needs to be taken next to continue setup of the credential.
- payout_
methodobject Information about the payout method that’s created and linked to this outbound setup intent.
- statusenum
Status of the outbound setup intent.
Possible enum valuescanceledThe 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.
succeededIf 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_
intentenum The intended money movement flow this payout method should be set up for, specified in params.
Possible enum valuespaymentSetup for outbound payments.
transferSetup for outbound transfers.
{ "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" ] }, "created": "2025-04-01T14:13:12.295Z", "latest_outbound_setup_intent": "osi_test_61SITWK7KhLsQIGAK16QsOpAPpE97EJALhqt1U5mC4kq", "type": "bank_account", "usage_status": { "payments": "requires_action", "transfers": "eligible" } }, "status": "requires_action", "usage_intent": "payment"}Create an OutboundSetupIntent object.
Learn more about calling API v2 endpoints.Parameters
- payout_
methodstring If provided, the existing payout method resource to link to this setup intent. Any payout_method_data provided is used to update information on this linked payout method resource.
- payout_
method_ dataobject 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.
- usage_
intentenum Specify which type of outbound money movement this credential should be set up for (payment | transfer). If not provided, defaults to payment.
Possible enum valuespaymentSetup for outbound payments.
transferSetup for outbound transfers.
Returns
Response attributes
- idstring
ID of the outbound setup intent.
- objectstring, 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.
- createdtimestamp
Created timestamp.
- livemodeboolean
Has the value
trueif the object exists in live mode or the valuefalseif the object exists in test mode. - next_
actionnullable object Specifies which actions needs to be taken next to continue setup of the credential.
- payout_
methodobject Information about the payout method that’s created and linked to this outbound setup intent.
- statusenum
Status of the outbound setup intent.
Possible enum valuescanceledThe 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.
succeededIf 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_
intentenum The intended money movement flow this payout method should be set up for, specified in params.
Possible enum valuespaymentSetup for outbound payments.
transferSetup for outbound transfers.
Returned when the outbound setup intent cannot be created for a given payout method because the payout method already has another active outbound setup intent.
Returned when the bank account cannot be added due to previous suspicious activity.
Returned in cases where the card cannot be used due to suspicious activity.
Returned in cases where the ID provided doesn’t correspond to a valid payout method.
Returned in cases where the PayoutMethodBankAccount object provided is not valid (wrong format of credentials that does not correspond to a banking institution).
Returned in cases where the PayoutMethodCard object is not valid.
Returned when attempting to update non-updatable credential data.
Returned when the credential ID provided corresponds to a resource that does not allow usage as a payout method.
Returned when the number of country bank accounts has exceeded the limit in a given workspace. PayoutMethodBankAccount objects may be archived with the /archive API, at which point they will not count against the limit. If you are not passing a V2 Account ID in the Stripe-Context header you may receive this error since you are creating all your bank account objects in your own workspace.
Returned when the number of cards has exceeded the limit in a given workspace. PayoutMethodCard objects may be archived with the /archive API, at which point they will not count against the limit. If you are not passing a V2 Account ID in the Stripe-Context header you may receive this error since you are creating all your bank account objects in your own workspace.
Returned in cases where Stripe is unable to support this bank at this time.
An idempotent retry occurred with different request parameters.
{ "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" ] }, "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}Update an OutboundSetupIntent object.
Learn more about calling API v2 endpoints.Parameters
- idstringRequired
ID of the OutboundSetupIntent object.
- payout_
methodstring If provided, the existing payout method resource to link to this outbound setup intent.
- payout_
method_ dataobject 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
- idstring
ID of the outbound setup intent.
- objectstring, 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.
- createdtimestamp
Created timestamp.
- livemodeboolean
Has the value
trueif the object exists in live mode or the valuefalseif the object exists in test mode. - next_
actionnullable object Specifies which actions needs to be taken next to continue setup of the credential.
- payout_
methodobject Information about the payout method that’s created and linked to this outbound setup intent.
- statusenum
Status of the outbound setup intent.
Possible enum valuescanceledThe 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.
succeededIf 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_
intentenum The intended money movement flow this payout method should be set up for, specified in params.
Possible enum valuespaymentSetup for outbound payments.
transferSetup for outbound transfers.
Returned when attempting to update an archived card.
Returned in cases where the card cannot be used due to suspicious activity.
Returned when attempting to update an outbound setup intent in a terminal state (canceled or succeeded).
Returned in cases where the PayoutMethodCard object is not valid.
The resource wasn’t found.
{ "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", "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}Retrieve an OutboundSetupIntent object.
Learn more about calling API v2 endpoints.Parameters
- idstringRequired
ID of the OutboundSetupIntent object.
Returns
Response attributes
- idstring
ID of the outbound setup intent.
- objectstring, 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.
- createdtimestamp
Created timestamp.
- livemodeboolean
Has the value
trueif the object exists in live mode or the valuefalseif the object exists in test mode. - next_
actionnullable object Specifies which actions needs to be taken next to continue setup of the credential.
- payout_
methodobject Information about the payout method that’s created and linked to this outbound setup intent.
- statusenum
Status of the outbound setup intent.
Possible enum valuescanceledThe 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.
succeededIf 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_
intentenum The intended money movement flow this payout method should be set up for, specified in params.
Possible enum valuespaymentSetup for outbound payments.
transferSetup for outbound transfers.
The resource wasn’t found.
{ "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" ] }, "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}