---
title: "Complete an assistant location request from the customer's phone"
method: POST
path: "/v1/account/location-handoffs/{handoff_id}/complete-from-device"
tags: ["Customer Account"]
---

# Complete an assistant location request from the customer's phone

`POST /v1/account/location-handoffs/{handoff_id}/complete-from-device`

## Request

- Base URL: `https://loppee.com`
- URL: `https://loppee.com/v1/account/location-handoffs/{handoff_id}/complete-from-device`
- Auth: HTTP bearer

Requires an App Attest assertion over the server-derived account, user, installation, stable connection, OAuth grant, active agent key, handoff, use mode, challenge, and Loppee iOS Core Location capture. It atomically consumes one sign counter and completes one use only. Bearer plus installation UUID alone is insufficient; the response never returns coordinates.

## Path parameters

- `handoff_id` string, required

## Headers

- `X-Loppee-Client-Platform` string, required
- `X-Loppee-Installation-Id` string, required

## Request body

- object
  - `installation_id` string, uuid, required
  - `connection_id` string, uuid, required
  - `oauth_grant_id` string, uuid, nullable, required
  - `agent_key_id` string, uuid, required
  - `use_mode` 'automatic' | 'approved_in_app', required
  - `capture_source` 'loppee_ios_core_location', required
  - `challenge_id` string, uuid, required
  - `challenge` string, required
  - `key_id` string, required
  - `assertion` string, required
  - `latitude` number, required
  - `longitude` number, required
  - `accuracy_meters` number, required
  - `captured_at` string, date-time, required

## Response `200`

Complete an assistant location request from the customer's phone response

- object
  - `handoff_id` string, uuid, required
  - `status` 'ready', required
  - `completed` true, required
  - `use_mode` 'automatic' | 'approved_in_app', required
  - `agent_receives_coordinates` false, required

## Other responses

- `400`: ErrorResponse
- `401`: ErrorResponse
- `403`: ErrorResponse
- `404`: ErrorResponse
- `409`: ErrorResponse
- `413`: ErrorResponse
- `429`: RateLimitError
- `default`: ErrorResponse

---

[API](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents.md) · [All operations](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/llms.txt) · [OpenAPI document](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/revisions/37285f7cddcd?raw)
