- name
- create_dimension_and_entry
- tier
- 2
- task
- T17
- description
- This skill should be used when the task asks to "create an accounting dimension", "create a custom dimension", "cree una dimensión contable", "opprett ein rekneskapsdimensjon", "créer une dimension comptable", "criar uma dimensão contábil", "Buchungsdimension erstellen", or involves creating custom accounting dimensions with values and registering journal entries (vouchers) linked to those dimensions.
# Create Custom Accounting Dimension + Journal Entry
5 calls, 3 turns. Do NOT search for existing dimensions — always create.
## Turn 1: Create Dimension + Get Accounts (parallel — 2 calls)
```json
POST /ledger/accountingDimensionName
{"dimensionName": "<dimension name from prompt>", "active": true}
```
Save the `dimensionIndex` from the response.
```
GET /ledger/account?number=<expense_account>,1920&fields=id,number,name
```
Both calls in parallel. They are independent.
## Turn 2: Create BOTH Dimension Values (parallel — 2 calls)
```json
POST /ledger/accountingDimensionValue
{"dimensionIndex": <index_from_turn1>, "displayName": "<value1>", "active": true, "showInVoucherRegistration": true}
```
```json
POST /ledger/accountingDimensionValue
{"dimensionIndex": <index_from_turn1>, "displayName": "<value2>", "active": true, "showInVoucherRegistration": true}
```
Both calls in parallel. Both need only `dimensionIndex` from Turn 1. Save the `id` of the value that the prompt says to link to the journal entry.
## Turn 3: Create Journal Entry (1 call)
```json
POST /ledger/voucher
{
"date": "2026-03-21",
"description": "<expense description>",
"postings": [
{
"date": "2026-03-21",
"account": {"id": <expense_account_id>},
"amountGross": <amount>,
"amountGrossCurrency": <amount>,
"description": "<expense description>",
"row": 1,
"freeAccountingDimension1": {"id": <dimension_value_id>}
},
{
"date": "2026-03-21",
"account": {"id": <bank_1920_id>},
"amountGross": -<amount>,
"amountGrossCurrency": -<amount>,
"description": "Payment",
"row": 2
}
]
}
```
**Total: 5 calls, 0 errors, 3 turns.**
## STRICT RULES
- **Do NOT search** for existing dimensions — ALWAYS create. Competition sandboxes are fresh.
- Dimension name field is `dimensionName` — NOT `name`
- Dimension value field is `displayName` — NOT `name`
- Values need `dimensionIndex` (integer from parent dimension response)
- Link to voucher via `freeAccountingDimension1: {"id": <value_id>}` — use the value mentioned in the prompt
- Postings must balance (debits + credits = 0)
- Both `amountGross` AND `amountGrossCurrency` required on every posting
- `row` starts from 1 (row 0 is system-reserved)
- Maximize parallelism: Turn 1 (2 parallel) → Turn 2 (2 parallel) → Turn 3 (1 call)
GitHubで見る