---
title: "Submit complete request details with explicit matching business confirmation"
method: POST
path: "/v2/number-requests"
tags: ["number-requests-v2"]
---

# Submit complete request details with explicit matching business confirmation

`POST /v2/number-requests`

## Request

- Base URL: `https://api.tracklysms.com/api`
- URL: `https://api.tracklysms.com/api/v2/number-requests`
- Auth: API key in header `X-Api-Key`

## Request body

- NumberRequestCreate
  - `addressCity` string, required: City
  - `addressCountry` string, required: ISO 3166-1 alpha-2 business country
  - `addressPostalCode` string, required: Postal code
  - `addressState` string: State/province (required for US/CA)
  - `addressStreet` string, required: Street
  - `brandName` string, required: Request-owned brand name supplied inline
  - `businessContactEmail` string: Authorized representative email, independent of public support
  - `businessContactFirstName` string, required: Authorized brand contact first name
  - `businessContactLastName` string, required: Authorized brand contact last name
  - `businessDescription` string: Business description
  - `businessVerification` NumberRequestBusinessConfirmation, required
    - `businessProfileId` string, required
    - `confirmed` boolean, required: Explicit confirmation of this business and identity.
    - `expectedIdentityRevision` integer, required
    - `relationship` 'account_business' | 'client_business', required
  - `companyLegalName` string, required: Registered legal entity name
  - `contactEmail` string, required: Brand contact email (domain must match website)
  - `contactPhone` string: Brand support phone
  - `estimatedMonthlyVolume` string: Estimated monthly segment volume
  - `exampleSmsMessage` string: Example messages, one per line; 10DLC sends your first four plus the opt-out confirmation sample, each 20 to 320 characters
  - `identifierType` string: Type of value in taxId (e.g. ein, cbn, neq, provincial_number, registration_number). Auto-defaulted for countries with one option; required for countries with multiple options.
  - `industry` string: Industry
  - `listName` string, required: Sending list name
  - `messagingType` string: Messaging use case, e.g. GENERAL_MARKETING, MIXED (default MIXED)
  - `optInFormUrl` string, required: Public URL of the customer-hosted opt-in page. Screenshotted at provision time as carrier opt-in proof (replaces the white-label site we normally generate).
  - `phoneNumberType` string: 'toll_free' (default) or '10dlc'. short_code is not supported.
  - `privacyPolicyUrl` string: Privacy policy URL; required for US toll-free submissions. For US 10DLC, optional during the shadow rollout and required when readiness enforcement is enabled.
  - `promotionSummary` string: Summary of the messaging program
  - `targetCountries` string[], required: Exactly one ISO 3166-1 alpha-2 target country
  - `taxId` string, required: Request-owned carrier registration identifier supplied inline; values are never substituted from another resource
  - `termsConditionsUrl` string: Terms & Conditions URL for the opt-in page; required for US toll-free and 10dlc submissions.
  - `vertical` string: TCR business vertical — required for 10dlc
  - `websiteUrl` string, required: Business website URL

## Response `201`

Created

- NumberRequestResponse
  - `request` PublicNumberRequest, required
    - `addressCity` string
    - `addressCountry` string
    - `addressPostalCode` string
    - `addressState` string
    - `addressStreet` string
    - `brandName` string
    - `businessContactEmail` string
    - `businessContactFirstName` string
    - `businessContactLastName` string
    - `businessVerification` object: Confirmed business identity, verification state, and readiness.
    - `campaignStage` string
    - `companyLegalName` string
    - `contactEmail` string
    - `contactPhone` string
    - `createdAt` string: ISO-8601 creation time
    - `estimatedMonthlyVolume` string
    - `id` string
    - `identifierType` string: Country-scoped carrier identifier type; the identifier value is never returned
    - `industry` string
    - `internationalAcquisitionDocuments` NumberRequestAcquisitionDocument[]
      - `contentType` string: Validated media type
      - `filename` string: Stored display filename
      - `requirementKey` string: Provider requirement key
      - `size` integer: Stored byte count
      - `uploadedAt` string: ISO-8601 upload time
    - `internationalAcquisitionFeedback` object
    - `internationalAcquisitionFormData` object
    - `internationalAcquisitionStatus` string
    - `listName` string
    - `messagingType` string
    - `optInFormUrl` string
    - `phoneNumberType` string
    - `privacyPolicyUrl` string
    - `provisionedPhoneNumber` string
    - `provisioningStatus` string
    - `rejectionReason` string
    - `status` string
    - `targetCountries` string[]
    - `termsConditionsUrl` string
    - `updatedAt` string: ISO-8601 update time
    - `vertical` string
    - `websiteUrl` string

## Other responses

- `400`: Validation error
- `403`: Sandbox, owner, plan, email, or verification denied
- `404`: Confirmed business not found
- `409`: Request or identity changed
- `422`: Unsupported request
- `503`: Saved request outcome requires reconciliation

---

[API](https://skmtc.dev/tracklysms/apis/trackly-sms-api.md) · [All operations](https://skmtc.dev/tracklysms/apis/trackly-sms-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tracklysms/apis/trackly-sms-api/revisions/ac1ad22cb2a9?raw)
