> ## Documentation Index
> Fetch the complete documentation index at: https://run-deliverys.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Field visit

> Decide on an open field-visit offer. The body is the full verification.

Accept or decline a field visit on a check that is `not_found` and still has an offer. The body that comes back is the full verification.

Requires scope: `ava:write`

**Accept** starts the visit. The check becomes `processing`, and the note is “A field visit is underway.” The wallet must cover the visit price from the available balance. Available balance is the wallet balance minus any amount already held. The normal hold, when one exists, is replaced by the visit price.

**Decline** sets the check to `declined`, turns the offer off, and sets `checked_at`. Decline does not charge.

Neither decision sends `ava.verification.completed`. Each decision is final.

## Headers

**Authorization** `string` *required*

Bearer API key (`Bearer <api_key>`).

**Content-Type** `string` *required*

`application/json`

## Path parameters

**id** `string` *required*

The verification id (`avr_…`).

## Body

**decision** `string` *required*

`accept` or `decline`.

## Response

`address.normalized`, `address.lat`, and `address.lng` are present only when `status` is `confirmed`. Otherwise they are `null`. `evidence` is one object, or `null` when Run has not recorded evidence yet.

**id** `string`

Run’s id for this check. It starts with `avr_`.

**external\_ref** `string`

Your reference for this check.

**status** `string`

`confirmed`, `not_found`, `declined`, `processing`, `not_confirmed`, or `unreachable`. See [Verification statuses](https://run-deliverys.mintlify.site/address-verification/statuses.md).

**created\_at** `string`

When you created the check, in ISO 8601. Null only if the time is missing.

**checked\_at** `string`

When the check finished, in ISO 8601. `null` until then.

**address.input** `string`

The address you sent.

**address.normalized** `string`

The address Run confirmed. `null` unless `status` is `confirmed`.

**address.lat** `number`

Latitude of the confirmed address. `null` unless `status` is `confirmed`.

**address.lng** `number`

Longitude of the confirmed address. `null` unless `status` is `confirmed`.

**evidence** `object`

One evidence object, or `null`. `type` is `delivered_record` for a past delivery, or `location_verification` for a check Run recorded.

**evidence.type** `string`

`delivered_record` or `location_verification`. `null` when `evidence` is `null`.

**evidence.checked\_at** `string`

When this evidence was recorded, in ISO 8601, or `null`.

**evidence.delivered\_at** `string`

When a past delivery arrived, in ISO 8601, or `null`.

**evidence.confirmed\_at** `string`

When the evidence was confirmed, in ISO 8601, or `null`.

**evidence.method** `string`

How it was checked: `field_visit`, `rider`, `agent`, `local_contact`, or `desk_review`. `null` when this evidence has no method.

**evidence.outcome** `string`

`confirmed`, `not_confirmed`, or `unreachable`. `null` when this evidence has no outcome.

**evidence.address\_recorded** `string`

The address that was found, or `null`.

**evidence.area** `string`

The area that was recorded, or `null`.

**evidence.lat** `number`

Latitude recorded with the evidence, or `null`.

**evidence.lng** `number`

Longitude recorded with the evidence, or `null`.

**evidence.reachable** `boolean`

Whether the address could be reached. `null` when that was not recorded.

**evidence.notes** `string`

The note stored with the evidence, or `null`.

**evidence.reference** `string`

A reference stored with the evidence, or `null`.

**evidence.proof\_image\_urls** `string[]`

Photo links. An empty list when there are no photos. Omitted from the object only when `evidence` itself is `null`.

**field\_visit\_offer.available** `boolean`

`true` when you can still accept or decline a field visit.

**field\_visit\_offer.amount\_ngn** `number`

The visit price in naira when `available` is `true`. `null` when no visit is offered. This is the rate on your account.

**field\_visit\_offer.currency** `string`

Always `NGN`.

**notes** `string`

The note for this check, or `null`.

**charge.amount\_ngn** `number`

The amount taken from the wallet, in naira, or `null` when this check has not been charged.

**charge.currency** `string`

Always `NGN`.

**charge.check\_type** `string`

`historical` for a normal check, or `field_visit` for a visit. `null` when this check has not been charged.

**charge.transaction\_id** `string`

The wallet transaction id, or `null` when this check has not been charged.

A check that is not waiting for this decision returns `400`.

```bash cURL theme={null}
curl -X POST "$RUN_BASE_URL/business/ava/verifications/avr_01hxyzaddresscheck/field-visit" \
  -H "Authorization: Bearer $RUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "decision": "accept" }'
```

```javascript Node.js theme={null}
const res = await fetch(
  `${process.env.RUN_BASE_URL}/business/ava/verifications/avr_01hxyzaddresscheck/field-visit`,
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.RUN_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ decision: 'accept' }),
  },
);
const verification = await res.json();
```

```python Python theme={null}
import os
import requests

res = requests.post(
    f"{os.environ['RUN_BASE_URL']}/business/ava/verifications/avr_01hxyzaddresscheck/field-visit",
    headers={"Authorization": f"Bearer {os.environ['RUN_API_KEY']}"},
    json={"decision": "accept"},
)
verification = res.json()
```

```php PHP theme={null}
<?php
$ch = curl_init(getenv('RUN_BASE_URL') . '/business/ava/verifications/avr_01hxyzaddresscheck/field-visit');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'Authorization: Bearer ' . getenv('RUN_API_KEY'),
    'Content-Type: application/json',
  ],
  CURLOPT_POSTFIELDS => json_encode(['decision' => 'accept']),
]);
$verification = json_decode(curl_exec($ch), true);
curl_close($ch);
```

```go Go theme={null}
package main

import (
  "bytes"
  "net/http"
  "os"
)

func main() {
  body := bytes.NewBufferString(`{"decision":"accept"}`)
  req, _ := http.NewRequest("POST", os.Getenv("RUN_BASE_URL")+"/business/ava/verifications/avr_01hxyzaddresscheck/field-visit", body)
  req.Header.Set("Authorization", "Bearer "+os.Getenv("RUN_API_KEY"))
  req.Header.Set("Content-Type", "application/json")
  http.DefaultClient.Do(req)
}
```

```json 200 theme={null}
{
  "id": "avr_01hxyzaddresscheck",
  "external_ref": "ORDER-1842",
  "status": "processing",
  "created_at": "2026-10-25T15:20:00.000Z",
  "checked_at": null,
  "address": {
    "input": "12 Adeola Odeku, Victoria Island, Lagos",
    "normalized": null,
    "lat": null,
    "lng": null
  },
  "evidence": null,
  "field_visit_offer": {
    "available": false,
    "amount_ngn": null,
    "currency": "NGN"
  },
  "notes": "A field visit is underway.",
  "charge": {
    "amount_ngn": null,
    "currency": "NGN",
    "check_type": null,
    "transaction_id": null
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.