Create an OutboundPaymentQuote object v2

Money Management
Outbound Payment Quotes
Create an OutboundPaymentQuote object

Creates an OutboundPaymentQuote usable in an OutboundPayment.

Learn more about calling API v2 endpoints.

Parameters

  • amountobjectRequired

    The “presentment amount” to be sent to the recipient.

    • amount.currencystringRequired

      A lowercase alpha3 currency code like “usd”.

    • amount.valueintegerRequired

      In minor units like 123 for 1.23 USD.

  • fromobjectRequired

    Request details about the sender of an OutboundPaymentQuote.

    • from.currencystringRequired

      Describes the FinancialAccount’s currency drawn from.

    • from.financial_accountstringRequired

      The FinancialAccount that funds were pulled from.

  • toobjectRequired

    Request details about the recipient of an OutboundPaymentQuote.

    • to.currencystring

      Describes the currency to send to the recipient. If included, this currency must match a currency supported by the destination. Can be omitted in the following cases:

      • destination only supports one currency
      • destination supports multiple currencies and one of the currencies matches the FA currency
      • destination supports multiple currencies and one of the currencies matches the presentment currency Note - when both FA currency and presentment currency are supported, we pick the FA currency to minimize FX.
    • to.payout_methodstring

      The payout method which the OutboundPayment uses to send payout.

    • to.recipientstringRequired

      To which account the OutboundPayment is sent.

  • delivery_optionsobject

    Method to be used to send the OutboundPayment.

    • delivery_options.bank_accountenum

      Method for bank account.

      Possible enum values
      automatic

      Method automatically selected by Stripe.

      local

      The group of local bank-transfer networks in the bank account’s country.

      wire

      The group of wire transfer networks in the bank account’s country.

Returns

Response attributes

  • idstring

    Unique identifier for the OutboundPaymentQuote.

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

    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 OutboundPaymentQuote.

    • amount.currencystring

      A lowercase alpha3 currency code like “usd”.

    • amount.valueinteger

      In minor units like 123 for 1.23 USD.

  • createdtimestamp

    Time at which the OutboundPaymentQuote 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 OutboundPayment.

    • delivery_options.bank_accountnullable enum

      Method for bank account.

      Possible enum values
      automatic

      Method automatically selected by Stripe.

      local

      The group of local bank-transfer networks in the bank account’s country.

      wire

      The group of wire transfer networks in the bank account’s country.

  • estimated_feesarray of objects

    The estimated fees for the OutboundPaymentQuote.

    • estimated_fees.amountobject

      The fee amount for corresponding fee type.

      • estimated_fees.amount.currencystring

        A lowercase alpha3 currency code like “usd”.

      • estimated_fees.amount.valueinteger

        In minor units like 123 for 1.23 USD.

    • estimated_fees.typeenum

      The fee type.

      Possible enum values
      cross_border_payout_fee

      The fee incurred when it’s a cross border payout.

      foreign_exchange_fee

      The fee incurred when there is a foreign exchange.

      instant_payout_fee

      The fee incurred when the payout is through instant delivery option.

      standard_payout_fee

      The standard fee for every payout.

      wire_payout_fee

      The fee incurred when the payout is through wire delivery option.

  • fromobject

    Details about the sender of an OutboundPaymentQuote.

    • from.debitedobject

      The monetary amount debited from the sender, only set on responses.

      • from.debited.currencystring

        A lowercase alpha3 currency code like “usd”.

      • from.debited.valueinteger

        In minor units like 123 for 1.23 USD.

    • from.financial_accountstring

      The FinancialAccount that funds were pulled from.

  • fx_quoteobject

    The underlying FXQuote details for the OutboundPaymentQuote.

    • fx_quote.lock_durationenum

      The duration the exchange rate lock remains valid from creation time. Allowed value is five_minutes or none.

      Possible enum values
      five_minutes

      Rate lock is valid for five minutes.

      none

      When rate locking is not supported, lock duration is none.

    • fx_quote.lock_expires_atnullable timestamp

      Time at which the rate lock will expire, measured in seconds since the Unix epoch. Null when rate locking is not supported.

    • fx_quote.lock_statusenum

      Lock status of the quote. Transitions from active to expired once past the lock_expires_at timestamp. Value can be active, expired or none.

      Possible enum values
      active

      Rate lock is active.

      expired

      Rate lock is expired.

      none

      When rate locking is not supported, rate lock status is none.

    • fx_quote.ratesmap

      Key pair: from currency Value: exchange rate going from_currency -> to_currency.

    • fx_quote.to_currencystring

      The currency that the transaction is exchanging to.

  • livemodeboolean

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

  • toobject

    Details about the recipient of an OutboundPaymentQuote.

    • to.creditedobject

      The monetary amount being credited to the destination.

      • to.credited.currencystring

        A lowercase alpha3 currency code like “usd”.

      • to.credited.valueinteger

        In minor units like 123 for 1.23 USD.

    • to.payout_methodstring

      The payout method which the OutboundPayment uses to send payout.

    • to.recipientstring

      To which account the OutboundPayment is sent.

Error Codes
400account_not_configured_as_recipient

Error returned when the recipient account in the OutboundPayment request is not configured as a recipient.

400amount_too_large_for_payout_method

Error returned when the specified amount exceeds the payout method’s amount limits.

400amount_too_large_for_selected_delivery_option

Error returned when user selected a delivery option but the specified amount exceeds the method limits.

400default_payout_method_config_not_found

Error returned when a payout method is not provided in the OutboundPayment request and the recipient account does not have a default payout method.

400delivery_option_not_supported

Error returned when the selected delivery option is not supported for the payout method.

400from_balance_unsupported_currency

Error returned when the balance type in the OutboundPayment/OutboundTransfer request does not support the provided currency.

400invalid_payout_method_country

Error returned when the payout method country does not match the recipient account country.

400no_suitable_delivery_options_for_large_amount

Error returned when user does not specify the delivery option or provides automatic, and the amount exceeds all the possible delivery options for this payout method.

400outbound_flow_from_closed_financial_account_unsupported

The user attempts to create an outbound flow from a closed Financial Account.

400outbound_payment_not_allowed

Error returned when the user is not allowed to make this OutboundPayment request.

400payout_method_expired

Error returned when the provided payout method is expired.

400payout_method_unsupported_currency

Error returned when the payout method does not support the request’s payout method currency.

400recipient_feature_not_active

Error returned when recipient does not have the active features required to receive funds from this OutboundPayment request.

400recipient_feature_not_active_for_suitable_delivery_option

Error returned when user does not specify the delivery option or provides automatic, and recipient feature is not active for suitable delivery option.

400storer_capability_missing

The required storer capabilities are missing.

400storer_capability_not_active

The required storer capabilities are not active.

400unsupported_operation_with_managed_financial_account

Creation of an object is not allowed with a managed account.

404from_financial_account_not_found

Error returned when financial account in the OutboundPayment/OutboundTransfer request cannot be identified.

404not_found

The resource wasn’t found.

404payout_method_invalid

Error returned when the payout method in the OutboundPayment/OutboundTransfer request cannot be identified.

404to_recipient_not_found

Error returned when the recipient account in the OutboundPayment request cannot be identified.

409idempotency_error

An idempotent retry occurred with different request parameters.

POST /v2/money_management/outbound_payment_quotes
curl -X POST https://api.stripe.com/v2/money_management/outbound_payment_quotes \
-H "Authorization: Bearer sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2" \
-H "Stripe-Version: 2025-11-17.preview" \
--json '{
"from": {
"financial_account": "fa_test_65R6SO61eK9ThYXegpO16R6SM1DrE9cwLCbFmOzpO7E2Fk",
"currency": "gbp"
},
"to": {
"recipient": "acct_test_61SGnR3uRIDJxlXGn66SGnR3E2SQicOtL82PNxQa8OUq",
"payout_method": "frba_test_61SGnRTvcEWKPakGS16SGnR3E2SQicOtL82PNxQa8IKG",
"currency": "eur"
},
"amount": {
"value": 1000,
"currency": "gbp"
}
}'
Response
{
"id": "obpq_test_65SH4Ui1am0VPJsl9Ht16R6SM1DrE9cwLCbFmOzpO7ESO8",
"object": "v2.money_management.outbound_payment_quote",
"amount": {
"value": 1000,
"currency": "gbp"
},
"created": "2025-03-28T17:17:45.253Z",
"delivery_options": null,
"estimated_fees": [
{
"amount": {
"value": 2,
"currency": "gbp"
},
"type": "standard_payout_fee"
},
{
"amount": {
"value": 3,
"currency": "gbp"
},
"type": "foreign_exchange_fee"
},
{
"amount": {
"value": 1.5,
"currency": "gbp"
},
"type": "cross_border_payout_fee"
}
],
"from": {
"debited": {
"value": 1000,
"currency": "gbp"
},
"financial_account": "fa_test_65R6SO61eK9ThYXegpO16R6SM1DrE9cwLCbFmOzpO7E2Fk"
},
"fx_quote": {
"lock_duration": "five_minutes",
"lock_expires_at": "2025-04-25T20:06:09.000Z",
"lock_status": "active",
"rates": {
"gbp": {
"exchange_rate": "1.19599"
}
},
"to_currency": "eur"
},
"livemode": false,
"to": {
"credited": {
"value": 1196,
"currency": "eur"
},
"payout_method": "frba_test_61SGnRTvcEWKPakGS16SGnR3E2SQicOtL82PNxQa8IKG",
"recipient": "acct_test_61SGnR3uRIDJxlXGn66SGnR3E2SQicOtL82PNxQa8OUq"
}
}