Simulate payment batch
simulate_payment_batchSimulate and pre-flight a payment batch before XML generation: validate records against ISO 20022 schemas and scheme rules, compute control sums, and detect duplicates.
Instructions
Simulate and pre-flight a payment batch before XML generation.
Performs comprehensive pre-flight verification without generating XML
or staging files:
1. Validates records against the message type's JSON Schema.
2. Validates records against an optional payment-scheme rulebook.
3. Computes control sums grouped by currency.
4. Calculates unique debtor and creditor account counts.
5. Detects intra-batch duplicate transactions (same debtor, creditor,
amount, currency, and execution date).
Returns a structured verdict with totals, sums by currency, duplicate
findings, and schema/scheme errors.
Args:
message_type: A supported ISO 20022 pain message type.
records: One or more flat payment records to simulate.
scheme: Optional payment scheme profile to validate against.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scheme | No | Optional payment-scheme rulebook profile to enforce (e.g. 'sepa-sct', 'sepa-sdd', 'sepa-inst', 'xborder-ct'). Omit to skip scheme-specific rulebook validation. | |
| records | Yes | One or more flat payment records to simulate and pre-flight before generating XML. One or more flat payment records (dicts of field name → value). Key fields (see get_input_schema for the full contract): id, date (payment-initiation timestamp; 'YYYY-MM-DD' is accepted and rendered as midnight), initiator_name, payment_id, requested_execution_date ('YYYY-MM-DD'), debtor_name, debtor_account_IBAN, debtor_agent_BIC, creditor_name, creditor_account_IBAN, creditor_agent_BIC, payment_amount (alias: 'amount'; max two decimals), currency (alias: 'payment_currency'; ISO 4217, e.g. 'EUR'), remittance_information. batch_booking accepts JSON true/false. nb_of_txs and ctrl_sum are computed automatically from the records and may be omitted. payment_method defaults to 'TRF' and charge_bearer to 'SLEV'. IBAN and BIC values are strictly validated and never coerced. | |
| message_type | Yes | A supported ISO 20022 pain message type. Must be exactly one of: 'pain.001.001.03', 'pain.001.001.04', 'pain.001.001.05', 'pain.001.001.06', 'pain.001.001.07', 'pain.001.001.08', 'pain.001.001.09', 'pain.001.001.10', 'pain.001.001.11', 'pain.001.001.12', 'pain.001.001.13', 'pain.008.001.02', 'pain.008.001.08', 'pain.001', 'pain.008' (see list_message_types). The bare family names 'pain.001' and 'pain.008' are accepted as aliases for 'pain.001.001.09' and 'pain.008.001.02'. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | ||
| total | No | ||
| valid | No | ||
| duplicates | No | ||
| valid_count | No | ||
| schema_errors | No | ||
| unique_debtors | No | ||
| unique_creditors | No | ||
| scheme_violations | No | ||
| control_sum_by_currency | No |