Sending Payouts via API
Learn how to send money securely to any person or account using the Transaction API
The Payout API enables you to send money directly to bank accounts, payment methods, or customer accounts. Send vendor payments, commission payouts, refunds, or account-to-account transfers programmatically through your backend. The API provides full control over payout flows.
The Payout API is ideal for server-side payout processing and backend integrations. For collecting payments, see Payment API. For managing recipient accounts, see Creating Accounts.
Prerequisites
Before sending payouts through the API, it's helpful to learn about the following topics.
Payout enrollment with embedded form
Learn how to collect recipient payment methods using Payload's embeddable form components.
Payout enrollment via API
Learn how to create and manage recipient payment methods programmatically through the API.
When to Use Payout API
Use the Payout API when you need to send money programmatically to recipients. The Transaction API enables server-side payout flows where you manage the entire disbursement lifecycle through API calls.
By using the Payout API, you handle recipient data securely on your backend while Payload manages compliance, banking network communication, and settlement processing. You have complete control over payout timing, amounts, and integration with your business logic.
Common use cases
- Vendor Payments: Pay suppliers, contractors, and service providers programmatically
- Commission Payouts: Disburse earnings to sales teams, affiliates, and partners
- Refund Processing: Send refunds directly to customer bank accounts
- Marketplace Disbursements: Pay sellers and service providers on multi-sided platforms
- Account-to-Account Transfers: Move funds between your own accounts or customer wallets
- Batch Payout Operations: Process multiple payouts programmatically
- Scheduled Disbursements: Send payouts triggered by scheduled jobs or business events
Sending a Payout
Send a payout by creating a transaction with type payout and referencing a saved payment
method.
This example creates a payout transaction with:
-
type='payout'specifies this is a payout transaction -
amountsets the payout amount in dollars -
descriptionprovides context about the payout purpose (appears on recipient statements) -
notesadds internal record-keeping details (not visible to recipient) -
order_numberlinks the payout to your internal order or reference ID -
sender.account_ididentifies your processing account sending funds -
receiver.method_idreferences a saved payment method for the recipient
The response includes transaction details with status showing the payout processing state
(processing, processed, or rejected). The recipient account is automatically determined from the
payment method.
Optional Fields
- description: Context about the payout that may appear on bank statements (subject to bank formatting)
- notes: Internal notes for record-keeping, reporting, and customer support (not visible to recipient)
- order_number: Your internal reference ID for linking payouts to orders or invoices
Including these fields improves record-keeping, enables better reporting, and provides context for reconciliation and support inquiries.
Payment Methods: Recipients must have saved payment methods before receiving payouts. See Payment Methods for details on saving and managing payment methods. bank transfer bank payouts typically settle in 1-3 business days.
Using Default Payment Methods
Send a payout to an account using its default payout payment method by referencing only the account ID.
This example:
- Sets
receiver.account_idto specify the recipient account - Does not specify
receiver.method_id- the default payout method is used automatically - The account must have a payment method configured with
account_defaults.paying='payouts'or'all' - Simplifies payout flows when recipients have default methods configured
When a payment method is set as the default for payouts on an account, you can send payouts by referencing only the account ID. The system automatically uses the configured default payment method.
Default Methods: Recipients must configure a default payout method before this approach
works. See Default Payment Methods for details on configuring
defaults. If no default is set, you must specify method_id explicitly.
Retrieving Payout Details
Retrieve complete payout transaction details using the transaction ID.
This allows you to:
- Check the current payout status
- Retrieve recipient and payment method details
- View estimated clearing dates
- Access transaction timestamps and processing details
- Get sender and receiver account information
Listing Payouts
Query payout transactions by account, status, or other filters.
This example:
- Filters transactions by sender account ID (your processing account)
- Limits results to payout type transactions
- Only returns processed payouts
- Supports pagination for large result sets
Use payout listing to build reporting dashboards, reconcile disbursements, and analyze payout activity.
Schema Reference
The following fields are available when creating and configuring payout transactions. For complete API details, see the Transaction API Reference.
Payout Transaction Configuration
Core fields used when creating payout transactions:
typepayment, deposit, withdraw, refund, payoutamountdescriptionsenderaccountAccountaccount_id ID of Account^acct_[A-Za-z0-9]+$methodPaymentMethodmethod_id ID of PaymentMethod^pm_[A-Za-z0-9]+$receiveraccountAccountaccount_id ID of Account^acct_[A-Za-z0-9]+$methodPaymentMethodmethod_id ID of PaymentMethod^pm_[A-Za-z0-9]+$clearing_timinginstant, same_day, next_daynotesorder_numberstatuscodeapproved, card_expired, duplicate_attempt, exceeded_limit, general_decline, insufficient_bal, invalid_card_code, invalid_card_number, invalid_zip, invalid_address, invalid_account_number, suspicious_activity, too_many_attempts, processing_issue, issue_reading_card, not_supported, general_reject, general_adjustment, payment_stopped"Undocumented"messagevalueprocessing, authorized, processed, declined, rejected, voided, adjustedNext Steps
Enhance your payout processing implementation
Enroll Payout Recipients
Set up recipients to receive payouts using Enrollment Link, Embedded Form, or Back-End API to collect and store bank account details.
Monitor Payout Events
Subscribe to webhook notifications to receive real-time updates about payout processing status, completions, and any rejections or issues.
Build Payout Reports
Use Transaction Reports and Payout Reports to track disbursement activity and reconcile payout data.
Related articles
- Payment API - Collect payments from customers
- Payment Methods - Manage payment methods
- Creating Accounts - Create recipient accounts
- Transactions API Reference