# Phase 12 Sandbox Testing Guide

## VTpass

Official VTpass docs recommend completing tests on sandbox before live provisioning.

Admin steps:
1. Configure VTpass in Provider Settings.
2. Mode: Test.
3. Base URL: `https://sandbox.vtpass.com`
4. Enter sandbox API key, public key and secret key.
5. Enable VTpass.
6. Run the catalog synchronization action.
7. Review imported products before enabling any product.

Imported products are deliberately created with `is_active = false`.
Admin must inspect price/cost and choose customer/agent/reseller prices before sale.

Catalog flow implemented:
1. `GET /api/service-categories`
2. `GET /api/services?identifier={identifier}`
3. `GET /api/service-variations?serviceID={serviceID}`

## Paystack

Use `sk_test_...` credentials first.

Tests to perform:
- initialize checkout
- complete a Paystack test payment
- receive signed `charge.success`
- server verifies transaction
- exact amount matches pending funding
- wallet credits once
- resend webhook and confirm no duplicate credit
- request DVA
- receive `dedicatedaccount.assign.success`
- confirm account is stored
- simulate DVA transfer and confirm `charge.success` funds wallet

## Admin diagnostics

Use the new Integration Diagnostics endpoint to see:
- enabled/disabled
- test/live mode
- credentials configured
- provider health
- integration errors

Never switch an integration to Live only because a single transaction worked.
Run repeated success, failure, pending, duplicate and timeout scenarios first.
