Getting started

Your first payout

Send MUNY to a Solana address with a single request, then follow it to confirmation.

  1. Get a test API key

    In the dashboard, open Developers → API keys and create a key with the create_payout and view_payouts scopes.

  2. Fund a wallet

    Payouts are sent from your organization's default wallet unless you pass a wallet_id.

  3. 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"
}
FieldRequiredDescription
recipientOne ofRecipient Solana address.
recipient_idOne ofA saved recipient from your address book.
amountYesDecimal string in whole MUNY, e.g. "500" or "12.5".
tokenNoDefaults to MUNY.
referenceNoYour own reference (order, commission, invoice ID).
wallet_idNoFunding wallet. Defaults to the organization's default wallet.
idempotency_keyYes*Or send the Idempotency-Key header. The SDK generates one for you.
metadataNoUp 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 as awaiting_approval and is sent only after a Finance, Admin or Owner member approves it in the dashboard.