# Transfer Payout Split: Stripe-Version 2017-04-06

On April 6, 2017, Stripe split the `/v1/transfers` resource into `/v1/transfers` and `/v1/payouts`. This is a versioned change–your existing integrations don’t need to change.

Since Stripe was launched, we’ve used the word **transfer** to mean moving money out of Stripe and into your bank account or debit card. But when *Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients) was launched years later, we co-opted that term to also mean moving money between a platform and its connected accounts.

This ultimately turned out to be confusing. These are conceptually different flows of funds as they apply to a business. This made it difficult to document transfers, and also bloated the `/v1/transfers` API because the fields needed to support each flow of funds were different.

As of Stripe-Version `2017-04-06`:

- **Payouts** will mean moving money from Stripe to your bank account or debit card and will be represented by `/v1/payouts`.
- **Transfers** will mean moving money between Stripe accounts as part of Connect and will be represented by `/v1/transfers`.
- Relative to the legacy `/v1/transfers` resource, the new `/v1/transfers` resource won’t have these fields:
  - `method` - this only applies to *payouts* (A payout is the transfer of funds to an external account, usually a bank account, in the form of a deposit).
  - `status` - this only applies to payouts.
  - `type` - this only applies to payouts.
  - `bank_account` - this only applies to payouts.
  - `card` - this only applies to payouts.
  - `failure_message` - this only applies to payouts.
  - `failure_code` - this only applies to payouts.
  - `description` - description was confusing because it applied to the transfer but not the resultant payment on the connected account. Use `metadata` to attach additional information to a transfer.
  - `application_fee` - application_fee is no longer necessary. See [Connect destination charges](https://docs.stripe.com/connect/destination-charges.md).
- Relative to the legacy `/v1/transfers`, the new `/v1/payouts` resource won’t have these fields:
  - `reversals` - payouts can now be simply canceled.
  - `reversed` - refer to the payout status.
  - `application_fee` - this only applies to legacy transfers.
  - `destination_payment` - this only applies to transfers.
  - `source_transaction` - this only applies to legacy transfers.
  - `description` - description was removed because it didn’t provide enough value. Use metadata to attach additional information to a payout.
- On the `/v1/payouts` resource, the `date` field was renamed to `arrival_date`.
- To send a payout to your default bank account or debit card, instead of including the parameter `destination=default_for_currency`, simply omit the `destination` entirely.
- Canceling a payout is now done through `POST /v1/payouts/:id/cancel`. The balance transaction resulting from a cancellation is available through the `cancellation_balance_transaction` field on the payout. The `status` of a canceled payout is `canceled`.
- When creating a transfer, you can now only use a charge as the `source_transaction`. Previously, it was possible to use any transaction (such as an application fee, or an adjustment) as a `source_transaction`. This didn’t mesh well with the intended use case of tagging outgoing transfers with the incoming source of funds, so this is no longer supported on the new API version.
- Payouts now generate these events: `payout.created`, `payout.failed`, `payout.reversed`, `payout.paid`, `payout.updated`, which are the equivalent of the legacy `transfer.*` events.
- Transfers no longer generate these events: `transfer.paid` and `transfer.failed`.
- Balance transactions can have these types as they relate to payouts: `type` ∈ {`payout`, `payout_failure`, `payout_cancel`}
- Balance transactions can have these types as they relate to transfers: `type` ∈ {`transfer`, `transfer_refund`}
- Fields on the [Account API](https://docs.stripe.com/api/accounts.md) were renamed:
  - `transfers_enabled` → `payouts_enabled`
  - `transfer_schedule` → `payout_schedule`
  - `transfer_statement_descriptor` → `payout_statement_descriptor`
- Transfers to the deprecated Recipients API are no longer represented on this version of the API. Use a legacy API version to access any transfers to recipients that you may have.
