Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /payouts | List payouts |
GET | /payouts/:id | Get payout |
POST | /payouts | Create payout |
List Payouts
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | number | Page number (default: 1) |
limit | number | Items per page (default: 20, max: 100) |
status | string | Filter: pending_approval, approved, rejected, executing, completed, failed |
type | string | Filter: direct, disbursement |
search | string | Search by client name or wallet address |
Response
Get Payout
Response
Create Payout
Request Body
Fields
| Field | Type | Required | Description |
|---|---|---|---|
clientId | string | No* | Client ID (uses client’s wallet address) |
walletAccountId | string | No* | Direct Stellar wallet address |
assetAmount | number | Yes | Amount to send |
assetCode | string | Yes | Currency code (HTG, USD) |
assetIssuer | string | No | Asset issuer (null for native XLM) |
memo | string | No | Transaction memo (max 28 characters) |
clientId or walletAccountId must be provided.
Validation
walletAccountIdmust be a valid Stellar address (56 characters, starts with G)assetAmountmust be positiveassetCodemax 12 charactersmemomax 28 characters (Stellar memo limit)
Response
Returns the created payout (same format as Get Payout).Payout Status
Approval Status
| Status | Description |
|---|---|
pending | Awaiting approval |
approved | Approved, ready for execution |
rejected | Approval denied |
Execution Status
| Status | Description |
|---|---|
pending | Not yet executed |
ready_to_send | Queued for execution |
sent | Successfully completed |
failed | Execution failed |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | invalid_client | Client not found |
| 400 | no_wallet | Client has no wallet address |
| 400 | invalid_wallet | Invalid Stellar address format |
| 400 | invalid_amount | Amount must be positive |
| 400 | missing_recipient | Either clientId or walletAccountId required |
| 404 | not_found | Payout not found |
Webhooks
Subscribe to payout events:payout.createdpayout.approvedpayout.rejectedpayout.completedpayout.failed