Class Payout

All Implemented Interfaces:
BalanceTransactionSource, HasId, MetadataStore<Payout>, 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, as well as 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

    • 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
      A previously created payout can be canceled if it has not yet been paid out. Funds will be refunded to your available balance. You may not cancel automatic Stripe payouts.
      Throws:
      StripeException
    • cancel

      public Payout cancel(RequestOptions options) throws StripeException
      A previously created payout can be canceled if it has not yet been paid out. Funds will be refunded to your available balance. You may not cancel automatic Stripe payouts.
      Throws:
      StripeException
    • cancel

      public Payout cancel(Map<String,Object> params) throws StripeException
      A previously created payout can be canceled if it has not yet been paid out. Funds will be refunded to your available balance. You may not cancel automatic Stripe payouts.
      Throws:
      StripeException
    • cancel

      public Payout cancel(Map<String,Object> params, RequestOptions options) throws StripeException
      A previously created payout can be canceled if it has not yet been paid out. Funds will be refunded to your available balance. You may not cancel automatic Stripe payouts.
      Throws:
      StripeException
    • cancel

      public Payout cancel(PayoutCancelParams params) throws StripeException
      A previously created payout can be canceled if it has not yet been paid out. Funds will be refunded to your available balance. You may not cancel automatic Stripe payouts.
      Throws:
      StripeException
    • cancel

      public Payout cancel(PayoutCancelParams params, RequestOptions options) throws StripeException
      A previously created payout can be canceled if it has not yet been paid out. Funds will be refunded to your available balance. You may not 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, you create a new payout object. Your Stripe balance must be able to cover the payout amount, or you’ll receive an “Insufficient Funds” error.

      If your API key is in test mode, money won’t actually be sent, though everything else will occur as if in live mode.

      If you are creating a manual payout on a Stripe account that uses multiple payment source types, you’ll need to specify the source type balance that the payout should draw 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, you create a new payout object. Your Stripe balance must be able to cover the payout amount, or you’ll receive an “Insufficient Funds” error.

      If your API key is in test mode, money won’t actually be sent, though everything else will occur as if in live mode.

      If you are creating a manual payout on a Stripe account that uses multiple payment source types, you’ll need to specify the source type balance that the payout should draw 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, you create a new payout object. Your Stripe balance must be able to cover the payout amount, or you’ll receive an “Insufficient Funds” error.

      If your API key is in test mode, money won’t actually be sent, though everything else will occur as if in live mode.

      If you are creating a manual payout on a Stripe account that uses multiple payment source types, you’ll need to specify the source type balance that the payout should draw 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, you create a new payout object. Your Stripe balance must be able to cover the payout amount, or you’ll receive an “Insufficient Funds” error.

      If your API key is in test mode, money won’t actually be sent, though everything else will occur as if in live mode.

      If you are creating a manual payout on a Stripe account that uses multiple payment source types, you’ll need to specify the source type balance that the payout should draw 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 that Stripe has sent you. The payouts are returned 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 that Stripe has sent you. The payouts are returned 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 that Stripe has sent you. The payouts are returned 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 that Stripe has sent you. The payouts are returned 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, and Stripe will return 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, and Stripe will return 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, and Stripe will return 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, and Stripe will return the corresponding payout information.
      Throws:
      StripeException
    • reverse

      public Payout reverse() throws StripeException
      Reverses a payout by debiting the destination bank account. Only payouts for connected accounts to US bank accounts may be reversed at this time. If the payout is in the pending status, /v1/payouts/:id/cancel should be used instead.

      By requesting a reversal via /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account has authorized 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. Only payouts for connected accounts to US bank accounts may be reversed at this time. If the payout is in the pending status, /v1/payouts/:id/cancel should be used instead.

      By requesting a reversal via /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account has authorized 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. Only payouts for connected accounts to US bank accounts may be reversed at this time. If the payout is in the pending status, /v1/payouts/:id/cancel should be used instead.

      By requesting a reversal via /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account has authorized 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. Only payouts for connected accounts to US bank accounts may be reversed at this time. If the payout is in the pending status, /v1/payouts/:id/cancel should be used instead.

      By requesting a reversal via /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account has authorized 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. Only payouts for connected accounts to US bank accounts may be reversed at this time. If the payout is in the pending status, /v1/payouts/:id/cancel should be used instead.

      By requesting a reversal via /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account has authorized 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. Only payouts for connected accounts to US bank accounts may be reversed at this time. If the payout is in the pending status, /v1/payouts/:id/cancel should be used instead.

      By requesting a reversal via /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account has authorized 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 passed. Any parameters not provided will be left unchanged. This request accepts only 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 passed. Any parameters not provided will be left unchanged. This request accepts only 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 passed. Any parameters not provided will be left unchanged. This request accepts only 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 passed. Any parameters not provided will be left unchanged. This request accepts only the metadata as arguments.
      Throws:
      StripeException
    • getAmount

      public Long getAmount()
      Amount (in %s) to be transferred to your bank account or debit card.
    • getArrivalDate

      public Long getArrivalDate()
      Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.
    • getAutomatic

      public Boolean getAutomatic()
      Returns true if the payout was created by an automated payout schedule, and false if it was 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 explaining reason for payout failure if available. See Types of payout failures for a list of failure codes.
    • getFailureMessage

      public String getFailureMessage()
      Message to user further explaining reason for 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 only supported for payouts to debit cards. (See Instant payouts for marketplaces for more information.)
    • 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, the Balance Transactions API may be used to list all Balance Transactions that were paid out in this payout.

      One of completed, in_progress, or not_applicable.

    • getSourceType

      public String getSourceType()
      The source balance this payout came from. One of card, fpx, or bank_account.
    • getStatementDescriptor

      public String getStatementDescriptor()
      Extra information about a payout to be displayed 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 is submitted to the bank, when it becomes in_transit. The status then changes to paid if the transaction goes through, or to failed or canceled (within 5 business days). Some failed payouts may initially show as paid but then change to failed.
    • getType

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

      public void setAmount(Long amount)
      Amount (in %s) to be transferred to your bank account or debit card.
    • setArrivalDate

      public void setArrivalDate(Long arrivalDate)
      Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.
    • setAutomatic

      public void setAutomatic(Boolean automatic)
      Returns true if the payout was created by an automated payout schedule, and false if it was 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 explaining reason for payout failure if available. See Types of payout failures for a list of failure codes.
    • setFailureMessage

      public void setFailureMessage(String failureMessage)
      Message to user further explaining reason for 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 only supported for payouts to debit cards. (See Instant payouts for marketplaces for more information.)
    • 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, the Balance Transactions API may be used to list all Balance Transactions that were 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. One of card, fpx, or bank_account.
    • setStatementDescriptor

      public void setStatementDescriptor(String statementDescriptor)
      Extra information about a payout to be displayed 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 is submitted to the bank, when it becomes in_transit. The status then changes to paid if the transaction goes through, or to failed or canceled (within 5 business days). Some failed payouts may initially show as paid but 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>