Skip to content
  • Auto
  • Light
  • Dark
Get started
View as Markdown
Copy Markdown

Open in Claude
Open in ChatGPT

Payouts

Lookup a payout
payouts.get(strid, PayoutGetParams**kwargs) -> PayoutV1
get/v1/payouts/{id}
Update a payout
payouts.update(strid, PayoutUpdateParams**kwargs) -> PayoutV1
put/v1/payouts/{id}
Create a payout
payouts.create(PayoutCreateParams**kwargs) -> PayoutV1
post/v1/payouts
Hold a payout
payouts.hold(strid, PayoutHoldParams**kwargs) -> PayoutV1
put/v1/payouts/{id}/hold
Release a payout
payouts.release(strid, PayoutReleaseParams**kwargs) -> PayoutV1
put/v1/payouts/{id}/release
Cancel a payout
payouts.cancel(strid, PayoutCancelParams**kwargs) -> PayoutV1
put/v1/payouts/{id}/cancel
Get a payout by id.
payouts.unmask(strid, PayoutUnmaskParams**kwargs) -> PayoutUnmaskResponse
get/v1/payouts/{id}/unmask
ModelsExpand Collapse
class PayoutV1:
data: Data
id: str

Unique identifier for the payout.

formatuuid
amount: int

The amount of the payout in cents.

formatint32
config: DataConfig

Configuration for the payout.

sandbox_outcome: Optional[Literal["standard", "paid", "on_hold_daily_limit", 8 more]]

Payment will simulate processing if not Standard.

Accepts one of the following:
"standard"
"paid"
"on_hold_daily_limit"
"cancelled_for_fraud_risk"
"cancelled_for_balance_check"
"failed_insufficient_funds"
"reversed_insufficient_funds"
"failed_customer_dispute"
"reversed_customer_dispute"
"failed_closed_bank_account"
"reversed_closed_bank_account"
currency: str

The currency of the payout. Only USD is supported.

description: str

An arbitrary description for the payout.

device: DeviceInfoV1

Information about the device used when the customer authorized the payout.

ip_address: str

The IP address of the device used when the customer authorized the charge or payout. Use 0.0.0.0 to represent an offline consent interaction.

formatipv4
external_id: str

Unique identifier for the payout in your database. This value must be unique across all payouts.

funding_ids: List[str]

Funding Ids

paykey: str

Value of the paykey used for the payout.

payment_date: date

The desired date on which the payment should be occur. For payouts, this means the date you want the funds to be sent from your bank account.

formatdate
status: Literal["created", "scheduled", "failed", 5 more]

The current status of the payout.

Accepts one of the following:
"created"
"scheduled"
"failed"
"cancelled"
"on_hold"
"pending"
"paid"
"reversed"
status_details: StatusDetailsV1

Details about the current status of the payout.

changed_at: datetime

The time the status change occurred.

formatdate-time
message: str

A human-readable description of the current status.

reason: Literal["insufficient_funds", "closed_bank_account", "invalid_bank_account", 17 more]

A machine-readable identifier for the specific status, useful for programmatic handling.

Accepts one of the following:
"insufficient_funds"
"closed_bank_account"
"invalid_bank_account"
"invalid_routing"
"disputed"
"payment_stopped"
"owner_deceased"
"frozen_bank_account"
"risk_review"
"fraudulent"
"duplicate_entry"
"invalid_paykey"
"payment_blocked"
"amount_too_large"
"too_many_attempts"
"internal_system_error"
"user_request"
"ok"
"other_network_return"
"payout_refused"
source: Literal["watchtower", "bank_decline", "customer_dispute", 2 more]

Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.

Accepts one of the following:
"watchtower"
"bank_decline"
"customer_dispute"
"user_action"
"system"
code: Optional[str]

The status code if applicable.

status_history: List[DataStatusHistory]

History of the status changes for the payout.

changed_at: datetime

The time the status change occurred.

formatdate-time
message: str

A human-readable description of the status.

reason: Literal["insufficient_funds", "closed_bank_account", "invalid_bank_account", 17 more]

A machine-readable identifier for the specific status, useful for programmatic handling.

Accepts one of the following:
"insufficient_funds"
"closed_bank_account"
"invalid_bank_account"
"invalid_routing"
"disputed"
"payment_stopped"
"owner_deceased"
"frozen_bank_account"
"risk_review"
"fraudulent"
"duplicate_entry"
"invalid_paykey"
"payment_blocked"
"amount_too_large"
"too_many_attempts"
"internal_system_error"
"user_request"
"ok"
"other_network_return"
"payout_refused"
source: Literal["watchtower", "bank_decline", "customer_dispute", 2 more]

Identifies the origin of the status change (e.g., bank_decline, watchtower). This helps in tracking the cause of status updates.

Accepts one of the following:
"watchtower"
"bank_decline"
"customer_dispute"
"user_action"
"system"
status: Literal["created", "scheduled", "failed", 5 more]

The current status of the charge or payout.

Accepts one of the following:
"created"
"scheduled"
"failed"
"cancelled"
"on_hold"
"pending"
"paid"
"reversed"
code: Optional[str]

The status code if applicable.

created_at: Optional[datetime]

The time the payout was created.

formatdate-time
customer_details: Optional[CustomerDetailsV1]

Information about the customer associated with the payout.

id: str

Unique identifier for the customer

formatuuid
customer_type: Literal["individual", "business"]

The type of customer

Accepts one of the following:
"individual"
"business"
email: str

The customer's email address

name: str

The name of the customer

phone: str

The customer's phone number in E.164 format

effective_at: Optional[datetime]

The actual date on which the payment occurred. For payouts, this is the date the funds were sent from your bank account.

formatdate-time
metadata: Optional[Dict[str, str]]

Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the payout in a structured format.

paykey_details: Optional[PaykeyDetailsV1]

Information about the paykey used for the payout.

id: str

Unique identifier for the paykey.

formatuuid
customer_id: str

Unique identifier for the customer associated with the paykey.

formatuuid
label: str

Human-readable label that combines the bank name and masked account number to help easility represent this paykey in a UI

balance: Optional[int]

The most recent balance of the bank account associated with the paykey in dollars.

formatint32
payment_rail: Optional[Literal["ach"]]

The payment rail used for the payout.

Accepts one of the following:
"ach"
processed_at: Optional[datetime]

The time the payout was processed by Straddle and originated to the payment rail.

formatdate-time
updated_at: Optional[datetime]

The time the payout was last updated.

formatdate-time

Metadata about the API request, including an identifier and timestamp.

api_request_id: str

Unique identifier for this API request, useful for troubleshooting.

formatuuid
api_request_timestamp: datetime

Timestamp for this API request, useful for troubleshooting.

formatdate-time
response_type: Literal["object", "array", "error", "none"]

Indicates the structure of the returned content.

  • "object" means the data field contains a single JSON object.
  • "array" means the data field contains an array of objects.
  • "error" means the data field contains an error object with details of the issue.
  • "none" means no data is returned.
Accepts one of the following:
"object"
"array"
"error"
"none"