# Create an OutboundPaymentQuote object Creates an OutboundPaymentQuote usable in an OutboundPayment. ## Parameters - `amount` (object, required) The “presentment amount” to be sent to the recipient. - `amount.currency` (string, required) A lowercase alpha3 currency code like “usd”. - `amount.value` (integer, required) In minor units like 123 for 1.23 USD. - `from` (object, required) Request details about the sender of an OutboundPaymentQuote. - `from.currency` (string, required) Describes the FinancialAccount’s currency drawn from. - `from.financial_account` (string, required) The FinancialAccount that funds were pulled from. - `to` (object, required) Request details about the recipient of an OutboundPaymentQuote. - `to.currency` (string, optional) 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_method` (string, optional) The payout method which the OutboundPayment uses to send payout. - `to.recipient` (string, required) To which account the OutboundPayment is sent. - `delivery_options` (object, optional) Method to be used to send the OutboundPayment. - `delivery_options.bank_account` (enum, optional) 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 - `id` (string) Unique identifier for the OutboundPaymentQuote. - `object` (string, 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. - `amount` (object) The “presentment amount” for the OutboundPaymentQuote. - `amount.currency` (string) A lowercase alpha3 currency code like “usd”. - `amount.value` (integer) In minor units like 123 for 1.23 USD. - `created` (timestamp) 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_options` (object, nullable) Delivery options to be used to send the OutboundPayment. - `delivery_options.bank_account` (enum, nullable) 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_fees` (array of objects) The estimated fees for the OutboundPaymentQuote. - `estimated_fees.amount` (object) The fee amount for corresponding fee type. - `estimated_fees.amount.currency` (string) A lowercase alpha3 currency code like “usd”. - `estimated_fees.amount.value` (integer) In minor units like 123 for 1.23 USD. - `estimated_fees.type` (enum) 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. - `from` (object) Details about the sender of an OutboundPaymentQuote. - `from.debited` (object) The monetary amount debited from the sender, only set on responses. - `from.debited.currency` (string) A lowercase alpha3 currency code like “usd”. - `from.debited.value` (integer) In minor units like 123 for 1.23 USD. - `from.financial_account` (string) The FinancialAccount that funds were pulled from. - `fx_quote` (object) The underlying FXQuote details for the OutboundPaymentQuote. - `fx_quote.lock_duration` (enum) The duration the exchange rate lock remains valid from creation time. Allowed value is five_minutes. Possible enum values: - `five_minutes` Rate lock is valid for five minutes. - `fx_quote.lock_expires_at` (timestamp) Time at which the rate lock will expire, measured in seconds since the Unix epoch. - `fx_quote.lock_status` (enum) Lock status of the quote. Transitions from active to expired once past the lock_expires_at timestamp. Value can be active or expired. Possible enum values: - `active` Rate lock is active. - `expired` Rate lock is expired. - `fx_quote.rates` (map) Key pair: from currency Value: exchange rate going from_currency -> to_currency. - `fx_quote.to_currency` (string) The currency that the transaction is exchanging to. - `livemode` (boolean) Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. - `to` (object) Details about the recipient of an OutboundPaymentQuote. - `to.credited` (object) The monetary amount being credited to the destination. - `to.credited.currency` (string) A lowercase alpha3 currency code like “usd”. - `to.credited.value` (integer) In minor units like 123 for 1.23 USD. - `to.payout_method` (string) The payout method which the OutboundPayment uses to send payout. - `to.recipient` (string) To which account the OutboundPayment is sent. ## Error Codes | HTTP status code | Code | Description | | ---------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 400 | account_not_configured_as_recipient | Error returned when the recipient account in the OutboundPayment request is not configured as a recipient. | | 400 | amount_too_large_for_payout_method | Error returned when the specified amount exceeds the payout method’s amount limits. | | 400 | amount_too_large_for_selected_delivery_option | Error returned when user selected a delivery option but the specified amount exceeds the method limits. | | 400 | default_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. | | 400 | delivery_option_not_supported | Error returned when the selected delivery option is not supported for the payout method. | | 400 | from_balance_unsupported_currency | Error returned when the balance type in the OutboundPayment/OutboundTransfer request does not support the provided currency. | | 400 | invalid_payout_method_country | Error returned when the payout method country does not match the recipient account country. | | 400 | no_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. | | 400 | payout_method_expired | Error returned when the provided payout method is expired. | | 400 | payout_method_unsupported_currency | Error returned when the payout method does not support the request’s payout method currency. | | 400 | recipient_feature_not_active | Error returned when recipient does not have the active features required to receive funds from this OutboundPayment request. | | 400 | recipient_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. | | 404 | from_financial_account_not_found | Error returned when financial account in the OutboundPayment/OutboundTransfer request cannot be identified. | | 404 | not_found | The resource wasn’t found. | | 404 | payout_method_invalid | Error returned when the payout method in the OutboundPayment/OutboundTransfer request cannot be identified. | | 404 | to_recipient_not_found | Error returned when the recipient account in the OutboundPayment request cannot be identified. | | 409 | idempotency_error | An idempotent retry occurred with different request parameters. | ```curl curl -X POST https://api.stripe.com/v2/money_management/outbound_payment_quotes \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2025-06-30.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 ```json { "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" } } ```