PPactDocs
Getting started

Add a phone number

Verify your own mobile number with an SMS one-time code so Pact recognizes you by caller ID for voice auth and can send SMS fallbacks.

Adding your phone number lets Pact recognize you by caller ID when you call the voice AI, and gives it a target for "text me" fallbacks. This is a self-service flow at Settings → My account → Phone (/settings/phone), backed by /v1/users/me/phone. The number is your personal tenant_users.phone_e164 — always derived from your authenticated session, never from a request body.

Add and verify your number

  1. 1

    Open the phone settings

    Go to /settings/phone. If you have no number on file yet, you'll see the add form with a country selector and a required consent checkbox.

  2. 2

    Give explicit consent

    Check the consent box — it is not pre-checked. The exact disclosure text (and its version) is served by the backend so what you agree to is recorded verbatim. Consent is mandatory: the code won't send without it.

  3. 3

    Receive the SMS code

    Submitting calls POST /v1/users/me/phone/start, which validates the number, records the consent intent, and sends a one-time code by SMS.

  4. 4

    Enter the code

    Enter the code to call POST /v1/users/me/phone/verify. On success your number is persisted and a durable TCPA consent record is written. The UI then shows your number masked.

E.164 format

Numbers are stored and verified in E.164 form (+, country code, national number, no spaces or dashes) — for example +14247228627. The country selector in the UI builds this for you.

Business outcomes come back as 200, not errors

The verify and start endpoints return HTTP 200 with a discriminated body for expected states like a wrong code or a rate limit, so the UI can render each inline. Only an unauthenticated request (401) or a malformed body (422) is an HTTP error.

If SMS isn't registered yet

Outbound application-to-person (A2P) SMS in the US requires 10DLC registration on the sending number. If your tenant's registration isn't live, start returns reason: "sms_unregistered" (Twilio error 30034) and the UI shows a wait state rather than a hard failure. This is transient and self-clearing — retry once registration completes.

Removing your number (GDPR erasure)

Deleting your number via DELETE /v1/users/me/phone is treated as a data-subject erasure, not a soft toggle. It nulls the number and wipes the voice data derived from it (voice preferences, per-user memory, learned patterns, proactive-call settings, and any pending OTP challenges for that number). The consent grant itself is revoked (a revoked_at timestamp is set) rather than deleted, because TCPA requires you keep proof that consent existed.

Your number vs. your workspace's voice line

The number you add here is your personal caller-ID identity. It is different from the inbound voice number your workspace answers on — the phone customers call to reach your voice AI. Binding a workspace inbound number (buying or re-pointing a Twilio number, wiring the webhook) is a separate, admin-level setup under the voice wizard.

Workspace number provisioning is admin/staff-assisted today

Self-serve purchase of a workspace inbound number from the wizard is still maturing. The reliable path today is to bind a number you already own — point its Voice webhook to https://api.pact.place/v1/voice-mcp/incoming (POST) — or have Pact staff bind it for you. See Make your first voice call for the demo line you can use immediately with no provisioning at all.