Skip to main content
Payouts are credit transactions that push funds to a customer’s bank account. Unlike charges, which pull funds from customers, payouts require Straddle to withdraw funds from your account before sending them to recipients. This distinction affects both funding timing and cancellation windows.

What You’ll Learn

This guide provides complete coverage of the payout workflow:
  • Creating payouts with proper authentication and device tracking
  • Understanding the payout status lifecycle and the critical pending threshold
  • Managing payouts through updates, holds, and cancellations before network submission
  • Handling payout-specific failures like recipient refusals and frozen accounts
  • Working with multiple payment rails (ACH, Same Day ACH, RTP, FedNow)
  • Testing payout scenarios using sandbox outcomes
Use payouts for marketplace settlements, refunds, rewards, disbursements, or withdrawals—any scenario where you need to send money to verified bank accounts.
Payouts require a paykey - a token representing a verified bank account. Learn about connecting bank accounts in the Bridge guide.

The Payout Object

A payout represents a credit transaction with comprehensive status tracking and metadata:

Core Fields

Creating a Payout

All payouts require these fields. For a complete list of fields, visit the Payouts API reference.

Required Parameters

string
required
Payment key for the recipient’s verified bank account. Obtained via Bridge flow.
integer
required
Amount to send in cents. Must be positive. Example: 25000 for $250.00
string
required
ISO 4217 currency code. Currently only "USD" is supported.
string
required
Description appearing on bank statements. Maximum 80 characters. Be clear and recognizable.
string
required
Date to process payment (YYYY-MM-DD). Can be today or future-dated up to 90 days.
object
required
Device information for compliance tracking.
string
required
Your unique identifier for this payout. Must be unique across all payouts. Used for idempotency.

Optional Parameters

object
Processing configuration options.
object
Custom key-value pairs. Maximum 20 keys, 40 characters per key/value.

Payment Status Lifecycle

Payouts progress through the same statuses as charges:
Critical: Once a payout reaches pending status, it has been submitted to the payment network and CANNOT be stopped, held, or cancelled.
Important Distinction: Unlike charges which pull funds, payouts require Straddle to withdraw funds from your account BEFORE sending them to recipients. This affects funding event timing.

Status Details

Every status change includes detailed information:

Payout-Specific Failure Reasons

For complete status details, see Payment Statuses Guide.

Common Operations

Retrieve a Payout

Update a Payout

Update payouts in created or scheduled status:

Cancel a Payout

Cancel payouts before they reach pending status:

Place on Hold

Pause a payout for review (only in created or scheduled status):

Release a Hold

Release user-initiated holds only:
Compliance holds (watchtower source) cannot be released via API. They require manual review in the dashboard.

Resubmit a Payout

Re-attempt a payout using the resubmit endpoint. This creates a new transaction that inherits the original payment’s details.

Payment Rails

Straddle automatically selects the optimal payment rail based on amount, timing, and availability:
Straddle automatically optimizes rail selection. You don’t need to specify which rail to use - we’ll choose the fastest, most cost-effective option available.

Handling Failures

When payouts fail, check status_details for specific information:

Testing in Sandbox

Use sandbox_outcome in the config to simulate scenarios:
Common test scenarios:
  • "paid" - Successful payout
  • "failed_closed_bank_account" - Account closed
  • "on_hold_daily_limit" - Compliance hold
  • "failed_payout_refused" - Recipient refusal

Webhooks

Set up webhooks to receive real-time payout updates:

Best Practices

Use Idempotency

Always include a unique external_id to prevent duplicate payouts

Verify Recipients

Confirm recipient details before large payouts

Monitor Limits

Track daily/monthly payout volumes against limits

Handle Returns

Implement workflows for rare payout returns

Next Steps

API Reference

Complete payout endpoint documentation

Payment Statuses

Detailed status flows and return codes

Charges Guide

Learn about collecting payments

Funding Events

Understand settlement and money movement