APG PayAPG Paydocs

Payouts

Create payouts

POST/payouts

Raise a payout by hand, for the credential's own merchant.

Permissions

Required permission
merchantFinancials:update

Requires the `update` action on `merchantFinancials` for the supplied runtime context

Request body

This body is a tagged shape: type is always "PayoutCmdCreateManual". Send it; more variants can be added, and a caller that switches on it keeps working when they are.

Discriminated by type
type = "PayoutCmdCreateManual"

How much to pay out. Must be in a currency the merchant keeps books in.

statementDescriptorstringrequired

What the recipient sees on their bank statement.

Example ADA COFFEE

paymentChannelsarray of PayoutChannel

Which channels are acceptable, in preference order. NPP is near-instant and costs more.

DirectEntryNppUnknown
externalAccountIdXaccId

Which account to pay into. Defaults to the merchant's primary; a 400 if neither is set.

Example xacc_9f2Kd8QpLzXw

feePayingMerchantIdMchtId

Which merchant bears the payout fees. Defaults to the merchant being paid; naming another requires financials-update on it too.

Example mcht_9f2Kd8QpLzXw

curl -X POST https://api.tst.au.apgpay.dev/payouts \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "PayoutCmdCreateManual",
  "amount": {
    "type": "IsoCurrencyAmount",
    "minorCurrencyUnits": 1250,
    "currency": "AUD"
  },
  "statementDescriptor": "ADA COFFEE",
  "paymentChannels": [
    "DirectEntry"
  ],
  "externalAccountId": "xacc_9f2Kd8QpLzXw",
  "feePayingMerchantId": "mcht_9f2Kd8QpLzXw"
}'

Responses

The response is a tagged shape: type is always "PayoutCreateRspAttributes". Switch on it; subtypes can be added, and a client that already reads it will not break.

Discriminated by type
type = "PayoutCreateRspAttributes"

The resource that was created.

Example
{
  "type": "PayoutCreateRspAttributes",
  "created": {
    "type": "PayoutViewAttributes",
    "payoutId": "payout_9f2Kd8QpLzXw",
    "reference": "your-own-reference",
    "merchantId": "mcht_9f2Kd8QpLzXw",
    "marketplaceId": "mktp_9f2Kd8QpLzXw",
    "enterpriseId": "ent_9f2Kd8QpLzXw",
    "status": "Created",
    "amounts": {
      "type": "PayoutAmountsAttributes",
      "currency": "AUD",
      "amount": 1250,
      "openingBalance": 1250,
      "closingBalance": 1250
    },
    "entryCount": 42,
    "settlement": {
      "type": "PayoutSettlementAttributes",
      "settlementType": "Net",
      "facilitation": "Abacus",
      "settlementDate": "2026-08-19",
      "arrivedAt": "2026-08-19T04:21:07Z"
    },
    "origin": {
      "type": "PayoutOriginManual",
      "issuedBy": "string"
    },
    "disbursement": {
      "type": "PayoutDisbursementAttributes",
      "disbursementId": "disb_9f2Kd8QpLzXw",
      "gateway": "StripeConnectAu",
      "priority": 10,
      "channel": "DirectEntry",
      "requestedChannels": [
        "DirectEntry"
      ],
      "required": true,
      "attempts": [
        {
          "type": "PayoutAttemptCleared",
          "disbursementId": "disb_9f2Kd8QpLzXw",
          "at": "2026-08-19T04:21:07Z"
        }
      ]
    },
    "externalAccountId": "xacc_9f2Kd8QpLzXw",
    "ledgerClearance": {
      "type": "PayoutLedgerClearanceAttributes",
      "systemLedgerId": "string",
      "firstSequence": 1250,
      "lastSequence": 1250
    },
    "statementDescriptor": "ADA COFFEE",
    "narrative": "string",
    "composition": {
      "type": "PayoutCompositionAttributes",
      "currency": "AUD",
      "journalEntries": [
        {
          "type": "PayoutEntrySummaryAttributes",
          "entryType": "string",
          "count": 42,
          "amount": 1250
        }
      ],
      "ledgerEntries": [
        {
          "type": "PayoutEntrySummaryAttributes",
          "entryType": "string",
          "count": 42,
          "amount": 1250
        }
      ]
    },
    "createdAt": "2026-08-19T04:21:07Z",
    "updatedAt": "2026-08-19T04:21:07Z"
  }
}

Error responses