Skip to main content

Preflight an ISO 20022 pacs.009 credit transfer

POST 

/v1/iso20022/messages/preflight

Check, without executing anything, whether a pacs.009.001.08 message would currently pass the platform's liquidity, mint-limit and exposure-limit checks if you submitted it. This is the XML counterpart of POST /v1/transfers/preflight.

Required scope: connector:transfers:create (the same scope as submitting).

Request​

Send exactly the message you intend to submit to POST /v1/iso20022/messages, with Content-Type: application/iso20022+xml. It goes through the same validation (size, node count and depth limits, DTD and external-entity rejection, head.001.001.03 and pacs.009.001.08 XSD schemas) and the same field mapping (sender BIC, receiver BIC, currency, amount and accounts), so the same 400 and 403 errors apply. See the submit operation for the full mapping table. As with POST /v1/transfers/preflight, the result depends only on the two banks, the currency and the amount: the accounts must be present in the message but are not checked against registered accounts, so an unregistered account is only detected on submission.

Preflight has no side effects: it does not store the message, does not claim the UETR, and creates no operation or transfer. No Idempotency-Key header is needed and repeating a call is always safe. The UETR is not checked for prior use.

Response​

200 OK with a transfer-preflight.001.001.01 document in application/xml. This is a platform-defined message (namespace urn:dan:xsd:transfer-preflight.001.001.01), not an ISO 20022 registered message type. The X-ISO20022-UETR header echoes the message UETR.

ElementMeaning
Header/MessageIdUnique id of this response (PFR- followed by a UUID).
Header/CreatedAt, Assessment/EvaluatedAtUTC date and time of the evaluation, without a zone designator.
Header/OriginalMessage/MessageTypeAlways pacs.009.001.08.
Header/OriginalMessage/FingerprintLowercase hex SHA-256 of the exact request body bytes; use it to match the result to the message you sent.
Assessment/PreflightIdUnique id of this evaluation (PF- followed by a UUID).
Assessment/DecisionPASS or BLOCKED.
PreflightResult/OriginalUETRUETR of the evaluated message.
PreflightResult/WouldSucceedtrue for PASS, false for BLOCKED.
PreflightResult/BlockingReasonOnly when blocked: INSUFFICIENT_LIQUIDITY, MINT_LIMIT_EXCEEDED or RECEIVER_EXPOSURE_LIMIT_EXCEEDED.
PreflightResult/MitigationOnly when blocked: ADJUST_AMOUNT_OR_RETRY_LATER, REQUEST_ISSUANCE_LIMIT_INCREASE or REQUEST_COUNTERPARTY_EXPOSURE_LIMIT_INCREASE respectively.
PreflightResult/AvailableHeadroomOnly when blocked and the headroom is known: remaining headroom in the asset's minor units (for example cents), with the currency in @Ccy. Returned for MINT_LIMIT_EXCEEDED; for RECEIVER_EXPOSURE_LIMIT_EXCEEDED only if the network is configured to disclose counterparty headroom.

PASS reflects the state when the request was evaluated; balances and limits can change before you submit. It also does not predict beneficiary screening or approval workflows, which only run after submission.

Responses are sent without indentation; the examples are indented for readability.

Request​

Responses​

The eligibility assessment.

Response Headers
    X-ISO20022-UETR

    UETR (Unique End-to-end Transaction Reference) of the payment this response refers to: a lowercase, hyphenated UUID version 4, taken from PmtId/UETR of the submitted pacs.009 message. The platform never assigns a UETR; it always echoes the one the sending bank chose.