Skip to main content

Overview

Fraudsters often hide behind VPNs, residential proxies, Tor exit nodes, and datacenter IPs when they test stolen cards or ship goods to reshippers. At checkout, you want a fast IP check before you capture payment: enough signal to step up verification without turning away every privacy-conscious shopper. Greip exposes those signals in the security module on IP Lookup and IP Geolocation. Pair them with Payment Fraud Detection when you already send full transaction context. For field-level reference, see VPN/Proxy Detection.

Where to call Greip in checkout

Run the IP check on the server when the customer submits checkout (or when they land on the payment step), using the client IP you trust (for example X-Forwarded-For only after your edge strips untrusted values). Typical flow:
  1. Read customer_ip from the checkout session.
  2. Call Greip with params=security (and optional location if you compare billing country to geo).
  3. Map data.security to allow, challenge, or block.
  4. Only then call your payment processor or run payment scoring.
Use GET /lookup/ip/{ip} when you have the shopper IP. Use GET /geo/ip when Greip should use the caller IP (same request as your backend, with the shopper IP forwarded according to your proxy setup).

Request shape

Bearer auth in the Authorization header. Request the security module with the params query parameter.

Optional: payment scoring in the same flow

If you already call Payment Fraud Detection, include at least customer_ip (and billing/shipping fields you collect). Greip evaluates transaction rules in one request; you can still run a dedicated IP lookup when you only need VPN/proxy/Tor/hosting flags before showing the card form. Minimal payment body shape:

Security fields to use at checkout

When params includes security, data.security contains: Example security object:
For a composite IP risk score (0–100) and the same security object, use IP Reputation.

When to challenge vs block

Treat Greip signals as inputs to your policy, not hard-coded declines. Suggested starting points: Combine signals: for example challenge when vpn_or_proxy or hosting is true, block when tor or bot is true, and block when is_blacklisted is true regardless of other flags.
The security module requires a plan that includes it. On restricted plans the API returns error code 114 (security_module_not_allowed). See error codes.

Example: map security to a checkout decision

Wire the returned action to your checkout:
  • allow: continue to payment capture.
  • challenge: require step-up authentication or hold the order for review.
  • block: show a generic error and do not retry the same card blindly (log security for analysts).