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.
- payout_method_data.
bank_ accountobject The type specific details of the bank account payout method.
- payout_method_data.
bank_account. account_ numberstringRequired The account number or IBAN of the bank account.
- payout_method_data.
bank_account. bank_ account_ typeenum The type of the bank account (checking or savings).
Possible enum valuescheckingChecking account.
savingsSavings account.
- payout_method_data.
bank_account. branch_ numberstring The branch number of the bank account, if present.
- payout_method_data.
bank_account. countrystringRequired The country code of the bank account.
- payout_method_data.
bank_account. routing_ numberstring The routing number of the bank account, if present.
- payout_method_data.
bank_account. swift_ codestring The swift code of the bank account, if present.
- payout_method_data.
typeenumRequired The type of payout method to be created.
Possible enum valuesbank_account Bank account.
cardCard.
crypto_wallet Crypto wallet.
- 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.
- next_action.
confirmation_ of_ payeenullable object Confirmation of Payee details.
- next_action.
confirmation_of_payee. objectstring The type of the credential.
- next_action.
confirmation_of_payee. statusenum The Confirmation of Payee status.
Possible enum valuesawaiting_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.
confirmedEither the account matches what was provided or there was explicit acknowledgement of the status. OutboundPayments can be made to the bank account.
uninitiatedNo 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.
typeenum The type of next action.
Possible enum valuesconfirmation_of_ payee Confirmation of Payee must be performed in order to make this payout method usable for the specified outbound money movement.
- payout_
methodobject Information about the payout method that’s created and linked to this outbound setup intent.
- payout_method.
idstring ID of the PayoutMethod object.
- payout_method.
objectstring, 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.
available_ payout_ speedsarray of enums A set of available payout speeds for this payout method.
Possible enum valuesinstantInstant.
standardStandard.
- payout_method.
bank_ accountnullable object The PayoutMethodBankAccount object details.
- payout_method.
bank_account. archivedboolean 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_ typeenum The type of bank account (checking or savings).
Possible enum valuescheckingChecking account.
savingsSavings account.
- payout_method.
bank_account. bank_ namestring The name of the bank this bank account is in. This field is populated automatically by Stripe.
- payout_method.
bank_account. countrystring The country code of the bank account.
- payout_method.
bank_account. enabled_ delivery_ optionsarray of strings List of enabled flows for this bank account (wire or local).
- payout_method.
bank_account. last4string The last 4 digits of the account number.
- payout_method.
bank_account. routing_ numbernullable string The routing number of the bank account, if present.
- payout_method.
bank_account. supported_ currenciesarray of strings The list of currencies supported by this bank account.
- payout_method.
cardnullable object The PayoutMethodCard object details.
- payout_method.
card. archivedboolean 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_ monthstring The month the card expires.
- payout_method.
card. exp_ yearstring The year the card expires.
- payout_method.
card. last4string The last 4 digits of the card number.
- payout_method.
createdtimestamp Created timestamp.
- payout_method.
latest_ outbound_ setup_ intentnullable string ID of the underlying active OutboundSetupIntent object, if any.
- payout_method.
livemodeboolean Has the value
trueif the object exists in live mode or the valuefalseif the object exists in test mode. - payout_method.
typeenum The type of payout method.
Possible enum valuesbank_account Bank account.
cardCard.
crypto_wallet Crypto wallet.
- payout_method.
usage_ statusobject Indicates whether the payout method has met the necessary requirements for outbound money movement.
- payout_method.
usage_status. paymentsenum Payments status - used when sending OutboundPayments (sending funds to recipients).
Possible enum valueseligibleResources that have met all the necessary requirements.
invalidResources 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. transfersenum Transfers status - used when making an OutboundTransfer (sending funds to yourself).
Possible enum valueseligibleResources that have met all the necessary requirements.
invalidResources 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.
- 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 crypto wallet 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 in cases where the PayoutMethodCryptoWallet 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 card objects in your own workspace.
Returned when the number of crypto wallets has exceeded the limit in a given workspace. PayoutMethodCryptoWallet 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 crypto wallet objects in your own workspace.
Returned in cases where Stripe is unable to support this bank at this time.
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" ], "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}