Stage payment batch for simulation and approval
stage_payment_batchValidate and risk-score ISO 20022 payment records in memory, producing an XML fingerprint and dual-control confirmation token for approval before any funds move.
Instructions
Stage a payment batch for simulation and dual-control approval.
Creates an in-memory staged payment order with zero fund movement and
a 1-hour expiration window. Computes:
1. Schema validation against the message type's JSON Schema.
2. Optional scheme compliance verification (SEPA, BACS, etc.).
3. Multi-currency control sums and fee estimation.
4. Multi-factor risk scoring (detecting duplicates, high transaction
amounts, and generic remittance narratives).
5. In-memory XML compilation and SHA-256 fingerprinting.
6. Cryptographic dual-control confirmation token for subsequent authorization.
Args:
message_type: A supported ISO 20022 pain message type.
records: One or more flat payment records to stage.
scheme: Optional payment scheme profile to validate against.
Returns:
StagedBatchResult with staging metadata, risk assessment, fingerprint,
and confirmation token, or {"error": ...}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scheme | No | Optional payment scheme profile to validate against, e.g. 'sepa-sct', 'sepa-instant', 'bacs', or 'cbpr-plus'. | |
| records | Yes | Flat payment records to stage (zero fund movement). 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 | ||
| status | No | ||
| stage_id | No | ||
| expires_at | No | ||
| risk_level | No | ||
| risk_score | No | ||
| risk_factors | No | ||
| estimated_fees | No | ||
| confirmation_token | No | ||
| sha256_fingerprint | No | ||
| total_transactions | No | ||
| control_sum_by_currency | No |