# Test Your Integration

Once you've successfully implemented the Unified SDK in your ePOS application, the next step is to validate that your integration works as expected. This ensures both the technical correctness and merchant readiness of your setup before moving to production.

## Pre-Testing Checklist

Before you begin testing your integration, ensure the following requirements are met:

- The SDK is integrated correctly and compiles without errors.
- [Partner credentials](/epos-sdk/setup-and-authentication#1-get-your-credentials) (Client ID and Client Secret) are generated from the Teya Developer Portal (Dev Environment) and properly configured in your application.
- The SDK is configured to route transactions to the development environment.
- The Teya Payment App is installed and linked to a valid test merchant account. This can be done using a physical test card machine or an Android emulator.
- Your app is subscribed to payment state updates via the `PaymentStateSubscription` interface.
- You have access to test cards provided through the Teya mock app to simulate various scenarios.

## Testing Scenarios

| Scenario                          | Action                                                                 | Expected Result                                                             |
|-----------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------------|
| Install SDK App                   | Install the Windows SDK app on your test device.                       | App launches and runs as expected.                                           |
| Start SDK Listener                | Start the Teya SDK service to begin accepting requests.                | Service is up and ready.                                                     |
| Authenticate Partner              | Provide Device Code Flow credentials from dev portal.                  | Valid token is retrieved and ready for use.                                  |
| Make a Payment Request            | Use your ePOS app to send a payment request to the local SDK.          | Payment is initiated, Teya card machine shows UI.                                |
| Cancel Payment                    | Send cancel command during InProgress state.                           | Payment is cancelled, state updated accordingly.                             |
| Issue Refund                      | Perform refund using reference of previous transaction.                | Refund is processed and status returned.                                     |
| Print Unified Receipt from ePOS   | Ensure your ePOS prints receipts that include transaction information. | Receipt prints correctly with both itemised and transaction data.            |
