# Manage external recipients Learn how to manage external recipients using v2 APIs. > Managing external recipients using v2 APIs is only available if you’re in the interoperability private preview. To request access, contact your Technical Account Manager. When paying out to others using the Outbound Payments v2 API, represent each recipient with an `Account` that has the `recipient` configuration and at least one payout method containing their payment credentials. By storing recipients and their credentials, you don’t need to add them manually to each outbound payment. You can build an interface to collect recipient information in a few different ways: - Recipient-facing, as a shareable public link - Internal, where your connected accounts can enter recipient information (for example, if they’re paying a bill and have an invoice with the recipient details) Your business is responsible for all interactions with your recipients and for collecting all the necessary verification information. Stripe updates verification requirements as laws and regulations change. Review and update onboarding requirements on a regular basis to avoid payout failures. ## Create a recipient Use the [Accounts v2 API](https://docs.stripe.com/api/v2/core/accounts/create.md) to create your recipient. You must provide the following parameters: | Required information | Parameter | | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | | Recipient’s country | `identity.country` | | Recipient’s type of business | `identity.entity_type` | | Recipient’s email | `contact_email` | | The display name for the account. It appears in the Stripe Dashboard and on any invoices that you send to the account. | `display_name` | | Payout methods you want to enable | `configuration.recipient.capabilities` | > Cross-border payouts for US senders is available in private preview for Stripe Treasury for platforms. If you’re interested in getting access You must specify your intended payout methods with the [Accounts v2 API](https://docs.stripe.com/api/v2/core/accounts/create.md) because some methods require additional information about your recipient before we can enable them. The methods you enable using the `capabilities` parameter determine information that you need to collect for your recipient. For example, `configuration.recipient.capabilities.bank_accounts.local` for a US recipient requires you to submit an account and routing number. | Payout method | API parameter | Description | | ------------- | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------- | | Local bank | `configuration.recipient.capabilities.bank_accounts.local` | Allows the Account to receive OutboundPayments over local bank networks, such as ACH or FPS. | | Bank wire | `configuration.recipient.capabilities.bank_accounts.wire` | Allows the Account to receive OutboundPayments over wire networks, such as Fedwire or SWIFT. | A recipient can have multiple payout methods enabled. Not all payout methods are available for recipients in all countries. See the full list of [available payout methods by country](https://docs.stripe.com/global-payouts/recipient-creation-options.md#requirements-for-supported-recipient-countries). After you add these fields and requested payout methods, Stripe determines the additional information required in the API response that you need to submit to make the recipient ready to receive payouts. To receive these requirements, include `requirements`, `configuration.recipient`, and `identity` in the `include` array. Otherwise, Stripe returns a null response, regardless of their actual value. When you create, retrieve, or update an Account, certain fields only populate in the response if you specify them in the `include` parameter. For any of those fields that you don’t specify, the response includes them as null, regardless of their actual value. ```curl curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-04-22.preview" \ -H "Stripe-Context: {{CONTEXT_ID}}" \ --json '{ "contact_email": "jenny.rosen@example.com", "display_name": "Jenny Rosen", "identity": { "country": "us", "entity_type": "individual" }, "configuration": { "recipient": { "capabilities": { "bank_accounts": { "local": { "requested": true } } } } }, "include": [ "identity", "configuration.recipient", "requirements" ] }' ``` ## Determine required fields to activate a recipient Use the response from the [Accounts v2 API](https://docs.stripe.com/api/v2/core/accounts/create.md) to inspect the `requirements.entries` to determine the specific fields you need to submit to Stripe. Any `entries` that have the `restricts_capabilities` field are required for the recipient to accept payouts. ```json { "id": "{{CONNECTED_ACCOUNT_ID}}", "object": "v2.core.account", "applied_configurations": [ "recipient" ], "configuration": { "customer": null, "merchant": null, "recipient": { "capabilities": { "bank_accounts": { "local": { "requested": true, "status": "restricted", "status_details": [ { "code": "requirements_past_due", "resolution": "provide_info" } ] }, "wire": null, "instant": null }, "cards": null, "stripe_balance": null, "paper_checks": null }, "default_outbound_destination": null } }, "contact_email": "jenny.rosen@stripe.com", "created": "2025-04-02T17:20:00.000Z", "dashboard": null, "identity": { "attestations": { "directorship_declaration": null, "ownership_declaration": null, "persons_provided": { "directors": null, "executives": null, "owners": null, "ownership_exemption_reason": null }, "terms_of_service": { "account": null } }, "business_details": null, "country": "US", "entity_type": "individual", "individual": null }, "defaults": null, "display_name": "Jenny Rosen", "metadata": {}, "requirements": { "collector": "stripe", "entries": [ { "awaiting_action_from": "user", "description": "identity.individual.given_name", "errors": [], "impact": { "restricts_capabilities": [ { "capability": "bank_accounts.local", "configuration": "recipient", "deadline": { "status": "past_due" } } ], "restricts_payouts": null }, "minimum_deadline": { "status": "past_due" }, "reference": null, "requested_reasons": [ { "code": "routine_onboarding" } ] }, { "awaiting_action_from": "user", "description": "identity.individual.surname", "errors": [], "impact": { "restricts_capabilities": [ { "capability": "bank_accounts.local", "configuration": "recipient", "deadline": { "status": "past_due" } } ], "restricts_payouts": null }, "minimum_deadline": { "status": "past_due" }, "reference": null, "requested_reasons": [ { "code": "routine_onboarding" } ] } ], "summary": { "minimum_deadline": { "status": "past_due", "time": null } } } } ``` ## Confirm that the recipient is enabled Use the [Accounts v2 API](https://docs.stripe.com/api/v2/core/accounts/create.md) to retrieve an account and inspect the `status` of the capabilities you’ve requested. The `status` must be `active` for a recipient to receive payouts by your specified payout method. ```curl curl -G https://api.stripe.com/v2/core/accounts/{{CONNECTEDACCOUNT_ID}} \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-04-22.preview" \ -H "Stripe-Context: {{CONTEXT_ID}}" \ -d "include[0]=configuration.recipient" ``` ## Create payout methods for your recipients Use the [USBankAccount v2 API](https://docs.stripe.com/api/v2/core/vault/us-bank-accounts/create.md?api-version=preview) to submit payout method details to Stripe to enable a payout to a recipient. USBankAccounts can receive payouts by ACH or wire. If you intend to send payouts by wire, include the `fedwire_routing_number`. Additional fees apply. See [pricing](https://docs.stripe.com/global-payouts/pricing.md) for details. The Stripe-Context header in this request must be the Connected account ID/Recipient ID (for example, `acct_111a/acct_111b`). ```curl curl -X POST https://api.stripe.com/v2/core/vault/us_bank_accounts \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-04-22.preview" \ -H "Stripe-Context: {{CONTEXT_ID}}" \ --json '{ "routing_number": "110000000", "account_number": "000123456789", "fedwire_routing_number": "110000000" }' ``` ## View all payout methods for a recipient View all of the created payout methods for a recipient. Call the [Payout Methods API v2](https://docs.stripe.com/api/v2/money-management/payout-methods/list.md?api-version=preview) and provide the recipient ID. The Stripe-Context header in this request must be the Connected account ID/Recipient ID (for example, `acct_111a/acct_111b`). ```curl curl https://api.stripe.com/v2/money_management/payout_methods \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-04-22.preview" \ -H "Stripe-Context: {{CONTEXT_ID}}" ``` The response contains a list of `PayoutMethod` objects that a recipient owns. Use the `PayoutMethod` IDs to make a payout using the [OutboundPayments API](https://docs.stripe.com/api/v2/money-management/outbound-payments.md?api-version=preview). See [Send money](https://docs.stripe.com/global-payouts/send-money.md) for more details.