_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. Adyen
Adyen
PSP Connectors

Adyen

Connect an Adyen merchant account to Formance Connectivity to sync the live account list and ingest webhook events.

The Adyen connector syncs merchant accounts from Adyen's Management API and ingests Adyen's webhook stream. It does not poll for payments or balances — Adyen's canonical transaction surface is the webhook feed, which the connector subscribes to at install time.

Prerequisites#

You need an Adyen Management API key with read access to MerchantAccount for the company. Webhooks use Basic Auth credentials (webhookUsername / webhookPassword) set on the webhook config in Adyen's Customer Area and sent as Authorization: Basic <base64(user:pass)> on every delivery.

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.

Installation#

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

Configuration fields#

FieldTypeRequiredDefault
apiKeystringYes
companyIDstringYes
liveEndpointPrefixstringNo
pageSizeintegerNo25
pollingPeriodstringNo30m
webhookPasswordstringNo
webhookUsernamestringNo

liveEndpointPrefix only applies in production — copy it from Adyen's Customer Area under Developers → API URLs (the company-specific fragment between https:// and -checkout-live.adyenpayments.com). Leave it empty for the test environment.

Capabilities#

  • FETCH_ACCOUNTS — merchant accounts via GET /Management/v3/merchants.
  • CREATE_WEBHOOKS — provisions a "Standard webhook" on the merchant at install, configured with the Basic Auth credentials from the config.
  • TRANSLATE_WEBHOOKS — converts AUTHORISATION, CAPTURE, REFUND, CHARGEBACK, CANCELLATION, etc. to PSPPayments.

Payments, balances, and external accounts are deliberately not polled — Adyen's canonical transaction surface is webhooks. Ensure the webhook is reachable (HTTPS, valid certificate) and the Basic Auth credentials match the config.

Account model#

Every Connectivity internal account is one Adyen merchant account from GET /Management/v3/merchants. The reference is the merchant ID; name is the display name; defaultAsset is null (Adyen merchants are multi-currency). No EXTERNAL accounts are emitted — Adyen "destination accounts" are not pulled (see Known gaps). See Accounts for the cross-connector model.

Asset model#

Currencies are uppercase ISO 4217 (USD, EUR, JPY), formatted to UMN at standard precision. Amounts are already in minor units — no scaling.

Status mapping#

Webhook events combine success: true|false with eventCode:

Adyen eventCode + successPayment status
AUTHORISATION + truePENDING (until capture)
CAPTURE + true, REFUND + trueSUCCEEDED
AUTHORISATION + false, REFUND_FAILED, CHARGEBACKFAILED
CANCELLATION + trueCANCELLED

Full event-code → type/status mapping in webhooks.go.

Metadata keys#

Under com.adyen.spec/:

  • Account: merchant_account_code, description, data_centers.
  • Payment: event_code, psp_reference, merchant_reference, payment_method, payment_method_variant, acquirer_code.

Workflow tree#

FetchAccounts  (periodic — merchant accounts only)
CreateWebhooks (one-shot at install)

Known gaps#

  • Balances and payouts are not exposed — Adyen's payout flow is bank-side, outside the Management API.
  • External accounts (Adyen "destination accounts") are not pulled.
  • Transfer / Payout Initiation is not implemented; outbound flows live in Adyen's Customer Area.
PSP ConnectorsAtlar
On This Page
  • Prerequisites
  • Installation
  • Configuration fields
  • Capabilities
  • Account model
  • Asset model
  • Status mapping
  • Metadata keys
  • Workflow tree
  • Known gaps