DEV Community

VOYGR
VOYGR

Posted on

How to spot fake businesses during merchant onboarding

A fake merchant usually fails on the physical side. The company may be registered, the website may look real, but nobody trades at the address on the application, or the "office" is a mailbox shared by hundreds of companies. Checking that by hand for every applicant doesn't scale. These are the checks you can automate.

Four questions to ask about every applicant

  1. Does this business exist at the address it gave? Look for independent evidence that a business by that name trades there: a map listing, its own website, reviews, social profiles.
  2. Is it still operating? A business that closed last year can keep an active registration for a long time.
  3. Is the name right? "J&M Auto LLC" on the form and "J and M Auto Repair" on the storefront is fine. A name nobody uses anywhere is not.
  4. What kind of address is the registered office? A real building, a PO box, or a virtual office used by many unrelated companies.

Exists, and open or closed

The VOYGR Validate API takes a name and full address:

curl https://api.voygr.tech/v1/validate \
  --request POST \
  --header "X-API-Key: $VOYGR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"poi_name": "Example Auto Repair", "address": "123 Example Street, Oakland, CA 94607, US"}'
Enter fullscreen mode Exit fullscreen mode

existence_confidence (0 to 1) scores whether a matching place has existed at that location. operational_status.status says open, closed, unknown or not_exists. Treat not_exists as a red flag and unknown as "review by hand".

Name and address checks

The Enrich API has three checks you switch on per request:

curl https://api.voygr.tech/v1/enrich \
  --request POST \
  --header "X-API-Key: $VOYGR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "poi_name": "Example Auto Repair",
    "address": "123 Example Street, Oakland, CA 94607",
    "registered_address": "456 Sample Ave, Suite 100, Wilmington, DE 19801",
    "country": "US",
    "attributes": ["open_closed", "phone", "website"],
    "verify_name": true,
    "verify_address": true,
    "verify_registered_address": true
  }'
Enter fullscreen mode Exit fullscreen mode
  • identity.name comes back confirmed (your name was right), corrected (we replaced it) or unresolved.
  • address_checks.address says confirmed_at_address, not_found_at_address or found_elsewhere, with the address where the evidence actually places the business.
  • address_checks.registered_address reports whether the address is a real building (match_quality) and its premises_type: premises, po_box or mail_drop. mail_drop means many unrelated companies share it, or it's sold as a virtual office or formation-agent address.

Name and trading-address checks cost one extra credit per business together, and the registered-address check one more. Add "estimate_only": true to see the cost without running anything.

These aren't postal validation. A confirmed address means the business publishes that address about itself. Pair it with operational_status to know whether it still operates there.

At onboarding volume

Validation jobs take 1 to 10,000 businesses per job and return results asynchronously. Route not_exists, not_found_at_address and mail_drop to manual review, and pass the rest.

For the cases that stay unclear, PlaceCall can phone the business and ask.

Free key with 2.5K credits: api.voygr.tech/checkout. Docs: api.voygr.tech/docs.

Top comments (0)

⌂ 换网址