ava.verification.completed to the HTTPS endpoint on your Business. This page is only that event. Shipment events are a different webhook: Order webhook.
You register one HTTPS endpoint per Business. Run POSTs a signed JSON envelope to that URL. data is the verification, the same object as Get verification. It is not a shipment.
Configure
Set your webhook URL, subscribed event types, and signing secret from the Business Dashboard → Developers → Setup (dashboard session — not via API key).
Developers → Setup — webhook URL, signing secret, and event subscriptions
- On first save, the signing secret is returned once (looks like
whsec_••••••••••••••••when masked) — store the full value securely. - A company that only has Address Verification starts with
ava.verification.completed. - A company that also has Delivery keeps the shipment events and can add this one.
- Use Rotate secret if the secret may be compromised. The previous secret remains valid for about 24 hours.

Developers → Webhook deliveries
When it is sent
ava.verification.completed is sent when a processing address check finishes as confirmed, not_confirmed, or unreachable. That includes the close after 5 business days.
It is not sent when you first submit a check, when you accept or decline a field visit, or when a check is confirmed immediately from a past record.
At that same moment Run also sends an email with the subject “Your address check is ready.” and a device push titled “Address check updated.”
Every field on data is listed here.
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.
string
Run’s id for this check. It starts with
avr_.string
Your reference for this check.
string
confirmed, not_found, processing, not_confirmed, or unreachable. See Verification statuses.string
When you created the check, in ISO 8601. Null only if the time is missing.
string
When the check finished, in ISO 8601.
null until then.string
The address you sent.
string
The address Run confirmed.
null unless status is confirmed.number
Latitude of the confirmed address.
null unless status is confirmed.number
Longitude of the confirmed address.
null unless status is confirmed.object
One evidence object, or
null. type is delivered_record for a past delivery, or location_verification for a check Run recorded.string
delivered_record or location_verification. null when evidence is null.string
When this evidence was recorded, in ISO 8601, or
null.string
When a past delivery arrived, in ISO 8601, or
null.string
When the evidence was confirmed, in ISO 8601, or
null.string
How it was checked:
field_visit, rider, agent, local_contact, or desk_review. null when this evidence has no method.string
confirmed, not_confirmed, or unreachable. null when this evidence has no outcome.string
The address that was found, or
null.string
The area that was recorded, or
null.number
Latitude recorded with the evidence, or
null.number
Longitude recorded with the evidence, or
null.boolean
Whether the address could be reached.
null when that was not recorded.string
The note stored with the evidence, or
null.string
A reference stored with the evidence, or
null.string[]
Photo links. An empty list when there are no photos. Omitted from the object only when
evidence itself is null.boolean
true when you can still accept or decline a field visit.number
The visit price in naira when
available is true. null when no visit is offered. This is the rate on your account.string
Always
NGN.string
The note for this check, or
null.number
The amount taken from the wallet, in naira, or
null when this check has not been charged.string
Always
NGN.string
historical for a normal check, or field_visit for a visit. null when this check has not been charged.string
The wallet transaction id, or
null when this check has not been charged.Event envelope
Every delivery is a JSON POST with this shape. Headers:Delivery and retries
Return a 2xx status to acknowledge receipt.
Delivery is at-least-once. Retries reuse the same event
id (evt_…) — make your handler idempotent. Run does not promise global ordering; use occurred_at and data.status.
In production, webhook URLs must use HTTPS. Run blocks private/reserved destinations and disables redirects when delivering.
Verify signatures
HMAC-SHA256 ofid + status + timestamp, keyed with your whsec_… secret. Compare the hex digest to X-Run-Webhook-Signature. The signature is not a hash of the JSON body.
Reject timestamps older than about 5 minutes. Always verify before trusting the body.