> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paysway.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Data models

This page details the technical specifications for the Gamgem dataset data models.

The Gamgem dataset organizes gambling platform data into several entities that represent different payment destinations:

<CardGroup cols={2}>
  <Card title="Platform" icon="globe">
    Gambling websites and applications with identifying information like platform name, services offered (casino, sports betting), and website URLs. These serve as the parent entities that tie together all payment methods for a specific gambling operator.
  </Card>

  <Card title="Merchant" icon="credit-card">
    Card payment processing details for platforms, including merchant data that appear in authorization requests and show up on card statements. This data enables blocking of card transactions to known gambling processors.
  </Card>

  <Card title="BankAccount" icon="landmark">
    Bank transfer details for platforms, including account numbers (local and IBANs), bank codes (BICs, UK sort codes, etc.), and account holder information. This data enables blocking of direct bank transfers and open banking payments to gambling-controlled accounts.
  </Card>

  <Card title="CryptoWallet" icon="coins">
    Cryptocurrency payment details for platforms, including wallet addresses across various blockchain networks. This data enables blocking of cryptocurrency transactions to gambling-controlled wallets.
  </Card>
</CardGroup>

<Info>
  Each Merchant, BankAccount, and CryptoWallet entity references its associated Platform entity, allowing you to understand the complete payment destination landscape for any gambling operator.
</Info>

### Common structure

All entities in the Gamgem dataset follow a consistent structure with common metadata fields and entity-specific attributes.

```json theme={null}
{
  "id": "48a8c422-216d-4f73-8607-4fd2dd0a13ce",
  "schema": "ENTITY_TYPE",
  "createdDate": "2025-01-19T13:51:56.793Z",
  "updatedDate": "2025-03-06T21:33:04.559Z",
  "state": "ACTIVE",
  "attributes": {
    // Entity-specific attributes
  }
}
```

<ParamField body="id" type="string" required>
  Unique UUID identifier for the entity
</ParamField>

<ParamField body="schema" type="enum<string>" required>
  Entity type identifier: `PLATFORM`, `MERCHANT`, `BANK_ACCOUNT`, or `CRYPTO_WALLET`
</ParamField>

<ParamField body="createdDate" type="timestamp" required>
  ISO 8601 timestamp when the entity was first identified
</ParamField>

<ParamField body="updatedDate" type="timestamp" required>
  ISO 8601 timestamp of the most recent update to this entity
</ParamField>

<ParamField body="state" type="enum<string>" required>
  Current operational status: `ACTIVE` or `OBSOLETE`
</ParamField>

<ParamField body="attributes" type="object" required>
  Entity-specific data, varies by schema type (detailed below)
</ParamField>

### Entity-specific attributes

The `attributes` object contains different fields depending on the entity type:

<Tabs>
  <Tab title="Platform">
    Represents gambling platforms and their core attributes.

    ```json theme={null}
    {
      "id": "23dd4532-0aec-4794-88ea-ebe2aa330da3",
      "schema": "PLATFORM",
      "createdDate": "2025-01-19T13:51:56.793Z",
      "updatedDate": "2025-03-06T21:33:04.559Z",
      "state": "ACTIVE",
      "attributes": {
        "name": "YET_ANOTHER_CASINO",
        "services": ["CASINO", "SPORTS"],
        "urls": ["https://yet-another-casino.bet"]
      }
    }
    ```

    <ParamField body="attributes.name" type="string" required>
      Display name of the gambling platform
    </ParamField>

    <ParamField body="attributes.services" type="enum<string>[]" required>
      Types of gambling services offered.
      Possible values: `CASINO`, `SPORTS`, `POKER`
    </ParamField>

    <ParamField body="attributes.urls" type="string[]" required>
      Gambling platform website URLs
    </ParamField>
  </Tab>

  <Tab title="Merchant">
    Represents card payment processing details for platforms.

    ```json theme={null}
    {
      "id": "a2a0cb2f-ff94-4cfd-b71d-316e513682ba",
      "schema": "MERCHANT",
      "createdDate": "2025-02-01T10:15:30.000Z",
      "updatedDate": "2025-03-06T21:33:04.559Z",
      "state": "ACTIVE",
      "attributes": {
        "platformId": "23dd4532-0aec-4794-88ea-ebe2aa330da3",
        "cardNetwork": "MASTERCARD",
        "mid": "123456789012345",
        "name": "fake-merchant.io",
        "mcc": "6051",
        "isImpactful": false
      }
    }
    ```

    <ParamField body="attributes.platformId" type="string" required>
      UUID reference to the associated Platform entity
    </ParamField>

    <ParamField body="attributes.cardNetwork" type="string" required>
      Card network of the merchant
      Possible values: `MASTERCARD`, `VISA`
    </ParamField>

    <ParamField body="attributes.mid" type="string" required>
      Merchant ID also known as Card Acceptor Id (DE042 of an ISO 8583 authorization request)
    </ParamField>

    <ParamField body="attributes.name" type="string" required>
      Merchant name also known as Card Acceptor Name (DE043 of an ISO 8583 authorization request)
    </ParamField>

    <ParamField body="attributes.mcc" type="string" required>
      Merchant category code also known as Merchant Type (DE018 of an ISO 8583 authorization request)
    </ParamField>

    <ParamField body="attributes.isImpactful" type="boolean" required>
      Indicates whether blocking this merchant could also impact normal (non‑gambling) payments
    </ParamField>
  </Tab>

  <Tab title="BankAccount">
    Represents bank transfer details for platforms.

    ```json theme={null}
    {
      "id": "cad6f951-125a-4bd1-a46c-7ad2c4f0b661",
      "schema": "BANK_ACCOUNT",
      "createdDate": "2025-02-15T14:20:45.000Z",
      "updatedDate": "2025-03-06T21:33:04.559Z",
      "state": "ACTIVE",
      "attributes": {
        "platformId": "23dd4532-0aec-4794-88ea-ebe2aa330da3",
        "bankId": "123456",
        "bankIdType": "GBDSC",
        "accountId": "98765432",
        "accountIdType": "ACCOUNT_NUMBER",
        "accountHolderName": "Yet Another Casino Group Ltd"
      }
    }
    ```

    <ParamField body="attributes.platformId" type="string" required>
      UUID reference to the associated Platform entity
    </ParamField>

    <ParamField body="attributes.bankId" type="string">
      Bank identifier
    </ParamField>

    <ParamField body="attributes.bankIdType" type="enum<string>">
      Type of the bank identifier:

      * `BIC`: Bank Identifier Code (SWIFT)
      * `GBDSC`: UK Sort Code (6 digits)
    </ParamField>

    <ParamField body="attributes.accountId" type="string" required>
      Bank account identifier
    </ParamField>

    <ParamField body="attributes.accountIdType" type="enum<string>" required>
      Types of the account identifier:

      * `IBAN`: International bank account number
      * `ACCOUNT_NUMBER`: Local account number
    </ParamField>

    <ParamField body="attributes.accountHolderName" type="string" required>
      Name of the bank account holder
    </ParamField>
  </Tab>

  <Tab title="CryptoWallet">
    Represents cryptocurrency payment details for platforms.

    ```json theme={null}
    {
      "id": "f70095c1-701c-4fcf-96b3-6ce57f68ca15",
      "schema": "CRYPTO_WALLET",
      "createdDate": "2025-02-20T16:45:12.000Z",
      "updatedDate": "2025-03-06T21:33:04.559Z",
      "state": "ACTIVE",
      "attributes": {
        "platformId": "23dd4532-0aec-4794-88ea-ebe2aa330da3",
        "network": "BITCOIN",
        "address": "1L6c1aVMGQJtuuTFpLCTKteUm73XASLMYj"
      }
    }
    ```

    <ParamField body="attributes.platformId" type="string" required>
      UUID reference to the associated Platform entity
    </ParamField>

    <ParamField body="attributes.network" type="enum<string>" required>
      Possible values: `BITCOIN`, `RIPPLE`, `BITCOINCASH`, `LITECOIN`, `ETHEREUM`, `DOGECOIN`, `CARDANO`, `STELLAR`, `POLKADOT`, `SOLANA`, `AVALANCHE`, `EOS`, `TEZOS`, `DASH`, `ALGORAND`, `CELO`, `BSC`, `POLYGON`, `FANTOM`, `OPTIMISM`, `COSMOS`, `KUSAMA`, `ETHEREUMCLASSIC`, `ETHEREUMPOW`, `HEDERAHASHGRAPH`, `TRON`, `KAVA`, `NEAR`, `SONGBIRD`, `FLARE`, `CELESTIA`, `BASE`
    </ParamField>

    <ParamField body="attributes.address" type="string" required>
      Cryptocurrency wallet address in the network's native format
    </ParamField>
  </Tab>
</Tabs>
