BankingCircle.ISO20022 (banking_circle v1.0.0)

Copy Markdown View Source

Payment initiation via raw ISO20022 XML messages, for shops already standardized on pain.001 (customer credit transfer initiation) or pacs.008 (FI-to-FI credit transfer) rather than Banking Circle's JSON payment shape.

Scope note: this module is a thin transport layer — it posts a caller-supplied XML document to the right endpoint with the right content type. It does not build or validate ISO20022 XML for you; constructing a correct pain.001/pacs.008 document (namespaces, required elements, structured-address migration requirements effective November

  1. is real domain complexity better served by a dedicated XML library (e.g. building via :xmerl or a SAXY-based builder) or your existing ISO20022 tooling than by anything this HTTP client should own.

Prefer BankingCircle.Payments.create_single/2 (JSON) unless you have a specific reason to use the XML path.

Summary

Functions

Fetches account activity as a camt.053 XML statement, the ISO20022 reporting counterpart to BankingCircle.Reporting's JSON/CSV reports.

Submits a pacs.008 (FIToFICustomerCreditTransfer) XML document — the ISO20022 path for Correspondent/Agency Banking payments (see also BankingCircle.Payments.create_fi_to_fi/2 for the JSON equivalent). xml is the complete, already-valid document body (as a binary).

Submits a pain.001 (CustomerCreditTransferInitiation) XML document. xml is the complete, already-valid document body (as a binary).

Types

client()

@type client() :: atom()

Functions

camt053(account_id, filters \\ [], client \\ :default)

@spec camt053(String.t(), keyword(), client()) ::
  {:ok, binary()} | {:error, BankingCircle.Error.t()}

Fetches account activity as a camt.053 XML statement, the ISO20022 reporting counterpart to BankingCircle.Reporting's JSON/CSV reports.

submit_pacs008(xml, client \\ :default)

@spec submit_pacs008(binary(), client()) ::
  {:ok, term()} | {:error, BankingCircle.Error.t()}

Submits a pacs.008 (FIToFICustomerCreditTransfer) XML document — the ISO20022 path for Correspondent/Agency Banking payments (see also BankingCircle.Payments.create_fi_to_fi/2 for the JSON equivalent). xml is the complete, already-valid document body (as a binary).

submit_pain001(xml, client \\ :default)

@spec submit_pain001(binary(), client()) ::
  {:ok, term()} | {:error, BankingCircle.Error.t()}

Submits a pain.001 (CustomerCreditTransferInitiation) XML document. xml is the complete, already-valid document body (as a binary).

Note: pain.001 initiation is marked deprecated in Banking Circle's current docs in favor of the JSON payment endpoints — confirm with your Banking Circle contact whether this path is still recommended for new integrations before building on it.