FinancialAccount to a
* PaymentMethod belonging to the same entity. To send funds to a different party,
* use OutboundPayments
* instead. You can send funds over ACH rails or through a domestic wire transfer
* to a user's own external bank account.
*
* Simulate OutboundTransfer state changes with the
* /v1/test_helpers/treasury/outbound_transfers
endpoints. These
* methods can only be called on test mode objects.
*
* @property string $id Unique identifier for the object.
* @property string $object String representing the object's type. Objects of the same type share the same value.
* @property int $amount Amount (in cents) transferred.
* @property bool $cancelable Returns true
if the object can be canceled, and false
otherwise.
* @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
* @property string $currency Three-letter ISO currency code, in lowercase. Must be a supported currency.
* @property null|string $description An arbitrary string attached to the object. Often useful for displaying to users.
* @property null|string $destination_payment_method The PaymentMethod used as the payment instrument for an OutboundTransfer.
* @property \Stripe\StripeObject $destination_payment_method_details
* @property int $expected_arrival_date The date when funds are expected to arrive in the destination account.
* @property string $financial_account The FinancialAccount that funds were pulled from.
* @property null|string $hosted_regulatory_receipt_url A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.
* @property bool $livemode Has the value true
if the object exists in live mode or the value false
if the object exists in test mode.
* @property \Stripe\StripeObject $metadata 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.
* @property null|\Stripe\StripeObject $returned_details Details about a returned OutboundTransfer. Only set when the status is returned
.
* @property string $statement_descriptor Information about the OutboundTransfer to be sent to the recipient account.
* @property string $status Current status of the OutboundTransfer: processing
, failed
, canceled
, posted
, returned
. An OutboundTransfer is processing
if it has been created and is pending. 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 destination, its status will change to returned
.
* @property \Stripe\StripeObject $status_transitions
* @property string|\Stripe\Treasury\Transaction $transaction The Transaction associated with this object.
*/
class OutboundTransfer extends \Stripe\ApiResource
{
const OBJECT_NAME = 'treasury.outbound_transfer';
use \Stripe\ApiOperations\All;
use \Stripe\ApiOperations\Create;
use \Stripe\ApiOperations\Retrieve;
const STATUS_CANCELED = 'canceled';
const STATUS_FAILED = 'failed';
const STATUS_POSTED = 'posted';
const STATUS_PROCESSING = 'processing';
const STATUS_RETURNED = 'returned';
/**
* @param null|array $params
* @param null|array|string $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\Treasury\OutboundTransfer the canceled outbound transfer
*/
public function cancel($params = null, $opts = null)
{
$url = $this->instanceUrl() . '/cancel';
list($response, $opts) = $this->_request('post', $url, $params, $opts);
$this->refreshFrom($response, $opts);
return $this;
}
}