Upload opt-in form proof
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.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
Response 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.uploadSmsOptInProofFile();console.log(data);{ "url": "string"}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`).
Re-send the sole-prop OTP
Re-sends the sole-proprietor verification PIN to the brand's mobile number. Use it when the original code expired or never arrived. Only valid while the registration is pending and awaiting its OTP; rate limited to one send per minute.