Forex

Track360 API — Forex

Integration Guide for Forex & CFD Brokers — trader registration, deposits, trading volume (Lots), and IB rebate reporting through the Track360 attribution pipeline.

Document Type
Developer Integration Guide
Audience
Engineering & Product Teams
Protocol
HTTPS — JSON over REST
Authentication
API Key (Brand Token)
Section 01

Introduction

The Track360 API provides a lightweight, JSON-based interface for Brands and Partner systems to report customer records and business activity in real time. It is designed to serve as the bridge between operational systems and the Track360 attribution, tracking, and reporting layer.

What this API is for

This API enables two primary functions. First, it allows a Brand to register new customers in Track360 along with the marketing attribution values that brought them in. Second, it allows the Brand to continuously report activity events — deposits, withdrawals, lots traded, notional volume, IB rebates, commission, or aggregated daily statistics — against those customers.

What the integration enables

Once integrated, Track360 receives a reliable stream of customer and activity data from the Brand. This data is then used to:

  • Attribute each customer to the correct acquisition source using tracking parameters
  • Compute commissions, revenue share, CPA, and hybrid models for affiliates and partners
  • Produce business intelligence reports based on actual customer KPIs
  • Reconcile performance across campaigns, affiliates, and traffic sources

Who this document is for

This guide is written for the technical teams responsible for implementing the integration on the Brand side — including backend engineers, integration leads, CRM/platform owners, and product managers overseeing the tracking infrastructure. Familiarity with HTTP, JSON, and basic API authentication is assumed.

At a Glance
Track360 delivers traffic with tracking parameters to the Brand’s landing page. The Brand captures those parameters, creates a customer record via the Customer API, and continuously reports that customer’s business activity via the Activity API. Track360 uses the returned parameters to attribute the customer and produce reporting.
Section 02

Integration Overview

The integration follows a simple, directional pattern: tracking data originates at Track360, is echoed back by the Brand during customer creation, and is then enriched over time with business activity reported by the Brand. Track360 never pulls data from the Brand — the Brand always pushes data to Track360 via HTTPS requests.

End-to-end data flow

01
Traffic lands on site

Track360 routes a visitor to the Brand’s landing page and appends tracking parameters to the URL.

02
Brand captures parameters

The Brand’s site stores the received parameters and associates them with the user session.

03
Customer registered

On signup, the Brand calls the Track360 Customer API, returning the original tracking parameters for attribution.

04
Activity reported

The Brand pushes business events (Deposit, Lots, Rebate, etc.) to the Track360 Activity API as they occur.

Responsibilities

Party
Role
Track360
Delivers traffic with tracking parameters, receives and stores customer and activity data, performs attribution, and produces reporting.
Brand / Partner
Captures tracking parameters from inbound URLs, registers each new customer via the Customer API, and reports customer activity in real time via the Activity API.

What data is sent to Track360

  • Customer data — identifying information about a newly registered user and the tracking parameters that were originally delivered to the Brand with that user’s traffic.
  • Activity data — financial and behavioral events generated by the customer after registration, such as deposit, lots, rebate, etc., or aggregated daily performance.
Key Principle
Attribution is only possible when the tracking parameters delivered to the Brand’s site are returned verbatim in the Customer API call. This single rule underpins the entire reporting pipeline.
Section 03

Authentication

All Track360 API endpoints are protected by an API key issued per Brand. The key is passed in a single HTTP header and must be present on every request — unauthenticated requests will be rejected.

Authentication method

Track360 uses a simple API key scheme based on a Brand Token. There is no OAuth flow, no session to manage, and no signing algorithm — the token is static and is configured once per Brand in the Track360 platform.

Required header

FieldTypeRequiredDescriptionValidation Notes
x-api-key<BrandToken>The unique token issued to the Brand. Must be included on every request to both the Customer API and the Activity API.

Token source

The Brand Token is defined in the Brand Settings section of the Track360 platform. It is associated with a single Brand and should be treated as a secret credential.

Example request header

HTTP Headers
http
Content-Type: application/json
x-api-key: b1f4e7a2-9c3d-4e1b-8a77-2f9e6d3c5a81
Security Guidance
Store the Brand Token in a secure secret manager and never expose it in client-side code, public repositories, or logs. If the token is ever suspected to be compromised, regenerate it through Brand Settings in Track360 immediately.
Section 04

General API Conventions

Both Track360 endpoints follow a uniform, predictable contract. Understanding these conventions once applies everywhere the API is used.

Request format

Convention
Detail
Protocol
HTTPS only
HTTP method
POST for all write operations
Request body
JSON array — one or more records per request
Content type
application/json
Authentication
x-api-key header on every request
Encoding
UTF-8

Batching — multiple records per request

Both the Customer API and the Activity API accept a JSON array of records in a single request body. This allows a Brand to send a single customer or event, or to submit multiple records in one call for efficiency — particularly useful for periodic batch reporting or replaying historical data.

Uniqueness

The customerId field must be unique per Brand. This identifier is the primary link between a customer record and every activity event reported for that customer. If the same customerId is sent again to the Customer API, Track360 will treat the call as an update to the existing record.

Update behavior

The Customer API supports both creation and update through the same endpoint. A record with a new customerId is created; a record with an existing customerId overwrites or augments the stored customer data. This makes it straightforward to resend enriched information — such as a CRM sales status or updated contact details — without using a separate update endpoint.

Best Practice
Prefer idempotent operations — send each event with a stable customerid and, where applicable, a stable eventid. This allows safe retries and simplifies reconciliation.
Section 05

Tracking Parameters

Tracking parameters are the backbone of the attribution pipeline. They are appended to URLs by Track360 when traffic is delivered to the Brand, and they must be captured, preserved, and returned in the Customer API call for that user. Without them, Track360 cannot associate a customer with the campaign, affiliate, or traffic source that produced them.

Why tracking parameters matter

Track360 relies entirely on the parameters returned by the Brand to attribute a customer. No fingerprinting, cookie syncing, or server-to-server tracking substitutes for these values. If they are missing or altered, the customer will appear in Track360 as an unattributed record, and downstream reporting — including commission calculations — will not be correct for that customer.

How Track360 sends them

Tracking parameters are appended to the destination URL when Track360 routes traffic to the Brand’s landing page. The Brand is responsible for capturing these values on page load, persisting them across the user’s session (commonly via cookie, local storage, or server-side session), and associating them with the customer at the point of registration.

Returning them in the Customer API

When the customer completes registration, the Brand must include the captured parameters in the JSON body of the Customer API request. Parameter names in the request should match the names received — for example, a tracking_data received in the URL is returned as a tracking_data field in the payload.

Attribution Requirement
If tracking parameters are not echoed back in the Customer API, Track360 will have no means to attribute the customer. The integration will technically succeed, but the resulting reporting will treat the customer as organic or unattributed.

Example combinations

Example A \u2014 Tracking Data in the Customer API
json
{
"tracking_data": "2001_1000_abcdefg"
}
Example B \u2014 Alternate Tracking Data Value
json
{
"tracking_data": "campaign_7_aff_42_creative_b"
}
Section 06

Customer API

The Customer API registers a new customer in Track360 or updates an existing customer record. Every customer that the Brand acquires should be registered through this endpoint, along with the tracking parameters originally received with that customer’s traffic.

POST{track360-url}/tracking/events/customers
Purpose
Create or update a customer record
Auth
x-api-key header (Brand Token)
Body
JSON array — one or more customer objects
Batching
Supported — multiple customers per request
Update
Supported — reusing an existing customerId updates the record
Uniqueness
customerId must be unique per Brand

When to call this endpoint

The Customer API should be called when a user completes registration on the Brand’s platform. It may also be called later to enrich the record — for example, when a CRM status changes, when KYC completes, or when additional metadata becomes available. Because the endpoint supports updates, there is no need for a separate update call.

Request structure

The request body is a JSON array in which each element represents a single customer. Each object carries a unique identifier, registration metadata, basic profile information, and the tracking parameters that were received when the customer first landed on the Brand’s site. Additional fields (for example, CRM sales status) may be added as agreed with Track360.

Field definitions

FieldTypeRequiredDescriptionValidation Notes
customerIdstringUnique identifier for the customer. Must be unique per Brand. Reusing the value updates the existing record.Example: 12386a7c-d843-…
regtimedatetimeTimestamp of registration.Recommended format: YYYY-MM-DD HH:mm (e.g. 2025-07-21 08:46).
countrystringCountry of the customer.Recommended as an ISO-style code or consistent internal format (e.g. "US").
firstNamestringCustomer's first name, if available.Example: Alex
lastNamestringCustomer's last name, if available.Example: Taylor
tracking_datastringSingle tracking value delivered by Track360 in the landing URL and returned here. Used for attribution.Maximum 50 characters. Example: 2001_1000_abcdefg
Additional fieldsvariesAdditional attributes such as CRM sales status or custom metadata may be added as agreed with Track360.

Example request body

POST /tracking/events/customers
json
[
{
"customerId": "fx_7c2d8f91-a344-4b12-9ad3-2ae195d49c12",
"regtime": "2025-07-21 08:46",
"country": "ES",
"firstName": "Maria",
"lastName": "S",
"tracking_data": "2001_1000_abcdefg"
}
]

Implementation notes

  • Send this request as soon as the registration flow completes, so that attribution is not delayed.
  • Multiple customers may be sent in a single array — useful for batch reprocessing or bulk imports.
  • Any call with an existing customerId updates that customer; design your logic to allow safe resubmission.
  • All tracking parameters originally received must be returned here; missing parameters cannot be reconstructed later.
Section 07

Activity API

The Activity API is used to report business events against previously registered customers. These events cover all revenue-relevant KPIs and any aggregated metric the Brand wishes to track. Activity events are the foundation of all performance reporting inside Track360.

POST{track360-url}/tracking/events/activities
Purpose
Report one or more business events for existing customers
Auth
x-api-key header (Brand Token)
Body
JSON array — one or more activity objects
Batching
Supported — multiple events per request
Required
customerid, eventname

Supported event types (KPIs)

The Activity API is KPI-flexible — there is no fixed enumeration. Any KPI agreed between the Brand and Track360 can be reported. The following are commonly used for Forex:

Deposit

A funding transaction made by the trader into their account.

Withdrawal

A payout transaction initiated by the trader.

Lots

Total lots traded — the primary volume-based KPI for IB and partner commissions.

Volume

Notional trading volume in the account’s base currency.

Rebate

IB rebate amount earned from the trader’s activity (per-lot or per-trade).

Custom KPIs

Any additional KPI required by the Broker — no hard-coded limit on event types.

Event reporting logic

Each object in the array represents either a single event or an aggregated event (for example, a daily summary carrying several KPIs together). At a minimum, each object must include:

  • customerid — ties the event back to a registered customer.
  • eventname — identifies what the event represents.

Beyond these two required fields, the object carries whatever numeric or descriptive values are relevant to the event being reported, including value, currency, and any additional details the Brand and Track360 have agreed to capture.

Field definitions

FieldTypeRequiredDescriptionValidation Notes
eventnamestringName of the event or KPI being reported (e.g. Deposit, Lots, ChallengePurchase, DailyStats).Example: Deposit
customeridstringIdentifier of the customer this event belongs to. Must match a customer previously sent via the Customer API.Example: 12386a7c-d843-…
eventidstringUnique identifier for the event. Useful for de-duplication and reconciliation. Usage is decided during event configuration.Example: 1234
createtimedatetimeTimestamp the event occurred. Supports per-event or daily granularity (e.g. 2025-07-21).Recommended. Example: 2025-07-20 11:03
ValuedecimalMonetary or numeric amount for single-KPI events such as Deposit, Withdrawal, or any revenue KPI.Conditional. Example: 250.00
CurrencystringISO currency code for the reported amount. Currency conversion rules can be configured to unify reporting.Recommended. Example: USD
KPI fields (various)decimalMultiple KPIs can be embedded directly in a single object — common for daily aggregated reporting.Example: 50.00
Additional detail fieldsvariesExtra per-event data (e.g. deposit type, native amount, USD amount) may be added as agreed with Track360.

Example — single event per record

POST /tracking/events/activities
json
[
{
"eventname": "Deposit",
"eventid": "1234",
"createtime": "2025-07-20 11:03",
"customerid": "fx_7c2d8f91-a344-4b12-9ad3-2ae195d49c12",
"Value": "1000.00",
"Currency": "USD"
},
{
"eventname": "Lots",
"eventid": "1235",
"createtime": "2025-07-21 11:03",
"customerid": "fx_7c2d8f91-a344-4b12-9ad3-2ae195d49c12",
"Value": "12.45",
"Currency": "USD"
}
]

KPI flexibility

There is no fixed list of permitted eventname values — the KPIs reported may be tailored to the Brand’s business. New KPIs can be introduced over time without any code changes on Track360’s side, as long as the naming is agreed in advance so that reports render them correctly.

Grouping by date or by KPI type

Two kinds of grouping are supported, either or both of which may be chosen during event configuration:

  • Group by date — report aggregated daily activity for a customer instead of transaction-level events. This reduces volume and simplifies reconciliation for Brands whose upstream system provides daily summaries.
  • Group by KPI type — segment the same KPI across product lines. For Forex, common groupings include FX, CFD, Metals, and Crypto, enabling reporting and commission logic to differ per product.

Additional per-event details

Extra descriptive or financial fields can be configured alongside the core event data. Typical examples include deposit type (credit card, bank transfer, crypto, etc.) and a normalized amount in a reporting currency such as USD. These additional fields are defined during integration setup and must be agreed between the Brand and Track360.

Section 08

Supported KPI / Event Examples

The following examples show the most common shapes of activity payloads for Forex. They are grounded in the capabilities described above and illustrate how different KPIs translate into concrete JSON bodies.

Deposit

A single financial deposit event, typically sent immediately after the funding transaction clears on the broker side.

Example — Deposit Event
json
{
"eventname": "Deposit",
"eventid": "TX-9981422",
"createtime": "2025-07-20 11:03",
"customerid": "fx_7c2d8f91-a344-4b12-9ad3-2ae195d49c12",
"Value": "1000.00",
"Currency": "USD"
}

Lots

Trading volume in lots for a trader over a given window. Typically the primary KPI for IB rebate and volume-based commission calculations. May be reported per-trade or aggregated daily.

Example — Lots Event
json
{
"eventname": "Lots",
"createtime": "2025-07-21",
"customerid": "fx_7c2d8f91-a344-4b12-9ad3-2ae195d49c12",
"Value": "12.45",
"Currency": "USD"
}

Rebate

IB rebate earned on the trader's activity over a given window. Can be reported per-trade (transactional) or as an aggregated daily total, depending on how event grouping is configured.

Example — Rebate Event
json
{
"eventname": "Rebate",
"createtime": "2025-07-21",
"customerid": "fx_7c2d8f91-a344-4b12-9ad3-2ae195d49c12",
"Value": "24.90",
"Currency": "USD"
}

DailyStats — multiple KPIs in a single object

Several KPIs can be reported together for a single trader on a single day. This is the recommended pattern when the Broker’s upstream system produces aggregated daily reporting, as it minimizes request volume while keeping all metrics synchronized.

Example — Aggregated Daily Stats
json
{
"eventname": "DailyStats",
"createtime": "2025-07-21",
"customerid": "fx_7c2d8f91-a344-4b12-9ad3-2ae195d49c12",
"Lots": "12.45",
"Volume": "124500.00",
"Rebate": "24.90",
"Trades": "38",
"Currency": "USD"
}
Pattern Guidance
Use single-event objects for transactional KPIs such as Deposit and Withdrawal. Use multi-KPI objects (like DailyStats) for metrics that are naturally aggregated daily — Lots, Volume, Rebate, and Trade count often travel together.
Section 09

Field Reference Tables

The tables below consolidate all fields documented in the preceding sections for quick reference. Use them as a lookup during implementation and QA.

Customer payload — field reference

FieldTypeRequiredDescriptionValidation Notes
customerIdstringUnique identifier for the customer. Must be unique per Brand. Reusing the value updates the existing record.Example: 12386a7c-d843-…
regtimedatetimeTimestamp of registration.Recommended format: YYYY-MM-DD HH:mm (e.g. 2025-07-21 08:46).
countrystringCountry of the customer.Recommended as an ISO-style code or consistent internal format (e.g. "US").
firstNamestringCustomer's first name, if available.Example: Alex
lastNamestringCustomer's last name, if available.Example: Taylor
tracking_datastringSingle tracking value delivered by Track360 in the landing URL and returned here. Used for attribution.Maximum 50 characters. Example: 2001_1000_abcdefg
Additional fieldsvariesAdditional attributes such as CRM sales status or custom metadata may be added as agreed with Track360.

Activity payload — field reference

FieldTypeRequiredDescriptionValidation Notes
eventnamestringName of the event or KPI being reported (e.g. Deposit, Lots, ChallengePurchase, DailyStats).Example: Deposit
customeridstringIdentifier of the customer this event belongs to. Must match a customer previously sent via the Customer API.Example: 12386a7c-d843-…
eventidstringUnique identifier for the event. Useful for de-duplication and reconciliation. Usage is decided during event configuration.Example: 1234
createtimedatetimeTimestamp the event occurred. Supports per-event or daily granularity (e.g. 2025-07-21).Recommended. Example: 2025-07-20 11:03
ValuedecimalMonetary or numeric amount for single-KPI events such as Deposit, Withdrawal, or any revenue KPI.Conditional. Example: 250.00
CurrencystringISO currency code for the reported amount. Currency conversion rules can be configured to unify reporting.Recommended. Example: USD
KPI fields (various)decimalMultiple KPIs can be embedded directly in a single object — common for daily aggregated reporting.Example: 50.00
Additional detail fieldsvariesExtra per-event data (e.g. deposit type, native amount, USD amount) may be added as agreed with Track360.

Tracking parameters — field reference

FieldTypeRequiredDescriptionValidation Notes
tracking_datastring (max 50)Single tracking value sent by Track360 in the landing URL and returned by the Brand in the Customer API for attribution.Returned in: Customer API
Section 10

Implementation Notes

The following practical notes distill the integration’s most important operational considerations. They are not new requirements — they are emphasis on the details that most commonly affect integration quality in production.

Before starting

  • Obtain the Brand Token from Brand Settings in Track360 and store it securely.
  • Confirm the Track360 base URL assigned to the Brand (e.g. https://partners.yourbrand.com).
  • Agree on the set of tracking parameters that Track360 will deliver and the Brand will return.
  • Agree on the set of KPIs / event names that will be reported through the Activity API.
  • Decide whether eventid will be used, and if so, which system generates it.

Consistency that must be preserved

  • customerId must remain stable for the lifetime of a customer — it is the link between every activity event and the customer record.
  • Tracking parameter names returned in the Customer API should match the names received on the landing URL.
  • KPI naming (Deposit, Lots, Rebate, …) must be aligned with the agreed configuration on Track360’s side, so reports render correctly.

What must be returned for attribution to work

Every tracking parameter received with inbound traffic must be returned in the Customer API call for that customer. Missing parameters cannot be reconstructed later — customers registered without the original parameters will remain unattributed in reporting.

How event grouping is decided

Two grouping decisions are made during integration configuration and should be finalized before go-live:

  • Temporal grouping — whether events are reported per transaction or aggregated by date.
  • Product grouping — whether the same KPI is broken down by product line (for Forex: FX, CFD, Metals, Crypto).

Currency and KPI reporting considerations

Activity events carry their native Currency. If the Brand operates in multiple currencies, currency conversion rules can be defined so that KPIs can be reported and compared consistently in a single reporting currency. The rules are configured on the Track360 side and do not require changes to the Brand’s request payloads.

Additional per-event detail

Where the business requires richer context — such as deposit type, payment method, or an already-normalized USD amount — these fields can be added to the activity payload per agreement with Track360. Design the payload to be forward-compatible so new fields can be introduced without breaking existing logic.

Operational Tip
Treat both endpoints as append-friendly: include a stable customerid and (where used) a stable eventid, and your integration will tolerate retries, network blips, and replays without producing duplicated records.
Section 11

Integration Checklist

Use this checklist before moving the integration to production. Every item below is grounded in the contract described in this document.

API token configured. The Brand Token has been issued in Brand Settings and is stored as a secret in the Brand’s backend.
Base URL confirmed. The correct Track360 base URL for the Brand has been recorded and used in both endpoints.
Tracking parameters defined. The full set of parameters Track360 will send has been agreed, and the Brand’s landing page captures each of them.
Parameters persisted across session. Captured parameters are reliably available at the point of registration.
Customer endpoint ready. The Brand calls the Customer API on registration with all required fields populated.
Customer IDs unique per Brand. Generation logic guarantees uniqueness and stability of customerId.
Attribution values returned properly. All received tracking parameters are present in the Customer API request body.
Activity endpoint ready. Every reportable business event includes both customerid and eventname.
KPI set agreed. The list of eventname values the Brand will emit is aligned with Track360 configuration.
Grouping logic agreed. Temporal grouping (per-event vs daily) and product grouping (FX / CFD / Metals / Crypto / …) have been decided.
Currency handling agreed. Reporting currency and any conversion rules are defined.
Update behavior verified. Resending a Customer record with an existing customerId updates the record as expected.
Idempotency tested. Retrying requests does not introduce duplicated customers or duplicated events.
Section 12

Closing Note

Closing Note

This document describes everything required to integrate the Brand’s platform with Track360: a single authentication header, two POST endpoints, and a clear contract around tracking parameters and KPI reporting. Implemented correctly, the integration delivers accurate attribution and reliable performance reporting with minimal operational surface area.

Once the checklist in the previous section is complete, the integration is ready for production rollout. For any clarification on specific KPI configurations, tracking parameter sets, or payload extensions, please coordinate directly with the Track360 integration team.