Skip to navigation

Address presence controls and business premises

Added

  • Extend a presence check. POST /api/identity/entities/:externalUserId/address/extend with { days } (1 to 14, up to 30 extra days in total) gives a running check more time. A check that has just ended inconclusive because its window ran out is reopened, and its verdict arrives again later on the same watchId. New webhook entity.address_presence_extended (reopened, automatic, previousDeadlineAt, deadlineAt, extendedBy).

  • Approve a presence check by hand. POST .../address/approve with a note (10 characters or more) marks the check verified. The verdict arrives on entity.address_verified with decidedBy: "reviewer"; a check that passed on its own evidence carries decidedBy: "evidence". A manual approval is not charged.

  • Decline a presence check. POST .../address/decline with a note and then: fail (the default) ends the check, and a workflow waiting on it declines the verification; restart ends it and starts a fresh check in the same step, and the waiting workflow decides on the new one. New webhook entity.address_presence_declined (restarted, restartedWatchId, declinedBy, previousStatus, progress). The note is never sent. New decision field address.presenceDeclined.

  • Restart a declined check. POST .../address/restart starts a fresh check on the same pin and settings. It arrives on entity.address_presence_started with startedVia: "restart". Nothing the declined check gathered counts.

  • Stop presence monitoring. POST .../address/revoke now ends both the check in progress and any always-on arrangement, so no further check starts. New webhook entity.address_presence_stopped (wasMonitoring, stoppedBy, stoppedAt). GET /api/kyc/address/presence/:externalUserId returns stopped: true, and the React Native and Flutter SDKs switch off background reporting and forget the stored pin on the next app open. There is no resume: start a new check instead.

  • Deadline warning. New webhook entity.address_presence_deadline_near two days before a running check’s deadline when it still lacks evidence (hoursLeft, progress, needed, autoExtendAvailable), so you can remind the customer while there is time.

  • Near misses and automatic extension. A check that ends inconclusive having reached 60% of its days or nights, with no flagged days, carries nearMiss: true on its result webhook and the decision field address.presenceNearMiss. A workflow can set addressCollection.presence.autoExtendDays (1 to 14) to give such a check that many extra days once, instead of ending it.

  • Business premises checks. On a business (KYB) workflow the address step checks the premises the way a business is shown to trade from an address:

    • the address read off a proof-of-address company document is compared with the register (addressMatch on the document, decision field business.documentAddressMatch, returned-data key address_match);
    • a public business listing for the registered name near the pin (addressIntel.listing, decision fields address.listingMatch and address.listingOperational, returned-data key business_listing). It is on by default with the step, addressCollection.businessListing: false turns it off, and it is charged as its own line only when it runs;
    • other businesses that gave the same spot (businessesAtSamePin, decision field address.businessesAtSamePin), a review signal, never a decline;
    • the premises entrance photo and Street View frame are now accepted on business submissions.

    See Address Intelligence.

  • Key-people reminder webhooks. On a business application, key_people.reminder fires 3, 7 and 11 days after the first invite while anyone is still to verify. It lists each person (pending) with their invite link, whether they opened it, and whether Toden also emails them, plus the application’s key-people portal link. key_person.invite_expiring fires once per invite link in its last 48 hours (hoursLeft). Use them to chase people on your own channels. The links are left out (linksIncluded: false) when the workflow withholds key-people links (Returned data portal_link). Outside production the reminders arrive in minutes, not days. See Business verification events.

Changed

  • Behaviour change: a business premises presence check counts days only. A business is not expected at its premises overnight, so these checks are stored with minNights: 0 and pass on days alone. Business customers can now report presence and read their check’s status, and the evening reminder is not sent for premises checks.
  • Behaviour change: the web, React Native and Flutter SDKs run the full address steps (search, pin, entrance, review) on a business premises, and send the premises pin and entrance photo with the business submission.
  • Outside production a presence check waits 5 minutes before any verdict, so there is time to try extending, approving and declining it.
  • The React Native and Flutter SDKs ask for “allow location all the time” on a short screen of their own, just before the system prompt. It tells the person what they gain (nothing more to do, with the real number of app opens otherwise needed for your workflow), that it finishes sooner, and that only this one address is checked. If they choose “Not now”, the success screen says what is left and offers a button to turn automatic checks on from Settings. New customisable texts: address.background.title, address.background.description (each with a .business variant), address.background.allow, address.background.later and address.presence.off.title.
  • On a tall phone, the map and Street View in the React Native and Flutter SDKs now fill the space down to the Continue button; on a short one they keep their usual height and the step scrolls.

Fixed

  • Flutter SDK: going back from the address entrance step and returning to it showed a grey screen in release builds. It now opens normally.