# Testing and going live

> How to test without a sandbox, and a go-live checklist.

> **Warning:** There is no separate sandbox environment yet: keys are `live` and charges move real money. Test with small amounts, then cancel or let them expire.

1. Create a dedicated connection for testing (for example "Staging") with its own keys and webhook URL, so test charges are booked and reported apart.
2. Create a charge of `100` (RD$1.00), pay it with a second Fina account and check `charge.paid` arrives and verifies.
3. Expose your local server with a tunnel (ngrok, Cloudflare Tunnel) to receive webhooks during development.
4. Cancel pending test charges with `POST /charges/{id}/cancel`.

### Go-live checklist

- Secret key and IPN secret live only in server environment variables.
- Webhook handler verifies `x-fina-sig`, answers 2xx within 15 s and is idempotent.
- Charges use your order id as `reference`; retries reuse it.
- Money is handled as integers in centavos end to end.
- You reconcile with `GET /charges/{id}` when a webhook is missing.

Source: https://fina.do/developers#testing