Upload opt-in form proof for an appeal
Hosts a screenshot (or PDF) of your SMS opt-in form and returns its
public URL. Carrier reviewers reject campaigns whose consent can't be
verified and ask for a "link/screenshot of the opt-in form" — the
registry has no attachment field, so include the returned URL inside
the messageFlow you submit with the appeal
(POST /v1/sms/registrations/{id}/appeal).
API key authentication - use your Zernio API key as a Bearer token
In: header
Path Parameters
PNG, JPG, WebP, GIF or PDF, max 4MB.
binaryResponse Body
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.sms.uploadSmsOptInProof({ path: { id: 'abc123', },});console.log(data);{
"url": "string"
}{
"error": "Unauthorized"
}Upload opt-in form proof POST
Hosts a screenshot (or PDF) of your SMS opt-in form and returns its public URL. Include that URL in the campaign's `messageFlow` (the opt-in workflow text) — the carrier registry has no attachment field, so reviewers verify consent by opening links in that answer. Works before a registration exists (use it when registering) and for appeals. `/v1/sms/registrations/{id}/opt-in-proof` is an alias.
Submit the sole-prop OTP POST
Completes sole-proprietor 10DLC brand verification by submitting the one-time PIN texted to the brand's mobile number. On success the registration continues to campaign creation automatically.