Cancel an OutboundTransfer object v2

Cancels an OutboundTransfer. Only processing OutboundTransfers can be canceled.

Learn more about calling API v2 endpoints.

Parameters

  • idstringRequired

    The ID of the OutboundTransfer to cancel.

Returns

Response attributes

  • idstring

    Unique identifier for the OutboundTransfer.

  • objectstring, value is "v2.money_management.outbound_transfer"

    String representing the object’s type. Objects of the same type share the same value of the object field.

  • amountobject

    The “presentment amount” for the OutboundTransfer.

  • cancelableboolean

    Returns true if the OutboundTransfer can be canceled, and false otherwise.

  • createdtimestamp

    Time at which the OutboundTransfer was created. Represented as a RFC 3339 date & time UTC value in millisecond precision, for example: 2022-09-18T13:22:18.123Z.

  • delivery_optionsnullable object

    Delivery options to be used to send the OutboundTransfer.

  • descriptionnullable string

    An arbitrary string attached to the OutboundTransfer. Often useful for displaying to users.

  • expected_arrival_datenullable timestamp

    The date when funds are expected to arrive in the payout method. This field is not set if the payout method is in a failed, canceled, or returned state. Represented as a RFC 3339 date & time UTC value in millisecond precision, for example: 2022-09-18T13:22:18.123Z.

  • fromobject

    The FinancialAccount that funds were pulled from.

  • livemodeboolean

    Has the value true if the object exists in live mode or the value false if the object exists in test mode.

  • metadatanullable map

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

  • receipt_urlnullable string

    A link to the Stripe-hosted receipt for this OutboundTransfer. The receipt link remains active for 60 days from the OutboundTransfer creation date. After this period, the link will expire and the receipt url value will be null.

  • statement_descriptorstring

    The description that appears on the receiving end for an OutboundTransfer (for example, bank statement for external bank transfer). It will default to STRIPE if not set on the account settings.

  • statusenum

    Current status of the OutboundTransfer: processing, failed, posted, returned, canceled. An OutboundTransfer is processing if it has been created and is processing. The status changes to posted once the OutboundTransfer has been “confirmed” and funds have left the account, or to failed or canceled. If an OutboundTransfer fails to arrive at its payout method, its status will change to returned.

    Possible enum values
    canceled

    A user canceled the OutboundTransfer before posting. Stripe returns the funds to the user by voiding the pending Transaction.

    failed

    The OutboundTransfer failed to confirm. Stripe returns the funds to the user by voiding the pending Transaction.

    posted

    The OutboundTransfer posted and funds have left the account. The underlying Transaction posts.

    processing

    The OutboundTransfer starting state. Funds are “held” by a pending Transaction (but are still part of the current balance). The OutboundTransfer might be cancelable by the user, depending on the value of the cancelable field.

    returned

    The OutboundTransfer failed to successfully arrive at the destination. Funds return to the user with a second posted Transaction attached to the same flow.

  • status_detailsnullable object

    Status details for an OutboundTransfer in a failed or returned state.

  • status_transitionsnullable object

    Hash containing timestamps of when the object transitioned to a particular status.

  • toobject

    To which payout method the OutboundTransfer was sent.

  • trace_idobjectPreview feature

    A unique identifier that can be used to track this OutboundTransfer with recipient bank. Banks might call this a “reference number” or something similar.

400outbound_transfer_already_canceled

Error returned when user tries to cancel an OutboundTransfer that was already canceled.

400outbound_transfer_not_cancelable

Error returned when user tries to cancel an OutboundTransfer that is not cancelable.

404not_found

The resource wasn’t found.

409idempotency_error

An idempotent retry occurred with different request parameters.

POST /v2/money_management/outbound_transfers/:id/cancel
curl -X POST https://api.stripe.com/v2/money_management/outbound_transfers/obt_test_65OAfYe4XKyMwZeHlcV16NybHIZ4SQ3LORe4rpuNGDIRZw/cancel \
-H "Authorization: Bearer sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2" \
-H "Stripe-Version: 2025-11-17.preview"
Response
{
"id": "obt_test_65OAfYe4XKyMwZeHlcV16NybHIZ4SQ3LORe4rpuNGDIRZw",
"object": "v2.money_management.outbound_transfer",
"from": {
"financial_account": "fa_test_65NybHaQx7KJxDc22rZ16NybHIZ4SQ3LORe4rpuNGDIXEO",
"debited": {
"value": 50,
"currency": "usd"
}
},
"to": {
"payout_method": "usba_test_61NyccB7UY8KzlWh916NybHIZ4SQ3LORe4rpuNGDIRWC",
"credited": {
"value": 50,
"currency": "usd"
}
},
"delivery_options": {
"bank_account": "automatic"
},
"amount": {
"value": 50,
"currency": "usd"
},
"statement_descriptor": "Stripe payout",
"cancelable": false,
"description": "Paying out Stripe earnings",
"status": "canceled",
"status_transitions": {
"canceled_at": "2023-04-26T23:18:28.412Z",
"failed_at": null,
"posted_at": null,
"returned_at": null
},
"status_details": null,
"created": "2023-04-26T23:18:16.777Z",
"expected_arrival_date": "2023-04-28T00:00:00Z",
"receipt_url": "https://payments.stripe.com/transaction_receipt/CCMaIwohd2tzcF90ZXN0XzZOeWJISVo0U1EzTE9SZTRycHVOR0RJKMTipqIGMgZpliO-zX86SJQFa58LOKNAWYRci6HJPA10Ddmocyf7MnhVX4NTkNJrO30nmnJBTIa-kVBovJDEAyzBer6TFulzAqpUbrzbxbWfX5UoXB3BQg",
"livemode": false
}

OutboundTransfer event types v2

This is a list of all public thin events we currently send for updates to OutboundTransfer, which are continually evolving and expanding. The payload of thin events is unversioned. During processing, you must fetch the versioned event from the API or fetch the resource’s current state.

Event types

Type
Filter events by type