# Test Transaction Flows

This page describes how to test transaction flows using OMNO Fake PSP configuration.

To verify integration correctness, configure Fake PSP providers in the OMNO Dashboard:

Payment Providers → Add Provider → Authorize

Use the following Fake PSP options:

- Fake Card Pay-In
- Fake APM Pay-In
- Fake Card Pay-Out
- Fake APM Pay-Out


After authorization, ensure the provider is configured in the Router and active.

Fake PSPs simulate real provider behavior by returning predefined statuses and controlled responses.

## Overview

OMNO allows you to simulate different transaction outcomes in order to validate:

- request handling
- routing behavior
- webhook delivery
- status processing in your system


## Transaction Types

### Success Transactions

Transactions are completed successfully when:

- valid input is used
- routing conditions are satisfied


### Failed Transactions

Failures occur before reaching the PSP.

These are caused by routing restrictions or provider configuration rules.

Example:

- If a provider is restricted for a specific country, currency, or rule set, the transaction will fail before being sent to the PSP


### Declined Transactions

Declines are returned by the PSP.

Fake PSP allows you to simulate decline scenarios using specific input values.

## Test Cards (Card Pay-In)

These cards work only with Fake PSP when it is configured and active.

### Success Card

- Card Number: `4539148803436467`
- Expiry Date: `12/29`
- CVC: `123`
- Cardholder Name: Any value
- Result: Transaction succeeds


### Failure Card

- Card Number: `6011111111111117`
- Expiry Date: `12/29`
- CVC: `123`
- Cardholder Name: Any value
- Result: Transaction fails


### Decline Simulation (CVC-Based)

Fake PSP supports multiple decline scenarios based on CVC values.

Use the following CVC codes to simulate specific declines:

| CVC | Description |
|  --- | --- |
| 001 | General card decline |
| 004 | Card expired |
| 005 | Card inactive or blocked |
| 011 | Insufficient funds |
| 013 | Invalid card number |
| 015 | CVV check failed |
| 026 | Transaction marked as fraud |
| 033 | Provider timeout |
| 034 | Provider rejected request |
| 040 | Service unavailable |


## Pay-Out Decline Simulation

Fake PSP supports payout error simulation using predefined values.

Use the following values to simulate payout declines:

| Code | Description |
|  --- | --- |
| 002 | Transaction not allowed |
| 004 | Card expired |
| 005 | Card inactive |
| 011 | Insufficient funds |
| 013 | Invalid card number |
| 016 | Invalid amount or currency |
| 026 | Marked as fraud |
| 033 | Transaction timeout |
| 034 | Rejected by provider |
| 040 | Service unavailable |


## 3DS Transactions

3DS flows can also be simulated.

- Card Number: `378282246310005`
- Expiry Date: `12/29`
- CVC: `123`


After entering details, you will be redirected to a simulated provider page where you can choose the final outcome.

## APM Behavior (Fake PSP)

For APM transactions, Fake PSP follows a similar approach to card declines.

Instead of CVC:

- the 3-digit test value must be provided in the **recipient field**


This value determines the resulting transaction outcome.

## Notes

- Declines are returned by the PSP layer
- Failures occur due to routing or provider restrictions before PSP execution
- Success depends on valid input and routing eligibility


## Next Steps

After testing:

1. Verify webhook delivery and status handling
2. Validate your system logic for all transaction outcomes
3. Ensure proper handling of retries, failures, and declines