APG PayAPG Paydocs

Ledgers and journals

Create journal entries

POST/journal-entries

Top up a merchant's book. Writes a balanced pair of entries and answers with the date the funds clear.

Permissions

Required permission
systemJournalEntries:create

Requires the `create` action on `systemJournalEntries` for the supplied runtime context

Request body

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

Discriminated by type
type = "JnalCmdTopUp"
merchantIdMchtIdrequired

The merchant whose book to post to.

Example mcht_9f2Kd8QpLzXw

How much to add. Must be in the journal's currency.

categoryJnalCategoryrequired

Which of the merchant's journals to post to. The merchant and the category identify it between them.

GeneralIncomeFeesDisputesReservedIncomeRealtimeFeesRealtimeDisputesRealtimeNetLimits
+8 more

Max, GeneralLedger, NetLedger, IncomeLedger, FeesLedger, DisputesLedger, ReservedLedger, Unknown

descriptionstringrequired

Why the correction is being made. Recorded against both entries.

curl -X POST https://api.tst.au.apgpay.dev/journal-entries \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "JnalCmdTopUp",
  "merchantId": "mcht_9f2Kd8QpLzXw",
  "amount": {
    "type": "IsoCurrencyAmount",
    "minorCurrencyUnits": 1250,
    "currency": "AUD"
  },
  "category": "General",
  "description": "string"
}'

Responses

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

Discriminated by type
type = "JnalCreateRspAttributes"
clearanceDatestring (date)

The date the funds become available to move. Absent where the platform could not determine one.

Example 2026-08-19

Example
{
  "type": "JnalCreateRspAttributes",
  "clearanceDate": "2026-08-19"
}

Error responses