Getting started
Your first payout
Send MUNY to a Solana address with a single request, then follow it to confirmation.
Get a test API key
In the dashboard, open Developers → API keys and create a key with the
create_payoutandview_payoutsscopes.Fund a wallet
Payouts are sent from your organization's default wallet unless you pass a
wallet_id.Create the payout
Send the recipient address, the amount as a decimal string, and your own reference.
Create the payout#
curl https://api.muny.io/v1/payouts \
-H "Authorization: Bearer $MUNY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order_8392" \
-d '{
"recipient": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"amount": "500",
"token": "MUNY",
"reference": "AFFILIATE-8392"
}'200 OK
{
"id": "6c1f0a2e-93b4-4c8e-9a51-3f0d7e2b8c41",
"object": "payout",
"status": "queued",
"recipient": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"amount": "500",
"token": "MUNY",
"reference": "AFFILIATE-8392",
"idempotency_key": "order_8392",
"fee_sponsored": true,
"transaction": null,
"created_at": "2026-10-01T09:30:00.000Z"
}| Field | Required | Description |
|---|---|---|
recipient | One of | Recipient Solana address. |
recipient_id | One of | A saved recipient from your address book. |
amount | Yes | Decimal string in whole MUNY, e.g. "500" or "12.5". |
token | No | Defaults to MUNY. |
reference | No | Your own reference (order, commission, invoice ID). |
wallet_id | No | Funding wallet. Defaults to the organization's default wallet. |
idempotency_key | Yes* | Or send the Idempotency-Key header. The SDK generates one for you. |
metadata | No | Up to 20 string key/value pairs. |
Follow it to confirmation#
Payouts settle asynchronously. Subscribe to webhooks for payout.confirmed and payout.failed, or poll the payout:
ts
const latest = await muny.payouts.retrieve(payout.id);
if (latest.status === "confirmed") {
console.log(latest.transaction?.signature, latest.transaction?.explorer_url);
}Once confirmed, transaction contains the Solana signature, an explorer link, the slot and the network fee. Network fees on payouts are sponsored by Muny (fee_sponsored: true).
Approval thresholds
If your organization requires approval above a certain amount, the payout is created asawaiting_approval and is sent only after a Finance, Admin or Owner member approves it in the dashboard.