---
title: "Confirm forwarding"
method: POST
path: "/v1/forwarding/confirm"
tags: ["Owner"]
---

# Confirm forwarding

`POST /v1/forwarding/confirm`

## Request

- Base URL: `https://api.vicem.ai`
- URL: `https://api.vicem.ai/v1/forwarding/confirm`
- Auth: HTTP bearer

## Request body

- ConfirmForwardingRequest
  - `checkId` string

## Response `200`

OK

- ForwardingResponse
  - `vicemNumber` string, required
  - `otherNumbers` object[]
    - `e164` string, required
    - `country` string, required
    - `enableCode` string, nullable, required
    - `enableCodes` string[]
  - `mainPhone` string, required
  - `mainPhoneSource` 'forwarding' | 'verified', nullable, required
  - `carrier` object, nullable, required
    - `id` string, required
    - `name` string, required
    - `method` 'mmi' | 'star' | 'app' | 'unsupported_conditional', required
    - `detected` boolean, required
    - `support` 'supported' | 'app_only' | 'limited' | 'unsupported' | 'unknown'
    - `supportNotes` string[]
    - `noteKey` object
      - `kind` 'rejected_code' | 'rings_decline' | 'jio_abroad' | 'voicemail_forward', required
      - `carrier` string, required
    - `supportNoteKeys` object[]
      - `kind` 'prepaid_may_block' | 'live_voicemail_first' | 'visible_no_answer' | 'us_mobile_warp' | 'no_code_android' | 'iphone_forwards_all' | 'excluded_plan' | 'prepaid_cant' | 'payg_cant' | 'test_decides' | 'in_settings_first' | 'myjio_app', required
      - `name` string
    - `chargeNote` string
    - `source` string
    - `checkedOn` string
    - `line` 'mobile' | 'landline' | 'voip' | 'unknown'
    - `chosen` boolean
    - `iosOk` boolean
    - `intlForward` 'allowed' | 'blocked' | 'paid_addon' | 'unknown'
  - `codes` object, nullable, required
    - `primary` object, nullable, required
      - `condition` 'all_conditional' | 'busy' | 'no_answer' | 'unreachable', required
      - `label` string, required
      - `dial` string, required
      - `dial00` string
    - `perCondition` object[], required
      - `condition` 'all_conditional' | 'busy' | 'no_answer' | 'unreachable', required
      - `label` string, required
      - `dial` string, required
      - `dial00` string
    - `alternates` object[], required
      - `condition` 'all_conditional' | 'busy' | 'no_answer' | 'unreachable', required
      - `label` string, required
      - `dial` string, required
      - `dial00` string
    - `disable` string, nullable, required
    - `disableAlt` string, nullable
    - `appHint` string, nullable, required
    - `notes` string[], required
  - `blocked` 'no_vicem_number' | 'number_not_live' | 'no_main_phone', nullable, required
  - `check` object, nullable, required
    - `id` string, required
    - `status` 'calling' | 'verified' | 'answered' | 'failed', required
    - `startedAt` string, date-time, required
    - `finishedAt` string, date-time, required
    - `kind` 'call_me' | 'airplane' | 'ask_someone'
    - `proves` 'no_answer' | 'busy' | 'unreachable'
    - `openUntil` string, date-time
  - `lastVerifiedAt` string, date-time, required
  - `lastForwardedCallAt` string, date-time, required
  - `health` 'not_set_up' | 'verified' | 'stale', required
  - `healthUntil` string, date-time
  - `reachMode` 'direct' | 'forward'
  - `checksLeftToday` integer, required
  - `available` boolean, required
  - `testCallable` boolean
  - `carrierChoices` object[]
    - `id` string, required
    - `name` string, required
  - `lineGuide` string[], nullable
  - `keepSystemHint` string, nullable
  - `voicemailFix` object, nullable
    - `condition` 'all_conditional' | 'busy' | 'no_answer' | 'unreachable', required
    - `label` string, required
    - `dial` string, required
    - `dial00` string
  - `voicemailFixSecs` integer, nullable
  - `fastRing` object[]
    - `secs` integer, required
    - `dial` string, required
  - `forwardAll` boolean
  - `forwardAllHint` boolean
  - `chargeWarning` string, nullable
  - `chargeWarningKey` object, nullable
    - `numberCountry` string, required
    - `phoneCountry` string, required
  - `carrierChangedAt` string, date-time
  - `homeCountry` string, nullable
  - `cost` object, nullable
    - `line` string, required
    - `excludedPlans` string, nullable, required
    - `conflicts` string, nullable, required
    - `ringOut` string, nullable, required
    - `lineKey` object
      - `kind` 'included' | 'blocked' | 'ask' | 'generic_ask' | 'may_charge' | 'generic_may' | 'may_charge_note' | 'charges' | 'home_minutes' | 'home_fee', required
      - `carrier` string, required
      - `currency` string
      - `amount` number
      - `checkedOn` string
      - `note` 'intl_rate'
    - `excludedPlanNames` string[]
    - `conflictNames` string[]
  - `noForward` object, nullable
    - `reason` 'carrier_blocked' | 'landline_abroad' | 'country_unsupported', required
    - `line` string, required
  - `gaps` string[]
  - `test` object
    - `kind` 'call_me' | 'airplane' | 'ask_someone', required
    - `costLine` string, nullable, required
    - `costKey` object, nullable
      - `carrier` string, required
      - `amount` number, required
      - `currency` string, required
  - `codesStyle` 'single' | 'checklist'
  - `deviceLabels` object
    - `keypad` string
    - `paste` string
    - `carrierOk` string
  - `deviceSteps` object
    - `ios` object, required
      - `liveVoicemail` boolean, required
      - `screenUnknown` boolean, required
    - `android` object, required
      - `callScreen` boolean, required
  - `failureHints` string[]
  - `failureHintKeys` object[]
    - `kind` 'no_abroad' | 'prepaid_cant' | 'prepaid_credit' | 'intl_barred' | 'intl_barred_generic' | 'live_voicemail' | 'screen_unknown', required
    - `carrier` string
  - `voicemailRestore` string, nullable
  - `proof` 'test' | 'call' | 'owner', nullable
  - `declineTip` boolean
  - `voicemail` object
    - `status` 'replaced' | 'partly' | 'unproven', required
    - `conditions` object[], required
      - `condition` 'no_answer' | 'busy' | 'unreachable', required
      - `seenAt` string, date-time, required
      - `via` 'test' | 'call', nullable, required
    - `next` 'no_answer' | 'busy' | 'unreachable', nullable, required
    - `spamTrap` object, nullable, required
      - `service` string, required
      - `carrier` string, required
  - `travelling` boolean
  - `abroadMode` object, nullable
    - `on` string, required
    - `back` string[], required
    - `travel` 'abroad' | 'home', nullable, required

## Other responses

- `400`: Invalid request (body not JSON, or schema validation failed).
- `401`: Missing, expired or invalid bearer token.
- `413`: Body over the limit (64 KB; 512 KB for contact import).
- `500`: Unexpected server error (reported to Sentry).

---

[API](https://skmtc.dev/vicem/apis/vicem-api.md) · [All operations](https://skmtc.dev/vicem/apis/vicem-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vicem/apis/vicem-api/revisions/9efcec07e5f4?raw)
