POST
/trancodesCreate a transaction code template
Store a newly created tranCode.
Request bodyrequired
| Field | Type | Description |
|---|---|---|
coderequired | string | Unique code for this template (immutable after creation; uppercase letters, numbers, hyphen, underscore) |
namerequired | string | |
description | string nullable | |
status | string enum: active | deprecated · default: "active" | |
params_schema | one of: ParamsSchema nullable | |
entries_templaterequired | EntriesTemplate | Double-entry template stored on a transaction code. At least 2 entries are required; once parameters are substituted, debits and credits must balance. |
entries_template.entriesrequired | EntryTemplate[] min items: 2 | |
attributes_template | one of: AttributesTemplate nullable | |
validation_rules | object nullable | |
metadata | object nullable |
Responses
201Transaction code created
{
"success": true,
"data": {
"id": "01997c1e-4d2a-7c3e-9a1b-2f0e8c6d4b5a",
"ledger_id": "01997c1e-4d2a-7c3e-9a1b-2f0e8c6d4b5a",
"code": "PAYMENT",
"name": "Customer Payment",
"status": "active",
"version": 1,
"entries_template": {
"entries": [
{
"account": "{params.from_account}",
"type": "credit",
"amount": "{params.amount}"
},
{
"account": "{params.to_account}",
"type": "debit",
"amount": "{params.amount}"
}
]
},
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-01-15T10:30:00Z"
}
} 400Validation error
{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_ERROR"
} 401Unauthenticated
{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_ERROR"
} 403Forbidden
{
"success": false,
"message": "Validation failed",
"code": "VALIDATION_ERROR"
} Examples
curl -X POST https://ledga.io/api/v1/trancodes \
-H "Authorization: Bearer sk_xxxxxxxx_your_secret" \
-H "Content-Type: application/json" \
-d '{
"code": "PAYMENT",
"name": "Customer Payment",
"status": "active",
"entries_template": {
"entries": [
{
"account": "{params.from_account}",
"type": "credit",
"amount": "{params.amount}"
},
{
"account": "{params.to_account}",
"type": "debit",
"amount": "{params.amount}"
}
]
}
}' use Ledga\Api\LedgaClient;
$ledga = new LedgaClient('sk_xxxxxxxx_your_secret');
$code = $ledga->transactionCodes->create([
'code' => 'BOOK_TRANSFER',
'name' => 'Book transfer',
'params_schema' => ['type' => 'object', 'required' => ['amount', 'from_account', 'to_account'], 'properties' => [
'amount' => ['type' => 'string'], 'from_account' => ['type' => 'string'], 'to_account' => ['type' => 'string'],
]],
'entries_template' => ['entries' => [
['account' => '{params.from_account}', 'type' => 'credit', 'amount' => '{params.amount}'],
['account' => '{params.to_account}', 'type' => 'debit', 'amount' => '{params.amount}'],
]],
]);