ARS — Address Resolution Service

Layer 2 — Message

Complete ISO 20022 message in — all party addresses discovered and processed
automatically via XPath registry.

EP-08 — Process Message Party Addresses

Message-level equivalent of EP-01. Submit a complete ISO 20022 message — ARS
discovers all party addresses via XPath registry, applies the correct
PostalAddress24 variant per role, and runs the full 7-step pipeline.

XPath registry covers:

  • pain.001: debtor, creditor, ultimate_debtor, ultimate_creditor, initiating_party (5 roles)
  • pain.008: creditor, debtor, initiating_party (3 roles)
  • pacs.008: debtor, creditor, ultimate_debtor, ultimate_creditor (4 roles)
  • pacs.003: debtor, creditor (2 roles)
  • pacs.009: debtor, creditor (2 roles)

Either messageContent or messageXml required. If both, messageXml takes precedence.
OCT_INST: payer address always mandatory regardless of EEA status.

Processing precedence: channelProfile → processingOptions → context.

post
https://api-uat.ionova.ai/ars/process-message-party-addresses

Headers

X-Request-IDstring(uuid)

Client-supplied correlation ID echoed in response headers for tracing.

Idempotency-Keystring

Idempotency key for safe retry of POST requests. Duplicate submissions with the same key return the cached response.

<= 64 characters

Body

ProcessMessageRequest

EP-08 request. Full ARS AutoCorrect on all party addresses in an ISO 20022 message.

channelNamestring

Name of a registered channelProfile. Loads scheme, direction, outputMode, and other defaults.

executionDatetimestring(date-time)

Transaction execution datetime for SR2026 cutover enforcement.

messageContentobject

JSON equivalent of the ISO 20022 message. One of messageContent or messageXml required.

messageXmlstring

Raw ISO 20022 XML string. Takes precedence over messageContent if both provided.

processingOptionsobject

Per-request overrides of the channelProfile configuration. Only fields present
here override the corresponding channelProfile value. Fields absent here fall
through to channelProfile. This is NOT a general-purpose configuration block —
it only overrides values already set in channelProfile.

Show Child Parameters
contextobject

Analytics/audit passthrough AND processing fallback layer.
Fields labelled “Analytics + Processing fallback” are used as last-resort defaults
when both channelProfile and processingOptions leave a parameter unresolved.
Pure analytics fields are written to the ARS audit log but do not affect processing.
Processing precedence: channelProfile → processingOptions → context.

Show Child Parameters
includearray[string]

Response

Message processing completed

ProcessMessageResponse

decisionstring

Top-level processing decision.

Allowed values:ACCEPTREJECTPARTIAL_SUCCESS

messageTypestring

ISO 20022 message type. R-transaction types (pain.002, pain.007, pacs.002,
pacs.004, camt.029, camt.052, camt.053, camt.054, camt.055, camt.056, camt.058, camt.110, camt.111) must be submitted to R-transaction endpoints only
(EP-07, EP-15). Submitting them to Check/Convert endpoints returns HTTP 422 (REG-06).

Allowed values:pain.001pain.002pain.007pain.008pacs.002pacs.003pacs.004pacs.008pacs.009pacs.010camt.029camt.052camt.053camt.054camt.055camt.056camt.057camt.058camt.060camt.105camt.106camt.107camt.108camt.109camt.110camt.111

schemestring

Payment scheme identifier.

Allowed values:SCTSCT_INSTSDD_CORESDD_B2BOCT_INSTCBPRPLUSCHAPST2EURO1FEDWIREOTHER

discoveredAddressesinteger
resultsarray

Full address processing result object (used in EP-01 and all Layer 1 responses).

Show Child Parameters
statisticsobject

Processing statistics block returned on all endpoints.

Show Child Parameters
issuesarray[object]

Legacy issue object. Preserved for backward compatibility with v4.0 integrations.
New integrations should use reasons[] instead.

Show Child Parameters
timestampstring(date-time)
post/process-message-party-addresses

Body

{ "channelName": "MY_CBPR_OUT", "executionDatetime": "2026-10-15T10:00:00Z", "messageXml": "<Document>...</Document>" }
 

EP-09 — Process Batch Message Party Addresses

Batch version of EP-08. Accepts up to 100 complete ISO messages per call.
Each message processed independently through the full pipeline.

Requires HTTP Message Signature (RFC 9421) and Idempotency-Key header in production.
Maximum 100 messages per call.

Processing precedence: channelProfile → processingOptions → context.

post
https://api-uat.ionova.ai/ars/process-batch-message-party-addresses

Headers

X-Request-IDstring(uuid)

Client-supplied correlation ID echoed in response headers for tracing.

Idempotency-Keystring

Idempotency key for safe retry of POST requests. Duplicate submissions with the same key return the cached response.

<= 64 characters

Content-Digeststring

SHA-256 digest of the request body (RFC 9530). Required input for HTTP
Message Signature verification on this request. Optional in sandbox;
required in production for operations that mandate signing (see operation
description).

Signaturestring

HTTP Message Signature (RFC 9421) over the request, including the
Content-Digest header. Optional in sandbox; required in production for
operations that mandate signing (see operation description).

Signature-Inputstring

Signature metadata (RFC 9421) — identifies the signature algorithm,
covered components, and key identifier used to produce the Signature
header. Required whenever Signature is present.

Body

ProcessBatchMessageRequest

EP-09 batch request. Up to 100 messages per call.

channelNamestring
messagesarray[object]required

<= 100 items

Show Child Parameters
contextobject

Analytics/audit passthrough AND processing fallback layer.
Fields labelled “Analytics + Processing fallback” are used as last-resort defaults
when both channelProfile and processingOptions leave a parameter unresolved.
Pure analytics fields are written to the ARS audit log but do not affect processing.
Processing precedence: channelProfile → processingOptions → context.

Show Child Parameters

Response

Batch message processing completed

ProcessBatchMessageResponse

decisionstring

Top-level processing decision.

Allowed values:ACCEPTREJECTPARTIAL_SUCCESS

messageResultsarray[object]
Show Child Parameters
statisticsobject

Processing statistics block returned on all endpoints.

Show Child Parameters
timestampstring(date-time)
post/process-batch-message-party-addresses

Body

{ "channelName": "MY_CBPR_OUT", "messages": [ { "messageType": "pacs.008", "scheme": "CBPRPLUS", "schemeVersion": "SR2026", "executionDatetime": "2026-10-15T10:00:00Z", "messageXml": "<Document>...</Document>" } ] }
 

EP-10 — Check Message Party Addresses (ARS PreCheck)

Message-level structural validation. Discovers all party addresses, classifies each,
and runs structural validation. No postal DB, no conversion.

Typical workflow: Check → COMPLIANT: transmit. NOT_COMPLIANT: call EP-12 (AutoCorrect).

v4.2 change: No longer performs postal DB verification.
R-transaction types return HTTP 422 REG-06.

Processing precedence: channelProfile → processingOptions → context.

post
https://api-uat.ionova.ai/ars/check-message-party-addresses

Headers

X-Request-IDstring(uuid)

Client-supplied correlation ID echoed in response headers for tracing.

Body

CheckMessageRequest

EP-10 request. Structural PreCheck on all party addresses in message.

channelNamestring
messageContentobject
messageXmlstring
processingOptionsobject

Per-request overrides of the channelProfile configuration. Only fields present
here override the corresponding channelProfile value. Fields absent here fall
through to channelProfile. This is NOT a general-purpose configuration block —
it only overrides values already set in channelProfile.

Show Child Parameters
contextobject

Analytics/audit passthrough AND processing fallback layer.
Fields labelled “Analytics + Processing fallback” are used as last-resort defaults
when both channelProfile and processingOptions leave a parameter unresolved.
Pure analytics fields are written to the ARS audit log but do not affect processing.
Processing precedence: channelProfile → processingOptions → context.

Show Child Parameters

Response

Message check completed

CheckMessageResponse

messageStatusstring

Outcome of structural pre-check validation.

Allowed values:COMPLIANTNOT_COMPLIANT

compliantCountinteger
nonCompliantCountinteger
discoveredAddressesinteger
resultsarray[object]
Show Child Parameters
timestampstring(date-time)
post/check-message-party-addresses

Body

{ "channelName": "MY_SEPA_SCT", "messageXml": "<Document>...</Document>" }
 

EP-11 — Classify Message Party Addresses

Message-level equivalent of EP-06. Discovers and classifies every party address in a
submitted ISO 20022 message. No validation, verification, or conversion.

No issues[] or reasons[] in response. Context fields are analytics only.
Very low latency — ideal for routing decisions and dashboard aggregation.

Processing precedence: channelProfile → processingOptions → context.

post
https://api-uat.ionova.ai/ars/classify-message-party-addresses

Headers

X-Request-IDstring(uuid)

Client-supplied correlation ID echoed in response headers for tracing.

Body

ClassifyMessageRequest

EP-11 request. Classification of all party addresses in message.

channelNamestring
messageContentobject
messageXmlstring
contextobject

Analytics only for this endpoint.

Show Child Parameters

Response

Message classification completed

ClassifyMessageResponse

messageTypestring

ISO 20022 message type. R-transaction types (pain.002, pain.007, pacs.002,
pacs.004, camt.029, camt.052, camt.053, camt.054, camt.055, camt.056, camt.058, camt.110, camt.111) must be submitted to R-transaction endpoints only
(EP-07, EP-15). Submitting them to Check/Convert endpoints returns HTTP 422 (REG-06).

Allowed values:pain.001pain.002pain.007pain.008pacs.002pacs.003pacs.004pacs.008pacs.009pacs.010camt.029camt.052camt.053camt.054camt.055camt.056camt.057camt.058camt.060camt.105camt.106camt.107camt.108camt.109camt.110camt.111

schemestring

Payment scheme identifier.

Allowed values:SCTSCT_INSTSDD_CORESDD_B2BOCT_INSTCBPRPLUSCHAPST2EURO1FEDWIREOTHER

discoveredAddressesinteger
classificationsarray[object]
Show Child Parameters
timestampstring(date-time)
post/classify-message-party-addresses

Body

{ "channelName": "MY_SEPA_SCT", "messageXml": "<Document>...</Document>" }