Skip to content

Company account codes, in a shared inbox.

Move verification texts off personal phones. Give your company a number and let the right teammates retrieve codes themselves.

The number stays when the person leaves.

A number belongs to the organization, not to whoever set it up. When someone leaves, the number, its retained messages, and its access list stay with the company. Messages expire 30 days after receipt.

Access is explicit: the people on the list, plus the owners and admins who can always step in. Nothing is shared by default.

Standard or Mobile. The right number for the account.

Standard

Held by your company and shared with your team. Confirm support with the services your workflow uses.

Mobile

Issued by a mobile network, for services that require a mobile number.

Sign in without asking someone for the code.

An authorized teammate opens the inbox and copies the code. You control who can see each number, and code-copy events appear in the activity history.

Wait for the next code.

Mark the inbox before your test sends a message. Your test waits locally for a fresh receipt and uses its verification code.

JS/TS SDK, CLI, MCP, HTTP API, and signed webhooks. Programmatic access is included on every plan.

The receiving step in your testTypeScript
const number = phonekit.number(testPhoneNumber)
const after = await number.mark()
 
await page.getByRole("button", { name: "Send code" }).click()
const code = await number.waitForOtp({ after, timeoutMs: 120_000 })
 
await page.getByLabel("Verification code").fill(code)
await page.getByRole("button", { name: "Verify" }).click()

Request access.

Start with one company account your team needs to share. Tell us about the code handoff you want to replace and we’ll help you set up early access. Already using Phonekit? You can request help here too.

Programmatic access is included on every plan. Tell us about your workflow.

This doesn’t create an account.