Class Payout

All Implemented Interfaces:
BalanceTransactionSource, HasId, MetadataStore<Payout>, StripeActiveObject, StripeObjectInterface

public class Payout extends ApiResource implements MetadataStore<Payout>, BalanceTransactionSource
A Payout object is created when you receive funds from Stripe, or when you initiate a payout to either a bank account or debit card of a connected Stripe account. You can retrieve individual payouts, and list all payouts. Payouts are made on varying schedules, depending on your country and industry.

Related guide: Receiving payouts

  • Constructor Details

    • Payout

      public Payout()
  • Method Details

    • getApplicationFee

      public String getApplicationFee()
      Get ID of expandable applicationFee object.
    • setApplicationFee

      public void setApplicationFee(String id)
    • getApplicationFeeObject

      public ApplicationFee getApplicationFeeObject()
      Get expanded applicationFee.
    • setApplicationFeeObject

      public void setApplicationFeeObject(ApplicationFee expandableObject)
    • getBalanceTransaction

      public String getBalanceTransaction()
      Get ID of expandable balanceTransaction object.
    • setBalanceTransaction

      public void setBalanceTransaction(String id)
    • getBalanceTransactionObject

      public BalanceTransaction getBalanceTransactionObject()
      Get expanded balanceTransaction.
    • setBalanceTransactionObject

      public void setBalanceTransactionObject(BalanceTransaction expandableObject)
    • getDestination

      public String getDestination()
      Get ID of expandable destination object.
    • setDestination

      public void setDestination(String id)
    • getDestinationObject

      public ExternalAccount getDestinationObject()
      Get expanded destination.
    • setDestinationObject

      public void setDestinationObject(ExternalAccount expandableObject)
    • getFailureBalanceTransaction

      public String getFailureBalanceTransaction()
      Get ID of expandable failureBalanceTransaction object.
    • setFailureBalanceTransaction

      public void setFailureBalanceTransaction(String id)
    • getFailureBalanceTransactionObject

      public BalanceTransaction getFailureBalanceTransactionObject()
      Get expanded failureBalanceTransaction.
    • setFailureBalanceTransactionObject

      public void setFailureBalanceTransactionObject(BalanceTransaction expandableObject)
    • getOriginalPayout

      public String getOriginalPayout()
      Get ID of expandable originalPayout object.
    • setOriginalPayout

      public void setOriginalPayout(String id)
    • getOriginalPayoutObject

      public Payout getOriginalPayoutObject()
      Get expanded originalPayout.
    • setOriginalPayoutObject

      public void setOriginalPayoutObject(Payout expandableObject)
    • getReversedBy

      public String getReversedBy()
      Get ID of expandable reversedBy object.
    • setReversedBy

      public void setReversedBy(String id)
    • getReversedByObject

      public Payout getReversedByObject()
      Get expanded reversedBy.
    • setReversedByObject

      public void setReversedByObject(Payout expandableObject)
    • cancel

      public Payout cancel() throws StripeException
      You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can’t cancel automatic Stripe payouts.
      Throws:
      StripeException
    • cancel

      public Payout cancel(RequestOptions options) throws StripeException
      You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can’t cancel automatic Stripe payouts.
      Throws:
      StripeException
    • cancel

      public Payout cancel(Map<String,Object> params) throws StripeException
      You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can’t cancel automatic Stripe payouts.
      Throws:
      StripeException
    • cancel

      public Payout cancel(Map<String,Object> params, RequestOptions options) throws StripeException
      You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can’t cancel automatic Stripe payouts.
      Throws:
      StripeException
    • cancel

      public Payout cancel(PayoutCancelParams params) throws StripeException
      You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can’t cancel automatic Stripe payouts.
      Throws:
      StripeException
    • cancel

      public Payout cancel(PayoutCancelParams params, RequestOptions options) throws StripeException
      You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can’t cancel automatic Stripe payouts.
      Throws:
      StripeException
    • create

      public static Payout create(Map<String,Object> params) throws StripeException
      To send funds to your own bank account, create a new payout object. Your Stripe balance must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.

      If your API key is in test mode, money won’t actually be sent, though every other action occurs as if you’re in live mode.

      If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The balance object details available and pending amounts by source type.

      Throws:
      StripeException
    • create

      public static Payout create(Map<String,Object> params, RequestOptions options) throws StripeException
      To send funds to your own bank account, create a new payout object. Your Stripe balance must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.

      If your API key is in test mode, money won’t actually be sent, though every other action occurs as if you’re in live mode.

      If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The balance object details available and pending amounts by source type.

      Throws:
      StripeException
    • create

      public static Payout create(PayoutCreateParams params) throws StripeException
      To send funds to your own bank account, create a new payout object. Your Stripe balance must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.

      If your API key is in test mode, money won’t actually be sent, though every other action occurs as if you’re in live mode.

      If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The balance object details available and pending amounts by source type.

      Throws:
      StripeException
    • create

      public static Payout create(PayoutCreateParams params, RequestOptions options) throws StripeException
      To send funds to your own bank account, create a new payout object. Your Stripe balance must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.

      If your API key is in test mode, money won’t actually be sent, though every other action occurs as if you’re in live mode.

      If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The balance object details available and pending amounts by source type.

      Throws:
      StripeException
    • list

      public static PayoutCollection list(Map<String,Object> params) throws StripeException
      Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first.
      Throws:
      StripeException
    • list

      public static PayoutCollection list(Map<String,Object> params, RequestOptions options) throws StripeException
      Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first.
      Throws:
      StripeException
    • list

      public static PayoutCollection list(PayoutListParams params) throws StripeException
      Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first.
      Throws:
      StripeException
    • list

      public static PayoutCollection list(PayoutListParams params, RequestOptions options) throws StripeException
      Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first.
      Throws:
      StripeException
    • retrieve

      public static Payout retrieve(String payout) throws StripeException
      Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information.
      Throws:
      StripeException
    • retrieve

      public static Payout retrieve(String payout, RequestOptions options) throws StripeException
      Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information.
      Throws:
      StripeException
    • retrieve

      public static Payout retrieve(String payout, Map<String,Object> params, RequestOptions options) throws StripeException
      Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information.
      Throws:
      StripeException
    • retrieve

      public static Payout retrieve(String payout, PayoutRetrieveParams params, RequestOptions options) throws StripeException
      Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information.
      Throws:
      StripeException
    • reverse

      public Payout reverse() throws StripeException
      Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead.

      By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required.

      Throws:
      StripeException
    • reverse

      public Payout reverse(RequestOptions options) throws StripeException
      Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead.

      By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required.

      Throws:
      StripeException
    • reverse

      public Payout reverse(Map<String,Object> params) throws StripeException
      Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead.

      By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required.

      Throws:
      StripeException
    • reverse

      public Payout reverse(Map<String,Object> params, RequestOptions options) throws StripeException
      Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead.

      By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required.

      Throws:
      StripeException
    • reverse

      public Payout reverse(PayoutReverseParams params) throws StripeException
      Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead.

      By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required.

      Throws:
      StripeException
    • reverse

      public Payout reverse(PayoutReverseParams params, RequestOptions options) throws StripeException
      Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead.

      By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required.

      Throws:
      StripeException
    • update

      public Payout update(Map<String,Object> params) throws StripeException
      Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters that you don’t provide. This request only accepts the metadata as arguments.
      Specified by:
      update in interface MetadataStore<Payout>
      Throws:
      StripeException
    • update

      public Payout update(Map<String,Object> params, RequestOptions options) throws StripeException
      Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters that you don’t provide. This request only accepts the metadata as arguments.
      Specified by:
      update in interface MetadataStore<Payout>
      Throws:
      StripeException
    • update

      public Payout update(PayoutUpdateParams params) throws StripeException
      Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters that you don’t provide. This request only accepts the metadata as arguments.
      Throws:
      StripeException
    • update

      public Payout update(PayoutUpdateParams params, RequestOptions options) throws StripeException
      Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters that you don’t provide. This request only accepts the metadata as arguments.
      Throws:
      StripeException
    • setResponseGetter

      public void setResponseGetter(StripeResponseGetter responseGetter)
      Description copied from interface: StripeActiveObject
      Method is used by the containing object or StripeResponseGetter implementations to set the StripeResponseGetter instance used to make further requests.
      Specified by:
      setResponseGetter in interface StripeActiveObject
      Overrides:
      setResponseGetter in class ApiResource
      Parameters:
      responseGetter - the StripeResponseGetter instance to use for making further requests.
    • getAmount

      public Long getAmount()
      The amount (in cents (or local equivalent)) that transfers to your bank account or debit card.
    • getApplicationFeeAmount

      public Long getApplicationFeeAmount()
      The amount of the application fee (if any) requested for the payout. See the Connect documentation for details.
    • getArrivalDate

      public Long getArrivalDate()
      Date that you can expect the payout to arrive in the bank. This factors in delays to account for weekends or bank holidays.
    • getAutomatic

      public Boolean getAutomatic()
      Returns true if the payout is created by an automated payout schedule and false if it's requested manually.
    • getCreated

      public Long getCreated()
      Time at which the object was created. Measured in seconds since the Unix epoch.
    • getCurrency

      public String getCurrency()
      Three-letter ISO currency code, in lowercase. Must be a supported currency.
    • getDescription

      public String getDescription()
      An arbitrary string attached to the object. Often useful for displaying to users.
    • getFailureCode

      public String getFailureCode()
      Error code that provides a reason for a payout failure, if available. View our list of failure codes.
    • getFailureMessage

      public String getFailureMessage()
      Message that provides the reason for a payout failure, if available.
    • getLivemode

      public Boolean getLivemode()
      Has the value true if the object exists in live mode or the value false if the object exists in test mode.
    • getMethod

      public String getMethod()
      The method used to send this payout, which can be standard or instant. instant is supported for payouts to debit cards and bank accounts in certain countries. Learn more about bank support for Instant Payouts.
    • getObject

      public String getObject()
      String representing the object's type. Objects of the same type share the same value.

      Equal to payout.

    • getReconciliationStatus

      public String getReconciliationStatus()
      If completed, you can use the Balance Transactions API to list all balance transactions that are paid out in this payout.

      One of completed, in_progress, or not_applicable.

    • getSourceType

      public String getSourceType()
      The source balance this payout came from, which can be one of the following: card, fpx, or bank_account.
    • getStatementDescriptor

      public String getStatementDescriptor()
      Extra information about a payout that displays on the user's bank statement.
    • getStatus

      public String getStatus()
      Current status of the payout: paid, pending, in_transit, canceled or failed. A payout is pending until it's submitted to the bank, when it becomes in_transit. The status changes to paid if the transaction succeeds, or to failed or canceled (within 5 business days). Some payouts that fail might initially show as paid, then change to failed.
    • getType

      public String getType()
      Can be bank_account or card.
    • setAmount

      public void setAmount(Long amount)
      The amount (in cents (or local equivalent)) that transfers to your bank account or debit card.
    • setApplicationFeeAmount

      public void setApplicationFeeAmount(Long applicationFeeAmount)
      The amount of the application fee (if any) requested for the payout. See the Connect documentation for details.
    • setArrivalDate

      public void setArrivalDate(Long arrivalDate)
      Date that you can expect the payout to arrive in the bank. This factors in delays to account for weekends or bank holidays.
    • setAutomatic

      public void setAutomatic(Boolean automatic)
      Returns true if the payout is created by an automated payout schedule and false if it's requested manually.
    • setCreated

      public void setCreated(Long created)
      Time at which the object was created. Measured in seconds since the Unix epoch.
    • setCurrency

      public void setCurrency(String currency)
      Three-letter ISO currency code, in lowercase. Must be a supported currency.
    • setDescription

      public void setDescription(String description)
      An arbitrary string attached to the object. Often useful for displaying to users.
    • setFailureCode

      public void setFailureCode(String failureCode)
      Error code that provides a reason for a payout failure, if available. View our list of failure codes.
    • setFailureMessage

      public void setFailureMessage(String failureMessage)
      Message that provides the reason for a payout failure, if available.
    • setId

      public void setId(String id)
      Unique identifier for the object.
    • setLivemode

      public void setLivemode(Boolean livemode)
      Has the value true if the object exists in live mode or the value false if the object exists in test mode.
    • setMetadata

      public void setMetadata(Map<String,String> 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.
    • setMethod

      public void setMethod(String method)
      The method used to send this payout, which can be standard or instant. instant is supported for payouts to debit cards and bank accounts in certain countries. Learn more about bank support for Instant Payouts.
    • setObject

      public void setObject(String object)
      String representing the object's type. Objects of the same type share the same value.

      Equal to payout.

    • setReconciliationStatus

      public void setReconciliationStatus(String reconciliationStatus)
      If completed, you can use the Balance Transactions API to list all balance transactions that are paid out in this payout.

      One of completed, in_progress, or not_applicable.

    • setSourceType

      public void setSourceType(String sourceType)
      The source balance this payout came from, which can be one of the following: card, fpx, or bank_account.
    • setStatementDescriptor

      public void setStatementDescriptor(String statementDescriptor)
      Extra information about a payout that displays on the user's bank statement.
    • setStatus

      public void setStatus(String status)
      Current status of the payout: paid, pending, in_transit, canceled or failed. A payout is pending until it's submitted to the bank, when it becomes in_transit. The status changes to paid if the transaction succeeds, or to failed or canceled (within 5 business days). Some payouts that fail might initially show as paid, then change to failed.
    • setType

      public void setType(String type)
      Can be bank_account or card.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • canEqual

      protected boolean canEqual(Object other)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getId

      public String getId()
      Unique identifier for the object.
      Specified by:
      getId in interface HasId
    • getMetadata

      public Map<String,String> getMetadata()
      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.
      Specified by:
      getMetadata in interface MetadataStore<Payout>