TL;DR: The signature request was created in test mode - either with a test API key or with test mode switched on - and that watermark is permanent for that document. Switch the integration to the production key, make sure test mode is off, and create a brand-new signature request. Test-mode documents are not legally binding, so reissue anything the counterparty already signed.

```text
test mode
```

1. Check which API key your integration is using.
   Expected: it is a test key - that alone puts every request in test mode.
2. Swap in the production (live) API key and confirm the create call does not set test mode.
   Expected: config shows the live key and no test-mode flag.
3. Create a new signature request for the same document.
   Expected: the new request has no watermark.
4. Send the fresh request to the signers and void the watermarked one.
   Expected: signers complete a clean, legally binding document.
5. Audit any other recent sends for the watermark before they go to counterparties.
   Expected: no more test-mode documents in the wild.

## Use this when
- embedded signing requests come back with a "test mode" watermark
- you just promoted code from staging to production
- the watermark appears on every new request, not just one

## Not for this skill when
- the watermark is on a document you intentionally created for testing (that is working as designed)
- you need the test request's audit trail (it stays in test mode forever)
- the issue is a different watermark or branding problem

## Variant phrasings
### hellosign test mode watermark production
### dropbox sign embedded signing test mode remove
### hellosign api test mode vs live mode

## Why it happens
Test mode is a per-request sandbox flag rendered as a watermark so test documents can never be mistaken for real ones. It triggers from the test API key or an explicit test-mode setting, and it is baked in at creation - no API call removes it afterward.

## Edge cases
- Test-mode documents are explicitly not legally binding; do not file them as executed contracts.
- Unclaimed-draft and embedded-template flows each carry their own test-mode setting - check both.
- If only some requests are watermarked, the key or flag is set per call site, not globally - search the codebase for it.
- Rotating from test to live key mid-day? Finish in-flight test requests first so nothing half-signed goes out.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_IkAbPuJKcU39y4S_0asY1g
