Assign one or more invoices to a bank account transaction and immediately dispose of any remaining or overpaid amount in a single request.
POST /api/payment/bank-account-transactions/{id}/assign-with-dispositionAssigns invoices to a bank account transaction and, in the same request, handles the remaining or
overpaid amount according to a chosen disposition. This combines invoice assignment and remainder
booking into one atomic operation, eliminating the separate follow-up step.Required permission:BankAccountTransactionWrite
Invoices to assign, in assignment order. Must contain at least one entry. All IDs must exist; an unknown ID yields a 422 before anything is booked.
disposition
string (enum)
Yes
How to handle the remaining or overpaid amount. See Disposition values below.
assignmentAmounts
object (invoice ID → decimal string)
No
Optional per-invoice amount caps. Keys must be invoice IDs from invoiceIds. Not supported with credit_wallet or credit_wallet_and_payout: omit or send null when using a wallet disposition.
Leaves the remainder unbooked. The transaction keeps an outstanding amount and can be assigned to further invoices later. This reproduces the behaviour of the plain assign endpoint.
credit_wallet
Overpays the last assigned invoice by the full remaining amount so the transaction is fully booked, then moves that overpayment to the customer’s credit balance (Guthaben). Requires all invoices to belong to a single customer.
credit_wallet_and_payout
Currently not available (returns 422 payout_not_available). Identical to credit_wallet, but would additionally schedule a SEPA payout of the credited amount back to the customer. Disabled pending the outbound ledger leg in the payout subsystem.
credit_wallet_and_payout returns a 422 with reason payout_not_available for every request.
The disposition is accepted by the schema but blocked at the service layer until the payout
subsystem books its outbound ledger leg. Use credit_wallet if you want to credit the remainder
to the customer’s balance without an immediate payout.
Assign with per-invoice amount caps (open disposition)
Use assignmentAmounts when you want to assign a specific partial amount per invoice rather than
the invoice’s full outstanding balance. This is only available with disposition: "open".
All errors follow the standard problem+json format.
HTTP status
reason
Description
403
(none)
The API token does not have the BankAccountTransactionWrite permission.
404
(none)
No bank account transaction found for the given id within the organisation.
422
assignment_amounts_with_wallet_disposition
assignmentAmounts was provided together with credit_wallet or credit_wallet_and_payout. Per-invoice amount caps are not supported with wallet dispositions because the remainder must be fully absorbed by the last invoice.
422
return_transaction
The transaction is a returned direct debit (Rücklastschrift) and cannot be assigned here.
422
non_positive_transaction
Wallet dispositions require an incoming (positive) transaction.
422
no_single_payment_intent
The last invoice has no single resolvable payment intent to book the remainder against.
422
payout_not_available
credit_wallet_and_payout was requested but is not yet available. Use credit_wallet instead.
422
(validation)
An invoice ID in invoiceIds does not exist, invoiceIds is empty, or disposition is not a valid enum value.
422
(domain)
The invoices span multiple customers. Wallet dispositions (credit_wallet, credit_wallet_and_payout) require all invoices to belong to a single customer.