TreasuryOutboundPaymentsResourceOutboundPayment
Use OutboundPayments to send funds to another party's external bank account or FinancialAccount. To send money to an account belonging to the same user, use an OutboundTransfer.
Simulate OutboundPayment state changes with the /v1/test_helpers/treasury/outbound_payments endpoints. These methods can only be called on test mode objects.
Related guide: Moving money with Treasury using OutboundPayment objects
Summary
Types
@type destination_payment_method_details() :: %{ optional(:billing_details) => Stripe.Resources.BillingDetails.t() | nil, optional(:financial_account) => Stripe.Resources.FinancialAccount.t() | nil, optional(:type) => String.t() | nil, optional(:us_bank_account) => Stripe.Resources.UsBankAccount.t() | nil, optional(String.t()) => term() }
billing_detailsfinancial_accounttype- The type of the payment method used in the OutboundPayment. Possible values:financial_account,us_bank_account.us_bank_account
@type end_user_details() :: %{ optional(:ip_address) => String.t() | nil, optional(:present) => boolean() | nil, optional(String.t()) => term() }
ip_address- IP address of the user initiating the OutboundPayment. Set ifpresentis set totrue. IP address collection is required for risk and compliance reasons. This will be used to help determine if the OutboundPayment is authorized or should be blocked. Max length: 5000. Nullable.present-trueif the OutboundPayment creation request is being made on behalf of an end user by a platform. Otherwise,false.
@type returned_details() :: %{ optional(:code) => String.t() | nil, optional(:transaction) => String.t() | Stripe.Resources.Treasury.Transaction.t() | nil, optional(String.t()) => term() }
code- Reason for the return. Possible values:account_closed,account_frozen,bank_account_restricted,bank_ownership_changed,declined,incorrect_account_holder_name,invalid_account_number,invalid_currency,no_account,other.transaction- The Transaction associated with this object.
@type t() :: %Stripe.Resources.Treasury.OutboundPayment{ amount: integer(), cancelable: boolean(), created: integer(), currency: String.t(), customer: String.t(), description: String.t(), destination_payment_method: String.t(), destination_payment_method_details: destination_payment_method_details(), end_user_details: end_user_details(), expected_arrival_date: integer(), financial_account: String.t(), hosted_regulatory_receipt_url: String.t(), id: String.t(), livemode: boolean(), metadata: %{required(String.t()) => String.t()}, object: String.t(), returned_details: returned_details(), statement_descriptor: String.t(), status: String.t(), status_transitions: Stripe.Resources.StatusTransitions.t(), tracking_details: tracking_details(), transaction: String.t() | Stripe.Resources.Treasury.Transaction.t() }
amount- Amount (in cents) transferred.cancelable- Returnstrueif the object can be canceled, andfalseotherwise.created- Time at which the object was created. Measured in seconds since the Unix epoch. Format: Unix timestamp.currency- Three-letter ISO currency code, in lowercase. Must be a supported currency. Format: ISO 4217 currency code.customer- ID of the customer to whom an OutboundPayment is sent. Max length: 5000. Nullable.description- An arbitrary string attached to the object. Often useful for displaying to users. Max length: 5000. Nullable.destination_payment_method- The PaymentMethod via which an OutboundPayment is sent. This field can be empty if the OutboundPayment was created usingdestination_payment_method_data. Max length: 5000. Nullable.destination_payment_method_details- Details about the PaymentMethod for an OutboundPayment. Nullable. Expandable.end_user_details- Details about the end user. Nullable. Expandable.expected_arrival_date- The date when funds are expected to arrive in the destination account. Format: Unix timestamp.financial_account- The FinancialAccount that funds were pulled from. Max length: 5000.hosted_regulatory_receipt_url- A hosted transaction receipt URL that is provided when money movement is considered regulated under Stripe's money transmission licenses. Max length: 5000. Nullable.id- Unique identifier for the object. Max length: 5000.livemode- Has the valuetrueif the object exists in live mode or the valuefalseif the object exists in test mode.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.object- String representing the object's type. Objects of the same type share the same value. Possible values:treasury.outbound_payment.returned_details- Details about a returned OutboundPayment. Only set when the status isreturned. Nullable. Expandable.statement_descriptor- The description that appears on the receiving end for an OutboundPayment (for example, bank statement for external bank transfer). Max length: 5000.status- Current status of the OutboundPayment:processing,failed,posted,returned,canceled. An OutboundPayment isprocessingif it has been created and is pending. The status changes topostedonce the OutboundPayment has been "confirmed" and funds have left the account, or tofailedorcanceled. If an OutboundPayment fails to arrive at its destination, its status will change toreturned. Possible values:canceled,failed,posted,processing,returned.status_transitions- Expandable.tracking_details- Details about network-specific tracking information if available. Nullable. Expandable.transaction- The Transaction associated with this object. Expandable.
@type tracking_details() :: %{ optional(:ach) => tracking_details_ach() | nil, optional(:type) => String.t() | nil, optional(:us_domestic_wire) => tracking_details_us_domestic_wire() | nil, optional(String.t()) => term() }
achtype- The US bank account network used to send funds. Possible values:ach,us_domestic_wire.us_domestic_wire
@type tracking_details_ach() :: %{ optional(:trace_id) => String.t() | nil, optional(String.t()) => term() }
trace_id- ACH trace ID of the OutboundPayment for payments sent over theachnetwork. Max length: 5000.
@type tracking_details_us_domestic_wire() :: %{ optional(:chips) => String.t() | nil, optional(:imad) => String.t() | nil, optional(:omad) => String.t() | nil, optional(String.t()) => term() }
chips- CHIPS System Sequence Number (SSN) of the OutboundPayment for payments sent over theus_domestic_wirenetwork. Max length: 5000. Nullable.imad- IMAD of the OutboundPayment for payments sent over theus_domestic_wirenetwork. Max length: 5000. Nullable.omad- OMAD of the OutboundPayment for payments sent over theus_domestic_wirenetwork. Max length: 5000. Nullable.