Skip to content
WhatsApp

POSThttps://core-api.heysadie.ai/whatsapp/onboarding-sessions/{id}/resend-code

id success data status otpAttempts metadata timestamp version path error code message details field

Resend verification code

Resend the WhatsApp registration/verification call for a `verifying` session. Meta re-triggers the automated voice call that reads the code; Sadie captures it exactly as in the normal flow. The session is unchanged (stays `verifying`) and `otpAttempts` reflects the durable per-session request_code budget consumed so far. Errors: - `409 WHATSAPP_RESEND_NOT_ALLOWED` — the session is not `verifying`, or the number is not yet attached. - `429 WHATSAPP_RESEND_TOO_SOON` — a verification call was requested within the last 60 seconds; `details.retryAfterSeconds` gives the remaining cooldown. The session STAYS `verifying` and no attempt budget is consumed. - `409 WHATSAPP_OTP_ATTEMPTS_EXHAUSTED` — the per-session request_code budget is spent (the session is left `verifying`, not failed). - `429 WHATSAPP_OTP_REQUEST_LIMIT` — Meta's registration/request_code rate limit; `details.retryAfterHours` gives the cooldown. The session STAYS `verifying`. - `502 WHATSAPP_RESEND_FAILED` — a non-rate-limit Graph/network failure (retryable). - `404` — cross-tenant / unknown id (anti-enumeration).

Try it in the API Explorer

Example request

Terminal
curl -X POST "https://core-api.heysadie.ai/whatsapp/onboarding-sessions/ONBOARDING_SESSION_ID/resend-code" \
  -H "Authorization: ApiKey YOUR_API_KEY"

Authentication

Authenticate with an API key in the Authorization header using the ApiKey scheme — see Authentication for how keys work and where to get them.

Authorizationstringrequired

API key in the ApiKey scheme: ApiKey YOUR_API_KEY. Tenant keys authorize their own tenant; organization keys can act on any tenant in the organization.

X-Tenant-Idstring (uuid)optional

Required when authenticating with an organization key — selects the tenant the request acts on. Omit with tenant keys.

Request

Path parameters

idstringrequired

The resource's UUID.

Responses

200
successbooleanrequired
dataobjectoptional
Show 2 child properties
statusstringrequired

Always `verifying` on success (the session is unchanged).

otpAttemptsnumberoptional

The durable request_code attempt count after this resend reserved a slot (capped at the per-session budget).

metadataobjectoptional
Show 3 child properties
timestampstringrequired
versionstringrequired
pathstringoptional
400
successbooleanrequired
errorobjectoptional
Show 3 child properties
codeenumrequired
Allowed values:"VALIDATION_ERROR"
messagestringrequired
detailsobject[]optional
Show 2 item properties
fieldstringrequired
messagestringrequired
metadataobjectoptional
Show 3 child properties
timestampstringrequired
versionstringrequired
pathstringoptional
401
successbooleanrequired
errorobjectoptional
Show 2 child properties
codeenumrequired
Allowed values:"UNAUTHORIZED"
messagestringrequired
metadataobjectoptional
Show 3 child properties
timestampstringrequired
versionstringrequired
pathstringoptional
403
successbooleanrequired
errorobjectoptional
Show 2 child properties
codeenumrequired
Allowed values:"FORBIDDEN"
messagestringrequired
metadataobjectoptional
Show 3 child properties
timestampstringrequired
versionstringrequired
pathstringoptional
404
successbooleanrequired
errorobjectoptional
Show 2 child properties
codeenumrequired
Allowed values:"RESOURCE_NOT_FOUND"
messagestringrequired
metadataobjectoptional
Show 3 child properties
timestampstringrequired
versionstringrequired
pathstringoptional
500
successbooleanrequired
errorobjectoptional
Show 2 child properties
codeenumrequired
Allowed values:"INTERNAL_SERVER_ERROR"
messagestringrequired
metadataobjectoptional
Show 3 child properties
timestampstringrequired
versionstringrequired
pathstringoptional