How sandbox mode works
WhensandboxMode: true is present in a request body:
- EffiLink receives and parses the request normally.
- All parameter validation runs — required fields, format checks, length limits, sender verification, template resolution, and credit balance checks.
- If the request would succeed in production, EffiLink returns
{"code": 200, "message": ""}. - If the request would fail, EffiLink returns the same error code and message you would receive in production.
- No email is sent, no credits are consumed, and no campaign task is recorded.
sandboxMode to false.
Quick example
The following request sends a transactional email in sandbox mode:What sandbox mode validates vs. skips
Because sandbox mode checks your credit balance, a
403 Insufficient credits error in sandbox mode means the real send would also fail. Top up your account before switching to production.Which endpoints support sandbox mode
Sandbox mode is supported on endpoints that listsandboxMode in their parameter documentation:
- Transactional email —
POST /v5/transactional/mail/sends_customised - Campaign email —
POST /v5/campaign/mail/sends
sandboxMode, the parameter is silently ignored.
Campaign sandbox example
You can also validate a campaign send without dispatching or creating a task:Best practices
- Use sandbox in CI/CD pipelines. Validate your API integration automatically on every deployment without worrying about accidental sends or credit consumption.
- Mirror your production payload exactly. The closer your sandbox request is to your real request, the more meaningful the validation. Swap only the
sandboxModeflag when you are ready to go live. - Check for non-200 responses. A
200in sandbox means the request is ready for production. Any other code means there is something to fix first. - Do not use sandbox as a substitute for staging. Sandbox validates the API layer; test your email rendering and content in a real send to a test address before going live.