Event Simulator
The Event Simulator lets you simulate events that happen in production — incoming transactions, outgoing payments, and bank status updates — so you can test your full integration in sandbox.
For the full end-to-end testing workflow, see Testing Complete Payment Flows in Sandbox.
Overview
The Event Simulator supports three types of simulation:
| Type | What it simulates | When to use it |
|---|---|---|
| Credit | Incoming funds on your acquiring account | To confirm settlement after payment_created, or to simulate Smart Transfer payments |
| Debit | Outgoing funds from your acquiring account | To execute a refund or payout in sandbox |
| Bank Transition | Bank sending an asynchronous status update | To move a pending payment to a final status (success or failure) |
Access the Event Simulator: Console > Developers > Event Simulator
Simulate a pay-in (Credit)
Simulates receiving funds from a debtor (payer) on your Fintecture acquiring account. In production, this happens when the payer's bank executes the transfer. In sandbox, you trigger it manually.
When to use
- After a payment reaches
payment_createdon an acquiring account — to confirm settlement (transfer_state: received). See Phase 3 — Settlement for the full workflow - For Smart Transfer — to simulate the payer sending the bank transfer to the virtual IBAN. See Smart Transfer scenarios for how to reach
payment_pendingfirst - To test partial payments (send less than expected) or overpayments (send more)
How to simulate
- Go to Developers > Event Simulator
- Select Credit type
- Fill in the required fields: amount, currency, debtor name, creditor IBAN
- Optionally add an internal reference and label
- Click Simulate event
Shortcut: From a payment's detail page, click Actions > Simulate event to pre-fill all fields automatically.
What happens
- A credit transaction is created on the acquiring account
- If the transaction matches a pending payment session (by IBAN + amount for Smart Transfer, or by reconciliation), the session's
transfer_stateupdates toreceived - Configured webhooks are triggered
- The payment status will update within seconds
Simulate a debit (refund or payout)
Simulates an outgoing payment from your Fintecture acquiring account. In production, Fintecture initiates the SEPA transfer. In sandbox, you simulate the bank confirming the execution.
When to use
- To complete a refund — after creating the refund via Console. See Testing refunds for the full workflow
- To complete a payout — after creating the payout via Console. See Testing payouts for the full workflow
Refund flow
- Go to the payment in Console > click Actions > Refund
- Choose partial or full refund and confirm
- Open the refund payment details (click the refund row in the payment list)
- Click Actions > Simulate event — this redirects to the Event Simulator with pre-filled data
Or manually:
- Go to Developers > Event Simulator
- Select Debit type
- Enter the refund's
session_id - Select the transaction status and optionally a transfer reason
- Click Simulate event
Prerequisite (acquiring accounts): The original payment must have
transfer_state: receivedbefore you can process a refund. Simulate a Credit first to achieve this.
Payout flow
- Create a payout via Console
- Copy the payout's
session_idfrom the payment details page - Go to Developers > Event Simulator
- Select Debit type
- Paste the payout
session_idand fill the remaining fields - Click Simulate event
Form fields
| Field | Required | Description |
|---|---|---|
| Session ID | Yes | The session_id of the refund or payout |
| Status | Yes | Transaction status (see options below) |
| Transfer reason | No | Reason for rejection (only when status is rejected) |
Status options: booked, sent, pending, rejected, returned
Transfer reason (only when status is rejected): insufficient_funds, closed_account, blocked_account, fraud_suspected, technical, unknown, customer, regulatory_reason, transaction_forbidden
What happens
- A debit transaction is created on the acquiring account
- The refund or payout session status is updated
- Configured webhooks are triggered
Simulate a bank transition
Simulates the asynchronous status update that a bank sends to Fintecture after a payment is initiated. In production, this callback arrives automatically. In sandbox, you need to trigger it manually for payments left in payment_pending.
When to use
- When a payment is in
payment_pendingstatus and you want to move it topayment_createdorpayment_unsuccessful. See Phase 2 — Bank transition for when this fits in the testing workflow - Sandbox only — this simulation is not available in production
- The session must currently be in
payment_pendingstatus. Use the Demo Bank to reach this state
How to simulate
- Go to Developers > Event Simulator
- Select Bank Transition type
- Enter the payment's Session ID
- Select the target session status:
payment_created— payment succeedspayment_unsuccessful— payment fails
- If
payment_created: select transfer state (completedorreceived) - If
payment_unsuccessful: optionally select a transfer reason - Click Simulate event
Form fields
| Field | Required | Description |
|---|---|---|
| Session ID | Yes | The session_id of the pending payment |
| Session status | Yes | payment_created or payment_unsuccessful |
| Transfer state | Only for payment_created | completed or received |
| Transfer reason | Only for payment_unsuccessful | Reason for rejection (see options below) |
Transfer reason options: insufficient_funds, closed_account, blocked_account, fraud_suspected, technical, unknown, customer, regulatory_reason, transaction_forbidden
What happens
- The payment session is updated to the new status — exactly as if the bank had sent the real callback
- All the logical events ensue: the corresponding webhooks and notification emails are sent
- You will see the updated status in the Console payment details page
Constraints
- Sandbox only — simulations are not available in production.
payment_pendingrequired — the session must currently be inpayment_pendingstatus.- Valid transitions only — you cannot transition to the same status or to an invalid status.
After a successful bank transition
If the beneficiary is an acquiring account, transitioning to payment_created is only part of the flow. You still need to simulate a Credit transaction to confirm settlement — unless you used transfer_state: received in the transition, which is equivalent to simulating the credit transaction as well as receiving the payment_created status.
Summary — which simulation to use
| I want to... | Simulation type |
|---|---|
| Confirm settlement on acquiring account | Credit |
| Simulate a Smart Transfer payment | Credit |
| Execute a refund in sandbox | Debit |
| Execute a payout in sandbox | Debit |
| Move a pending payment to success/failure | Bank Transition |
Related guides
| Guide | What it covers |
|---|---|
| Testing Complete Payment Flows | Full end-to-end testing workflow with all phases |
| Demo Bank | How the Demo Bank works, available outcomes |
| Payment Session Status | All possible statuses and their definitions |
Updated about 3 hours ago