Passing Fraud Prevention Signals

You can provide Neon with additional player account and behavioral signals through the metadata field when creating a checkout. These gaming-specific signals help Neon evaluate transactions and improve fraud detection.

For more information about how Neon handles fraud prevention, see ⁠Fraud Prevention.

Supported Fraud Signals

The fraudMetadata object contains a customer object with the following supported fields. IP-related fields are nested under customer.latestLoginIp.

FieldTypeDescription
creationTimestring (date-time) | nullThe time the customer created their account. Example: 2025-03-15T10:30:00Z.
socialSignOnTypestring (enum)The social sign-in method used by the customer. Supported values: google, apple, facebook, twitter, yahoo, microsoft, wechat, github, linkedin, amazon, other.
platformstring (enum)The platform the customer is using. Supported values: web, ios, android, macos, windows, linux, other.
sessionCountinteger | nullThe number of sessions the customer has had in the app.
levelInAppinteger | nullThe customer’s current level in the app.
followersInAppinteger | nullThe number of followers the customer has in the app.
isOnLatestAppVersionboolean | nullWhether the customer is using the latest version of the app.
hasLinkedSocialAccountboolean | nullWhether the customer has linked a social account in the app.
finishedGameSetupboolean | nullWhether the customer has completed the initial game setup.
isKnownUserboolean | nullWhether the customer is a known user in the app.
latestLoginIp.ipAddressstring | nullThe IP address from which the customer last logged in.
latestLoginIp.countrystring | nullThe country associated with the IP address (ISO 3166-1 code).
latestLoginIp.citystring | nullThe city associated with the IP address.
latestLoginIp.regionstring | nullThe region associated with the IP address.

Passing Fraud Signals When Creating a Checkout

Include the fraudMetadata object in your request to the ⁠Create Checkout API.

The following example demonstrates how to pass fraud prevention signals when creating a Checkout.

{
  "accountId": "player_12345",
  "accountDisplayName": "Player123",
  "currency": "USD",
  "playerCountry": "US",
  "successUrl": "https://example.com/success",
  "cancelUrl": "https://example.com/cancel",
  "items": [
    {
      "sku": "premium_bundle",
      "name": "Premium Bundle",
      "quantity": 1,
      "price": 999
    }
  ],
//....
  "fraudMetadata": {
    "customer": {
      "creationTime": "2025-03-15T10:30:00Z",
      "socialSignOnType": "google",
      "platform": "ios",
      "sessionCount": 245,
      "levelInApp": 42,
      "followersInApp": 18,
      "isOnLatestAppVersion": true,
      "hasLinkedSocialAccount": true,
      "finishedGameSetup": true,
      "isKnownUser": true,
      "latestLoginIp": {
        "ipAddress": "203.0.113.10",
        "country": "US",
        "city": "San Francisco",
        "region": "California"
      }
    }
  }
}

This example demonstrates the fraudMetadata structure alongside common checkout parameters. Additional fields for checkout may be required depending on your integration.

We recommend providing all available fraud prevention signals and keeping the information accurate and up to date.


Did this page help you?