Skip to main content
This guide walks you through ingesting Client Sessions - records that capture device fingerprints, IP addresses, and geolocation data for each client interaction with your platform. Full API endpoint details are available in the API Reference (requires API credentials).
Before ingesting sessions, make sure the related clients have already been ingested. See the Ingesting Clients guide.

Overview

Sessions allow Corsa to track client device activity for fraud detection and behavioral analysis. Each session captures:
  • IP address - automatically resolved to geolocation by Corsa
  • Device fingerprint - unique hash identifying the device
  • Device metadata - browser, OS, screen resolution, timezone, etc.
  • Device custom fields - optional key-value metadata attached to the device (merged on upsert by fingerprint)

Step 1: Create a Session

Endpoint: POST /v1/sessions

Key Fields

Device custom fields

Send device.customFields as a map of keys to { label, value } objects. Corsa stores custom fields on the device (not the session). When a new session uses a fingerprint that already exists, incoming custom fields are merged with existing values — new keys are added and existing keys are overwritten. The field type is inferred from value (string, number, or boolean), so keep each key’s type consistent across sessions. Subsequent sessions with the same fingerprint can send only the keys you want to update:
Device custom fields can be used in transaction monitoring rules under the Device entity (for example, customFields.deviceRiskScore).

Device Type Values

Corsa automatically resolves the IP address to geolocation data (country, city, coordinates). You do not need to provide geolocation separately.

Step 2: Retrieve Sessions for a Client

Endpoint: GET /v1/clients/{clientId}/sessions View all sessions associated with a specific client to analyze login patterns and device usage.

Get a Session by ID

Endpoint: GET /v1/sessions/{id} Retrieve a single session by its Corsa session ID or your referenceId.

Step 3: End a Session

Endpoint: PUT /v1/sessions/{id} Mark a session as ended by providing the endedAt timestamp.

What’s Next?

Ingest Operations

Ingest deposits, withdrawals, and trades for your clients.

Manage Attachments

Upload and manage files across entities.