---
title: "Request a sender email-ownership challenge"
method: POST
path: "/api/v1/scribo/email-verifications"
---

# Request a sender email-ownership challenge

`POST /api/v1/scribo/email-verifications`

Emails a 6-character verification code (and magic link) to the address. Always returns a uniform 202 — new, returning, throttled, and send-failed callers are indistinguishable (anti-enumeration). Sends are rate-limited per email (resend cooldown + hourly cap).

## Request body

- RequestVerificationInput
  - `email` string, email, required

## Response `202`

Challenge accepted (uniform anti-enumeration shape)

- VerificationChallenge
  - `challenge_id` string, uuid, required
  - `expires_at` string, date-time, required
  - `next_request_allowed_at` string, date-time, required

## Other responses

- `400` — Invalid input

---

[API](https://skmtc.net/causaprima/apis/scribo-invoice-api.md) · [All operations](https://skmtc.net/causaprima/apis/scribo-invoice-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/causaprima/scribo-invoice-api/revisions/73eb15ab4d15/schema)
