Movements · Core

Full traceability of every transaction: 65+ movement types for your loyalty program

Every interaction with the loyalty program is recorded as a movement. Sales with product data you can shape in JSON, wallet loads and redemptions, reward redemption, coupon purchases, Gift Card issuance and donations — more than 65 movement types (MovementKind) give you a level of traceability that was not available before.

I free fields on sale transactions feed advanced promotion filters and detailed analysis. The Purchase Rules define the fields expected for each type of sale, so the model stays as flexible as you need.

Movement types

More than 65 MovementKind values: every customer action has its own movement type

The heart of the system is the MovementKind catalogue: every interaction with the program has a unique type, grouped by functional area. From the first registration (MOV_NEW_CARD) to sale transactions, from wallet movements to rewards, through to donations to NGOs (MOV_DONATION) and on to gamification events such as assigning badges and tags.

I free movements (Open Movements) let you define custom types for what the program specifically needs, with their own rules and triggers for promotions.

Table of movements with customer, store and points, and an SMS linked to the operation.

Free fields · Purchase Rules

Every sale carries the product data with it: free JSON for targeted promotions and advanced analysis

The payload of every sale transaction includes a free_fields object you can configure fully per program. The fields you define can be brand, product category, model or any other dimension that matters to the business.

Le Purchase Rules set out which fields are expected and of what type, so the data is reliable for promotion-engine filters — for example "promotion active only on the Footwear category" — and for detailed analysis. The data is stored with the transaction and stays queryable over time.

Sale transaction · JSON payload
// POST /v2/movements/sale
{
  "card_id": "CRD-00182",
  "shop_id": "SH-MI-001",
  "amount": 89.90,
  "wallet_code": "PUNTI",
  "free_fields": {
    "brand": "Nike",
    "category": "Footwear",
    "product_id": "NK-AF1-WHT",
    "is_sale_item": true
  }
}
Purchase Rule configured
brandstringrequiredpromo filter
categorystringrequiredpromo filter
product_idstringoptionalanalytics
is_sale_itembooleanoptionalanalytics

History and cancellations

Look up and cancel movements from the back office, POS and Area Cliente — with fraud statuses in real time

Every movement has one of three fraud statuses: APPROVED (validated), UNDER_INVESTIGATION (under review, amounts on hold and not usable) or REFUSED (rejected). The back office offers a list with advanced filters for type, status, period, store and customer.

L'movement cancellation can be set as a business rule per program: the wallet refund happens automatically. The latest movement is available directly from the POS, and the full history is visible in Area Cliente.

APPROVED UNDER_INV. REFUSED All types ▾
MOV_SALE
Milan Duomo · Mario R. · €89.90
+240 pt
APPROVED
MOV_SALE
Rome · Anna T. · €62.00
180 pt
UNDER_INV.
MOV_DONATION
Online · Luca M. · NGO WWF
−100 pt
APPROVED
↩️
MOV_REFUND · Cancelled
Back office · automatic refund
+310 pt
CANCELLED

Every transaction tracked,
every data point ready for promotions

65+ MovementKind

Sale, wallet, rewards, coupons, Gift Card, donations, gamification, system — a unique type for every interaction with the program.

TRACEABILITY

Free JSON fields

Every sale transaction carries configurable product data: brand, category, model. You can use them as filters in the promotion engine and in analysis.

FLEXIBILITY

Purchase Rules

Define the fields expected in the sale JSON: type, whether they are required, and how they are used (promo filter, analytics). Structured, reliable data.

RULES

Integrated fraud prevention

Every movement gets a status: APPROVED, UNDER_INVESTIGATION (amounts on hold) or REFUSED. Cancellation with an automatic refund.

PROTECTION
All features

Movements and transactions: the backbone of the loyalty program

More than 65 movement types (MovementKind): registration, sale, wallet, rewards, coupons, Gift Card, donation, gamification, system.
Configurable free fields on sales (JSON): brand, category, product — usable in promotion filters and in analysis.
Purchase Rules: a definition of the fields expected for each sale type, with data type and whether they are required.
Free movements (Open Movements): custom types for the program, with their own rules and promotion triggers.
A fraud status on every movement: APPROVED, UNDER_INVESTIGATION (amounts on hold, not usable), REFUSED.
Movement cancellation configurable as a business rule, with an automatic wallet refund.
Full history available from the back office (advanced filters), the POS (latest movement) and Area Cliente.
Donations to NGOs (MOV_DONATION): the customer converts points into support for social causes configured in the program.

Track every transaction, and trigger promotions in real time

Request a demo and see how product data on sales feeds targeted promotions and advanced analysis with Marta Platform.