| ID | Type | Status | Amount | Asset | Source โ Destination | Actions |
|---|
| ID | Amount | Status | Actions |
|---|
| ID | Amount | Status | Actions |
|---|
| ID | Name | Asset | Actions |
|---|
| ID | Owner | Asset |
|---|
| ID | Name | IBAN | Country |
|---|
| ID | Type | Status | Amount | Asset | Source โ Destination | Actions |
|---|
| ID | Amount | Status | Actions |
|---|
| ID | Amount | Status | Actions |
|---|
| ID | Name | Asset | Actions |
|---|
| ID | Owner | Asset |
|---|
| ID | Name | IBAN | Country |
|---|
host.docker.internal to access your local server from inside the container.This is a multi-tenant PSP (Payment Service Provider) mock server for testing Formance's Generic Connector. It simulates a real payment provider API, allowing you to:
Each API key creates an isolated dataset. Think of it as a separate sandbox:
Authorization: Bearer your-api-key
๐ก Tip: Enter your API key in the header to see/create data for that tenant.
Enter any unique key in the header field (e.g., my-test-merchant)
Click ๐ฆ New โ create Internal Accounts and Beneficiaries
Click ๐ณ Generate to create test PayIn/PayOut/Transfer data
Click โก Install โ configure your connector โ use fctl or cURL to install
Use action buttons to simulate payment lifecycle events (disputes, refunds, adjustments)
Click the โก Install button to configure your Generic Connector:
Set name, polling period, and target Formance Stack (Organization + Stack + Region)
fctl: Download JSON config โ run fctl payments connectors install generic config.json
cURL: Copy the cURL command to directly call the Payments API
Formance will poll the mock server and sync accounts + transactions
๐ก Local dev: Use host.docker.internal if Formance runs in Docker. Set polling to 10s for quick testing.
Use ๐ฆ New to create:
| Internal Account | Merchant wallets that hold funds |
| Beneficiary | External accounts for payouts |
| Bank Account | Settlement bank details |
Use ๐ณ Generate to create test transactions:
| PAYIN | Funds coming in (external โ internal) |
| PAYOUT | Funds going out (internal โ external) |
| TRANSFER | Internal movements (internal โ internal) |
๐ก When generating PAYOUT/TRANSFER transactions, corresponding payout/transfer records are automatically created for consistency.
Use the action buttons on each row to test state changes:
Each entity follows specific state machines detailed in the State Machines tab.
Simple linear flow for outbound payments
Identical to payouts - simple linear flow
Complex flow with disputes, refunds, and payment adjustments
Linked transactions that modify a parent payment
When certain state transitions occur, adjustment transactions are automatically created and linked to the original transaction via relatedTransactionID. All adjustments include an adjustmentType in metadata:
| Refund | PAYOUT / REFUNDED with adjustmentType: REFUND |
| Chargeback | PAYOUT / DISPUTE_LOST with adjustmentType: CHARGEBACK |
| Refund Failure | PAYIN / SUCCEEDED with adjustmentType: REFUND_CANCELLATION |
| Refund Reversal | PAYIN / SUCCEEDED with adjustmentType: REFUND_REVERSAL |
| Amount Adjustment | PAYIN (+) or PAYOUT (-) with adjustmentType: AMOUNT_ADJUSTMENT |
๐ก Click the ๐ button on any parent transaction to view all linked adjustments.
| From State | Allowed Transitions | Creates Adjustment? |
|---|---|---|
| PENDING | PROCESSING, AUTHORISATION, SUCCEEDED, FAILED, CANCELLED, EXPIRED | โ |
| PROCESSING | SUCCEEDED, FAILED, CANCELLED, EXPIRED | โ |
| AUTHORISATION | CAPTURE, CAPTURE_FAILED | โ |
| CAPTURE | SUCCEEDED | โ |
| SUCCEEDED | DISPUTE, REFUNDED, AMOUNT_ADJUSTEMENT | โ Refund, Amount Adj |
| DISPUTE | DISPUTE_WON, DISPUTE_LOST | โ Dispute Lost |
| DISPUTE_WON | REFUNDED | โ Refund |
| REFUNDED | REFUND_REVERSED, REFUNDED_FAILURE | โ Reversal, Cancellation |