# Data Explanations
source: https://developer.mastercard.com/agent-suite-for-merchants/documentation/tutorials-and-guides/data-explanations/index.md

👉 Replace the generic entity names, identifiers, and field descriptions on this page with the real data model used by your service. Keep the concurrency and security notes only if they reflect actual API behavior.

## Overview {#overview}

The {Your Service Name} API utilizes several core data elements to manage operations effectively.

## Primary and Secondary Resources {#primary-and-secondary-resources}

Primary and secondary resources are the main objects in the API. Key attributes usually include:

* **`resourceId`**: A unique identifier for the record.
* **`Attributes`**: Domain-specific fields such as name, category, type, state, or classification.
* **`status`**: The current lifecycle state used in filtering and operational workflows.

## Transactions {#transactions}

Transaction records link a resource to a specific business event and capture the workflow state.

* **`transactionId`**: A unique identifier for the transaction.
* **`resourceId`**: Reference to the related resource.
* **`owner` / `actor`**: Contains sensitive business or personal data. If present, this payload should be protected with JWE encryption.

## Administrative Records {#administrative-records}

Administrative records manage support users, operators, or business accounts.

* **`recordKey`**: A unique string used to identify the record.
* **`Attributes`**: Name, contact details, status, and any protected identifier fields.

## Versioning and Concurrency {#versioning-and-concurrency}

Update operations such as `PUT /resource-a/{resource_id}`, `PUT /resource-b/{resource_id}`, `PUT /resources/{resource_id}/status`, `PUT /transactions/{transaction_id}`, and `PUT /admin-records/{record_key}` use the `If-Match` header to make sure you are updating the latest version of a record.

* **`If-Match`** : A request header used on `PUT` operations to prevent overwriting a stale record version.
* **How it works** : First retrieve the current record, then send the update request with the current version value in the `If-Match` header.
* **Where it applies**: Common examples include updating primary resources, secondary resources, status-only endpoints, transactions, and administrative records.

## Environment and Security Note {#environment-and-security-note}

Sensitive personal or operational data should be strictly protected. Endpoints dealing with this data can use authenticated requests together with **JWE (JSON Web Encryption)** to safeguard payload elements in transit.
