Verification & messages
Cancel a verification
Closes an open verification so its code is no longer accepted, e.g. before resending.
https://watsy.me/v1/verify/{id}/cancelcurl -X POST https://watsy.me/v1/verify/5d3c1f0e-7a1b-4c55-9a7e-2f1d6b0c9e11/cancel \
-H "Authorization: Bearer $WATSY_KEY"{
"id": "5d3c1f0e-7a1b-4c55-9a7e-2f1d6b0c9e11",
"object": "verification",
"mode": "live",
"phone": "+9647701234567",
"status": "canceled",
"channel": "telegram",
"channels": [
"whatsapp",
"telegram",
"sms"
],
"attempts": 0,
"max_attempts": 5,
"attempts_remaining": 5,
"locale": "ar",
"metadata": {
"user_id": 8841
},
"expires_at": "2026-10-28T10:05:00.000Z",
"verified_at": null,
"created_at": "2026-10-28T10:00:00.000Z"
}Authorization
Authorizationstring (header)requiredBearerfollowed by your project key:wsy_live_…orwsy_test_….
Headers
Idempotency-Keystring1 to 255 characters. Makes retries safe for 24 hours. See Idempotency.
X-Request-IdstringOptional, 8 to 64 characters. Echoed back; generated when missing.
Path parameters
idstring (uuid)requiredThe verification id returned by
POST /v1/verify.
Response (200)
application/jsonidstringrequiredVerification id (UUID).
objectstringrequiredAlways
verification.modestringrequiredMode of the key that created it.
Values:
livetestphonestringrequiredThe normalized E.164 number.
statusstringrequiredLifecycle state. See the status table.
Values:
pendingsentverifiedfailedexpiredcanceledchannelstring | nullrequiredThe channel last tried, or the one that delivered.
channelsstring[]requiredThe requested channel chain, in order.
attemptsintegerrequiredChecks made so far.
max_attemptsintegerrequiredCheck limit from the project settings (default 5).
attempts_remainingintegerrequiredChecks left.
localestringrequiredMessage language.
Values:
arenmetadataobjectrequiredYour metadata as sent, or
{}.expires_atstringrequiredWhen the code expires.
verified_atstring | nullrequiredWhen it was verified.
created_atstringrequiredCreation time.
- No body, or
{}. Any field returns400 validation_failed. - Only open verifications (
pending,sent) are canceled. A closed one is returned unchanged with200. - There is no refund, because the code was already sent. This response has no
messagesorprice_milli.