Skip to main content

Choose a Perflo adapter

The runtime accepts exactly two adapter values. Removed values fail configuration validation instead of mapping to compatibility aliases.

Use fake for deterministic tests

FakePerfloAdapter implements the neobank contract in memory. It covers fiat accounts, activity, recipients, estimates, browser approval, recipient grants, mandates, cards, and hosted reveal without external calls. Production rejects fake. A configuration value such as demo, pilot, or partner is invalid.

Use live for provider traffic

LivePerfloAdapter calls these exact origins:
  • App: https://app.perflo.ai
  • Perfolio: https://api.perfolio.ai/api
  • Fiat: https://api-fiat.perfolio.ai/api
  • Cards: https://api-cards.perfolio.ai
  • Agent: https://agent-mode-backend-prod-merge.up.railway.app
The validator rejects a changed scheme, host, port, user information component, or path. Card requests send the customer token in both documented authorization headers. Token refresh is serialized per customer connection and revalidates the provider binding before storing new ciphertext.

Separate wrapper capability from upstream improvement

The live adapter adapts current Perflo operations without overstating them. Quotes remain estimates, activity remains customer-wide rather than an account ledger, polling replaces signed webhooks, and local mandate policy supplements upstream grant constraints. The Perflo capability requests describe the stronger native contracts still wanted.