_Docs/
Get StartedModulesPlatformDeployCookbookChangelogReference
_Stack
_Modules
  • Ledger
  • Numscript
  • Connectivity
    • Capabilities
    • Operations
    • Accounts
    • Payments
    • Orders
    • Conversions
    • Payment Initiation
    • Account Pools
    • Payment Service Users
    • Connectors
      • Generic Connector
        • Getting Started
        • How it Works
      • PSP Connectors
        • Adyen
        • Atlar
        • Banking Circle
        • Column
        • Currencycloud
        • Increase
        • Mangopay
        • Modulr
        • Moneycorp
        • Qonto
        • Stripe
        • Wise
        • Banking BridgeEE
        • RoutableEE
      • Exchange Connectors
        • Coinbase PrimeEE
        • FireblocksEE
        • BitstampEE
      • Open Banking
        • Getting Started with Open Banking
        • Plaid
        • Tink
        • Powens
      • Build a connector
  • WalletsEE
  • FlowsEE
  • ReconciliationEE
  1. Modules
  2. Connectivity
  3. Connectors
  4. PSP Connectors
  5. Banking Circle
Banking Circle
PSP Connectors

Banking Circle

Connect a Banking Circle account to Formance Connectivity to sync accounts, balances, and transactions, and to initiate transfers, payouts, and bank-account creation.

The Banking Circle connector polls a Banking Circle tenant and surfaces settlement accounts, balances, and transactions. It also initiates transfers and payouts, and registers new beneficiaries on Banking Circle's side.

Prerequisites#

You need a Banking Circle tenant and a mutual-TLS-capable API user. Authentication combines a username/password pair (for OAuth2) with a client certificate (userCertificate + userCertificateKey) on every call. The cert is PEM-encoded; supply certificate and key as multi-line strings in the config.

Make sure to create an API key dedicated to Formance. Doing so will improve your auditability and security and will allow you to revoke access to Formance at any time if needed.

Banking Circle exposes distinct base URLs for the authorization endpoint (https://authorizationsandbox.bankingcircleconnect.com in sandbox) and the data endpoint (https://sandbox.bankingcircleconnect.com). Both are required.

Installation#

curl -X POST $FORMANCE_API_URL/api/payments/v3/connectors/install/bankingcircle \
  -H "Content-Type: application/json" \
  -d @config.json
POST/api/payments/v3/connectors/install/bankingcircle

Configuration fields#

FieldTypeRequiredDefault
authorizationEndpointstringYes
endpointstringYes
pageSizeintegerNo25
passwordstringYes
pollingPeriodstringNo30m
userCertificatestringYes
userCertificateKeystringYes
usernamestringYes

Capabilities#

  • FETCH_ACCOUNTS — settlement and customer accounts via GET /api/v1/accounts.
  • FETCH_BALANCES — available + intraday balance per account.
  • FETCH_PAYMENTS — transactions, classified PAY-IN / PAYOUT / TRANSFER by direction.
  • CREATE_BANK_ACCOUNT — registers a beneficiary from a v3CreateBankAccount call.
  • CREATE_TRANSFER — POST /api/v1/payments/singles between two Banking Circle accounts.
  • CREATE_PAYOUT — POST /api/v1/payments/singles to a registered beneficiary.

Webhooks are not exposed on the API surface this connector reaches; refresh runs on the polling cycle.

Account model#

Every Connectivity internal account is one Banking Circle account from /api/v1/accounts — typically a settlement or customer ledger. The reference is the Banking Circle accountId; name is the description; defaultAsset is the account's currency. EXTERNAL accounts aren't pulled, but v3CreateBankAccount (via CREATE_BANK_ACCOUNT) registers a beneficiary on Banking Circle and links the result back. See Accounts for the cross-connector model.

Asset model#

Uppercase ISO 4217 (EUR, GBP, USD, …), formatted to UMN at standard precision. Amounts arrive as decimal strings; the connector applies major-to-minor scaling.

Status mapping#

Banking Circle transaction statusPayment status
Pending, Processed (booked but not settled)PENDING
Settled, CompletedSUCCEEDED
Failed, RejectedFAILED
CancelledCANCELLED

Create* initiations schedule PollTransferStatus / PollPayoutStatus against the singles-payment endpoint until terminal.

Metadata keys#

Under com.bankingcircle.spec/:

  • Account: account_id, iban, bic, currency_code, account_type.
  • Payment: transaction_id, transaction_reference, end_to_end_id, payment_method, clearing_system.
  • External account: beneficiary_id, country, iban, bic, routing_number.

Workflow tree#

FetchAccounts (periodic)
  ├── FetchBalances (periodic) — per account
  └── FetchPayments (periodic) — per account
CreateBankAccount / CreateTransfer / CreatePayout (event-driven)
  └── PollTransferStatus / PollPayoutStatus until terminal

Pagination and recovery#

Banking Circle transactions are pageNumber + pageSize. The connector persists the latest watermark per account in platform-managed State and re-fetches one cycle back on restart, deduping by PSPPayment.Reference.

Known gaps#

  • Webhooks are not wired.
  • Reversals (ReverseTransfer / ReversePayout) are not implemented; corrections live in Banking Circle's UI.
  • External accounts via FETCH are not pulled — beneficiaries are managed via CreateBankAccount and persisted Connectivity-side.
AtlarColumn
On This Page
  • Prerequisites
  • Installation
  • Configuration fields
  • Capabilities
  • Account model
  • Asset model
  • Status mapping
  • Metadata keys
  • Workflow tree
  • Pagination and recovery
  • Known gaps