Objects and Dictionary
Shared request and response objects used across the VertexY API.
ℹ️
This page documents the raw REST API. If you are building a browser app, keep refresh tokens in a secure server-side layer instead of exposing them directly to frontend JavaScript.
Auth objects
Login request
json
{
"companyId": "uuid",
"email": "fraud-admin@example.com",
"password": "string"
}Login response
json
{
"accessToken": "jwt",
"refreshToken": "jwt",
"subscriptionStatus": "active",
"planCode": "growth",
"planFeatures": [
"event_explorer",
"reviews"
]
}Refresh response
json
{
"accessToken": "jwt",
"refreshToken": "jwt"
}Assessment request object
Core required fields:
transactionId: your business identifier for the transaction or decision.userId: the stable user identifier in your system.amountMinor: amount in minor currency units, such as cents or paise.currency: 3-letter uppercase currency code, such asUSDorINR.
Optional enrichment fields:
email,ipAddress,deviceFingerprint,phoneNumberpaymentMethodHash,shippingAddressHashmetadata,billingAddress,shippingAddresscardDetails,deviceMeta,ipGeo
Field list:
transactionIdType is string. Required.userIdType is string. Required.emailType is string. Optional.ipAddressType is string. Optional.deviceFingerprintType is string. Optional.phoneNumberType is string. Optional.paymentMethodHashType is string. Optional.shippingAddressHashType is string. Optional.amountMinorType is integer. Required.currencyType is 3-letter currency code. Required.scoringProfileType is string. Optional.metadata,billingAddress,shippingAddress,cardDetails,deviceMeta,ipGeoObject fields. Optional.
Assessment response object
assessmentIdUUID of the stored assessment.riskScoreFinal numeric score from 0 to 100.actionFinal action the client should apply.recommendedActionDirect recommendation from the engine.policyModehybrid,advisory, orshadow.riskLevelSeverity band.reasonCodesExplanation code list.featureContributionsDiagnostic signal object.engineVersionEngine release label.latencyMsEnd-to-end evaluation latency.
Event ingest object
Every ingest request should include:
- company identity with
companyId - source tracking with
eventSourceandexternalEventId - replay-safe identity with
idempotencyKey - the user and event type with
userIdandeventType - the event time in
timestamp - event-specific business context inside
metadata
Field list:
companyIdUUID. Required.eventSourceString. Required.externalEventIdString. Required.idempotencyKeyString. Required.userIdString. Required.eventTypeEnum. Required.timestampISO 8601 datetime. Required.metadataObject. Required.paymentDetails,billingAddress,shippingAddress,cardDetails,deviceMeta,ipGeoOptional objects.
Payment details object
The paymentDetails object is easiest to think about in groups:
Core payment identity:
methodType: payment family such as card, UPI, wallet, bank transfer, or COD.provider: gateway or PSP name.fingerprint: stable payment method fingerprint.gatewayPaymentId: payment ID from your PSP or acquirer.amountMinor: amount in minor currency units.currency: 3-letter uppercase currency code.
Card-specific fields:
cardLast4cardBincardNetworkissuercountry
Alternative payment method fields:
walletIdupiVpa
Outcome and processing fields:
authStatuscaptureStatusfailureCodefailureCategoryattemptCountthreeDsResult
Contextual sub-objects
billingAddress and shippingAddress
json
{
"country": "US",
"postalCode": "10001",
"city": "New York"
}cardDetails
json
{
"bin": "411111",
"last4": "1111",
"network": "visa",
"issuingCountry": "US",
"cardType": "credit"
}deviceMeta
json
{
"os": "iOS",
"browser": "Mobile Safari",
"language": "en-US",
"timezone": "America/New_York"
}ipGeo
json
{
"country": "US",
"region": "NY",
"city": "New York",
"lat": 40.7128,
"lon": -74.006
}Subscription object
Key subscription fields:
status: current billing state such aspending,active, orexpired.startsAtandendsAt: billing period boundaries.cancelAtPeriodEnd: whether the current cycle will end without renewal.plan: the nested commercial plan, including features and limits.
idUUID.companyIdUUID.planIdUUID.statusString.lemonSqueezySubscriptionIdString or null.lemonSqueezyCustomerIdString or null.startsAtDatetime.endsAtDatetime or null.cancelAtPeriodEndBoolean.metadataObject or null.planNested plan object.
Usage record object
json
{
"id": "uuid",
"subscriptionId": "uuid",
"companyId": "uuid",
"metric": "fraud_events_ingested",
"year": 2026,
"month": 4,
"used": 1240
}Review object
A review includes:
- review ID
- status
- analyst metadata
- linked assessment summary
- created and updated timestamps
Review statuses:
openin_reviewescalatedresolvedclosedconfirmed_fraudfalse_positive
Graph explorer object
json
{
"nodes": [
{
"id": "riskuser::user_123",
"label": "RiskUser",
"group": "riskuser",
"properties": {}
}
],
"links": [
{
"source": "riskuser::user_123",
"target": "globalindicator::abcdef",
"type": "USES_INDICATOR"
}
],
"meta": {
"seedUserId": "user_123",
"nodeCount": 2,
"linkCount": 1
}
}